后端大佬为什么总是觉得前端很简单?

3

主题

7

帖子

16

积分

新手上路

Rank: 1

积分
16
发表于 2023-1-12 07:57:54 | 显示全部楼层


软件开发有几条亘古不变的原则:模块化、松耦合、封装底层、向上层透明。
前后端分离就是上面这些原则驱动下的结果。前后端松耦合,没有任何代码层面的关联,只有HTTP网络协议上的通信。后端封装自己的业务逻辑,只给前端暴露出API来,让前端透明调用。
正因为前端看到的只是API,并不会看到封装在内部的复杂业务逻辑。所以就觉得简单。
同样,很多人也会觉得前端简单。因为前端也只暴露出自己的接口(GUI,图形用户接口),也封装了很多复杂的交互逻辑。所以很多人就认为前端不就是做个网页吗。

01
后端眼里的前端



后端开发人员可能觉得前端工程师的工作简单,可能是因为他们只看到了前端工程师的表面工作,即设计和开发网站的用户界面。但是,前端工程师的工作要求非常高,他们需要掌握多项技能来完成工作,并且必须经常学习新技术来保持与时俱进。

前端工程师需要掌握HTML、CSS和JavaScript等技术,这些技术可用于创建响应式、美观的网站。他们还需要了解如何使用框架和库来提高开发效率,并且要了解如何使用工具来测试和调试代码。

此外,前端工程师还需要具备良好的设计感和用户体验感,以及与设计师和产品经理的协作能力。他们还需要了解SEO(搜索引擎优化)的基本原理,以便能够使网站在搜索引擎中更容易被发现。

总的来说,前端工程师的工作要求非常高,他们需要掌握多项技能,并不断学习新技术。因此,后端开发人员觉得前端工程师的工作简单是不公平的。

02
前端的主要工作



前后端看待问题的方式不同。
前端的复杂度主要在如何优雅地处理

  • 用户交互体验好且简洁
  • 浏览器兼容
  • 移动端自适应适配
  • 完美”像素级拷贝“设计师的原型
  • 等其他看上去比较小的细节
由于对待”简单“和”复杂“的标准不同,就有了截然不同的评价。
如果把看得见的”冰山一角“比作前端,则看不见海水下面的冰山就是”后端“
当一个后端不得不调试 CSS 的时候,可能会觉得 CSS 很简单,因为似乎怎么写都可以达到目标。但殊不知由于 CSS 不是正交(non-orthogonal)的特性,有时候很简单的一个写法却会引起某种意想不到的效果,更不谈浏览器兼容性问题等等。

一个著名的例子:外边距折叠(margin collapsing)
HTML:
<p>The bottom margin of this paragraph is collapsed …</p>
<p>… with the top margin of this paragraph, yielding a margin of <code>20px</code> in between.</p>

<div>This parent element contains two paragraphs!
  <p>This paragraph has a <code>20px</code> margin between it and the text above.</p>
  <p>My bottom margin collapses with my parent, yielding a bottom margin of <code>20px</code>.</p>
</div>

<p>I am <code>20px</code> below the element above.</p>CSS:
div {
  margin: 10px 0;
  background: lavender;
}

p {
  margin: 20px 10px;
  background: yellow;
}实际效果:



第一个 p 和第二个 p 之间发生了外边距折叠
明明看上去很简单的一个需求,若不了解其底层原理,可能会有修复不完的 bug。
03
前后端的区别
前端工程师和后端工程师的区别主要在三个方面:
一.工作的职责不同
前端工程师主要的工作职责分为三大部分,分别是传统的Web前端开发,移动端开发和大数据呈现端开发。
Web前端开发主要针对的是PC端开发任务;移动端开发则包括Android开发、iOS开发和各种小程序开发,在移动互联网迅速发展的带动下,移动端的开发任务量是比较大的,随着5G标准的落地,未来移动端的开发任务将得到进一步的拓展;大数据呈现则主要是基于已有的平台完成最终分析结果的呈现,呈现方式通常也有多种选择,比如大屏展示等。
而后端主要是:平台设计、接口设计和功能实现。
二。知识结构不同
前端开发涉及到的内容包括Html、CSS、JavaScript、Android开发(采用Java或者kotlin)、iOS开发(采用OC或者Swift)、各种小程序开发技术(类Html),随着前端开发任务的不断拓展,前端开发后端化也是一个较为明显的趋势,比如Nodejs的应用。
后端开发的重点在于算法设计、数据结构、性能优化等,在具体的功能实现部分可以采用Java、Python或者PHP等编程语言来实现。
三.发展领域不同
从应用范围来看,前端开发显然有更广泛的应用场景,所以建议互联网职场人优先掌握一定的前端开发技术。
04
总结
大家的认知都是受限的。
限于所见闻,限于所感知。
觉得某件事简单时,大抵可能有三种情形:
一我们做过,认定简单。
二我们能做,感觉简单。
三我们听过,似乎简单。
但难易与否其实在人,众生有众像,各自凭心而论即可。
白话的说大部分的前后端工作范畴某种意义上都不难,一定的知识跟经验储备,剩下的就是时间堆砌。
~ End ~
回复

举报 使用道具

您需要登录后才可以回帖 登录 | 立即注册
快速回复 返回顶部 返回列表