五千年(敝帚自珍)

主题:【原创】编程心得 -- 荆棘探兴

共:💬198 🌺258
全看分页树展 · 主题 跟帖
家园 我觉得编程的本质是数学与工程的结合

从数学角度说,软件需求如同一个方程式,而最终程序是一个解。从基本指令出发,对需求得出一个程序解,如同从基本定理出发,对一个方程推导求解一样。因此,理想化的编程应当如数学推导一样,每一行代码都经过严格证明,最终的程序才能说是正确的。但是这是一个非常难的问题,所以实际工作中只能靠程序员和用户不断测试修正来完善程序,这个过程类似于在数学中对方程无法求得解析解,而采用迭代法逐次逼近求数值解一样。

从工程角度说,软件的结构设计,编程规范决定软件是否易于维护,就是有了大致解法后如何施工的问题。结构设计良好的软件易于重用修改升级。现在程序员多数思考都着重于这一方面,如各种设计模式。

软件的数学性代表代码的正确性,而工程性代表代码的条理性。两者有一定相关度,但却没有必然联系。一个设计糟糕写法混乱的程序仍然可以是完全正确的,而一个设计优雅的程序却可以充斥大量错误。

所谓软件模块化,低耦合度,其实就是分而治之的思想,也就是所谓的分析。将一个大的复杂问题分解成若干相对独立的子问题然后逐次解决。这是对任何领域都有效的。

全看分页树展 · 主题 跟帖


有趣有益,互惠互利;开阔视野,博采众长。
虚拟的网络,真实的人。天南地北客,相逢皆朋友

Copyright © cchere 西西河