你的程序里有太多的配置项,太多的东西需要人去配置。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评论
的 去掉配置项,开发自信的软件
;)
分享到:
相关推荐
理解并正确应用这些配置项,对于充分发挥STM32微控制器的性能,实现高效稳定的嵌入式应用至关重要。开发者应当熟练掌握STM32固件库中的这些配置方法,以确保开发过程的顺畅,并保证最终产品的可靠性。随着对STM32...
滑轮(Pulley)是一款基于Git的工作流工具,专为代码审查而设计,它能够帮助开发者更加自信地管理他们的代码审查过程。Pulley 的核心功能在于提供了一个直观的界面,让团队成员可以轻松地查看、讨论和批准代码更改。...
该算法的核心在于简化模型,去除不必要或不关键的参数,从而专注于基础的共振模式。通过这种“无信号源”建模方法,研究者能够模拟天线在不同模式下的性能,并通过插入虚拟端口来评估其位置对天线整体性能的影响。...
哈希表源码
sun_3ck_03_0119
内容概要:本文档详细介绍了基于 MATLAB 实现的 LSTM-AdaBoost 时间序列预测模型,涵盖项目背景、目标、挑战、特点、应用领域以及模型架构和代码示例。随着大数据和AI的发展,时间序列预测变得至关重要。传统方法如 ARIMA 在复杂非线性序列中表现欠佳,因此引入了 LSTM 来捕捉长期依赖性。但 LSTM 存在易陷局部最优、对噪声鲁棒性差的问题,故加入 AdaBoost 提高模型准确性和鲁棒性。两者结合能更好应对非线性和长期依赖的数据,提供更稳定的预测。项目还展示了如何在 MATLAB 中具体实现模型的各个环节。 适用人群:对时间序列预测感兴趣的开发者、研究人员及学生,特别是有一定 MATLAB 编程经验和熟悉深度学习或机器学习基础知识的人群。 使用场景及目标:①适用于金融市场价格预测、气象预报、工业生产故障检测等多种需要时间序列分析的场合;②帮助使用者理解并掌握将LSTM与AdaBoost结合的实现细节及其在提高预测精度和抗噪方面的优势。 其他说明:尽管该模型有诸多优点,但仍存在训练时间长、计算成本高等挑战。文中提及通过优化数据预处理、调整超参数等方式改进性能。同时给出了完整的MATLAB代码实现,便于学习与复现。
1996-2019年各地级市平均工资数据 1、时间:1996-2019年 2、来源:城市nj、各地级市统计j 3、指标:平均工资(在岗职工) 4、范围:295个地级市
AB PLC例程代码项目案例 【备注】 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用!有问题请及时沟通交流。 2、适用人群:计算机相关专业(如计科、信息安全、数据科学与大数据技术、人工智能、通信、物联网、自动化、电子信息等)在校学生、专业老师或者企业员工下载使用。 3、用途:项目具有较高的学习借鉴价值,不仅适用于小白学习入门进阶。也可作为毕设项目、课程设计、大作业、初期项目立项演示等。 4、如果基础还行,或热爱钻研,亦可在此项目代码基础上进行修改添加,实现其他不同功能。 欢迎下载!欢迎交流学习!不清楚的可以私信问我!
内容概要:本文介绍了一种新颖的变压器模型C2Former(Calibrated and Complementary Transformer),专门用于解决RGB图像和红外图像之间的物体检测难题。传统方法在进行多模态融合时面临两个主要问题——模态错位(Modality miscalibration)和融合不准确(fusion imprecision)。作者针对这两个问题提出采用互模交叉注意力模块(Inter-modality Cross-Attention, ICA)以及自适应特征采样模块(Adaptive Feature Sampling, AFS)来改善。具体来说,ICA可以获取对齐并且互补的特性,在特征层面进行更好的整合;而AFS则减少了计算成本。通过实验验证了基于C2Former的一阶段和二阶段检测器均能在现有公开数据集上达到最先进的表现。 适合人群:计算机视觉领域的研究人员和技术人员,特别是从事跨模态目标检测的研究人员,对Transformer架构有一定了解的开发者。 使用场景及目标:适用于需要将可见光和热成像传感器相结合的应用场合,例如全天候的视频监控系统、无人驾驶汽车、无人
上海人工智能实验室:金融大模型应用评测报告-摘要版2024.pdf
malpass_02_0907
C++-自制学习辅助工具
内容概要:本文提供了有关微信生态系统的综合开发指导,具体涵盖了微信机器人的Java与Python开发、全套及特定应用的小程序源码(PHP后台、DeepSeek集成),以及微信公众号的基础开发与智能集成方法。文中不仅给出了各种应用的具体案例和技术要点如图灵API对接、DeepSeek大模型接入等的简述,还指出了相关资源链接以便深度探究或直接获取源码进行开发。 适合人群:有意开发微信应用程序或提升相应技能的技术爱好者和专业人士。不论是初涉者寻求基本理解和操作流程,还是进阶者期望利用提供的资源进行项目构建或是研究。 使用场景及目标:开发者能够根据自身兴趣选择不同方向深入学习微信平台的应用创建,如社交自动化(机器人)、移动互联网服务交付(小程序),或者公众信息服务(公众号)。特别是想要尝试引入AI能力到应用中的人士,文中介绍的内容非常有价值。 其他说明:文中提及的多个项目都涉及到了最新技术栈(如DeepSeek大模型),并且为不同层次的学习者提供从零开始的详细资料。对于那些想要迅速获得成果同时深入了解背后原理的人来说是个很好的起点。
pimpinella_3cd_01_0916
mellitz_3cd_01_0516
schube_3cd_01_0118
AB PLC例程代码项目案例 【备注】 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用!有问题请及时沟通交流。 2、适用人群:计算机相关专业(如计科、信息安全、数据科学与大数据技术、人工智能、通信、物联网、自动化、电子信息等)在校学生、专业老师或者企业员工下载使用。 3、用途:项目具有较高的学习借鉴价值,不仅适用于小白学习入门进阶。也可作为毕设项目、课程设计、大作业、初期项目立项演示等。 4、如果基础还行,或热爱钻研,亦可在此项目代码基础上进行修改添加,实现其他不同功能。 欢迎下载!欢迎交流学习!不清楚的可以私信问我!
AB PLC例程代码项目案例 【备注】 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用!有问题请及时沟通交流。 2、适用人群:计算机相关专业(如计科、信息安全、数据科学与大数据技术、人工智能、通信、物联网、自动化、电子信息等)在校学生、专业老师或者企业员工下载使用。 3、用途:项目具有较高的学习借鉴价值,不仅适用于小白学习入门进阶。也可作为毕设项目、课程设计、大作业、初期项目立项演示等。 4、如果基础还行,或热爱钻研,亦可在此项目代码基础上进行修改添加,实现其他不同功能。 欢迎下载!欢迎交流学习!不清楚的可以私信问我!
AB PLC例程代码项目案例 【备注】 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用!有问题请及时沟通交流。 2、适用人群:计算机相关专业(如计科、信息安全、数据科学与大数据技术、人工智能、通信、物联网、自动化、电子信息等)在校学生、专业老师或者企业员工下载使用。 3、用途:项目具有较高的学习借鉴价值,不仅适用于小白学习入门进阶。也可作为毕设项目、课程设计、大作业、初期项目立项演示等。 4、如果基础还行,或热爱钻研,亦可在此项目代码基础上进行修改添加,实现其他不同功能。 欢迎下载!欢迎交流学习!不清楚的可以私信问我!
智慧用电平台建设解决方案【28页】