用户1340774522  转发了 @有个梨UGlee 的微博:很多开发者喜欢N多个大屏幕,推断功能极强的IDE,和带断点调试的debugger。

Linus Torvalds只用两个屏幕,或者一个大屏幕的两个窗口,一个源码,一个输出,常年使用一个自己Fork的emacs,坚持认为Linux Kernel不需要debugger,console print是足够的。

你要写很多年的代码才会明白这是为什么。

并不是Torvalds先生古板,而是开发者经常为一种虚假的效率欢呼。

当你需要三个屏幕6个窗口看源码时,当你需要IDE为你推断时,或者当你需要fire debug命令才能知道what's going on时,你面对的这个系统,你已经不是真的全面理解它了;或者你只理解其中的局部,但不知道组合起来在发生什么事。

一个你不理解的东西,你的任务是让他工作,这听起来就很危险。

当然内核里可能没太多好办法,因为它只能用C语言写;但是在系统和应用层面,人类过去二十年的白盒工程方法,让依赖关系的泛滥,是软件工程的敌人。你看着那些程序员在忙忙碌碌,但是大部分时间他们解决的不是用户的问题,而是自己或者同伴制造的问题。这样的程序员比比皆是,他们能留在团队里只是因为老板不懂编程。

使用很多的屏幕看代码 -- 逻辑范围波及太广了,差劲的设计!
使用IDE -- 静态结构太复杂了,你在使用太多语言中不好的特性!

最后我们说说debugger vs print.

如果你只有print,这是你唯一的外部方式去观察你的程序工作正确与否,你就不会选择那些非常难以通过print去证明其正确性的设计;这意味着你的设计在接口角度看,更容易证明其符合设计要求。

Less is more,真的,你不可能让一个你不理解或者无法hold住的程序工作正确。

请承认这一点。
 原文转发[371]  原文评论[71]
转发理由: //@有的没的维德夫:扯淡吧,十年前业内写test的比现在多的多。现在都是撞大运编程。//@有个梨UGlee:最近十年软件行业的最大进步就是普遍要求测试套件,而且对测试套件的质量要求越来越高。//@raof01幺永闹子:我见过多数开发者是靠debugger来编程的。有时候矫枉确实会过正//@韦恩卑鄙:回复@老毒师:   2018-06-09 22:45:25  举报 收藏 操作
 转发[2]  评论  赞[0] 
评论只显示前140字:

 
还没有人针对这条微博发表评论!