大家好,我是顶级建筑师。
拥有更好的编程原理可以极大地提高程序员的编程能力,让他开发出可维护性高、缺陷少的代码。 以下内容整理自一个问题:你编程时考虑的首要原则是什么?
目录
吻(保留它)
KISS原则是英文Keep It的缩写。 这是一个总结的经验原则。 KISS原则是指设计时应注重简单性的原则。 总结工程专业人士在设计过程中的经验,大多数系统的设计都应该保持简洁、简洁,不掺入不必要的复杂性。 这样的系统将达到最佳的运行效果; 因此简单性应该是设计的关键。 关键目标,尽量避免不必要的复杂性。
据报道,该缩写词是由抖音 () 总工程师凯利·约翰逊(U-2、SR-71 等的设计者)创造的。 尽管长期以来一直写为“Keep it”,但约翰逊将其改为“Keep it”(不带逗号),并且这种写法至今仍被许多作者使用。 这句话最后的S并不意味着工程师很愚蠢,而是要求设计易于理解。
这一原则的最好例子是,约翰逊为一组设计喷气发动机飞机的工程师提供了一些工具,普通机械师仅使用这些工具就可以修理这些工具。 因此,“愚蠢”是指物体被设计为在修复过程中被损坏的容易程度。 这个缩写词已被美国军方以及软件开发领域的许多人使用。
此外,类似的概念也可以作为KISS原理的起源。 比如“奥卡姆剃刀”、爱因斯坦的“让一切尽可能简单”、达芬奇的“简单就是终极的复杂”、安德烈·圣埃克苏佩里的“完美不是当它无法再添加的时候,而是似乎已经实现了”当它无法进一步刮擦时”。
软件设计有两种方法。 一是尽可能简单,确保没有缺陷。 另一种方法是使其尽可能复杂且没有任何缺陷。 第一种方法比第二种方法更难。
保持简单(避免复杂)始终是您应该做的第一件事。 简单的代码不仅易于编写、不易出现错误,而且易于维护。 根据简单的规则,它还包括:
如何将接吻原则运用到工作中?
参考链接:
做可行的事情:
干燥(不要)
DRY 意味着不要
(Don't ,简称DRY),或者说一则一处(One Rule, One Place)是面向对象编程中的基本原则,也是程序员的行为准则。 旨在减少软件开发中的信息重复。 DRY的原则是“系统的每个部分都必须有一个单一的、清晰的、权威的代表”,这意味着由代码和测试(由人类编写而不是机器生成)组成的系统必须能够表达内容应该表达,但不能包含任何重复的代码。 当成功应用 DRY 原则时,系统中任何单个元素的修改都不需要更改与其逻辑上无关的其他元素。 此外,与其逻辑相关的其他元素的变化是可预测的、均匀的,因此是同步的。
我对DRY的理解:
相关规则是:
代码复用:
YAGNI – 你不会需要它
YAGNI 是 You Ain't Gonna Need It(你不会需要它)的缩写,是极限编程的一个关键原则。 YAGNI 的意思很简单:仅在您真正需要它们时才执行它们,而不是在您认为或预见将来可能需要它们时提前执行!
您可以将 YAGNI 视为即时制造的冠军。 在这种情况下,制造就是编写代码并提供功能。 只有当有人确实需要某个功能存在时,您才能开始研究并创建它。 否则,你就会变得懒惰!
为什么它如此重要? 每一行未编写的代码都是时间,因此节省了金钱。 但是,甚至更多! 这是:
还包括:
它能防止什么? 如今,大多数软件开发都是基于客户需求。 无论您是在产品公司、提供开发服务的公司还是其他地方工作。 总会有某个地方有人想要拥有的功能。 这是您的客户要求的具有特定要求的功能,还是产品经理针对客户反馈而响应的功能。 不管是谁在实际驾驶它,迟早,这都是真正需要的体现。 您正确预见未来功能请求的机会非常低。 因此,您很有可能会实施一些与实际利益相关者想要的不同的东西。 过早地做某事很可能会导致一切都被扔掉。 这真是一个没人喜欢的场景! 然后,有时会发生另一件事:没有人真正需要该功能!
代码
为维护人员编写程序。 例如,使代码不言自明。 当您编写代码时,请务必记住将来要对其进行维护。
参考链接:
代码:
像懒惰一样。
人类因为“懒惰”而进步。 懒惰只会创造需求。 需求本身并不是进步。 满足需求创造进步。
懒惰还包括:
参考链接:
做可行的事情:
只是路,不是路。
编码只是一种方法,而不是解决方案。 编码只是告诉计算机要做什么。 编写高效可靠的软件需要精通算法、最佳实践和其他与编程相关的内容。
在编程之前,你需要了解你想要解决什么问题。 编程只是手段,而不是目的。 能够做到并不意味着需要这样做。 知道什么时候不需要或不需要编程。 扩展:
如果你赶时间,就一起吧。
如果您赶时间,请制作一个 .
如果你很忙,就放慢脚步。 如果你真的很忙,那就休息一下吧。 这听起来很愚蠢,但永远不要让自己陷入会在以后引起问题的妥协。 如果您正在编写程序的核心部分,请尽可能精确。 如果您正在编写远离核心代码的方法,请尝试尽可能加快速度。
了解你的道路,尼奥。
要知道你的实现路径,你需要了解你每天使用的环境、工具和其他依赖项,并调试到适合你的配置。 如果你的编程环境真的很好,那么你在编程时基本上不需要关心它。 如果需要完成一项任务,最好的办法就是不要引入“新内容”。 只有在完全掌握“新内容”后才考虑引入它。
如果不是,那就是。
未经测试的代码将无法工作。
与程序沟通时区分因果关系,与人沟通时区分事实与观点
相关指南包括:
原始链接: 你的第一个(s)是什么?
参考链接:
欢迎大家互相讨论、碰撞、发表意见。 如果有什么问题也可以和我交流。
最后,我们整理了一份BAT各大公司的真实面试题清单,供读者参考。 如果您需要,可以扫描二维码并回复“面试问题”即可获取。
公众号后台回复结构或结构整齐有惊喜大礼包!
顶尖建筑师交流群
《顶尖建筑师》专门为读者和建筑师建立了交流群。 可以添加小编微信进群。 欢迎有想法、愿意分享的朋友一起交流学习。
扫一扫添加好友邀请您加入建筑师群。 添加我时请注明【姓名+公司+职位】