`
lane_cn
  • 浏览: 53737 次
社区版块
存档分类
最新评论

Keep It Simple and Stupid

阅读更多

Keep It Simple and Stupid, 就是KISS原则. 简单是软件设计之美, 简单的设计使得软件产品易于开发, 易于维护. 简单代表着高质量, 少加班, 每个人都希望自己的工作是简单的.

在KISS原则之外, 应该有一个更重要的原则: Useful. 满足需求是一切产品的低限. 也许需求本身也应该KISS, 简单的需求意味着底成本, 高效率. 可惜客户有时候很难克制自己的欲望. 也许站在客户角度看见的KISS和我们开发者眼中的KISS不完全是一个概念. 有人说: 好的设计是客户做出来的, 开发者其实只是在帮助客户做设计.

Keep
It Simple and Stupid, 最难的在于Keep. 一个人做一个Simple的设计并不难, 难的是让这个设计在需求变化的过程中保持简单. Keep是关键, Keep的时间就是这个设计的生命. 当一个产品无法再Keep Simple的时候, 维护就变的越来越困难, 渐渐的无法加入任何变化, 他的生命也就快结束了. 升级意味着重新做一个.

Keep Simple就是要抵抗需求的变化, 一开始的需求总是比较简单, 比如这样: 设计一个汽车驾驶程序, 他会在遇到红灯的时候停下来, 绿灯的时候向前进.

方案一:

if red_light then
    
stop()
else if green_light then
    go()
end if


这是一个简单的需求, 给出的解决方案也很简单. But, 如果遇到这样的情景: 红灯已经亮了, 但是车前面有个人正在过马路, 他走的很慢. 这个时候当然不能go, 应该按响车喇叭, 等他走过去. 方案一必须要修改: 

if red_light then
    
stop()
else if green_light then
    
if people_ahead then
        ring()
    
else
        go()
    
end if
end if


现实的情况仍然可能发生变化, 比如: 前面尽管是绿灯, 但是横向路口一辆救护车开过来, 或者前面有一个路牌"道路维修请绕行"......种种情况, 其结果就是要在原来的if-else里面加上一个新的判断.

这是一个Simple的设计, 但是很难Keep Simple. 当这个代码片断不断增加, 长度突破500行的时候, 任何相关的需求变更都是一场恶梦. 在软件开发中更复杂的情况我想大家都遇到过.

方案二
:

想象有一个叫做策略的东西, 他有下面的特征: 他有一个名称, 一个优先级, 他可以判断某种情景, 返回在这个情景中应该采取的行为. 红灯停, 绿灯行, 有人在前面要按喇叭, 都是具体的策略. 就是下面这个结构:

还应该有一个Action, 代表策略判断后应该采取的行为. 前进, 停止, 按喇叭都是具体的行为, 这样的结构:

最后的程序运行过程就是这样: 先初始化一个stratage list, 将需要判断的策略都放在里面. 在需要的地方一一判断这些策略, 执行优先级最高的策略所返回的行动就可以了.

dim action as new Action
for each stratage in stratage_list
    
if stratage.Priority < action.Stratage.Priority then
        
'如果当前的策略优先级小于行为的策略的优先级,就不用判断这个策略了
        continue
    
end if
    stratage.Judge(action, env)
next
action.
Do()

这样的设计, 随着需求的变化, 策略日益复杂, 只要添加新的stratage, 赋予合适的优先级, 再视情况派生新的action就可以了. 程序的复杂程度不会随之增加.

Quick & Dirty vs 过度设计

设计应该始于简单, 保持简单. 作出一个简单的设计, 当需求发生变化, 首先应该做的就是重构设计, 使之重新变得简单, 然后再加上新的功能. 简单不是quick and dirty. 简单的东西也许会变得复杂, 复杂的东西也许本质上是更加的简单. 这首先需要对需求充分的理解, 当然还有一点点的技巧. 过分的设计也是一个问题, 但是考虑一下维护人员的痛苦, 一个过度设计的系统通常要比一个quick and dirty的系统更加便于维护.

分享到:
评论

相关推荐

    酒店处理宾客投诉培训经济型酒店PPT学习教案.pptx

    KISS原则(Keep It Simple and Stupid)在此背景下显得尤为关键,它强调在沟通中保持简洁明了,确保信息传达清晰,避免复杂化。在处理宾客投诉时,这一原则有助于降低误解,提高沟通效率。 处理宾客投诉的七个步骤...

    沟通技巧与团队协作.ppt

    表达时,应该站在对方的角度思考,避免引起歧义,并用简洁明了的方式(KISS原则:Keep It Simple and Stupid)传达信息。倾听则意味着全神贯注地理解对方的观点,提问能帮助澄清疑惑,回应表示理解与接纳,而行动则...

    PPT原创作品26:你不可不知的KISS原则(妙手回春-2020年7月22日)PPT模板.pptx

    KISS并非我们通常理解的亲吻,而是“Keep It Simple and Stupid”的缩写,中文可以译为“保持简单和愚蠢”。这个原则强调的是在设计和表达中追求简洁易懂,让任何人都能轻松理解和使用。 KISS原则的核心理念是“少...

    《跨境电商美工实务》完整版课件全套ppt教学教程-最全电子讲义(最新).pptx

    KISS原则(Keep It Simple and Stupid),强调简洁明了的设计;以及FAB原则(Features, Advantages, Benefits),即突出产品的特性、优势和对消费者的益处,这些都是提升视觉营销效果的关键。 课程中的3C商品视觉...

    制作技巧攻略PPT学习教案.pptx

    KISS原则(Keep It Simple and Stupid),意在保持设计简洁,避免过多的文本、过渡和动画,以免分散观众注意力。 在实际操作中,要充分利用母板和模板,定制配色方案,保存自己的模板以备后用。文字应用时,标题应...

    一汽国际物流仓储规划模型与算法.pptx

    在优化方法的选择上,应遵循适用性、理解性、易实现性和KISS原则(Keep It Simple and Stupid)。人工神经网络模型被广泛应用于物流量预测,通过预处理、分组、训练、预测和还原等步骤,构建出适应物流系统复杂性的...

    常用办公软件学习1应用ppt课件.ppt

    在进行PPT设计时,遵循"KISS"原则至关重要,即“Keep It Simple and Stupid”。这意味着在创建PPT时,应保持内容清晰简洁,避免过于复杂的设计。首先,确定演示的主题,列出大纲,确保主要观点和关键词之间的逻辑...

    KISSY 小巧灵活、简洁实用的 UI 类库.zip

    KISSY(Keep It Simple and Stupid)这个名字本身就蕴含了其设计理念——保持简单,注重实用。作为一个JavaScript库,KISSY集成了模块化、事件系统、DOM操作、Ajax通信等多种功能,旨在为前端开发者提供一套全面而...

    做PPT的技巧.pdf

    2. **明确讯息**:保持内容简洁明了,遵循KISS原则(Keep It Simple and Stupid),避免无关信息。 3. **构建大纲**:预先规划演示文稿的结构,列出关键观点和关联。 4. **创意设计**:利用图表、动画等视觉工具辅助...

    基于KISSY的标签提示效果.zip

    KISSY的核心理念是“Keep it Simple and Stupid”,即保持简单和愚蠢,这体现在其设计理念上,力求提供简洁易用的API,让开发者可以快速构建复杂的前端应用。KISSY支持AMD(Asynchronous Module Definition)模块...

    制作技巧含素材PPT学习教案.pptx

    8. **KISS原则**:保持简单愚蠢(Keep It Simple and Stupid),设计应直观易懂,避免复杂性。 9. **听众原则**:设计PPT时要充分考虑听众的需求,让他们既能听懂也能看懂,确保信息传达的有效性。 10. **“恶心”...

    简报管理技巧.pdf

    1. KISS原则(Keep It Simple and Stupid),强调简报要简洁明了,避免复杂的图表和文字。 2. Magic Seven原则,指的是人们更易记住七项信息或者概念,所以尽量将关键信息归纳为七条。 3. VISO timelines,可能是指...

    数据库优化最佳实践.pptx

    - KISS(Keep It Simple and Stupid):保持设计简单,避免过度设计。 - Performance is all about code path:性能优化的核心在于代码路径的优化。 三、优化实践 1. 要牛篇:优化响应时间,例如对比SSD与HDD的...

    高效率职场沟通与表达技巧.pptx

    表达同样重要,应确保信息简洁明了,遵循KISS原则(Keep It Simple and Stupid),避免使用可能导致歧义的复杂表述。同时,肢体语言在沟通中占有很大比例,它能够传达55%的信息,远超过语言和声调的总和。因此,要...

    基于KISSY的背景渐变特效.zip

    1. **KISSY框架**:KISSY的核心理念是"Keep It Simple and Stupid",它提供了一种简单易用的方式来组织和管理JavaScript代码,支持AMD(Asynchronous Module Definition)模块加载机制,使得代码可以按需加载,提高...

    如何制作及演示汇报材料PPT教案.pptx

    - **KISS原则**:Keep It Simple and Stupid,即保持简洁。先规划好大纲,明确主要观点,再用图表、动画等视觉工具辅助说明。 - **文字使用**:遵循Magic 7原则,每页内容控制在5至9行之间,保持信息的精炼。 - *...

    如何制作电子简报.docx

    1. **KISS原则**:保持简报简单且直白(Keep It Simple and Stupid)。在设计简报时,遵循这一原则,避免过多复杂的细节,使内容易于理解。 2. **内容规划**:首先确定主题,列出大纲,将主要观点和关键字关系构建...

    kiss-on-billions-on-eurusd-ea_kissforexEA_Kissonbillions_ea_

    "Kiss"在外汇EA领域通常代表“Keep It Simple and Stupid”,暗示这个EA的设计理念是简洁高效,可能采用了一种简单的交易逻辑。 【描述】"most powerfull EA scalping mt5" 描述了这个EA的特性,它被称为最强大的MT...

    菜鸟也能玩转Excel

    文档中提到的KISS原则(Keep It Simple and Stupid,保持简单和笨拙),提醒用户在处理复杂数据和报表时,应追求简单明了的解决方案,避免过度复杂化,这是保证工作效率和数据准确性的重要原则。 文档的技巧与思路...

Global site tag (gtag.js) - Google Analytics