百科问答小站 logo
百科问答小站 font logo



如何评价阿当的文章《当我说前端基础时,我在说什么》? 第1页

  

user avatar   johnny-wu-001 网友的相关建议: 
      

作为一个非前端开发人员,看完这篇文章后我的感受是:认认真真,系统科学地学好计算机基础课是多么重要的一件事情。计算机的基础课程里会教你:

- 如何做一门 DSL 语言 ( css )

- 如何在屏幕上正确的显示像素 ( html layout and rendering, canvas, webgl, svg )

- 一门编程语言长什么样子 ( javascript )

- 数据结构是什么,我们平常解决问题会用哪些算法 ( virtual DOM, DOM, Render Tree )

- 进程,线程,~~携程~~协程都是神马

- 从外部存储器读取数据到内存中是怎样一种体验

- 还有很多...

然后 web-browser 做的事情就是帮助你把这些东西用比较通用的方法包装好,让你可以在掌握了固有基础知识的前提下,很灵活的运用他去做一些创新和拓展。

所以,当你掌握了基础知识后,看待前端那些“技术”时,你会和这些技术的开发者们产生共鸣而不是排斥或抵触。你会欣赏其他人的解决方案,或者会因为他们的奇思妙想而衍生出新的灵感,从而触动你产生自己的解法。

比如 css,从一开始的 less,sass,stylus 到 postCSS 以及 w3c 近几年对 CSS next 的提案。大家努力的重心从来没变过,就是如何做好一门 DSL。你理解本质需求,就不会害怕这些衍生品,反正大家思路都差不多,思路古怪的,政治不正确的,你凭借自己的科班能力早就判断出来了。

再比如 MV* 和 Flux,都是在努力解决数据流向和数据展示的问题。而我从来没觉得这些框架的推出是“追新”,反而是因为 CPU/GPU 发展使得过去因为机能限制,浏览器优化不够,市场占有率等问题而不能去普及的技术方案,可以在现有背景下重新去尝试和推广。当你看到诸如 React 这样的框架推出的时候,你应该感到兴奋而不是像这篇文章的作者那样去抵触和害怕。兴奋什么呢?如果你的计算机基础学科知识扎实,你会兴奋大家过去几年都想到一块去了,很多“如果 (what if)”的美好愿景竟然有了这般实现。

再比如 Canvas,WebGL,过去我需要从非常底层去搭建图形程序的周边,才能开始进行一些图形编程的实验,现在都有了非常方便的方式方法,我会由衷地感谢标准委员会和为此努力的厂商和程序员们,而不是如作者说的那样:

而近些年,随着前端越来越被重视,越来越多的server端或者其它GUI技术(flash、webgl等)转做了前端,这种情况发生了根本性变化,无论在国内还是在国外。这一波新前端们,对编程是熟悉的,对框架是熟悉的,而对css和html是相对陌生的。

这个观点太可笑了,我一个对前端编程完全不懂,但比较认真学计算机基础学科的人,只要你跟我说 css 是一门 Layout + Rendering 的 DSL,我至少就懂个三分了。然后我肯定问你呀,Layout 是怎么计算的?你告诉我浏览器坐标系是 Screen Space,原点在左上角,Y 轴向下,我懂四分了。然后你跟我说,除了固定坐标定位还可以根据节点高宽来动态定位,定位时也会根据文字数据做处理,我懂五分了。然后我问你 Rendering 是什么鬼?你告诉我浏览器也就能画矩形,贴图片和渲染文字。我肯定问你渲染优化策略是什么,你说 Tiling + Dirty Rect 我大概就懂六分了。然后我问你能用矩阵么?你说有 Transform,不计入排版。我问你能伸缩么,你说有 Flex 但父节点高宽必须能推算出来。我问你能拉曲线么,你说有 SVG。我问你能打点么,你说有 Canvas。你不用说了,我知道怎么画东西了。到此你已经懂七分了。剩下三分,真的觉得细节不懂,你只要去看一看开源的浏览器实现,比如 Webkit 或者 Gecko 中关于 Reflow/Layout 部分的实现即可,有什么难理解的?干嘛一定这么高冷的认为只有一小戳的人才能玩某个圈子?

所以啊,同学们,我跟你们讲,大学的时候认认真真的学好计算机基础课程,即使你以后只是像我这样做个打杂的民工,也不至于因为技术日新月异的变化而感到害怕和焦虑。不过是狗熊所见略同而已,就是比比谁的爸爸好,谁的时间多。

吐槽结束,继续潜水。。。




  

相关话题

  JavaScript 如果拥有多线程能力会怎样? 
  为什么前端不能一直做?难道要转行?? 
  为什么前端框架 react、vue 里会出现生命周期的说法? 
  如果工作一年经验的前端开发人员比工作两年的功能测试人员工资低,你还愿意待在那家公司吗? 
  前端做的页面为什么总是跟设计稿差很多? 
  公司上下近 300 号人,但做 web 开发的就我一个人,请问有必要用 vue 这种前后端分离吗? 
  为什么 Vue 的更新记录没有中文,中文文档也一直滞后? 
  为什么程序都要用英文写,中文不行吗? 
  JavaScript里面有什么是不用刻意学的? 
  如何看待ry的项目deno的issue被中文刷屏的事件? 

前一个讨论
如何看待ASP.NET 5 is dead?
下一个讨论
周子瑜为什么被定性为台独?





© 2024-09-19 - tinynew.org. All Rights Reserved.
© 2024-09-19 - tinynew.org. 保留所有权利