写在前面

在编写 ASP.NET Core 项目时,深感项目设计的无力感,在软件设计方面我还有很长的路要走。我一直以来都把代码当作一种艺术的存在,认为自己是个“艺术家”,其实就是个“三脚猫”。软件开发方式不精,设计模式半生不熟,自以为懂得很多,其实狗屁不是,实在不好意思说我学过软件工程,因此我打算静下心来从头开始学习。微软的 ASP.NET Core 文档给了一些很好的参考资料,我打算把他们都整理翻译出来,就先从软件开发方式开始,开发方式算是软件诞生的储备知识吧。而在敏捷开发中,极限编程算是小团队开发方式中比较有名的。

在翻译中带着学习开发方法和专业词汇的目的,使得整个过程并不枯燥,反倒有些许乐趣。翻译中最困难的其实不是词汇障碍,因为这种国外的入门文章也都是给国外菜鸟看的,反倒是如何把文章翻译的不生硬倒让我很头疼,毕竟不是专业的,有些就是英语一看就是那个意思,翻译成汉语就很别扭。还有部分文章给了名人名言,这才是最难的,读起来像石头一样硬的名句,不用想了,我翻译的,那种非常优美的,也别想了,能百度到的。如果你有什么建议的话,请留言告诉我。

极限编程系列翻译的部分不会按顺序发布,等全部翻译完了弄个目录就行了。


原文:https://deviq.com/simplicity

  1. 极限编程核心价值:简单(Simplicity)
  2. 极限编程核心价值:沟通(Communication)
  3. 极限编程核心价值:反馈(Feedback)
  4. 极限编程核心价值:尊重(Respect)
  5. 极限编程核心价值:勇气(Courage)

简单(Simplicity)

简单(Simplicity)是极限编程(Extreme Programming,XP)的核心价值之一。它为许多极限编程,敏捷(Agile)开发的原则和实践提供了指导和基础。

我们会做需要和要求的事情,但不会更多。这将最大化迄今为止所做的投资创造的价值。我们将采取简单的步骤来实现我们的目标,并减轻失败的发生。我们将创造我们引以为傲的东西,并长期保持合理的成本。

We will do what is needed and asked for, but no more. This will maximize the value created for the investment made to date. We will take small simple steps to our goal and mitigate failures as they happen. We will create something we are proud of and maintain it long term for reasonable costs.

来自 ExtremeProgramming.org

第一个精益原则(Lean Principles)是消除浪费(Eliminate Waste)。在软件开发中,浪费的一个来源是不必要的代码或功能。通过在软件中保持简单(Simplicity),我们减少了我们需要去设计、编码、测试和维护中的非核心代码和功能的数量。我们应该努力确保我们的代码遵循简单的设计原则,以便将来易于更新。

语录

  1. “简单是复杂的最高境界。” —— 达·芬奇

    “Simplicity is the ultimate sophistication.” – Leonardo da Vinci

  2. “任何事情都应该尽可能做到简单,但不要过于简单。” —— 阿尔伯特·爱因斯坦

    “Everything should be made as simple as possible, but not simpler.” – Albert Einstein

  3. “无论是性格、方式还是作风,事实上对于所有事物而言,简单是最为可贵的。” —— 亨利·沃兹沃斯·朗费罗

    “In character, in manner, in style, in all things, the supreme excellence is simplicity.” – Henry Wadsworth Longfellow

  4. “这一直是我的一个座右铭 —— 集中和简单。简单,可以比实现复杂的东西更难。你必须花很多力气去让你的思维变得简单、有条理。但最终它的价值非常大,因为一旦你到达了那一步,你就可以撼动山脉了。” —— 史蒂夫·乔布斯

    “That’s been one of my mantras — focus and simplicity. Simple can be harder than complex: You have to work hard to get your thinking clean to make it simple. But it’s worth it in the end because once you get there, you can move mountains.” – Steve Jobs

  5. “完美境地,非冗杂,而不遗。” —— 安东尼·德·圣-埃克苏佩里

    “Perfection (in design) is achieved not when there is nothing more to add, but rather when there is nothing more to take away.” – Antoine de Saint-Exupéry

  6. “傻瓜忽视复杂性;实用主义者忍受它;专家回避它;天才去除它。” —— 艾伦·佩利

    “Fools ignore complexity; pragmatists suffer it; experts avoid it; geniuses remove it.” – Alan Perlis

  7. “简单并不先于复杂性,而是跟随它。” —— 艾伦·佩利

    “Simplicity does not precede complexity, but follows it.” – Alan Perlis

