国外某工程师写了一段简单测试脚本,用以比较Java EE和Node.js的性能,结果另他大吃一惊,作为脚本语言的Node.js在竟然比编绎型语言还快了20%,而且还是在不考虑内存消耗的情况下。
他在Mac平台上从CunchDB数据库读取JSON数据,两段测试代码都很短,而且很简单, 代码和结果如下:
这段时间,为了促进程序同事间技术氛围,在公司内部组织开展技术分享 会。形式很简单,每两周也就是半个月,进行一次技术分享;分享人由组员顺序安排;题材不限,可以是自己熟悉的技术,比如说服务端的开发者,分享后端定时 器,消息队列等等,前端的开发者分享加载的模式,MVC模式等等,可以是一些通用的技术,比如数据结构,算法,代码风格,Effective 系列,调试技巧等,甚至可以是经典书的读后感等等,抑或是最近大家在研究一个开源的项目,也可以跟大家讲一下这个开源项目的框架;或许有些人利用业余时间 做了一个小软件,也可以拿出来分享。
所谓技术分享,可能很多人觉得是为了让参与者提高技术,对方方面面的技术有一个了解,提高一个广度上面的认识;其实我认为对于分享者的提高会更大。
文章使用这 个标题别无他意,主要是本身对自己当前的学习和生活状态非常的不满,算是自嘲且提醒勉励自己。计划的生活,从来没有按计划去实施过,马上快工作一年了,除 了刚开始的几个月进步比较快,但如今却感觉自己好像遇到了瓶颈,技术学习上一直没有太多的进步。下面来看看我是怎么计划好自己每周学习计划的:
《福布期:电脑革命史》一书对盖茨相当肯定,认为他做事理性,深入,切合实际,对下属公平,就事论事。对微软公司,他精打细算,从未失去控制。
相对而下,该书认为乔布斯是一个伟大的营销家,偏执狂,但恶习极多:年少成功后把自己当成皇帝,行为无法猜测,不理性,从一个极端跳向另一个极端,喜欢对 人大吵大闹,人身攻击,对人对事态度不公平,从不提供正面意见,永远只是在挑刺。他对Lisa与Mac小组的额外偏护引发了苹果各团队间的恶意,是苹果一 切内讧的源头。苹果内部几乎没人信服他,他也控制不了苹果公司。
此外乔还是一个商业上的背信弃义者,最初沃兹帮他搞的游戏机项目为他挣得了5000元奖金,但他告诉活兹说只有700元,两人平分,给了沃兹350块,这 小事众人皆知。他离开苹果时把股票变现,拿了2亿美元。之后的NexT叫好不叫座,他本来要血本无归了,但他又利用回苹果做CEO的机会,用苹果的现金买 下了自己的NexT,又兑现了4亿美金。
我从别人遗留的的技术性债务中获得报酬。在我的日常工作中,我见到了很多难以维护的代码,并且我一次次地看到了很多相似的并可以避免的问题。
我专门从事调试、修改、维护、扩展遗留软件系统这类工作,我的典型客户一般都有一个或多或少可以运行的网站或者软件,但是其开发者都因为各种原因不 再维护了,因为商业需求改变导致软件无法跟上需求;或者我的客户有一些“几乎快要完成”的软件,但是因为预算用光或者计划有变与开发者分道扬镳。通常这种 软件会缺少一系列的功能并有一坨bug。
我那些客户通常被其他程序员告知,需要废弃已有的所有代码从头开始。大部分程序员不喜欢维护代码,尤其不喜欢维护别人开发的代码。当程序员写代码 时,当他们谈论到可维护性时,程序员经常会问一些错误的问题——想了解这种情况是如何发生的,请参看Matt Duvall的文章《可维护性的神话 | The myth of maintainability》。
以下是一些你可以在你自己的软件工程中做的“好”事,因为这些事可以帮我找到活干。
我在2012年5月开始的Asterank这个项目。那周的早些时候,Planetary Resources(行星资源公司)宣布他们计划从小行星开采水和有价值的原料。和其他人一样,我被激起了好奇心。这是一个鼓舞人心、难以实现的长期愿景。
我的项目作为一个想法的实验而开始:有多少小行星是真正值得的探索?媒体发布的消息是粗略估计且没有科学根据的。没有人对小行星的含量和价值进行有条理的编录。所以在一个无所事事的周末下午,我在山景城商业区的一间咖啡厅写了第一个版本。
Event Loop 是一个很重要的概念,指的是计算机系统的一种运行机制。
JavaScript语言就采用这种机制,来解决单线程运行带来的一些问题。
听过行百里者半九十吧。这句话在程序员的工作中同样适用,到底是为何呢?Matija用一个精巧的比喻揭示了个中道理。
其实这就好比在高峰期从郊外开车回市中心。前 80% 的路程很顺,高速嘛,可能两小时就走完了,但是到了城里,就走不动了,红绿灯,人行道,各种环线和菜鸟司机,可能两个小时还不够用的。
编程也是如此。最开始你要设计框架,给整个项目打基础,然后开始开发,几周或者几月之后,你完成了整个项目 80% 的工作,各种关键模块开始起作用了。
但是好戏才刚刚开始,当你准备好好打磨这款产品时,就会发现许多奇怪的 bug 冒出来了。比如:“喂,你知道这个程序在读取文件时拔掉 USB 线会崩溃么?”,“看起来是程序不想下载文件名里有感叹号的文件...”