JS的位置
题目当中那些和JS有关的人们中自己就是其中之一,因为这次外包的主要任务就是用JS调用人家已经写好的框架来实现功能。以往学JS的时候没觉得这门语言怎么样,就是一般的脚本语言嘛。负责和用户打交道,再具体一点就是做一些基本的数据验证而已。所以一般说起JS都要和DIV+CSS一起说,毕竟他们都是关于用户体验的技术。但是最近的这个项目让我看到了JS背后的东西。
从软工说起
因为软件工程的特点,项目如果从零开始开发就会有太多的不可预见性,要想顺利开发出复杂的软件太困难了。很有可能出现的情况就是开发团队每个人都在基本的操作上浪费很多的时间。自己写代码的时候有重复的代码就是坏味道,那么团队中就更要杜绝重复的代码,所以说一定要在一套成熟的框架之上进行开发,这样可以有效的节约时间和资金,保证了项目的进度和质量。框架为开发者封装了很多通用的操作,开发者只需要调用向其传递参数即可,这样一来开发人员就被分成两部分,调用他人代码的人和写代码让别人调用的人,很明显后者占有绝对的主动权。(具体到Java开发当中就是用框架的人和写框架的人。)
调用他人代码是低级操作
就像上面所说,对于大部分项目而言从零开始的情况很少,一般都是在别人封装好的,或者在自己原有的框架之上进行开发。于是普通的开发人员在开发过程中很少用到语言的特性,做的最多的就是类似配置页面这样的“上层操作”,最为常见的就是写一个JSP或者HTML页面在其中利用JS进行数据校验、传递参数等操作。所有要做的仅仅是将有效数据传递给后台,调用别人封装好的东西,基本上没什么技术可言。如果所使用的框架封装的比较彻底,那么只用JS(或者JS框架)就足够了;如果框架封装的不够彻底,那么就需要手动写一些后台代码,毫无疑问的是这些代码也一定建立在别人的框架之上。什么分层、设计模式、线程根本不用自己去考虑,也没有机会去考虑!
技术决定层次,层次反作用于技术
因为技术不够所以只能在“上层”进行开发,调用他人代码实现功能,别人封装的越彻底对上层的开发者要求越低。于是,框架做的越来越人性化,而对使用框架的人的要求越来越低。这样的好处是可以有更多的人加入到开发大军当中,但是弊端也是明显的,开发者水平上的两级分化严重,层次高的人越来越高,层次低的人想提高很困难。这也解释了为什么很多人做了很长时间的开发在技术上的提升是缓慢的甚至是停滞不前的。
如果你不想一直和类似于JS这样的前端语言打交道的话,那就从现在开始研究别人的框架吧。
PS:
JS只是众多上层工作的冰山一角,只会配置Struts框架的开发人员和使用JS调用别人后台代码的开发人员在本质上其实没有区别。