极限编程核心价值:简单(Simplicity)的更多相关文章

  1. 极限编程核心价值:尊重(Respect)

    原文:https://deviq.com/respect 极限编程核心价值:简单(Simplicity) 极限编程核心价值:沟通(Communication) 极限编程核心价值:反馈(Feedback ...

  2. 极限编程核心价值:勇气(Courage)

    原文:https://deviq.com/courage 极限编程核心价值:简单(Simplicity) 极限编程核心价值:沟通(Communication) 极限编程核心价值:反馈(Feedback ...

  3. 极限编程核心价值:反馈(Feedback)

    原文:https://deviq.com/feedback 极限编程核心价值:简单(Simplicity) 极限编程核心价值:沟通(Communication) 极限编程核心价值:反馈(Feedbac ...

  4. 极限编程核心价值:沟通(Communication)

    原文:https://deviq.com/communication 极限编程核心价值:简单(Simplicity) 极限编程核心价值:沟通(Communication) 极限编程核心价值:反馈(Fe ...

  5. SCI科技论文写作技巧-核心价值

    第一次写SCI论文写作技巧,本身不是大牛,也许没有资金格谈论这个. 这里仅仅是一些个人思考,不正确,好还是不好.而当另一种理论. 对于工程专业的学生,谁往往应用,书写SCI事情.当然,也不是没可能.全 ...

  6. BI的核心价值[转]

    BI的核心价值是辅助决策,从一个洁净的数据源中自动提取有价值的数据进行分析,从而成为重要商业决定的决策基础.但在国内,洁净的数据源不易得到,很多情况下都需要进行数据清洗,所以BI的应用受到很大程度的抑 ...

  7. GIS的核心价值——服务

    注:本观点仅代表个人观点,与任何人员或者组织无任何关系,如有雷同或者相似之处,只能说明我们对GIS的理解相同,无抄袭之嫌.     写这个题目,源于前两天接到的一个电话面试时候问道的一个面试题.当时, ...

  8. 什么才是定制化IDE的核心价值?

    写在前面 自 2018 年初,就与 VSCode 结下了不解之缘,从一份选型报告开始,一蹉跎就是 2 年多 期间反复思索着一个挥之不去的问题:定制化 IDE 产品的核心价值是什么? 事实上,答案并不唯 ...

  9. 拥抱PBO(基于项目的组织)聚焦核心价值创造

    近年来.PBO(Project-Based Organizations)作为一种新兴的整合各类专业智力资源和专业知识的组织结构,受到越来越多的关注,第五版PMBOK出现的新词汇.三种组织(职能型.矩阵 ...

随机推荐

  1. 1657 Distance on Chessboard(简单计算题)

    描述 国际象棋的棋盘是黑白相间的8 * 8的方格,棋子放在格子中间.如下图所示:王.后.车.象的走子规则如下: 王:横.直.斜都可以走,但每步限走一格. 后:横.直.斜都可以走,每步格数不受限制. 车 ...

  2. SHELL脚本攻略(学习笔记)--2.1 cat

    cat命令 输出一个或多个文件的内容. cat [OPTION]... [FILE]... 选项说明 -n:显示所有行的行号 -b:显示非空行的行号 -E:在每行行尾加上$符号 -T:将TAB符号输出 ...

  3. MVC应用程序实现会员登录功能

    实现之前,我们已经把验证成功的信息存在cookie里<MVC登录前准备写好cookie>http://www.cnblogs.com/insus/p/3464105.html.现在就可以实 ...

  4. [日常] Go语言圣经-指针对象的方法-bit数组习题2

    练习 6.3: (*IntSet).UnionWith会用|操作符计算两个集合的交集,我们再为IntSet实现另外的几个函数IntersectWith(交集:元素在A集合B集合均出现),Differe ...

  5. 深入理解读写锁ReentrantReadWriteLock

    1.读写锁的介绍 在并发场景中用于解决线程安全的问题,我们几乎会提供高频率的使用到独占式锁,通常使用java提供的关键字synchronized(关于synchronized可以看这篇文章)或者con ...

  6. Java Servlet 过滤器与 springmvc 拦截器的区别?

    前言:在工作中,遇到需要记录日志的情况,不知道该选择过滤器还是拦截器,故总结了一下. servlet 过滤器 定义 java过滤器能够对目标资源的请求和响应进行截取.过滤器的工作方式分为四种 应用场景 ...

  7. 从返回的json格式的data数据内随机取得n个

    var arr=[ { "ceo":"张无忌", "conmpany":"阿里妈妈有限公司", "addres ...

  8. 实例化Flask的参数 及 对app的配置

    Flask 是一个非常灵活且短小精干的web框架 , 那么灵活性从什么地方体现呢? 有一个神奇的东西叫 Flask配置 , 这个东西怎么用呢? 它能给我们带来怎么样的方便呢? 首先展示一下: from ...

  9. js-ES6学习笔记-module(2)

    1.如果想为输入的变量重新取一个名字,import命令要使用as关键字,将输入的变量重命名. import { lastName as surname } from './profile'; 2.im ...

  10. React-Native-Android-Studio整合开发+环境配置+官方实例

    linux下React Native开发环境搭建,使用Android-studio工具进行React Native整合开发. 参考React Native的官方文档,通过图文详细记录开发过程.可以查看 ...