当前位置: 首页 > 科技观察

大牛架构师收集的10条编程原则

时间:2023-03-17 16:56:49 科技观察

一个拥有良好编程原则的程序员,可以极大地提高他的编程能力,使他能够开发出可维护性高、缺陷少的代码。内容KISS(保持简单愚蠢)DRY(不要重复自己)YAGNI–你不会需要它维护者的代码尽可能懒惰。编程只是道路,而不是方式。如果你赶时间,慢慢逛。如果你真的赶时间,绕道而行。了解你的道路,尼奥。如果没有测试,它就坏了。与程序交流时分清因果,与人交流时分清事实与效果。观点KISS(KeepItSimpleStupid)KISS原则是英文KeepItSimple,Stupid的首字母缩写,是一种归纳经验原则。KISS原则是指在设计中应强调简洁的原则。总结工程专业人士在设计过程中的经验,大多数系统的设计都应该保持简单、简单,没有不必要的复杂,这样的系统才会达到最佳的性能;因此,简单性应该是设计中优先考虑的关键目标,尽量避免不必要的复杂性。据报道,该首字母缩略词是由洛克希德公司总工程师凯利约翰逊(U-2、SR-71等的设计者)创造的。尽管长期以来一直被写成“Keepitsimple,stupid”,约翰逊将其翻译成“Keepitsimplestupid”(没有逗号),至今仍被许多作者使用。短语末尾的S并不以任何方式暗示工程师是愚蠢的,而是恰恰相反要求设计是可理解的。这个原则的最好例证是当约翰逊让一组工程师设计喷气发动机飞机工具时,他们可以设计这些工具,以便普通机械师只使用这些工具就可以修理它们。因此,“愚蠢”指的是将物品设计为在损坏和修复之间建立关联的难易程度。美国军方以及软件开发领域的许多人都使用了这个首字母缩略词。此外,类似的概念也可以作为KISS原理的由来。如“奥卡姆剃刀”,爱因斯坦的“一切越简单越好”,达芬奇的“简单是极致的复杂”,安德鲁·圣-埃克苏佩里的“完美不是不能加的时候,不能加的时候好像可以达到”进一步刮”。软件设计方法有两种,一种是尽可能简单,保证没有缺陷。另一种方法是尽可能复杂,没有任何错误。第一种方法比第二种更难。保持简单(避免复杂)始终是您应该做的第一件事。简单的代码不仅写起来简单,不易出错,而且易于维护。在简单的规则下,它还包括:Don'tMakeMeThink:如果一个程序需要读者花太多精力才能理解,那么它可能需要进一步简化。最少惊奇原则:程序代码应该尽可能少地让读者感到惊奇。即要遵循编码标准和通用习惯,按照公认的习惯进行组织和命名,尽可能避免非常规的编程动作。如何将Kiss原理应用到工作中?谦虚一点,不要认为自己是天才,这是你的第一个误解。只有谦虚了,才能真正达到超级天才的境界,就算达不到,谁在乎呢!你的代码太简单了,所以你不需要成为天才!将您的任务分解为4-12小时的子任务。把你的问题分解成更小的问题。每个问题都用一门或几门课来解决。保持你的方法小,每个方法的代码不要超过30-40行。每个方法应该只处理一个小问题,不要把太多的用例放进去。如果您的方法中有多个分支,请尝试将它们分解成更小的方法。这不仅更容易阅读和维护,而且可以更快地找到错误。慢慢的你会学会爱。也让你的班级变小,原理同上。先解决问题,再开始编码。不要一边编码一边解决问题。这样做没有错,但如果你有能力提前将事情分解成更小的块并开始编码,那可能会更好。但是请不要害怕一遍又一遍地重构您的代码。另外,线数不是衡量好坏的标准,而是基本的尺子。不要害怕杀死代码。重构和重做是两个非常重要的方面。如果您遵循上面的建议,重写的代码量将会最小化,否则代码很可能会被重写。其他任何场景,尽量简单,简单,这也是最难的一步,但是一旦有了,回过头来就会说,之前的东西就是一堆狗屎。DRY(Don'tRepeatYourself)DRY的意思是不要重复自己(Don'trepeatyourself,简称DRY),或者说一个规则,一次(Onerule,oneplace)是面向对象编程中的基本原则,程序员的行为准则。旨在减少软件开发中的信息重复。DRY的原则是“系统的每一部分都必须有一个单一的、明确的、权威的代表”,是指由代码和测试(由人类编写而不是机器生成)组成的系统,必须能够表达内容要表达,但不能有重复代码。当成功应用DRY原则时,系统中任何单个元素的修改都不需要更改与其逻辑无关的其他元素。此外,与它逻辑相关的其他元素的更改是可预测的、统一的,因此是同步的。我对DRY的理解:尽量减少重复,比如代码重复、文档重复、数据重复、表示重复、开发人员重复(同一个功能不能由开发人员自己实现优化)不要重复造轮子,可以用opensource解决方案的情况下无需再次执行。应尽可能使用自动化程序解决重复的问题。不要过度优化,过分追求DRY,破坏了程序的凝聚力。相关规则是:代码重用:http://en.wikipedia.org/wiki/Code_reuseYAGNI–Youain'tgonnaneeditYAGNI是YouAin'tGonnaNeedIt(你不会需要它)的缩写,是极限编程关键原则。YAGNI的意思很简单:只有当你真正需要它们时才去做,而不是在你认为或预见到你将来可能需要它们时才做!您可以将YAGNI视为即时制造的拥护者。在这种情况下,制造就是编写代码并交付功能。只有当有人真正需要该功能时,您才开始工作并创建它。否则,你会一直偷懒!为什么如此重要?未编写的每一行代码都是时间,因此可以节省资金。但更多!它是:更少的代码来维护更少的代码来测试更少的代码在事情发生变化时重构更多的时间用于更重要的功能更多的时间用于文档还有:节省编译/移植成本时间节省测试运行构建时间/运行时间节省资源知识不必须以某种方式保存它阻止了什么?今天,大多数软件开发都是根据客户的需求来完成的。无论您是在产品公司、提供开发服务的公司还是其他地方工作。总会有某个地方有人想要的功能。是你的客户提出某个需求的功能,还是产品经理回应客户反馈的功能。不管实际司机是谁,迟早都是现实需求的体现。您正确预见未来功能请求的机会非常低。因此,很有可能您正在实施的事情不是您的实际利益相关者想要的。过早做某事很可能会导致一切都被扔掉。这是一个没有人真正喜欢的场景!然后,有时会发生另一种情况:没有人真正需要该功能!CodeForTheMaintainer为维护者编写程序。例如,使代码不言自明。以后写代码的时候一定要记得维护。尽可能地懒惰。人类因为懒惰而进步。懒惰只会创造需求。需求本身不是进步。需求的满足形成进步。懒惰还包括:不要重新发明轮子过度优化是万恶之源编程只是道路,不是途径。编码只是一种实现,而不是解决方案。编码只是告诉计算机该做什么。编写高效、可靠的软件需要精通算法、最佳实践和其他与编程相关的知识。在编程之前,你需要知道你要解决什么问题。编程只是手段,不是目的。可以实现不代表需要实现。知道什么时候不需要或不需要编程。如果您赶时间,请慢慢漫步。如果你真的赶时间,绕道而行。如果你真的很忙,把它放在一边。这听起来很愚蠢,但永远不要让自己陷入妥协,从而导致以后出现问题。如果您正在编写程序的核心部分,请尽可能精确。如果您正在编写远离核心代码的方法,则可以尽可能加快速度。了解你的道路,尼奥。知道你的实现路径,你需要了解你每天使用的环境、工具和其他依赖,并调试到适合你的配置。如果你的编程环境真的很好,那么你在编程的时候基本不需要关心他。如果你需要完成一个任务,最好的方法是不要引入“新内容”,只有当你完全掌握了“新内容”时才考虑引入。如果没有测试,它就坏了。如果没有经过测试,代码是无法运行的。与程序交流时分清因果,与人交流时分清事实与观点。准则包括:最小化耦合关系:一个代码段(代码块、函数、类等)应该最小化它对其他代码的依赖。这个目标是通过使用尽可能少的共享变量来实现的。最大化内聚:具有相似功能的代码应该放在同一个代码组件中。开闭原则:程序中的实体项(类、模块、函数等)应该对扩展开放,对修改关闭。换句话说,不要编写其他人可以修改的类,而是编写人们可以扩展的类。单一职责原则:一个代码组件(例如一个类或函数)应该只执行一个单一的预设任务。隐藏实现细节:隐藏实现细节可以最大限度地减少修改程序组件时对使用该组件的其他程序模块的影响。LawofDemeter(得墨忒耳法则)——程序组件应该只和它的直系亲属有关系(比如继承的类、包含的对象、通过参数入口传入的对象等)原文及链接:Whatdoyouconsiderthe1stprinciple(s)编程?https://img.ydisp.cn/news/20221225/0dglhghaoey