本文为我个人的实践理解, 可能与教科书不同, 也可能与其它人的思想不同. 我尽可能以实践准则来描述.
一. 首先, 什么是编程思想?
编程思想是一种指导思想, 这个指导思想, 将会诱发你如何写代码的行为.
如果理解这话的意思呢? 打个比方, 中华文明千百年在民众心中形成了一个 "统一天下" 的思想, 这种思想会诱发各个混乱时期的诸侯或者军阀, 以统一中国为目标, 而不会像欧洲一样以分裂中国各自独立, 各自称帝为目标.
那么编程思想有哪种种类呢?
1)面向过程编程. 这是我国绝大部分程序员的思想. 这种思想诱发了他们写代码的时候这样的现象: 一个方法中写了糅杂了很多的业务逻辑, 或者从 ui 层 (点) 业务逻辑层 (点) 数据库访问层这种路径的写法.
2)函数编程. 典型的如很多人写的 JavaScript 中的 function 函数. 各种业务就以各种很多的 function 进行编写.
3)面向对象编程. 这是比较高级和抽象的思想, 它具有三大特性五大原则. 即封装, 继承, 多态, 单一, 开闭, 里氏替换 , 依赖倒置, 接口隔离.
话外: 有些人会告诉你数据结构, 算法, 我要跟你说的是, 那不是编程思想, 是编程能力, 考验你的逻辑运算能力, 你越出色, 那么你应对的复杂科技领域就可以更加深入, 最终你可以达到科学家的范畴.
二, 编程思想的优劣和选择.
面向过程和函数编程, 是每一个刚毕业的毕业生就会的原始思想. 即, 只要学习了编程, 那么他一开始写的代码, 就是这种思想, 不需要教, 就会的.
而面向对象编程, 则是进阶抽象的. 本质上来说, 一个程序员的进化, 实际上是面向对象编程思想的培养, 形成, 发展, 成熟的过程.
所以, 你现在应该知道最优的思想是什么, 没错: 面向对象.
三, 如何建立编程思想
首先, 你要时刻谨记面向对象的三大特性五大原则, 那几个字, 你是很熟悉的, 但你绝对不认识他里面所蕴含的恐怖威力. 即: 你认得到字是一回事, 理解和运用它是另一回事.
然后, 你要在你的实操过程中, 时刻思考你是否用上了它的特性及原则.
最后, 不断的尝试去修正和更改你的代码, 慢慢的, 你的面向对象编程思想将会开始建立.
四, 如何练习, 训练和提高编程思想
1. 通过学习设计模式.
刚开始的时候, 你自己不太可能有对象思想, 因为你还未形成对象思维, 此时, 你需要借助前人的模式总结, 不断的练习, 通过为模式而写模式的训练去提高它.
2. 通过不断的重构已编写好的业务逻辑代码, 这需要大量的实践, 使他能够让你自己觉得符合三大特性五大原则.
3. 评判一个代码你写得好不好, 符不符合对象编程思想, 有一个非常简单和粗暴的标准:
你的方法体, 去除注释, 如果你能够让你的每一个方法的逻辑, 他的方法体代码行数不高于 30 行, 那么你估计就是写的有成效的. 如果你能够发现你的很多方法体, 代码行数仅仅只有 10 行以内个位数的代码时, 你的面向对象编程思想已经成熟.
4. 将代码思维持之以恒.
通过不断的实践练习, 改变你原来天生的过程式编程思想, 这需要一个漫长的过程, 从我的实践经验来看, 至少要 3 年以上的实践训练, 所以从此意义上来说, 5 年以下的中国程序员 99% 都不会面向对象. 当你不再为模式而写模式时, 你随手写的代码是如此的简洁美妙时, 你已经比中国 95% 的程序员牛 B 了.
怎么你不认可我说的 95%? 好吧, 你放眼看你公司, 10 个程序员里, 有几个是面向对象编程? 如果 1 个都没有, 恭喜你, 你打败了你公司 100% 的程序员.
来源: http://www.jianshu.com/p/132fa5ea22aa