老韩
11十二/080

一点经验总结

  写这样一段话,首先是因为看了这篇文章:http://eishn.blog.163.com/blog/static/65231820072574234114/
  出于和这篇文章作者相同的心理,本来想找一个zDaemon的替代品(之前大概读了一下zDaemon的代码,读得我实在晕),结果在这篇文章在发现一些值得我们学习的经验,尤其是:

  1、Python 的语法决定了 Python 能够编写出目前最复杂的程序。代码量失控是 Python 的最大敌人, 这说明我们可能正在用 Java 写 Python。
  2、过度向对象实际上就是完全无法重用, 这是一个典型的例子。

  看到这些非常有感触,因为这些问题我都碰到过并且深深为之头疼,不仅仅是Python,任何面向对象的语言都不可避免的有此诟病,比如我之前曾经接手过一个项目,这个项目的极品之处就在于,把所有的操作都封闭在了一个JS文件中,最后导致这个JS文件,无论是代码的深度还是行数,都极为可观。而且之前封装的大部分看起来结构严谨的方法和类,基本上都无法重用,这主要原因就在于:当初在设计这些方法时,只考虑到了部分共性而没有考虑到大部分的无法共通的属性。加上命名空间的杂乱无章、规划无序,都导致维护以及后续开发的困难重重。

  严重建议以后写代码(无论是JS还是Python):
  1、尽量拆分(尤其是JS。Python还好办,按模块来做,个人觉得尽量不要一个文件里写多个类,行数太多非常不易于阅读理解。)。
  2、除非是经验丰富,否则请尽量少用继承,个人觉得继承这个东西,如果没有完美的规划设计,只会添乱,尤其是在快速开发某个项目时,饥不择食的情况下根本没法考虑周全。
  3、变量的命名尽量做得可区分。命名混乱会给维护造成很大的困难,经常会让你在读代码的过程当中,不知道这到底是一个字符串变量还是一个对象。