这是一篇扯淡,一篇 rant,或者是一坨不靠谱的文字。有一些观点过于偏激,如果你没法接受,也请不要太在意。
无趣的接口封装
我记得刚工作的时候,我的第一个正式项目是去写一个基于 SOAP 的 WebService 接口,那个时候觉得新鲜,“原来 web service 是这样子的!”;到了现在,已经写过各种各样的 service 接口,再也没有觉得做这样的事情很有意思,或者很有新意、很有挑战性,尤其是一些并不复杂的增删改查的接口(当然业务逻辑是有够繁琐的)。
有同事说,做界面、做 portal 并没有什么意思,都是浮于表面的东西。虽然我不完全认可,但在这个前端工作被普遍瞧不起的国度,而且从某些层面上说也对,可是我其实很想反驳他的,做 front-end 的东西还有一些 UI 设计和用户中心设计的挑战在里面,但是写 portal 后台或者 service 逻辑层的业务代码呢?大多数都是增删改查的脚手架而已,变化的地方无非是接口不同种类的封装,以及从不同的数据源中读写数据而已。
举例来说,要写一组持久层的接口,屏蔽几种格式的文件、关系数据库、Network API、WebService Invocation、HDFS 和 DynamoDB 等等好多种数据源的访问差异,提供统一接口,最初听起来是一件挺有趣的事情。写骨架代码的时候也确实让我的思维 “活跃” 了好一会,可是在最初的设计完成之后,很快就变成了各种访问接口的封装,我觉得我又在走好多年走过的老路了。
孱弱的移动应用开发
移动端的应用开发有点像三天的热情,刚上手觉得很有意思,工作之余研究研究做几个看得见效果的 app 觉得很有成就感,当真成为工作去做的时候每天都想呕吐。现在我体验这两大平台上的设计开发过程,不为赚钱,只为娱乐。
但是当真成为工作就蛋疼了,嘿嘿。尤其是 Android 平台,天天折腾在各种手机里面,各种分辨率,各种兼容性考虑;iOS 应用开发也好不到哪去,啰嗦的审核,系统访问的各种限制;WAP 页面开发呢,则要兼容乱七八糟的各种不负责任的浏览器(以前还弄过 WAP1.0 版本的页面,那种老破手机,折腾死啊)……
纠结的编码高手
有相当数量的这样一群人,他们代码层面的设计编码技术了得,对自己的代码无比爱护,尤其对于接口设计尤其纠结。这些人可以写出非常漂亮的代码,但是也会花很多的时间、无比的心思去纠结一些没有太大意思的东西。比如:
- 代码洁癖症患者,看到格式不合心意就要改啊;
- 看到某接口参数定义不够完美,冒着该几十个类的巨大风险也要把它修改了(虽然有些情况下是值得的,但是你不可否认做这样的事情好没意思啊);
- 扩展性、兼容性设计,代码里遍布了 factory、builder,随处可见的设计模式;
- 折腾主义者,每过几天就要把项目的架构、物理部署和包结构等等调整一遍,让它看起来更美,虽然大部分时候收益代价比并不让人恭维……
等等等等。每一件代码都是艺术品,但是每一件艺术品在没有见到天日之前,就没再有人看了;每一段代码都有足够的扩展性,但是没有一段代码在收到足够多的变化的挑战以前,就已经封存不动了,甚至产品都没人用了。纠结的编码高手们(单纯伟大在编码上的人不能成为伟大的程序员,只能称为编码高手,请参见这篇文章的解释),一生都在为不为人所欣赏的美丽的代码艺术品而无趣和自我解嘲中奋斗。
产品成就感和技术成就感
如果做的东西得到广泛的应用,有足够大的影响力,这自然会给程序员带来正向的鼓励;另一方面,如果做的东西使用了有趣的技术,或者在程序员感兴趣的范围之内,这当然也会产生正向的促进作用。
最惨的境遇莫过于这两者都不具备,每天做着各种枯燥的工作,也无法看到产品产生了哪些鼓舞人心的影响。好多人都在说钱多就干,钱固然是一个起到重要作用的因素,但是许多程序员还是想追求一下自我价值的,虽说在很多外行人看来,程序员本来就是一群无趣的 nerds(至于 geek,是对其中的少数人一个相对比较给面子的称呼了)。
以前我在一家通讯公司做软件,但是做的是提供给电信运营商,但是最终面向互联网用户的软件,架构师设计了一个庞大臃肿的架构,在我看来还是略有陈旧的传统思维使然,portlet+SSO+管理台集成+关系数据库,聚合逻辑和业务展示逻辑分成两个异地的项目组完成,期间碰撞和痛苦无数,三年后架构部就想力推一个新架构取而代之。互联网产品早就不那么做了,在人家用几个人做出快速轻量的吸引人眼球的应用的时候,我们还在人海战术中搏杀,拖着一个巨型的 “解决方案” 航空母舰,可是谁都不知道用户想要什么,只知道电信运营商说了什么。
这也是为什么我始终对那些 ERP 系统、OA 系统之类的提不起兴趣,使用的人那么少,条条框框那么多,而且还往往没有互联网产品那样日益更迭的新技术。相较于总显得落后好多年的传统软件领域,互联网领域确实多产牛人。
寻找有意思的项目
我没有做过系统底层的开发,这是我的弱项,也是我很有兴趣去涉猎的地方;我也刚开始接触机器学习的知识,虽然欠缺足够好的数学头脑,不过我还算乐观;更想做一些充满挑战的工作,做一些直接影响力许多互联网用户的事情,让成就感这样的贵人经常光顾自己。
想寻找有意思的项目。是不是像夫妻之间的七年之痒一样,程序员也有 X 年之痒?到某个时间点,就开始找事儿了?
文章未经特殊标明皆为本人原创,未经许可不得用于任何商业用途,转载请保持完整性并注明来源链接 《四火的唠叨》
有个朋友做了个网站,里面有不小项目,你可以看下,或者参与到一些项目中, 当然了不一定都是开源的。 shixiann.com
是点痒,想找个开源项目提升。