写代码的分而治之

写代码的核心原则 :抽象难变,具体易变;故要针对接口编程,实现的粒度要细化;
程序员脱离不了写代码,如果提高了写代码的质量,效率,则后续就可大大减少写代码的时间,代码的复用价值就更大,写代码的乐趣也更高。
分而治之不仅用于战略、设计层面,也可用于战术、实现层面;甚至任何领域,因为他是一种方法论。

这里仅从实现代码层面,讨论分而治之。
代码 从微观层面 那就是机器码->微码->汇编指令
代码 从宏观层面 就是编程语言对应的语句->函数
其中函数就是语句的有序集合,可以理解函数就是大语句,大指令;
在我们的编程中其实都市在编写函数,不管是面向过程编程还是面向对象编程,不管定义多好的数据模型,最终都要编写函数
函数才是最终让CPU工作的本质。在面向过程编程中 软件等于数据结构+方法(函数) 在面向对象编程 强调软件就是对象组成。
软件最终是实现用户的需求,实现一系列功能,用户通过软件的功能实现用户的商业价值。所以编写软件的核心是功能,是行为,是函数。
所以编写代码的切入点应该是函数。面向过程先写函数名,规划要实现哪些功能,再定义函数。
面向对象 设计好对象后,同样先写该对象要实现哪些功能 再定义成员函数。
记住 :函数是写代码的切入点,起点,而不是数据结构;
函数可大可小,可复杂可简单,大到一个系统、一个组件,有的复杂的系统对外就提供几个API。简单到只是简单的语句。
不管咋样 函数 一定要符合以下原则:
1.单一职责    
     一个函数只做一件事,注意与一个对象只做一件事的区别
     OO设计原则里的单一职责强调一个对象只做一件高度相关的事,且是围绕对象所属的数据操作
     细化到对象的成员函数 需要继续细粒度花,每个函数做一件事,哪怕是get/set
     记住 具体的东西易变化,所以具体的事要粒度小,以后才改动小。
2.高内聚低耦合
    函数的依赖要减少,与其他对象 模块 少直接联系;独立性强
3.接口抽象,实现具体 如果函数是提供对外调用的,那抽象的粒度就要大点,如果仅仅是内部用的粒度要小点
   抽象变化小,具体变化大
4.简化接口  明确输入输出 返回值

你可能感兴趣的:(软件思想)