`
找不着北
  • 浏览: 317585 次
  • 性别: 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  
去掉配置项,开发自信的软件

相关推荐

    stm32库函数使用配置.doc

    理解并正确应用这些配置项,对于充分发挥STM32微控制器的性能,实现高效稳定的嵌入式应用至关重要。开发者应当熟练掌握STM32固件库中的这些配置方法,以确保开发过程的顺畅,并保证最终产品的可靠性。随着对STM32...

    滑轮:用于git仓库的自以为是的代码审查工具

    滑轮(Pulley)是一款基于Git的工作流工具,专为代码审查而设计,它能够帮助开发者更加自信地管理他们的代码审查过程。Pulley 的核心功能在于提供了一个直观的界面,让团队成员可以轻松地查看、讨论和批准代码更改。...

    通信与网络中的新型建模算法简化天线设计

    该算法的核心在于简化模型,去除不必要或不关键的参数,从而专注于基础的共振模式。通过这种“无信号源”建模方法,研究者能够模拟天线在不同模式下的性能,并通过插入虚拟端口来评估其位置对天线整体性能的影响。...

    marlett_01_0109.pdf

    marlett_01_0109

    [AB PLC例程源码][MMS_040384]Winder Application.zip

    AB PLC例程代码项目案例 【备注】 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用!有问题请及时沟通交流。 2、适用人群:计算机相关专业(如计科、信息安全、数据科学与大数据技术、人工智能、通信、物联网、自动化、电子信息等)在校学生、专业老师或者企业员工下载使用。 3、用途:项目具有较高的学习借鉴价值,不仅适用于小白学习入门进阶。也可作为毕设项目、课程设计、大作业、初期项目立项演示等。 4、如果基础还行,或热爱钻研,亦可在此项目代码基础上进行修改添加,实现其他不同功能。 欢迎下载!欢迎交流学习!不清楚的可以私信问我!

    stassar_3cd_01_0716.pdf

    stassar_3cd_01_0716

    malpass_02_0907.pdf

    malpass_02_0907

    [AB PLC例程源码][MMS_046459]InView on EtherNet Add On Instruction.zip

    AB PLC例程代码项目案例 【备注】 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用!有问题请及时沟通交流。 2、适用人群:计算机相关专业(如计科、信息安全、数据科学与大数据技术、人工智能、通信、物联网、自动化、电子信息等)在校学生、专业老师或者企业员工下载使用。 3、用途:项目具有较高的学习借鉴价值,不仅适用于小白学习入门进阶。也可作为毕设项目、课程设计、大作业、初期项目立项演示等。 4、如果基础还行,或热爱钻研,亦可在此项目代码基础上进行修改添加,实现其他不同功能。 欢迎下载!欢迎交流学习!不清楚的可以私信问我!

    matlab程序代码项目案例:matlab程序代码项目案例文档+程序具有输出LC滤波器的三相逆变器的前馈神经网络模型预测控制.zip

    matlab程序代码项目案例 【备注】 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用!有问题请及时沟通交流。 2、适用人群:计算机相关专业(如计科、信息安全、数据科学与大数据技术、人工智能、通信、物联网、自动化、电子信息等)在校学生、专业老师或者企业员工下载使用。 3、用途:项目具有较高的学习借鉴价值,不仅适用于小白学习入门进阶。也可作为毕设项目、课程设计、大作业、初期项目立项演示等。 4、如果基础还行,或热爱钻研,亦可在此项目代码基础上进行修改添加,实现其他不同功能。 欢迎下载!欢迎交流学习!不清楚的可以私信问我!

    matlab程序代码项目案例:matlab程序代码项目案例基于运动学车辆模型的开放式驾驶MPC横向控制算法.zip

    matlab程序代码项目案例 【备注】 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用!有问题请及时沟通交流。 2、适用人群:计算机相关专业(如计科、信息安全、数据科学与大数据技术、人工智能、通信、物联网、自动化、电子信息等)在校学生、专业老师或者企业员工下载使用。 3、用途:项目具有较高的学习借鉴价值,不仅适用于小白学习入门进阶。也可作为毕设项目、课程设计、大作业、初期项目立项演示等。 4、如果基础还行,或热爱钻研,亦可在此项目代码基础上进行修改添加,实现其他不同功能。 欢迎下载!欢迎交流学习!不清楚的可以私信问我!

    matsumoto_01_1107.pdf

    matsumoto_01_1107

    [AB PLC例程源码][MMS_045719]Rotary Knife with SoftLogix.zip

    AB PLC例程代码项目案例 【备注】 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用!有问题请及时沟通交流。 2、适用人群:计算机相关专业(如计科、信息安全、数据科学与大数据技术、人工智能、通信、物联网、自动化、电子信息等)在校学生、专业老师或者企业员工下载使用。 3、用途:项目具有较高的学习借鉴价值,不仅适用于小白学习入门进阶。也可作为毕设项目、课程设计、大作业、初期项目立项演示等。 4、如果基础还行,或热爱钻研,亦可在此项目代码基础上进行修改添加,实现其他不同功能。 欢迎下载!欢迎交流学习!不清楚的可以私信问我!

    QT第五课-QT系统相关-文件

    代码

    大模型创业者手册-法务与产品合规篇.pdf

    大模型创业者手册-法务与产品合规篇.pdf

    [AB PLC例程源码][MMS_046456]ME Equipment Status Summary Faceplate for PowerFlex, Kinetix, E3 Plus,.zip

    AB PLC例程代码项目案例 【备注】 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用!有问题请及时沟通交流。 2、适用人群:计算机相关专业(如计科、信息安全、数据科学与大数据技术、人工智能、通信、物联网、自动化、电子信息等)在校学生、专业老师或者企业员工下载使用。 3、用途:项目具有较高的学习借鉴价值,不仅适用于小白学习入门进阶。也可作为毕设项目、课程设计、大作业、初期项目立项演示等。 4、如果基础还行,或热爱钻研,亦可在此项目代码基础上进行修改添加,实现其他不同功能。 欢迎下载!欢迎交流学习!不清楚的可以私信问我!

    指标体系数据开发.pptx

    指标体系数据开发

    半导体三极管β值测量仪的设计与制作

    半导体三极管β值测量仪的设计与制作

    [AB PLC例程源码][MMS_047416]ME Faceplates-AOIs for GuardLogix Safety Systems.zip

    AB PLC例程代码项目案例 【备注】 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用!有问题请及时沟通交流。 2、适用人群:计算机相关专业(如计科、信息安全、数据科学与大数据技术、人工智能、通信、物联网、自动化、电子信息等)在校学生、专业老师或者企业员工下载使用。 3、用途:项目具有较高的学习借鉴价值,不仅适用于小白学习入门进阶。也可作为毕设项目、课程设计、大作业、初期项目立项演示等。 4、如果基础还行,或热爱钻研,亦可在此项目代码基础上进行修改添加,实现其他不同功能。 欢迎下载!欢迎交流学习!不清楚的可以私信问我!

    [AB PLC例程源码][MMS_041473]Input Time Stamping.zip

    AB PLC例程代码项目案例 【备注】 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用!有问题请及时沟通交流。 2、适用人群:计算机相关专业(如计科、信息安全、数据科学与大数据技术、人工智能、通信、物联网、自动化、电子信息等)在校学生、专业老师或者企业员工下载使用。 3、用途:项目具有较高的学习借鉴价值,不仅适用于小白学习入门进阶。也可作为毕设项目、课程设计、大作业、初期项目立项演示等。 4、如果基础还行,或热爱钻研,亦可在此项目代码基础上进行修改添加,实现其他不同功能。 欢迎下载!欢迎交流学习!不清楚的可以私信问我!

    本文将带你深入了解如何使用OpenCV库实现图片拼接技术,打造令人惊叹的全景图像。通过清晰的步骤讲解和代码示例

    本文将带你深入了解如何使用OpenCV库实现图片拼接技术,打造令人惊叹的全景图像。通过清晰的步骤讲解和代码示例

Global site tag (gtag.js) - Google Analytics