做个环保主义的程序员
十多年前刚走入社会工作的时候,那时的中国软件开发根本没有什么版本管理,也没有什么编程规范,软件开发相比起今天来说非常地混乱,那时仅凭自己的一些学习总结了一些C语言编程中的好的小笔记,后来,这些笔记写成了一篇叫《编程修养》的文章。今天,又有些感触,想把这个话题扩大一下,从“个人修养”扩大到“环境保护”,所谓,穷则独善其身,富则达济天下,今天的技术人员比十多年前在技术和环境上都富有了许多,所以,也应该或多或少地担负起“达济天下”的责任了。
环境保护说白了就是保护一个良好的环境,为好的环境添砖加瓦,与破坏环境的人和事做斗争。其实,从技术人员来说,我们可以做一些力所能及的事。因为我们身边的技术环境还有很大的改善的空间,而一些来之不易的东西还需要我们去小心维护。另外,对于我们自己来说,少吃一些垃圾食品,健康生活,对自己也有益。
环保主义软件开发
先说说软件开发中的环保。比如:
- 环保需求。当我们分析需求的时候,如果我们能做到不要像“这是到底是谁的错”一文中那样的来者不拒,如果我们在面对需求能多问这样几个问题:为什么 要有这样的需求?这个功能主要能解决什么 样的问题?为什么不是另外那一种?可不可以简化一下?其实,我们并不需要创新,只需要真正地问好这几个问题,我们就可以少看着一些弯路,少一些苦逼的加班,少一些内耗,少一些埋怨,也就可以为这个社会节省下一些资源,从而环保。
- 环保开发。当我们做设计写代码的时候,如果我们多花一些时间去思考一下,我们就可以少一些代码(参看“多一些时间少一些代码”)。如果我们在一开始多思考一下,不要急着马上去用迭代的方式认识世界,多思考一下怎么把复杂的东西解藕,把复杂的东西简化,怎么做出一个优雅的设计,怎么让我们的程序少一些tricky的东西,怎么让我们的程序变得更简洁,更清楚,更直,在一开始思考一下未来需求可能的变化,未来软件需要怎么测试,未来的系统需要怎么的运维,那么,我们可以少一些返工,少一些重构,少欠一些债,少一些低级错误,少承担一些系统上线后的压力,那么,我们同样可以为这个社会节约一些资源。说得再直白一点,你用更少的代码产生出更高的效益,少耗一些CPU,就能省一些电,间接地保护了环境。(参看 Why C++?)
- 环保文化。当我们在做软件开发的时候,如果你能影响并帮助你身边的同事,让他们写出更有修养更有效率质量更高的代码来,并发动团队树立工程师的文化,用团队去影响你的老板,你的公司,让他们能再多一点地重视技术,重视技术人员,那么你必然也会成为一个受益者。
- 环保管理。当你做为一个管理者,做为一个方法推动者,如果你能更多地注重软件开发中真正创造生产力的程序员,为他们分忧,为他们铺路,为他们创造条件,那么,他们就会更多的回馈于你,就会少了一些不信任,就会少了一些被动,就会多一些主动,就会多一分责任,不但可以激发团队热情,同时可以有更大的生产力。同样是一种环保。
当然,这样的东西还有很多,你也可能会觉得太过理想主义了,我们不可能马上改变之,但是我们可以试一试。
技术环保主义
其实,我们身边有很多可以做的技术环保工作。比如说,在Linux下少用root用户,SQL的时候,delete前先select,这样,你就不会做出一些让你后悔的事(参看程序员那些悲催的事),不会让你重头来过,从而至少不会浪费电能。写代码的时候要很小心管理好内存,以及各种资源,和线程并发,组织好的你的代码中的业务逻辑,做好单元测试,自动化回归测试,等,这样你就可以少一点遇到BUG,在遇到BUG时少一些时间去做调查。操作电脑的时候少下一些破解软件,少访问一些乱七八遭的网站,这样,你就会少中一些病毒,少一些损失,少一些重做系统,一样可以节省电能,最重要的是可以节省你的很多时间,让你可以去做一些更有价值 的事情。
当然,除此之外,我们更应该做为一个大气的,高瞻的环保主义者,比如下面的事情:
- 拒绝IE6。如果你坚决不用IE6,并影响你身边的人,让他们升级IE6,尝试Chrome 或 Firefox,多告诉一下自己身边的朋友,怎么设计口令,怎么在互联网上保护自己的隐私和安全,怎么防木马,这样就能少一些问题,少装两次系统,就能省一些电,也就能多一些时间去做一些更有意义的事。也是在为整个世界整个人类做贡献。(看看某些软件产商,占据着用户桌面的江山,还整天弹窗弹窗的,说这不安全,那不安全的。你还是做安全的,你居然能容忍IE6装在用户的机器上,你还做个屁的安全!)2011年3月份,我国的IE6用户的百分比是34%, 那时中国网民4.5亿,平均每三个人中有一个,2012年3月份,中国的比例还有24%左右,不过中国的网民数达到了5.13亿,也就是说,平均5个人里有一个,但是中国依然是全世界的IE6占有量最大的,参看下图(来自:http://www.ie6countdown.com)面对下面的图片,你作何感想呢?
“Friend Don’t Let Friend Use IE6”
- 拒绝破解软件。为什么要拒绝这些东西,因为你恐怕不知道这个软件的危害,包括一些汉化版的开源软件。这些软件中都会带 一些木马,比如:你下个putty的中文版,结果里有木马,人家就把你网站的口令盗了。关于网游,你可能不知道,连接网游私服的电脑基本上全是肉鸡,而 且,有很多的站点骗你下载软件破解程序,其实你下载到了一个木马。等等。这些生活都非常地不健康。
- 拒绝抄袭和山寨。如果你鄙视那些赤祼祼地抄袭者,不使用他们的产品,有的人会说你就是想标榜自己的高尚,ZB,假高尚,大家会说你没有必要。其实并不是,你这样做,其实是为了“环保”,为了“保护一个健康的IT环境”,虽然你没有创新,但是你的行为却是在鼓励创新的环境,这样,如果当整个大环境都是在创新文化影响之下,才会更健康,技术人员也才会被尊重,而我们自己最终会受益。虽然只是抑制抄袭和山寨,但是我们间接地为社会做了贡献。(看看那N多的抄袭团队,加入他们实在是耗费这个社会的资源) (那个整天复制这个复制这个复制那个的公司,看看你自己做的那些产品线?乱糟糟的。你自己看看,你有个人空间,还有群空间,还有校友录,然后你还要做个facebook式的“朋友”,还要搞个微博,然后还要搞个微信,大哥啊,你把这些相似度很大的东西放在了N多的服务器上,你不觉得浪费吗?你真是山寨之王啊,自己都一直在复制自己的产品。还有人说你们的产品经理一流,真是脑残啊。对于你们的复制精神,我只能拜了!)
- 拒绝百度搜索。如果你学得百度还是可以的话,你不妨看看我的微博(这个,这个(抓图),还有和这个和 这个)(以前,百度搜索出来的很多的开源软件(PuTTY、WinSCP)的第一个链接全是带木马的,百度就是一个网上的病毒 ),你会发现百度不单单是广告的问题,很多东西根本搜不出来,包括他自己的内容。用百度就是浪费时间,浪费计算资源。如果你告诉你身边的朋友不要用百度搜索,而是用Google,并能耐心地教会他们翻墙,这样,我们就可以让那些“穷则穷凶极恶,富则为富不仁”的企业少一些自以为是,最重要的是可以让他们少制造一些垃圾信息和垃圾产品,世界少一些垃圾,自然也就环保了。
- 拒绝过重的商业氛围。很多社区的商业氛围实在是太浓了,全都是广告。整个社区根本都不是为技术人员来做的,而为了那些软件产商,为了那些公司。他们只知道为那些大公司写软文,做广告,开大会。他们只想着挣钱。网页上全是花花绿绿的广告,打开他们的网页,就会多耗许多电,浏览他们网站上的文章,到他们的大会上听他们的软件广告分享,就会让自己的生命和时间浪费,自己消耗了体力不说,却还没得到什么营养,相当的不环保。
- 拒绝浮燥。比如:浮燥地创业者们,被风投们一轮一轮地压榨。为了让风投满意,牺牲自己的初衷,去找水军刷排名,去发垃圾邮件,去烧钱买吆喝,制造虚假的繁荣,等等。另外,少去追那些新的技术,少一些浮夸,不要开口闭口的就是海量数据,高性能,要当个架构师,经理,要拿多少多少的工资,与其这样,还不如多静下心来研究一下那些十来年的技术,思考一下自己身边的问题,一步一步走踏实,少摔几个跟头,这样,你也就能多一些能力,多一些自信,也就能多做一些事,多解决一些问题,你的职业生源走好了,也就很环保了。
还有很多,我相信大家明白我想说什么。其实,我想说的是,这不单单是一种“个人修养”,这也是一种对社会贡献的方式,更是一种“低碳环保”的生活方式。
让我们一起来做有修养的环保主义的程序员吧,少吃一些垃圾食品,多一些绿色的健康生活!
—————— 更新 2012年4月27 ——————
我看到很多网友并不同意我的观点,并指责我的偏激和极端。挺好的,我知道,我说到了你们最敏感的地方,我很高兴。
你可以对现实妥协,你可以继续钟爱你的垃圾食品,你可以继续使用百度搜索,你可以继续生活在墙内,我虽然替你感到惋惜,但是我不会勉强你,因为我能理解你可以不环保,本来也是,这些事情,你能做到固然好,你做不到,也是你的选择。每个人的生活每个人自己去选择,想健康地生活,或是不健康地生活,都是你自己的权利。