Kelly Johnson提出了KISS原则。他是一个飞机工程师以及航空发明家,同时也是一个管理天才,他一生中主要设计了40多架飞机,获得的荣誉相当之多,总之,很牛。

这个原则是对Johnson带领的设计工程师团队最好的例证,他们在设计飞机时,必须考虑

到假如飞机在交战情况下出了故障,如何让普通的机械师修理飞机?

这就是这个原则产生的历史背景。

因此,stupid不是愚蠢的意思,而是指普通。

讲一个小故事:日本最大的化妆品公司收到客户抱怨买来的肥皂盒里面是空的,于是他们为了预防生产线再次发生这样的事情,工程师便很"努力辛苦"的发明了一台X-光监视器去透视每一台出货的肥皂盒。

而同样的问题发生在另一家小公司,他们的解决方法是买一台强力工业用电扇去吹每个肥皂盒,被吹走的便是没放肥皂的空盒。

做为IT行业,在平时遇到类似的事件会更多,如架构师做架构时,是以Stupid为原则?还是以需要180的智商才能理解为原则?开发同事写代码时,以其他开发同事很容易理解为原则?还是以程序可以运行就行,除了自己谁都别想看明白为底线?

几乎所有人都明白这个简单的道理,说出来没有人不懂,我们都知道KISS的好处,但为什么我们会做一些不KISS的设计?做一个不KISS的程序呢?

你想因为你的设计没有被很好的理解而半夜被人电话吗?你想因为你写的程序别人无法修改而被周末强制加班吗?当然不想,但为什么我们都这样做了呢?

因为我们没有真正了解我们的需求是什么,目标是什么。

为什么工程师会“努力辛苦”去发明一台X-光监视器,而不考虑使用电扇呢?可能被委派去发明监视器的工程师根本不知道自己发明的监视器是为了透视一个没有肥皂的肥皂盒。

另外一个原因是社会压力大、节骤快,导致时间碎片化,让我们更加需要KISS。想一下,你上次看微博是几小时甚至几分钟之前?而你上一次去看博客是几天甚至几周以前?

微博的到成功是因为运气好,是因为我们没有很长的时间去阅读一篇1000字的文章,大多数情况下我们也没有时间去阅读一个需要1小时才能理解的设计文档或类程序,而如果你这样做了,你的恶梦就开始了,或者已经开始了。

不要让人烦,不要让大家做功课。别指望他们愿意额外花些功夫去折腾你的东西。什么都不要指望,提供一个有用的东西就够了:把你的主要想法用一种方便理解、易于切入的形式呈现出来。如果你的想法很简单,但是描述却弄得十分繁琐、令人失望就不好了。挫折感是吞噬好想法的恶魔。

简单很好,但简单并不是少,比如写代码,3行代码能实现的逻辑如果用10行写肯定不好,不够简单,但如果写成了1行,同样会不够简单。因为这行代码包含了太多的内容,因为几个月以后你自己再看,都有想哭的感觉。这是什么意思!这是另外一种复杂,隐藏的复杂,比直观的复杂更害人。

我理解的KISS就是简单,不需要解释的简单,普通的简单。

SO,让我们开始KISS。

Keep It Simple Stupid!

