我爸常说,“慢一点,孩子,这样你才能更快地完成工作。”曾在高科技初创公司工作。我今年52岁,我编程缓慢而深思熟虑。我是一个写代码的设计师,如果你继续读下去就会很明显。当我和一群相信对代码进行快速、小的迭代更改的年轻程序员一起进行一个最近的项目时,慢速编程成为了我的一个问题。工作中,我们在同一个代码库下开发,就好像这是一大锅汤,只要不断地、费力地搅拌,一个神奇而完整的东西就会出现。真的没用。这些开发人员中有许多人相信一个谬论:所有工程师都是可以更换的,因此没有人应该对特定的代码段负责,任何程序员都可以随时更改代码的任何部分。毕竟,我们有像Github这样的很棒的服务(见《14个最佳免费Hithub开发者工具》、《你不可不知的10个Github功能》),用于管理和合并来自许多程序员的许多异步代码更改。只要每个人都继续提交代码而不破坏任何东西,一切都会好起来的。这纯粹是胡说八道!你不能指望在没有设计过程的情况下开始编程。自人类文明诞生以来,设计就已经存在。当今最新最好的开发工具,无论多么有用,都无法替代建造大教堂、铁路和长篇电影的最佳实践和现实生活中的协作。任何数量的编程也无法产生一种工具,可以如此迅速地缩短软件开发时间,以至于连猴子都可以完成团队代码。在一群快速发展的程序员中当一个慢程序员的意外节奏是我变得不正常的节奏,以至于我的编程节奏被其他程序员连续快速的机器迭代打断。我的编程风格由不同规模和时间线的有机弧线定义,每个弧线都以探索、试错、创造性问题解决和临时变量开始。它基本上是很多脚手架之类的东西,所以一幅画开始成形。然后,我回去做一些修补细节工作。每个弧线的结尾就像几乎完成的代码。我为代码贡献的开发弧等同于策略、设计和架构的出现。有时,在成熟的生物出现后,我会回到原点重新开始,因为我想到了更好的方法。有时我错了,有时我是对的。在这个生物完全成形并开始盯着我看之前,我真的不知道该怎么做。不管怎样,回到煮一大锅汤的程序员的话题。问题是:如果整个软件生态系统没有停滞不前,没有平静的过程来获得牵引力和应用设计过程,开发人员,即使是快速的程序员,怎么能做出好的设计呢?任何说快速编程与慢速编程完全一样(速度除外)的程序员都没有理解设计过程。出于同样的原因,现在许多神经科学家认为,神经元放电的“冲刷”(相当于我们所说的“状态”到来)作为流体在整个大脑中具有及时的反射过程,反射过程与思想密切相关和意识,所以好的设计需要时间。慢速编程运动根据维基百科:“‘慢速编程运动’是‘慢速运动’的一部分,这是一种强调精心设计、高质量代码、软件测试和思考的软件开发哲学。它努力避免拼凑代码、错误代码和过快的发布周期。”维基百科还提到了与“慢软件运动”相关的这一点:“作为敏捷软件开发的一部分,世界各地的开发人员团体正在致力于寻找更有先见之明的项目,这是为了实现更可持续的职业和工作与生活的平衡。他们建议结对编程、代码审查和代码重构等实践,这将使您获得可靠和健壮的软件应用程序。”旧金山湾区由风险投资支持的软件开发正走在从短到热的快车道上。资金动态对流程提出了异常要求,最好留给设计演变的自然昼夜节律。更快并不总是更好。事实上,慢有时真的意味着更快,尤其是当一切都被讨论和完成时。还有另一个问题:对技术近乎宗教的痴迷和对工具的迷恋(看看这些方便的工具《你应当知道的7个Java工具》,《提高程序员工作效率的5个工具》)。人们想知道为什么软件写得不好,软件写得不好是因为它是写在纸上的。RapidProgrammers构建问题解决工具以使用帮助他们编写代码的工具来解决问题。这就是为什么我一直相信我们需要年长的人:女性、教育工作者和艺术家来参与软件开发周期。人与人之间的联系更多,事物之间的联系更少。我不是说在开发团队之外,坐在服务台或做一些UI插花工作,我的意思是让他们在软件开发团队内部,以确保软件尽可能兼容人类共鸣。我庆幸自己不是那种一碰键盘就无法思考的程序员。我的一位熟女软件工程师朋友做了一个有趣的小测试:“软件编程不是敲代码”。每个人都明白这一点,但痛苦并不会经常唤醒我们。BrendanEnrick讨论了这个问题。我们程序员花时间在键盘上戳手指这一事实使这种身体活动看起来像是编程,但编程实际上是将思想、设计、语言、逻辑和心理构造转化为可以存储在计算机上的系统。窗体在内存中的行为。我妻子经常出来到院子里问,“你在编程吗?”通常我的回答是“是的,我在编程”。这时候,我通常会拿一把园艺剪,在院子里修剪树枝或给花木施肥。植物、灰尘和剪刀之于编程就像键盘之于发光的屏幕。我们正在从工业时代和由增长率定义的经济过渡到可持续发展的时代。是的,新软件和新业务都需要增长。但为了继续发展,他们需要在爱的呵护下慢慢成长。喜欢一杯好酒,喜欢一个婴儿。原文:TheCaseforSlowProgramming翻译:http://www.php100.com/html/it/focus/2014/1202/7955.html(翻译:PHP100_Alex)
