主题:【原创】编程心得 -- 荆棘探兴
从数学角度说,软件需求如同一个方程式,而最终程序是一个解。从基本指令出发,对需求得出一个程序解,如同从基本定理出发,对一个方程推导求解一样。因此,理想化的编程应当如数学推导一样,每一行代码都经过严格证明,最终的程序才能说是正确的。但是这是一个非常难的问题,所以实际工作中只能靠程序员和用户不断测试修正来完善程序,这个过程类似于在数学中对方程无法求得解析解,而采用迭代法逐次逼近求数值解一样。
从工程角度说,软件的结构设计,编程规范决定软件是否易于维护,就是有了大致解法后如何施工的问题。结构设计良好的软件易于重用修改升级。现在程序员多数思考都着重于这一方面,如各种设计模式。
软件的数学性代表代码的正确性,而工程性代表代码的条理性。两者有一定相关度,但却没有必然联系。一个设计糟糕写法混乱的程序仍然可以是完全正确的,而一个设计优雅的程序却可以充斥大量错误。
所谓软件模块化,低耦合度,其实就是分而治之的思想,也就是所谓的分析。将一个大的复杂问题分解成若干相对独立的子问题然后逐次解决。这是对任何领域都有效的。
- 相关回复 上下关系8
🙂关键问题是一个需求上的变化需要多少程序上的变化来支撑 2 一个ID 字1823 2010-09-09 07:16:42
🙂你的代码行数的问题,本质是不同语言的问题。语言 1 当年万户侯 字967 2010-09-09 22:30:58
🙂是的,编程实质就是翻译 1 夜来香 字21 2010-08-06 00:55:39
🙂我觉得编程的本质是数学与工程的结合
🙂Oh, 4 柯镇恶 字161 2010-06-24 06:11:24
🙂这是俺的c语言启蒙书, 荆棘探兴 字76 2010-06-26 00:40:21
🙂C语言的确是很不错的语言 6 slient 字457 2010-06-19 07:02:18
🙂恭喜:你意外获得【通宝】一枚 鲜花已成功送出,可通过工 小楼飘香 字121 2010-08-04 19:19:34