编程规则

编程规则--转载

个人一直很喜欢这篇文章,一直保存着…… 总是在脑袋模糊、混沌的时候都会翻出来读一读,其实下面的十条已经不仅仅是编程的规则了! 下面我带您一起解读! 规则一这世界上唯一的真理就是不要盲目相信真理 这本就是一条哲理,无需赘述。 从某种意义看,原则、规矩这类东西就是用来打破的。所谓原则,就是对历史上某种经验的总结。如果我们踏入的河流和前人非常接近,我们可以参考前人的经验。我们是主动地拿来,而不是被动的遵守。 规则二未蕴而变,自欺也;知律而变,智者之道也 这条规则亦可用在过程改进上,要想改变现在的流程,你首先必须对流程很了解,正所谓“知律而变”也 这句话谈的是学词,必须先了解格律,然后才谈得上变化,否则就是自欺欺人了。在编程上,也是一样。在有资格打破一条原则前,首先要了解这条原则。先了解事物的规律,然后才是变化和灵活的应用。不要打倒自己不了解的东西。 规则三寻找结构和成本的平衡点。当结构不能容纳变化时,重构代码到新的平衡点 这条规则亦诠释着当今的金融海啸,当华尔街的资本结构和利益的平衡点发生改变的时候,正是因为华尔街的资本结构容不下华尔街那些贪婪的家伙对利益的追逐,因此经济危机产生了!几次经济危机都已经告诉世人,资本主义的金融结构需要打破当前的格局建议一种新的平衡,重构金融市场找到新的平衡点。 开闭原则要求:一个软件实体应该对扩展开放,对修改关闭。即软件的结构要达到:允许在不修改软件的前提下扩展软件功能。但好结构是要花成本的。程序员总是在折衷,寻找结构和成本的平衡点。我们会放一些余量,让结构能承受一定的变化。 规则四要针对接口编程,不要针对应用编程 这条规则很简单,我们不可能是为了编程而编程,也不可能是为了做事而做事。所有的事物都应该有对接。 前面谈过了。我们总希望通过工作得到一些收获,积累一些经验。只有将代码分解成尽可能独立的模块,然后针对接口编程,才能保护我们的成果,让我们有所积累。 规则五最少知识原则:模块对外界的了解应当尽可能少 《道德经》是经典中的经典,博大精深 前面也谈过了。所谓“圣人之治”,经常是“虚其心,实其腹;弱其志,强其骨,常使民无知无欲”。让被管理的对象尽可能得弱,对象间的关系尽可能得简单,可以降低管理的成本。在面向对象编程中“组合优于继承”,就是因为继承将基类的实现细节暴露给子类,两者的耦合性太强了。另外,继承的实现是静态的,而组合可以更灵活地实现。 规则六 尊重习惯 21天能养成一个习惯。很多成功的人之所以能胜出,80%的原因都是因为他们比你习惯要好! 在任何领域编程,应该尽量了解这个领域的习惯,尽量符合这些习惯。这样,别人可以更容易地理解和使用我们的程序,更不容易出错。 规则七 程序中不要出现magic number或其它神奇的东西 magic number就是诸如17、42这类数字。请用有描述性的常数名替代它们。常数名、变量名、函数名就是最好的注释。结构清晰的代码甚至可以不需要其它注释。 “需要很多注释的代码”是代码坏味道的一种,常常意味着需要重构代码,使它更容易被理解。 规则八 “两顶帽子”和“小步前进” 你愿意“大步慢跑”还是“小步快跑”?这是老板问我的问题。很有意思,包含哲理! “两顶帽子”前面讲过了。面对复杂的问题,我们不仅要从结构上分解它,还要将实现步骤尽可能地分小,在一时一地以压倒性优势解决问题的一小部分。n-1个总比n个好对付,我们越来越强大,敌人越来越弱小,我们要做的只是将优势保持到最后。“保持优势”的关键是正确的理解、合理的划分。 规则九适当地引入中间层,可以解决所有问题 很简单又很试用的原则,很多问题需要迂回解决,不能单刀直上,那样解决不了问题反而让问题更复杂。 这条规则是实质是“抽象”。在遇到问题时,多引入一层接口,将问题封装起来。抽象本身并没有消除系统的复杂性,但它减少了在某个时刻需要处理的细节的数量。或者说,抽象将复杂性控制在接口和模型的后面,可以推迟我们处理这些复杂性的时刻。这条规则的另一个说法是“多做白日梦”。假设我们已经得到了需要的东西,然后会怎么?通过“白日梦”我们可以在更高的层次考察问题,可能找到解决问题的线索,也有可能发现这个问题毫无价值。即使毫无收获,我们也的损失也很小。 规则十不要依赖调试,尽可能地依赖分析和推理 要深究事务的本质,这需要用脑子去分析和推理。不要想着调试通过就OK,也不要侥幸的认为这个风险没有转化成问题就可以将该风险“束之高阁” 我经常会在头脑中预演调试的过程,计算我要做什么,我能得到什么。“预演”的结果经常是我没有必要这样调试,或者应该试一试另一个方法。根据测不准原理,任何实际的测量、调试都会改变、影响被研究的对象。用调试辅助、验证我们的推测,但不要依赖调试。
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在Matlab编程中,有一些常用的编程规则可以帮助提高代码的可读性和可维护性。以下是一些常见的Matlab编程规则: 1. 变量命名:选择有意义的变量名,避免使用单个字母或数字作为变量名。使用驼峰命名法或下划线命名法来增强变量名的可读性。 2. 注释:在代码中添加注释,解释代码的功能、目的和关键步骤。注释可以帮助其他人理解代码,并且在日后需要进行修改或调试时也会很有帮助。 3. 缩进:使用适当的缩进来组织代码块。缩进可以使代码更易读,并且有助于标识代码嵌套结构。 4. 函数:将相关的代码封装在函数中,以实现代码的模块化和重用。函数应该具有明确的输入和输出,并且功能应该清晰明了。 5. 错误处理:在代码中处理可能出现的错误和异常情况。使用try-catch语句来捕获和处理异常,以避免程序崩溃或产生不可预测的结果。 6. 向量化操作:尽量使用矩阵和向量运算,而不是使用循环来处理数据。向量化操作可以提高代码的执行效率。 7. 预分配内存:在循环中使用预分配内存的方式来存储结果。这可以避免在每次迭代中重新分配内存,提高代码的执行速度。 8. 代码复用:尽量重用已有的代码和函数,避免重复编写相似的功能。这可以提高代码的可维护性和可扩展性。 9. 编写清晰的文档:为代码编写清晰的文档,包括函数的输入和输出、功能说明以及使用示例等。文档可以帮助其他人理解和使用你的代码。 这些是一些常见的Matlab编程规则,但具体的规则可能因项目和团队的不同而有所变化。在编写代码时,应当考虑与团队成员的协作和代码的可维护性,以提高代码的质量和效率。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值