@守护石AI:编程能力怎样才能突飞猛进?
想成为高水准的编程工匠需要经过三个基础方面的努力:1.看书、 2.阅读源代码,3.代码重构。
1. JAVA、Linux是我的擅长的核心领域,但我不排斥其他领域的技术书籍的学习和理解,包括:C/C++、C#、Windows编程、Unix网络编程、Python等。这是作为一位专业程序员应该具有的基本素养。另外并不是编程技巧好就自以为是个牛人了,那你就错了,还要更多在软件工程方面的去理解和感悟,那么人月神话、敏捷开发、团队之美这类书籍就也需要多读,多体会,多在工程实践中去理解。往往说一将无能,累死三军,不是说将军的武艺不够强,关键原因是将军总是赤膊上阵,不懂得指挥,团队就如无头苍蝇乱飞,那么再优秀的个人代码技巧也抵不上一个团队稀烂的开发工程。
2. 阅读源代码,当很多人只想着ctrl+c/ctrl+v赶紧解决完工好回家追王凯、靳东的新剧时,而黑客潜质的程序员,正在电脑面前阅读着大师们的杰作,想从框架的源代码中寻找到更优解的答案,因此很多人只能称之为码农。面对github浩如烟海的大师之作,就好像电影《七宗罪》里面老警探对着图书馆的保安说:“先生们,我永远也不会懂,有这么多书,知识的世界完全唾手可得,可你们呢?整晚打扑克牌”,可能很多人看到会反驳我。没有关系,若有心人能体会到其中的奥秘,对人生发展定大有裨益。
我在10年前就看完了JSF/MyFaces 80%的源代码,Springframework Core源代码,那时候极为推崇Rod Johnson的编程风格。去年把Hadoop HDFS的Client部分看了大半。每当阅读完这些源代码之后的几年都会在相应的工作中受益无穷,不仅仅是编程,还有对软件架构洞悉的能力极速提升,这是千真万确的事实。
3.再说说重构的重要性,当你接手了一个项目,屎一样的if if if ... else else else ...,几千行嵌套的方法体时,你是不是脑海中出现了万只动物。请相信这不是一个人的力量,而是无数和你一样的程序员接手后经历了一样的愤怒,又不得不继续if else下去。这种烂代码是对程序员群体最大的羞辱。自己的代码永远有一个硬性要求,方法体绝不能超过100行,平均应该在10-20行之间。一个类可以重构为出更多的方法,解决不同方法的重复代码,甚至成为一种代码洁癖。
附图2是我收藏的重构第二版,可能是孤本,你猜猜为什么?
- 复制链接
- 举报