KISS原则

大约60年前,美国军方的软件开发开始遵循一个原则,叫KISS原则。

他们希望武器系统中所用的每个指令都是极其简单和傻瓜式的。这个原则后来在编程领域中被广泛采用,如今好多著名的产品都是遵循这一原则来开发,并最终取得了巨大的成功。

KISS原则是什么?

KISS 是Keep It Stupid Simple 的缩写。

当今的软件工程师和开发者们有个共同的问题,那就是他们总是慢慢地使得问题复杂化。

正确的做法应该是当开发者遇到一个问题后,把问题拆分成一个个能够明白的小块,然后进入编码阶段。

你需要先想好问题的解决步骤一共分为几步,然后再进入编码。

而不是拿到需求后,就开始一边写代码一边去满足需求。这样做的好处就是你的代码会变的足够容易理解和足够清晰。

运用KISS原则,能获取到什么好处?

  1. 你可以更好地解决更多问题。
  2. 你将可以通过很少的几行代码去解决复杂的问题。
  3. 你将可以产出高质量的代码。
  4. 你将可以构建更大更易维护的系统。
  5. 当新的需求来了后,你的代码将会更加的灵活,易于扩展、易于修改和重构。
  6. 你将完成比你想象得更多的事情。
  7. 你将能够工作在一个大型开发团队和大型项目中,因为所有的代码都是stupid simple。

如何把KISS原则用到我的工作中?

这里有几个简单的步骤可供执行,但有一定挑战。就像说起来的那么简单,keep it simple,主要是需要耐心,更多的靠你自己。

  1. 要谦虚,不要认为自己是个天才。只有谦虚了,你才能真正达到超级天才的水平,即使不行,who cares!你的代码那么stupid simple,所以你不需要是个天才!
  2. 将你的任务分解为4-12小时的子任务。
  3. 把你的问题拆分成多个小问题。每个问题用一个或者很少的几个类来解决掉。
  4. 保持你的方法足够小,每个方法永远不要超过30-40行代码。每个方法都应该只处理一个小小的问题,不要搞太多uses case进去。如果你的方法中有多个分支,尝试把他们拆分成多个小的方法。这样不仅容易阅读和维护,找bug也更快。慢慢的你将学会爱。
  5. 让你的类也小点,原则和上面的方法是一样的。
  6. 先解决问题,然后开始编码。不要一边编码,一边解决问题。这样做也没什么错,但你有能力提前把事情切分成多个小的块,然后开始编码可能是比较好的。但也请你不要害怕一遍遍重构你的代码。另外行数还不是为了衡量质量的标准,只是有个基本的尺子而已。
  7. 不要害怕干掉代码。重构和重做是两个非常重要的方面。如果你遵循上面的建议,重写代码的数量将会最小化,如果你不遵循,那么代码很可能会被重写。
  8. 其他的任何场景,都请你尝试尽可能的简单,simple,这也是最难的一步,但一旦你拥有了它,你再回头看,就会说,之前的事情就是一坨屎。

许多伟大的问题解决者(problem solver)都曾不是伟大的程序员,但他们却产出了伟大的代码!

编程是为了解决问题,我们不只是程序员,我们不只生产代码,让我们一起成长为伟大的问题解决者。

原创文章,不限转载。欢迎分享学习,大家一起进步。

