每个程序员都应该了解:KISS:60年前美国军方的编程原则。
KISS原则
大约60年前,美国军方的软件开发开始遵循一个原则,叫KISS原则。
他们希望武器系统中所用的每个指令都是极其简单和傻瓜式的。这个原则后来在编程领域中被广泛采用,如今好多著名的产品都是遵循这一原则来开发,并最终取得了巨大的成功。
KISS原则是什么?
KISS 是Keep It Stupid Simple 的缩写。
当今的软件工程师和开发者们有个共同的问题,那就是他们总是慢慢地使得问题复杂化。
正确的做法应该是当开发者遇到一个问题后,把问题拆分成一个个能够明白的小块,然后进入编码阶段。
你需要先想好问题的解决步骤一共分为几步,然后再进入编码。
而不是拿到需求后,就开始一边写代码一边去满足需求。这样做的好处就是你的代码会变的足够容易理解和足够清晰。
运用KISS原则,能获取到什么好处?
- 你可以更好地解决更多问题。
- 你将可以通过很少的几行代码去解决复杂的问题。
- 你将可以产出高质量的代码。
- 你将可以构建更大更易维护的系统。
- 当新的需求来了后,你的代码将会更加的灵活,易于扩展、易于修改和重构。
- 你将完成比你想象得更多的事情。
- 你将能够工作在一个大型开发团队和大型项目中,因为所有的代码都是stupid simple。
如何把KISS原则用到我的工作中?
这里有几个简单的步骤可供执行,但有一定挑战。就像说起来的那么简单,keep it simple,主要是需要耐心,更多的靠你自己。
- 要谦虚,不要认为自己是个天才。只有谦虚了,你才能真正达到超级天才的水平,即使不行,who cares!你的代码那么stupid simple,所以你不需要是个天才!
- 将你的任务分解为4-12小时的子任务。
- 把你的问题拆分成多个小问题。每个问题用一个或者很少的几个类来解决掉。
- 保持你的方法足够小,每个方法永远不要超过30-40行代码。每个方法都应该只处理一个小小的问题,不要搞太多uses case进去。如果你的方法中有多个分支,尝试把他们拆分成多个小的方法。这样不仅容易阅读和维护,找bug也更快。慢慢的你将学会爱。
- 让你的类也小点,原则和上面的方法是一样的。
- 先解决问题,然后开始编码。不要一边编码,一边解决问题。这样做也没什么错,但你有能力提前把事情切分成多个小的块,然后开始编码可能是比较好的。但也请你不要害怕一遍遍重构你的代码。另外行数还不是为了衡量质量的标准,只是有个基本的尺子而已。
- 不要害怕干掉代码。重构和重做是两个非常重要的方面。如果你遵循上面的建议,重写代码的数量将会最小化,如果你不遵循,那么代码很可能会被重写。
- 其他的任何场景,都请你尝试尽可能的简单,simple,这也是最难的一步,但一旦你拥有了它,你再回头看,就会说,之前的事情就是一坨屎。
许多伟大的问题解决者(problem solver)都曾不是伟大的程序员,但他们却产出了伟大的代码!
编程是为了解决问题,我们不只是程序员,我们不只生产代码,让我们一起成长为伟大的问题解决者。
原创文章,不限转载。欢迎分享学习,大家一起进步。
每个程序员都应该了解:KISS:60年前美国军方的编程原则。相关推荐
- 程序员能力提升:你应该知道的那些编程原则!!
本文翻译自Programming Principles(http://java-design-patterns.com/principles/). 每个程序员都可以从理解编程原理和模式中受益.这篇概述 ...
- 100%的程序员都想挑战的算法趣题!| 码书
计算机的世界每天都在发生着深刻的变化.新操作系统的发布.CPU性能的提升.智能手机和平板电脑的流行.存储介质的变化.云的普及--这样的变化数不胜数. 在这样日新月异的时代中,"算法" ...
- 我敢打赌,这是98%的程序员都想挑战的算法趣题!
计算机的世界每天都在发生着深刻的变化.新操作系统的发布.CPU性能的提升.智能手机和平板电脑的流行.存储介质的变化.云的普及--这样的变化数不胜数. 在这样日新月异的时代中,"算法" ...
- 每个程序员都应该经历一次软考
今天讨论的问题可能会引起很多争议,但我还是坚持做有争议的敢说真话的人:软考在很多各大高校里还是比较流行的,只能说是流行而已,60%的人只是去凑热闹为国家软考办去做贡献的,为什么要说"每个程序 ...
- 工作10以上老程序员都去哪了?作为新时代的程序员我们该何去何从
在纽约,PyGotham每年召开之际,都会有超过600名程序员聚集在一起讨论工作. 为了让会议更加多元化,组织者尽量邀请一些女性程序员以及各种肤色的程序员. 那么,老程序员都去哪了?他们去了大学教书, ...
- 毕业之后,这些年薪 50w+ 的 90 后程序员都经历了什么?纯水贴
毕业之后,这些年薪 50w+ 的 90 后程序员都经历了什么? 即使是处于薪资链顶端的程序员,年薪(不含期权.股票等)超过 50 万,对他们而言也并不是一件容易事.就招聘平台 100offer 而言, ...
- 100% 的程序员都想挑战的算法趣题!
作者 | 图小敏 计算机的世界每天都在发生着深刻的变化.新操作系统的发布.CPU性能的提升.智能手机和平板电脑的流行.存储介质的变化.云的普及--这样的变化数不胜数. 在这样日新月异的时代中,&quo ...
- 会泡妞的程序员都是怎么撩妹子的?
来自:这个好玩吗 链接:https://www.cnblogs.com/lzjtdxfxl/p/5493039.html 传说,每一个程序员上辈子都是折翼的天使 身体好.智商高.逻辑思维能力强 挣得多 ...
- 每个程序员都应该了解的 CPU 高速缓存
每个程序员都应该了解的 CPU 高速缓存 英文原文:Memory part 2: CPU caches 来源:oschina [编者按:这是Ulrich Drepper写"程序员都该知道存储 ...
最新文章
- iOS 关于UIView覆盖StatusBar的小知识点
- Python 3 文件和字符编码
- Apache、Nginx、Tomcat、PHP的区别
- VS2019 Android .so开发
- spring boot integrated mybatis three ways!--转
- optee中的panic函数实现
- iOS9 HTTPS
- TCP IP基础知识的复习
- 使用双重循环,输出数字金字塔
- OSPF 邻接关系建立
- Attentive Sequence to Sequence Networks
- node.js 将文件目录读取 通过匿名函数自执行 将异步改为同步
- FlinkAPI_Environment_输入源_算子转化流程
- oracle sqlarea表结构,oracle v$sqlarea 分析SQL语句使用资源情况
- php不支持redis
- Struts2学习(二):第一个Action
- windows 10卸载(注销)WSL,注销(卸载)当前安装的Linux的Windows子系统
- android 修改gps坐标,[原创] 改机 - 从源码着手任意修改GPS地理位置
- sprint tool suite启动tomcat
- 北塔曾经很张狂 如今沉默为哪桩