Keep It Simple Stupid!的更多相关文章

  1. PHP设计模式(一)简单工厂模式 (Simple Factory For PHP)

    最近天气变化无常,身为程序猿的寡人!~终究难耐天气的挑战,病倒了,果然,程序猿还需多保养自己的身体,有句话这么说:一生只有两件事能报复你:不够努力的辜负和过度消耗身体的后患.话不多说,开始吧. 一.什 ...

  2. Design Patterns Simplified - Part 3 (Simple Factory)【设计模式简述--第三部分(简单工厂)】

    原文链接:http://www.c-sharpcorner.com/UploadFile/19b1bd/design-patterns-simplified-part3-factory/ Design ...

  3. WATERHAMMER: A COMPLEX PHENOMENON WITH A SIMPLE SOLUTION

    开启阅读模式 WATERHAMMER A COMPLEX PHENOMENON WITH A SIMPLE SOLUTION Waterhammer is an impact load that is ...

  4. BZOJ 3489: A simple rmq problem

    3489: A simple rmq problem Time Limit: 40 Sec  Memory Limit: 600 MBSubmit: 1594  Solved: 520[Submit] ...

  5. Le lié à la légèreté semblait être et donc plus simple

    Il est toutefois vraiment à partir www.runmasterfr.com/free-40-flyknit-2015-hommes-c-1_58_59.html de ...

  6. ZOJ 3686 A Simple Tree Problem

    A Simple Tree Problem Time Limit: 3 Seconds      Memory Limit: 65536 KB Given a rooted tree, each no ...

  7. 设计模式之简单工厂模式Simple Factory(四创建型)

    工厂模式简介. 工厂模式专门负责将大量有共同接口的类实例化 工厂模式可以动态决定将哪一个类实例化,不必事先知道每次要实例化哪一个类. 工厂模式有三种形态: 1.简单工厂模式Simple Factory ...

  8. HDU 5795 A Simple Nim 打表求SG函数的规律

    A Simple Nim Problem Description   Two players take turns picking candies from n heaps,the player wh ...

  9. 关于The C compiler "arm-none-eabi-gcc" is not able to compile a simple test program. 的错误自省...

    在 GCC ARM Embedded https://launchpad.net/gcc-arm-embedded/ 上面下载了个arm-none-eabi-gcc 用cmake 编译时 #指定C交叉 ...

  10. A Simple OpenGL Shader Example II

    A Simple OpenGL Shader Example II eryar@163.com Abstract. The OpenGL Shading Language syntax comes f ...

随机推荐

  1. css 去除点击之后的虚线

    链接在被点击时会出现虚线框,即使松开了也仍然存在,在有的时候显得不美观.既然不好看,那就不要它.怎样去掉呢? 方法一 IE下可使用其私有的html属性:hideFoucs,在标签的结构中加入hidef ...

  2. Office 365 系列三 ------ 创建Office 365普通账号

    当我们购买或者试用Office 365的时候,微软或者世纪互联会发一封邮件给我们,里面就只有管理员的账号,那么作为我们IT 管理员应该给员工创建账号, 创建的过程如下: 一.登陆: http://po ...

  3. Office 365 系列四 ------ 绑定公司域名

    Office 365包含了企业邮箱服务(Exchange Online),我们如果要用微软的企业邮箱,那么我们必须绑定我们公司的自己域名,而不是用微软 提供的二级域名,其实微软的整个Exchange ...

  4. GitHub上最火的40个Android开源项目

    http://www.csdn.net/article/2013-05-03/2815127-Android-open-source-projects

  5. LAMP环境

    LAMP =  Linux + Apache + MySQL + PHP    [1]     [2]      [3]     [4] [1]Linux是一套免费使用和自由传播的类Unix操作系统, ...

  6. CentOS6.5中配置Rabbitmq3.6.6集群方案

    一.安装Erlang环境 1.下载erlang源代码 wget http://erlang.org/download/otp_src_19.1.tar.gz 2.安装依赖相关库文件 yum insta ...

  7. Java中前台JSP请求Servlet实例(http+Servlet)

    1.前台jsp代码 himily.jsp,定义了用户名和密码两个输入框,使用post方式提交:/order-web/HimilyServlet其中order-web为站点名称,HimilyServle ...

  8. crontab 系列

    crontab是一个很方便的在unix/linux系统上定时(循环)执行某个任务的程序使用cron服务,用 service crond status 查看 cron服务状态,如果没有启动则 servi ...

  9. tcp转发

    Proxy.java package com.dc.tcp.proxy; import java.io.IOException; import java.net.ServerSocket; impor ...

  10. NLP学术组织、会与论文

    1. 自然语言处理怎么最快入门? 2. 初学者如何查阅自然语言处理(NLP)领域学术资料 2.0  ACL Anthology 2.1  Association for Computational L ...