软件开发中的两种态度

简介:

screenshot

一种态度认为,应该对程序员在软件开发中的行为进行约束(DirectingAttitude)。 持这种态度的人认为大部分的程序员水平都不高(谣传说有50%的人低于平均水平),所以应该对他们所做的事情进行管教约束。要防止他们做一些可能会给他们 正在开发的系统带来危害的事情。通常,这种态度体现在一些系统设计和工具中时,你会发现它们会试图阻止程序员去做某些事情,限制程序员的一些做法,以此避 免他们陷入过于复杂的境况。

另一种态度认为程序员都是可以信赖的专业人员,应该给他们做自己任何想做的事情的自由。秉持这种态度的软件设计 以好用易用为目标,但前提假设是程序员必须知道自己在做什么。所以,遵循这种态度的软件设计里并不会特意阻止程序员错误的使用它们。而你可以不正确的使用 它们,但因为这种态度认为你是知道如何正确的使用它,所以,如果你没有按正确的方式使用,后果自负。

软件开发中的很多争论的挑起都是因为观点方要么持约束态度,要么持纵容态度。这种态度上的差异影响到了对编程语言、设计方案、开发工具、开发过程等很多方面的选择。

下面是这两种对立态度的一些例子:

前不久有一场讨论,是由Joel Spolsky的一篇关于异常(Exceptions)的博客引起的。Joel Spolsky不喜欢异常,因为它很容易引起误用,导致代码混乱不堪(约束态度)。而Bill Caputo指出,异常,如果用的好,可以让你的编程更简单方便(纵容态度)。

一些关于静态/动态类型的争论也体现了这两种态度的差异。喜欢静态类型的人会说静态类型能防止你犯某些错误(约束态度)。而动态类型支持者提出静态类型限制了很多有用的语言功能(纵容态度)。

敏捷开发实践指导是面向人的(纵容态度),而计划驱动的开发方法是在确保即使一个很烂的开发团队也能完成工作(约束态度)。

这些态度未必是持久不变的。在某些情况下人们通常会持约束态度,而另外一些情况会持纵容态度。但我想是有一个底层的因素在起作用,通常是个人性格决定的,是个人性格在这些关于应该如何开发软件的讨论表象下发挥着作用。(我是完全属于纵容类的,也许你没看出来。)

也 许你会认为对一个程序员的行为的任何限制都反映了一种约束态度,可事情并不是这么简单。比如说对内存的管理。也许你会认为这是一种约束的表现:不能相信程 序员有能力正确的对内存进行管理,所以,剥夺他们分配内存的权利。但我却把内存上的这种管理视为一种纵容策略——它拿走了我一些不想为之操心的权利,反而 我可以专注于那些我很关心的事情。Steve通过将“问题”和“困难”进行比较,很好的支持了我的这种观点。

文章转载自 开源中国社区 [http://www.oschina.net]

相关文章
|
4月前
|
敏捷开发 持续交付
探索现代软件开发中的敏捷实践
【7月更文挑战第8天】 在快速变化的技术世界中,敏捷开发已经成为了软件开发团队的必选策略。本文旨在深入探讨敏捷实践在现代软件开发中的应用,并分析其对项目成功的影响。通过实际案例分析,我们将揭示敏捷方法如何提高团队效率、增强产品功能以及缩短上市时间。文章不仅为软件开发专业人士提供实用指南,同时也为非技术读者呈现敏捷转型的洞见。
|
供应链 监控 架构师
软件测试工程师 路在何方?如何发展?职业规划是怎样的?
软件测试工程师 路在何方?如何发展?职业规划是怎样的?
209 2
软件测试工程师 路在何方?如何发展?职业规划是怎样的?
|
开发工具 开发者 UED
五种关键的软技能可以让软件开发人员脱颖而出
五种关键的软技能可以让软件开发人员脱颖而出
153 0
|
人工智能 Dart 安全
关于当今软件开发的四件会让过去的程序员大吃一惊的事
  过去的盲点给我们提供了另一种思考未来的方式。 技术变革的步伐并没有放缓。 在一两年之内,我们大多数人仍然会思考世界。 我们期待着很多变化,并且我们花了大量时间想象它们。 但是在雷达之下发生了什么? 我们期望哪些发展永远不会实现? 我们今天很少有人期望发生什么革命?   软件开发改变了世界。 我们只看到其中一些即将到来。关于当今软件开发的四件会让过去的程序员大吃一惊的事
174 0
|
设计模式 运维 测试技术
软件开发打败了 80 %的程序员
首先,我并不是说软件开发人员都是输家,我想说的是,大多数软件开发人员都没能赢得软件开发,他们都被软件开发打败了。
178 0
|
敏捷开发 程序员 API
最怕程序员学会了隐身术!创业者最应该看的软件开发风险管理
  看到这个标题,我想应该不少人都有苦涩的回忆,我这几年的创业经验中,也碰过几次程序员人间蒸发导致技术开发难以接手的案例,也听说过类似的烂摊子也的确不少,我都有遇过,通常创业者本身不懂技术或是对技术一知半解的状况,就更容易被程序员唬得一愣一愣的。别以为这种事只有遇到外包才会发生,我也看过技术合伙人学会隐身术后就人间蒸发的惨痛案例。   因此,经过去年一年在程序员客栈工作,我都建议每个非技术背景的朋友,可以至少知道一些基础,这样当程序员发生问题的时候,就不致于发生不知道代码、资料库不知在何处的窘境。为了把风险降到最低,以下来谈谈创业者在与程序员合作时需要注意的几个重点。
816 0
|
程序员
程序员得到的报酬与他们的生产力不成正比
导读:原文作者John D. Cook在johndcook.com上发表的《Why programmers are not paid in proportion to their productivity》,由国内整理编译成《程序员得到的报酬与他们的生产力不成正比 》。
1155 0
|
程序员
项目难做,程序员难当,软件开发中的 9 大难题
是什么让项目变糟?何时起我们下班回家时开始盘算:“见鬼,我得离开”?下面是我们程序员不时要面对的一个问题清单,这些问题让我们筋疲力尽。
984 0