每个程序员都应该了解:KISS:60年前美国军方的编程原则。相关推荐

  1. 程序员能力提升:你应该知道的那些编程原则!!

    本文翻译自Programming Principles(http://java-design-patterns.com/principles/). 每个程序员都可以从理解编程原理和模式中受益.这篇概述 ...

  2. 100%的程序员都想挑战的算法趣题!| 码书

    计算机的世界每天都在发生着深刻的变化.新操作系统的发布.CPU性能的提升.智能手机和平板电脑的流行.存储介质的变化.云的普及--这样的变化数不胜数. 在这样日新月异的时代中,"算法" ...

  3. 我敢打赌,这是98%的程序员都想挑战的算法趣题!

    计算机的世界每天都在发生着深刻的变化.新操作系统的发布.CPU性能的提升.智能手机和平板电脑的流行.存储介质的变化.云的普及--这样的变化数不胜数. 在这样日新月异的时代中,"算法" ...

  4. 每个程序员都应该经历一次软考

    今天讨论的问题可能会引起很多争议,但我还是坚持做有争议的敢说真话的人:软考在很多各大高校里还是比较流行的,只能说是流行而已,60%的人只是去凑热闹为国家软考办去做贡献的,为什么要说"每个程序 ...

  5. 工作10以上老程序员都去哪了?作为新时代的程序员我们该何去何从

    在纽约,PyGotham每年召开之际,都会有超过600名程序员聚集在一起讨论工作. 为了让会议更加多元化,组织者尽量邀请一些女性程序员以及各种肤色的程序员. 那么,老程序员都去哪了?他们去了大学教书, ...

  6. 毕业之后,这些年薪 50w+ 的 90 后程序员都经历了什么?纯水贴

    毕业之后,这些年薪 50w+ 的 90 后程序员都经历了什么? 即使是处于薪资链顶端的程序员,年薪(不含期权.股票等)超过 50 万,对他们而言也并不是一件容易事.就招聘平台 100offer 而言, ...

  7. 100% 的程序员都想挑战的算法趣题!

    作者 | 图小敏 计算机的世界每天都在发生着深刻的变化.新操作系统的发布.CPU性能的提升.智能手机和平板电脑的流行.存储介质的变化.云的普及--这样的变化数不胜数. 在这样日新月异的时代中,&quo ...

  8. 会泡妞的程序员都是怎么撩妹子的?

    来自:这个好玩吗 链接:https://www.cnblogs.com/lzjtdxfxl/p/5493039.html 传说,每一个程序员上辈子都是折翼的天使 身体好.智商高.逻辑思维能力强 挣得多 ...

  9. 每个程序员都应该了解的 CPU 高速缓存

    每个程序员都应该了解的 CPU 高速缓存 英文原文:Memory part 2: CPU caches 来源:oschina [编者按:这是Ulrich Drepper写"程序员都该知道存储 ...

最新文章

  1. iOS 关于UIView覆盖StatusBar的小知识点
  2. Python 3 文件和字符编码
  3. Apache、Nginx、Tomcat、PHP的区别
  4. VS2019 Android .so开发
  5. spring boot integrated mybatis three ways!--转
  6. optee中的panic函数实现
  7. iOS9 HTTPS
  8. TCP IP基础知识的复习
  9. 使用双重循环,输出数字金字塔
  10. OSPF 邻接关系建立
  11. Attentive Sequence to Sequence Networks
  12. node.js 将文件目录读取 通过匿名函数自执行 将异步改为同步
  13. FlinkAPI_Environment_输入源_算子转化流程
  14. oracle sqlarea表结构,oracle v$sqlarea 分析SQL语句使用资源情况
  15. php不支持redis
  16. Struts2学习(二):第一个Action
  17. windows 10卸载(注销)WSL,注销(卸载)当前安装的Linux的Windows子系统
  18. android 修改gps坐标,[原创] 改机 - 从源码着手任意修改GPS地理位置
  19. sprint tool suite启动tomcat
  20. 北塔曾经很张狂 如今沉默为哪桩

热门文章

  1. aoeplacebo:地理安慰剂检验
  2. node中的global对象
  3. LINUX-模块化编程
  4. 下载安装 Lubuntu 14.04.1 系统
  5. 计算机科学省级期刊,计算机时代杂志
  6. java 日志颜色_【Java】+日志打印+日志颜色设置
  7. cocos2dx学习之路(一)———windows10下cocos2dx环境配置
  8. 3dmax水龙头_收回水龙头
  9. 2、接口固定的修饰符可省略
  10. 3D桌面(bumptop)-感觉挺爽!