不小心瞄到这里,http://v2ex.com/t/197078
看下回复,觉得大家都觉得前端工作比较杂,比较浅薄。
现在的Web designer,美工俗称,专业的,得要用LESS/SASS,当然也有不用的。
那前端开发工程师,我觉得至少得比Web designer了解的不同,多一点编程的东西,而不只是设计的内容。
能够有机会接触真正的前端的编程的机会不是很多,用少量的库就解决问题了,即便是Angular之类的,也只限于使用一下,完成页面就行了这样,真正说用它们来支持一个大规模的应用,以及维护这样的应用的机会很少,因此觉得前端比较浅薄,工作杂,我以前是这样认为的。
我曾经参与一个把桌面版的设计软件移植到web上的项目,开始也是想用库解决下问题,交代就完事了,结果用的非常流行的开源的2D设计的库,代码写的越多,越发现库的设计远远不足以应付真正印刷意义上的2D设计,甚至于库的整个设计的思想都是有偏差的,解决简单的2D设计没有问题,对于印刷出版还不行。
而最重要的感受是,在写这样的一个上100KLOC的javascript库,grunt什么的其实都只是工具,必要但是不是最重要的,重要的是,想要写好这样一个库,要考虑的设计问题很多,对于编程而言,并不是一个简单的事情,比一般的后端编程而言,写一个很好运行的复杂的web/javascript app更难。
你会发现你用过的一些开源的很流行的库,基本上都可用,但是不够用,当你尝试去修改它的时候,发现它的设计逻辑是错的,有些还有内存泄漏的问题,然后你还会发现,如果涉及到异步,你了解Ajax,Web worker根本不够用,因为这里还有和服务器端设计的一致性的问题,那种方式更自然,更优雅,需要很多考虑。
然后,你如果用SVG/Canvas,你发现你需要考虑很多SVG特性和概念,就是最简单的色彩的表达,HSL是怎样的逻辑?文本的wrap如何计算?字体是如何表示,大小位置,度量单位如何表达,等等,都有太多的问题。
我觉得如果认为前端杂浅薄,是因为我们接触前端的相当规模的编程比较少,如果真的接触了,你会觉得前端写不容易,维护更难。所以对前端开发的工作量不同,认识也不一样吧。Angular也好,Grunt也好,其实都是工具,真正要做出优雅的大规模的代码,对于编程的要求还是很高,我这样说是因为过去我也不确定,看了国外牛人写的流行的2D/javascript库之后,我才知道,即便是如这样的牛人,在某些方面,也还是差的比较远,可见其不简单。