手波与自动波:框架程序员与程序员

最近技术团队扩张,很多有丰富经验、来自不同地方的程序员加入了我们团队。于是我们开始切磋,交流不同的框架和设计模式,脑洞大开之余,让我感受到使用不同的方式的程序员,就有如开车开手波和自动波的区别。有可能,这个区别还会更大。

相比起Java的框架会被SSH一统天下,PHP程序界可谓杂草丛生,10个人大概会用8个框架。而这些框架,有一部分都深怀“远大”的理想,要把所有事情一所包办,写下一大堆的约定,功能也越来越多,到最后越写越重,学习成本相当高。

如果一个程序员学习框架都使用了超过1年,对某个框架相当的熟练,但当事过境迁,一个系统使用3年都终将重构,新的技术和新的框架崛起之时,这些框架程序员是否发现自己仍像初哥般无能为力?

归根结底,授人以鱼不如授人以渔,告诉你怎么实现,而不去思考为什么这样实现,就会变成框架程序师。Jeff Bezos也曾经说过,我永远只喜欢思考永恒不变的东西,这就是方法论。

因此,我们只鼓励最简单的框架,而任何人需要从零学起,从零写起,并且知道每一个部件的原理和实现,你不单止需要知道用框架怎么做,更重要的是知道如何不用框架怎么做。

有一些共性的东西,你甚至可以抛开语言和框架甚至技术的层面。下面是我16年编程经验总结出来的一些方法论:

软件工程的几个重要原则:

  1. 单元代码块尽量简短。通常的约定是:一个类不超过500行,一个方法不超过30行。

  2. 单元代码块职责单一。一个方法只做一件事情。

  3. 对接口编程,而不是对实现编程。

  4. 设计模式的核心思想:解耦。只有解耦,才能让每一块代码更通用,可重用,及可维护。

  5. 任何情况下,代码编写的高可读性原则都应该放在第一位,你要保持你代码逻辑的足够简单,用最直观明白的命名而非抽象晦涩。代码的可读性都是为了高可维护性及适应快速迭代,因此,软件工程确实就是工程,写软件就像盖楼,根基或架构不牢终将引发倒塌。

One thought on “手波与自动波:框架程序员与程序员”

Leave a Reply

Your email address will not be published. Required fields are marked *