KISS原则(Kiss Principle)是什么

KISS是 Keep It Simple,Stupid。
其核心思想就是“解耦,解耦,再解耦”,职责单一化,功能单一化为以后的维护和重构都会带来极大的便利。

KISS原则的好处

  • 以更快的速度解决更多的问题
  • 以很简洁的代码来解决很复杂的问题
  • 能写出高质量的代码
  • 能完成更大的系统并且它很容易维护
  • 你所编写的代码会更加灵活,易于扩展、修改或重构。并且能够适应需求的变化。

如何在工作中实践KISS原则

  • 先解决问题,再考虑编码。先将问题拆分的足够小,再动手编码完成这些功能
  • 尽量缩短每个方法,它只要负责解决一个问题就足够了。每个方法的代码最多不要超过30-40行。
  • 如果在方法中需要兼容很多条件,那么你应该将这些条件拆分为更小粒度的方法。
  • 经常重构你所编写的代码。不要害怕删除代码
  • 在其它所有情况下,尽量保持代码的简洁。

想要做出KISS的方案,就必须对面对的问题有透彻的了解,有足够的经验和能力,并经过深思熟虑,这才能做出简洁的抽象。

一些世界上最大的算法的代码量总是很少的。并且通过阅读那些代码,我们可以很容易的理解其含义。算法的创造者,将问题简化简化再简化,最后再去实现它。很多最伟大的人,(他们)并不是编码高手,但是却创造了伟大的代码。

转载自:https://github.com/YokiaJing/learner/issues/1

KISS原则(Kiss Principle)相关推荐

  1. kiss原则包括什么_求职干货想让HR瞬间对你产生好感?简历做好这三个原则

    国内HR:你的中文简历,很辣眼!您正在收看的是,由MHC CCA 小球纸给大家带来的一大全新栏目--CCA 求职专栏! 还在为难以通过简历和面试表现获得面试官青睐而苦恼吗? 还在为无人解答实习过程中遇 ...

  2. 设计原则之KISS原则和YAGNI原则

    设计原则之KISS原则和YAGNI原则 KISS原则 KISS(Keep It simple and Stupid)原则总的来说就是简单,你的代码要写的简单易懂.增加代码的可读性. 并不一定是代码量的 ...

  3. KISS principle (kiss原则)

    Keep It Simple Stupid (KISS) 原则声明 即使解决方案看起来很愚蠢,简单的解决方案也比复杂的解决方案好. 描述 该KISS原则是关于追求简单.现代编程语言,框架和API具有强 ...

  4. 【整理】KISS原则介绍

    KISS原则介绍 KISS 原则是用户体验的高层境界,简单地理解这句话,就是要把一个产品做得连白痴都会用,因而也被称为"懒人原则".换句话说来,"简单就是美". ...

  5. 如何理解“KISS 原则”?

    KISS 原则的英文描述有好几个版本,比如下面这几个. Keep It Simple and Stupid. Keep It Short and Simple. Keep It Simple and ...

  6. 进阶篇:4.1)DFA设计指南:简化产品设计(kiss原则)

    本章目的:理解kiss原则,明确如何简化产品的设计. 1.前言:kiss原则,优化产品的第一原则 如果要作者选出一个优化产品的最好方法,那一定是kiss原则莫属.从产品的整体设计到公差的分析,kiss ...

  7. Atitit保证架构超前性 前瞻性 目录 第一章 简单抽象原则 道和术的区别 1 第一节 原则 kiss 1 第二节 提升到层次哲学层次 1 第三节 命名也要通用抽象 隐藏细节 1 第二章 通用性原

    Atitit保证架构超前性 前瞻性 目录 第一章 简单抽象原则 道和术的区别 第一节 原则 kiss 第二节 提升到层次哲学层次 第三节 命名也要通用抽象 隐藏细节 第二章 通用性原则  扩展性 第一 ...

  8. 设计原则—KISS原则和YAGNI原则

    怎么理解kiss原则中的"简单"两字? 什么样的代码才算简单? 怎样的代码才算复杂? 如何才能写出简单代码? YAGNI原则和KISS原则说的是一回事吗? KISS原则的英文版本描 ...

  9. 软件开发的KISS原则

    KISS原则是软件开发中的最顶层的思想,全称为:Keep It Simple & Stupid.从英文的直译就是追求简单和易用.根据生活的经验:愚蠢的人,总会将简单的问题弄复杂:智慧的人,总是 ...

最新文章

  1. python asyncio教程_python中使用asyncio实现异步IO实例分析
  2. R语言构建xgboost模型并评估模型(测试集、训练集每一轮):误分类率指标(misclassification rate)、logloss
  3. 简单的一阶低通滤波器
  4. get请求乱码问题,用encodeURI和decodeURI
  5. Javascript学习------内部对象 String Date event(重要)
  6. HTML DOM那点儿事儿
  7. scala N99(18-28)
  8. 娄底二中高考2021成绩查询,2021年娄底高考状元名单公布,娄底高考状元学校资料及最高分...
  9. 链表题目--1 删除链表中所有等于val的值
  10. LeetCode 43. 字符串相乘(大数乘法)
  11. shell不允许输入空字符_shell脚本编程之控制脚本
  12. sleep()和wait()的区别-转
  13. struct interface_GCTT | 接受 interface 参数,返回 struct 在 go 中意味着什么
  14. 嵌入式开发中数值常量如何转化为内存地址?
  15. 【程序】STM32F407VE单片机驱动两片TJA1050 CAN收发器并进行双CAN通信
  16. 用计算机怎么算斜边,斜边计算公式
  17. 副本全攻略之哀号洞穴(超详细)
  18. python 使用while循环输出*组成的菱形_python实现while循环打印星星的四种形状
  19. c++第二周任务一*(1‐1)编写递归函数将十进制数转换成二进制数输出。
  20. 十、生产者消费者问题

热门文章

  1. 嵌入式Linux下的Qt环境搭建
  2. 槃星—第2天任务—JAVA实现游戏数据修改以及风控设计
  3. 微软沈向洋自述:我职业生涯里的七堂课
  4. 迅雷看看看电影,画面是绿色的,不能看
  5. 中华在线词典 v1.82 官方
  6. 优酷来疯直播安卓控件,支持flv、rtmp,支持添加视频特效等等
  7. [信息系统安全实验] 实验1.Web安全
  8. 双屏Android NDS模拟器,强悍的NDS模拟器《DraStic》移植到安卓
  9. 海康录像机识别不到硬盘_海康威视监控硬盘录像机NVR画面显示资源不足解决办法设置方法...
  10. 机械设计制造及其自动化-本科课程