文章目录

  • 1.Kiss原则
  • 2.Kiss原则意义
  • 3.Kiss原则落地

1.Kiss原则

Keep It Simple and Stupid
Keep It Short and Simple
Keep It Simple and Straightforward.

2.Kiss原则意义

  1. KISS 原则算是一个万金油类型的设计原则,可以应用在很多场景中。它不仅经常用来指导软件开发,还经常用来指导更加广泛的系统设计、产品设计等,比如,冰箱、建筑、iPhone 手机的设计等等
  2. 代码的可读性和可维护性是衡量代码质量非常重要的两个标准。而 KISS 原则就是保持代码可读和可维护的重要手段。代码足够简单,也就意味着很容易读懂,bug 比较难隐藏。即便出现 bug,修复起来也比较简单
  3. KISS 原则是保持代码可读和可维护的重要手段。KISS 原则中的“简单”并不是以代码行数来考量的。代码行数越少并不代表代码越简单,我们还要考虑逻辑复杂度、实现难度、代码的可读性等。

3.Kiss原则落地

  1. 不要使用同事可能不懂的技术来实现代码。比如前面例子中的正则表达式,还有一些编程语言中过于高级的语法等。
  2. 不要重复造轮子,要善于使用已经有的工具类库。经验证明,自己去实现这些类库,出 bug 的概率会更高,维护的成本也比较高。
  3. 不要过度优化。不要过度使用一些奇技淫巧(比如,位运算代替算术运算、复杂的条件语句代替 if-else、使用一些过于底层的函数等)来优化代码,牺牲代码的可读性

设计原则_KISS原则相关推荐

  1. 大型企业门户网站设计开发一般性原则和建议

    [适用范围] 本文所述的原则.建议适用于大型企业信息门户网站的设计和开发,注意不是小型企业网站.一般企业电子商务网站.企业级Web应用系统. [一般性原则] 一.网站设计原则 第一原则:内容丰富.明确 ...

  2. 61条面向对象设计的经验原则

    61条面向对象设计的经验原则 摘抄自<OOD 启思录>--Arthur J.Riel 著 鲍志云 译 "你不必严格遵守这些原则,违背它们也不会被处以宗教刑罚.但你应当把这些原则看 ...

  3. 深入理解面向对象设计的七大原则

    一.面向对象设计的七大原则是什么? 1.开放封闭原则 2.里氏转换原则 3.依赖倒转原则 4.组合/聚合原则 5.接口隔离原则 6."迪米特"法则 7.单一职责原则 二.七大原则是 ...

  4. 代码设计的基础原则_设计原则:良好设计的基础

    代码设计的基础原则 As designers, it's our goal to pass information in the most pleasing way possible. Startin ...

  5. 面象对象设计6大原则之六:迪米特原则

    转载自 面象对象设计6大原则之六:迪米特原则 迪米特原则(LOD),The Law Of Demeter,也称为最少知识原则 定义 一个对象应该对其他对象有最少的了解. 也就是说一个类耦合和调用一个类 ...

  6. 面象对象设计6大原则之五:依赖倒置原则

    转载自 面象对象设计6大原则之五:依赖倒置原则 依赖倒置原则(DIP),The Dependency Inversion Principle 定义 1.高层模块不应该依赖低层模块,两都应该依赖于抽象. ...

  7. 面象对象设计6大原则之四:接口隔离原则

    转载自 面象对象设计6大原则之四:接口隔离原则 接口隔离原则(ISP),The Interface Segregation Principle 定义 客户端不需要强迫依赖那些它们不需要的接口. 类与接 ...

  8. 面象对象设计6大原则之三:里氏替换原则

    转载自 面象对象设计6大原则之三:里氏替换原则 里氏替换原则(LSP),The Liskov Substitution Principle 定义 所有引用基类的地方必须能透明地引用其子类的对象,即子类 ...

  9. 面象对象设计6大原则之二:开放封闭原则

    转载自 面象对象设计6大原则之二:开放封闭原则 开放封闭原则(OCP),The Open Closed Principle 定义 一个软件的实体,包括类.方法.模块.应该对扩展开放,对修改关闭. 也就 ...

最新文章

  1. python运行软件-提高Python程序的运行速度
  2. zabbix监控系统客户端安装
  3. 下载并配置完dex-net,在CLI中执行相应操作命令报错解决
  4. [云炬创业基础笔记]第五章创业机会评估测试9
  5. SAP Spartacus payment detail page的CMS模型
  6. AIX的完整形式是什么?
  7. java容器遍历_高效遍历Java容器详解
  8. Oracle发送邮件存储过程
  9. UVa11542 - Square(gauss)
  10. Spring Boot 项目优化和Jvm调优 (楼主亲测,真实有效)
  11. [noip2013]货车运输
  12. java基础之静态代理和动态代理
  13. 计算机科学教育英文论文题目,学生方面计算机相关的毕业论文,关于计算机专业英语课程教学改革和实践相关在职研究生毕业论文...
  14. mysql查询多选项商品查询_MYSQL中的多类型查询及高级查询操作
  15. TabLayout+ViewPager+Fragment实现切页展示
  16. arch安装veil
  17. UML的九种图+包图
  18. 【图像修复】基于matlab GUI FMM+Criminisi算法彩色图像修复【含Matlab源码 1507期】
  19. 软件安全分析与应用概述
  20. 用UltralSO安装CentOS 和 Ubuntu

热门文章

  1. t检验.医学统计实例详解
  2. 2023~2023年springboot计算机毕业设计选题
  3. 海龟交易法则-基于TBQ的交易系统的回测心得
  4. [LPC]基于LPC54114的延时函数设计及应用
  5. pyOCD - 用于调试烧写 Cortex-M 芯片环境成功搭建
  6. html查看器 小米8,小米文档查看器app
  7. Java虚拟机工作原理详解 ( 二 )
  8. node.js和JavaScript的关系
  9. 教你如何在window服务器上快速部署SpringBoot web项目
  10. iwebshop index.php,安全登录iwebshop管理员后台修改管理员后台登录路径