`
找不着北
  • 浏览: 315488 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

去掉配置项,开发自信的软件

阅读更多

你的程序里有太多的配置项,太多的东西需要人去配置。API切入点设置?主题颜色配置?100种不同的字体样式和字体大小选择? 界面色调配置?语言切换配置?

去掉这些配置项,全部去掉。

你的远见铸就你的软件

你是软件的创造者,创造你想要的软件。你的应用程序应该代表你的观点。37signals 网 站的Jason Fried表示了同样的思想。下面就是他在他的第一本书《Getting Real》 说的话:

有些人认为软件应该做成无所不能、没有弱项。他们说开发人员限制或拒绝某些功能需求是完全出于傲慢自大。他们说软件应该具有最大限度的灵活 性。

我认为这纯属胡说八道。最好的软件是有远见的产品。最好的软件是有所舍取的。人们不是要看它有多少功能的,人们要的是达到某些事情的途径和 方式。 人们要的是一种对事情正确的理解。做出你的决定,坚持下去。

请记住,如果有人不认同你的观点,他们会想出千奇百怪的各种意见出来。不要试图取悦所有的人,这样会让你很痛苦。

Jason Fried的这个已经给他赚取了百万美元的网站并没有提供不少人都希望他提供的一些鸡毛蒜皮的功能。 他们的著名应用程序Basecamp 实际上只是在满足他们自己的需 求,他们认为不重要的东西一概要去掉。 Jason把他的团队看作整个软件定义的主导者,一再的删减和修改功能项,让它们回归本质。他们开发了有主见的产品。

减肥

如果有一个设置项既可以设成A又可以设成B,而你习惯于设成A,那为什么不把A变成固定选项、不可变更项呢? 如果你认为A是最好的选择,为什么还让人们去选择B?这样一来,在应用软件排行榜里,人们会抱怨为什么不能选择B。他们会说只能给你一颗星,如果你实现了 B,会给你五颗星。而又有人看到这种情况会要求你实现C和D,因为他们认为C和D也同等重要。

一派胡言。

你是这个软件的开发者。你决定一切。苹果公司 并不听取用户的意见 ,但它是世界上最成功的技术型公司。他们有个无畏的领导,不惜惹恼用户也要把软驱和鼠标上的按钮去掉。 他以大无畏的精神把非常成功的受称赞的产品废弃,一切推倒重来。 他只创建他想要的,他知道自己在创造最优秀的东西。这也就是我们要学习的。

最近,Iconfactory 网站宣布, 他们将重写 和反思 他们的旗舰Twitter应用软件 Twitterrific:

我们之前的设计受到了普通用户(甚至一些专业用户)的极大欢迎,但对于多帐号的用户却变得非常的混乱,因为人们没法分清哪 个帐号是用来查询 的,哪个帐号是用来浏览热门帖子的。 而且我们有三个不同的地方来设置偏好选项,很多的设置项都是没有必要的,让大多数用户感到困惑,他们通常会对这些选项置之不理,保持缺省状态。 于是我们做了一个大动作,把所有的偏好设置全给去掉了,只有当我们发现它们有绝对的必要时,才会把它们加回来。

这个是新旧选项设置的对 比图 , 新版本完全简化了。 他们提炼了这些设置项;几乎都不要了。这需要相当大的勇气,而且只有当清楚的知道他真正想要做的是什么软件时他才能做到这些。 你已经在脑海里有了远大的蓝景,你知道这某些方面你不能妥协。 一些很强势的用户无可避免的会感到不适应,但Iconfactory公司追求的是大多数用户的良好用户体验, 它们比那些技术专家们思考出的用户体验更重要。

强势用户并不重要,要为大众做软件

功能繁多和配置项丰富只能让那些比较强势的一小部分用户感到兴奋,而对大多数用户却没多少意义。 通常用户都希望软件能在不经过任何设置下就能出色的、智能的运行。 有一个绝好的例子,我们把Android和iOS 4.0中对多任务功能的支持情况进行对比。 Apple公司并没有急于把多任务功能引入系统,因为Apple不希望有程序能在他们的系统后台消耗电池能量。相反,对于Android:仅仅几周前,Larry Page 报告说如果你让某些应用程序在Android后台运行,它们会把你的电池耗尽 。 Android里的多任务功能只是提供给一些强势用户使用,这些用户知道如何强行关闭后台程序,这样就能够给他们手机上的收音机争取更长的供电时间。 Apple的CEO宣传他要按照他自己觉得合适的模式来增加多任务功能,而不是按照那些发烧友和手机开发者期望的那样。

远见上不能打折扣,观念上你要坚持。如果你觉得12px的字体大小是最合适的,那就不要允许人们把它设置成10px。 如果你从来都认为某个配置项不应设置成除了A之外的任何值,那就不要放自己你的观点、给别人把它设置成B的机会。 不要妥协。开发属于你自己的软件。会有许多许多的像你一样的用户会欣赏你的做法的。

做你想要的。

 

译文来自 外刊IT评论去掉配置项,开发自信的软件

 

;)

35
27
分享到:
评论
9 楼 dcross 2010-07-16  
当你处于强势的时候是可以这样做,但如果你处于弱势,失去这个客户就会使得整个公司关门时,客户就是上帝,他叫你实现什么就要实现什么
8 楼 ybbwkk20 2010-07-16  
在我们公司,客户说“我们风格主体为红色”,但作者要说:“我们就用蓝色”,那你将被OUT了
7 楼 fhjxp 2010-07-12  
liu78778 写道
扯吧,没有配置项,你怎么保证你的产品能兼顾多个客户的需求?每卖一个地方就要重新开发一下?为大众做软件?大众的想法都一致的?就算一致,他们就不能变了?
如果你是一个小软件,做出来自娱自乐也就罢了,稍微大一点的,就要力求减少重复的开发投入,有没有配置项是由需求和市场决定的,不是写个几句有煽动力的话就可以的。

如何避免重新开发与本文说的完全两码事
6 楼 xdamao 2010-07-12  
某些领域是对的啊,现在那么多可选的软件,软件里面还要加上一大堆选择,大多数人都会怕麻烦的,资深用户毕竟少数。

不过在行业或专业领域,应该还是要可定制才行
5 楼 liu78778 2010-07-12  
扯吧,没有配置项,你怎么保证你的产品能兼顾多个客户的需求?每卖一个地方就要重新开发一下?为大众做软件?大众的想法都一致的?就算一致,他们就不能变了?
如果你是一个小软件,做出来自娱自乐也就罢了,稍微大一点的,就要力求减少重复的开发投入,有没有配置项是由需求和市场决定的,不是写个几句有煽动力的话就可以的。
4 楼 jasongreen 2010-07-12  
顶,这篇文章在框架选型上也同样可以解释很多东西,IoC认为一切都要可配置,这段代码用哪个,那段代码用哪个,所以他们将interface注入进代码,说到底,就是不自信嘛。
3 楼 wangxinpier 2010-07-12  
这篇文章我觉得是有局限性的,只能对于大公司,只能用于通用大众软件,无法适用于小公司,行业软件......
2 楼 Dollyn 2010-07-12  
严重同意
1 楼 找不着北 2010-07-12  
去掉配置项,开发自信的软件

相关推荐

    配置项读写加密注册软件 源码

    配置项读写加密注册软件 易语言源码 本地读取加密配置项 本地注册 适用于新手的易语言源码

    易语言加密配置项模块源码

    在IT领域,数据安全至关重要,尤其是在软件开发过程中,保护程序的配置信息不被轻易篡改或窃取是开发者必须面对的问题。易语言,作为一款中国本土的编程语言,提供了丰富的库和模块来帮助开发者实现这一目标。本文将...

    易语言配置项源码实例

    配置项在软件开发中起着至关重要的作用,它们允许程序根据用户的个性化需求进行调整和定制。在易语言中,配置项的处理通常涉及读取、写入配置文件(如.INI或.XML文件)以及在程序运行时动态修改这些设置。这个源码...

    配置管理计划及配置项路径创建批处理

    在IT行业中,配置管理是软件开发过程中的关键环节,它涉及到对项目中所有组件的版本控制、变更跟踪以及状态报告。本话题将深入探讨“配置管理计划”和“配置项路径创建批处理”,这两个概念是确保项目高效有序进行的...

    易语言API读写配置项

    易语言API读写配置项源码,API读写配置项,API读配置项,API写配置项,API取运行目录,GetPrivateProfileString,GetCurrentDirectoryA,WritePrivateProfileStringA

    配置项变更控制报告.doc

    《配置项变更控制报告》是IT项目管理中的一个重要文档,主要用来记录和管理软件开发、系统集成或硬件工程等项目中的配置项变更过程。配置项是项目中的关键元素,如源代码、设计文档、测试用例等,它们的任何变动都...

    易语言取配置项名模块源码

    本文将深入探讨易语言中的“取配置项名”模块源码,以及它在实际开发中的应用。 取配置项名是程序设计中常见的一种功能,它涉及到对配置文件的读取和解析。配置文件通常用于存储应用程序的设置、参数或用户自定义...

    易语言API版配置项操作模块源码

    支持读写配置项文本和整数,至于其他类型的值可以自行扩展。设置的参数向核心库的靠拢,替换方便!。支持一次性写入整个小节的配置项内容!。支持枚举全部节的名称!。支持枚举指定节的全部配置项名称以及配置项内容...

    Echarts-4.0.4官方文档-配置项手册

    ECharts是一款由百度开发的,基于JavaScript的数据可视化库,它提供了丰富的图表类型,精美的图表效果,便捷的配置项和API,使得在Web上进行数据可视化变得简单易行。ECharts 4.0.4是该库的一个稳定版本,包含了众多...

    易语言源码易语言取配置项节名模块源码.rar

    易语言是一种基于中文编程的计算机程序设计语言,旨在降低编程技术门槛,让更多人能够进行软件开发。本压缩包“易语言源码易语言取配置项节名模块源码.rar”包含了一个易语言编写的模块,该模块专注于处理配置文件中...

    易语言取配置项节名模块源码

    在易语言中,处理配置文件是一项常见的任务,这通常涉及到读取、写入或修改配置文件中的特定节(Section)和配置项(Key)。在本资源中,我们讨论的是一个易语言模块,其功能是提取配置文件中特定节的配置项名称。 ...

    软件开发规范化解决方案--软件配置管理.docx

    版本控制主要是对变更配置项的软件行为及变更结果提供一个可跟踪的手段,便于软件开发工作以基线渐进的方式完成;变更管理主要是控制和协调不同责任的软件开发人员有效的交流;状态统计主要是在版本控制与过程管理的...

    软件开发配置管理规程参考.pdf

    软件开发配置管理规程是软件开发过程中的一项重要活动,旨在确保软件产品的质量和可靠性。本规程制定了软件开发配置管理的理论基础、配置管理对象、配置管理任务、版本控制、修改控制、报告配置状况等方面的要求和...

    软件开发管理规范

    - **软件开发过程**:通过结构化描述来构建完整的软件系统,涉及系统、软件、软件配置项、软件部件和软件单元等不同层次。 #### 四、管理规范详解 ##### 4.1 软件的开发 - **基本准则**:明确规定了不可开发、...

    易语言学习进阶写配置项

    "易语言学习进阶写配置项"这个主题聚焦在如何使用易语言来处理程序的配置项,这对于开发具有用户可自定义设置的应用程序至关重要。 配置项通常指的是应用程序中的各种设置,如界面布局、功能开关、性能选项等,它们...

    软件测试与维护:配置管理.pdf

    配置管理,简而言之,是通过版本控制、变更控制等手段,确保所有配置项的完整性和可追踪性,以此来保护软件开发的工作成果。 软件配置是指在软件生命周期中,由不同阶段产生的各种形式(如文档、程序、数据)和不同...

    基于GJB5000A的军用软件配置管理.pdf

    配置管理是软件工程的一个重要组成部分,它关注软件项目的配置项的管理,这些配置项包括软件代码、文档、工具和硬件等。软件配置管理的主要目的是确保软件产品的完整性和可追踪性,即确保在软件开发和维护过程中,...

    配置管理计划样例软件开发.doc

    《软件开发中的配置管理计划详解》 配置管理是软件开发过程中的重要环节,它涉及到项目的组织结构、职责分配、管理工具和技术的选择,以及配置库的建立和管理等多个方面。本篇文档将详细解读《配置管理计划样例软件...

    易语言源码易语言配置项加密解密源码.rar

    易语言源码易语言配置项加密解密源码.rar 易语言源码易语言配置项加密解密源码.rar 易语言源码易语言配置项加密解密源码.rar 易语言源码易语言配置项加密解密源码.rar 易语言源码易语言配置项加密解密源码.rar ...

    软件配置管理

    基线是软件开发过程中的关键里程碑,它代表了某一时刻软件的稳定状态,通常包括一组配置项,这些配置项在某个时间点被冻结,不再允许随意更改。基线的设定有助于控制软件的演进,确保在开发过程中保持有序。 配置库...

Global site tag (gtag.js) - Google Analytics