backup

这里是王垠发表的历史文章的一个私人备份。所有文章都属于王垠版权所有,放在这里仅仅是为了自己查看方便,因为原始文章会lost in future。

---------------------------------
王垠自己的博客:
http://yinwang0.wordpress.com/
http://www.yinwang.org/

王垠曾经用过的博客:
http://blog.sina.com.cn/yinwang0

谈程序的正确性

作者:王垠

谈程序的正确性

不管在学术圈还是在工业界,总有很多人过度的关心所谓“程序的正确性”,有些甚至到了战战兢兢,舍本逐末的地步。下面举几个例子:

  • 很多人把测试(test)看得过于重要。代码八字还没一撇呢,就吵着要怎么怎么严格的测试,防止“将来”有人把代码改错了。这些人到后来往往被测试捆住了手脚,寸步难行。不但代码bug百出,连测试里面也很多bug。

  • 有些人对于“使用什么语言”这个问题过度的在乎,仿佛只有用最新最酷,功能最多的语言,他们才能完成一些很基本的任务。这种人一次又一次的视一些新语言为“灵丹妙药”,然后一次又一次的幻灭,最后他们什么有用的代码也没写出来。

  • 有些人...

DRY原则的误区

作者:王垠

DRY原则的误区

很多编程的人,喜欢鼓吹各种各样的“原则”,比如KISS原则,DRY原则…… 总有人把这些所谓原则奉为教条或者秘方,以为兢兢业业地遵循这些,空喊几个口号,就可以写出好的代码。同时,他们对违反这些原则的人嗤之以鼻——你不知道,不遵循或者藐视这些原则,那么你就是菜鸟。所谓“DRY原则”(Don't Repeat Yourself,不要重复你自己)就是这些教条其中之一。盲目的迷信DRY原则,在实际的工程中带来了各种各样的问题,却经常被忽视。

简言之,DRY原则鼓励对代码进行抽象,但是鼓励得过了头。DRY原则说,如果你发现重复的代码,就把它们提取出去做成一个...

怎样尊重一个程序员

作者:王垠

怎样尊重一个程序员

得知一位久违的同学来到了旧金山湾区,然而我见到他时,这人正处于一生中最痛苦的时期。他告诉我,自己任职的公司在他加入之前和之后,判若两人。录取的时候公司对他说,我们对你在实习期间的表现和学术背景非常满意,你不用面试,甚至不用毕业拿学位,直接就可以加入我们公司成为正式员工。然而短短一年后的今天,这位同学已经完全感觉不到公司对自己技能的尊重。Manager让他做一些乱七八糟没技术含量的事情,还抱怨说他做事太慢,并且在他的evaluation上很是写了一笔。在人格尊严和工作安全感的双重打击之下,这位同学压力非常大,周末经常偷偷地加班,仍然无法让manager满意。...

黑客文化的精髓

作者:王垠

黑客文化的精髓

听说“黑客文化”这个词,就像在昨天。想起它,眼前就出现一些头发蓬乱,穿黑色道袍的人。最早的时候,他们努力地向人们澄清:“黑客”不是贬义词,不是指那些入侵电脑网络的罪犯。当人们明白过来之后,他们开始告诉人们如何成为一个黑客,并且把黑客与画家相提并论。当人们受到鼓舞,决心成为黑客之后,他们开始向这些人灌输黑客的“行为守则”,“提问的艺术”等等。总之就是说,你得显示出一些非常重要的特征以证明你是高手,并且教育那些菜鸟们。否则按照我们的标准,你就不是个黑客!

于是忽然间,我来到了这个黑客遍地的世界。体验着,忍受着自己向往已久的“黑客文化”。

某大牛说……

一个中等水平...

程序语言与它们的工具

 作者:王垠


程序语言与它们的工具

谈论了这么多程序语言的事情,说得好像语言的好坏就是选择它们的决定性因素。然而我一直没有提到的一个问题是,“程序语言”和“程序语言工具”的设计,其实完全是两码事。一个优秀的程序语言,有可能由于设计者的忽视或者时间短缺,没有提供良好的辅助工具。而一个不怎么好的程序语言,由于用的人多了,往往就会有人花大力气给它设计工具,结果大大的提高了易用性和程序员的生产力。我曾经提到,程序语言其实不是工具,它们是像木头,钉子,胶水一样的材料。如果有公司做出非常好的胶水,粘性极强,但它的包装不好,一打开就到处乱跑,弄得一团糟。你是愿意买这样的胶水还是稍微差一点但粘性足够,...

PySonar2 与 Sourcegraph 集成完毕

作者:王垠


来到 Sourcegraph 两个星期了,我可以说这里的每一天都是激动人心的,这是一个有真正创造活力的 startup。我们的发展速度相当之快,每一天都出现新的点子,或者发现以前做法的一些大幅度简化。不得不承认 Quinn 和 Beyang 是比我有魄力的人。我虽然做出了 PySonar,却让它的代码束之高阁多年之久,没有发挥出应有的作用。是 Quinn 和 Beyang 坚持不懈地做出了 Sourcegraph.com 这个网站,才使 PySonar 可以发挥出这么强劲的效果,用以搜索全世界的 Python 代码,为广大程序员造福。当然,我们的目标不只限...

在 Sourcegraph 的第三天

作者:王垠


这个星期一我就正式加入 Sourcegraph 了。做自己感兴趣的东西真是不感觉累。这里没有人是老板,每个人都是老板,每个人都写很不错的代码。虽然每天工作的时间比起在 Voxer 多了很多,但是感觉也好了很多。Quinn 和 Beyang 每天都工作到半夜,但是仍然每天精神饱满。我比他们稍微偷懒一些。工作不是因为有压力,而是有一种像打电玩一样的“瘾”,这样的工作还能叫工作吗?那叫“玩物不丧志” :-)

我们的条件是艰苦的,办公室又小又乱。虽然条件很快就会改善,我却一点也不在乎这个。Steve Jobs 不也是在车库里创造了 Apple...

PySonar2 开源了

作者:王垠


经过 Google 的许可,我现在将 PySonar 第二版本开源,就叫 PySonar2 吧。代码可以在我的 GitHub 下载:

https://github.com/yinwang0/pysonar2

经过一阵子考察之后,我发现 PySonar2 仍然是当今最先进的 Python 静态分析器。其分析的深度和准确程度其实超过了所有的 Python IDE (包括 PyCharm 3.0 在内)。PySonar2 做的是跨过程,具有精确控制流的分析,而现在最好的 Python IDE 仍然是局部过程分析。

PySonar2 的工作原理却极...

PySonar 的第二个用户

作者:王垠


湾区的世界真是机缘巧合众多。最近有人联系我,说他们做了一个代码搜索公司叫sourcegraph.com,其中的 Python 检索部分使用了 PySonar 的第一版开源代码。于是我很高兴的发现 PySonar 有了第二个用户(当然,Google 是第一个)。

Sourcegraph 的两位创始人 Quinn 和 Beyang 告诉我,PySonar 是他们试过的最精确,也是最友好的 Python 静态分析。这虽然是意料当中的,但是我还是很高兴有人发现了这一点。其实在设计 PySonar 之前我试过十多个 Python 分析器和 IDE

© backup | Powered by LOFTER