程序猿的简约之道

前言:

  这几天经过不断的洗脑与学习,作为一个码农也算是对产品的设计有了一点点的想法。这里就忍不住的记录一下,仅仅抒发一下自己澎湃的心情。

  最近看了本书《简约至上》,书还没看完,就在Infoq上看到了《猎豹移动的工程师文化》这一视频。他们都有一个共性,就是简约

  简约至上奉承一切的产品设计都要足够简单,符合用户的使用习惯,过多的设计可能导致产品易用性的下降。而猎豹的清理大师国际版也是如此,从一开始设计到最后上线都是四个按钮,不是因为做不出其他的功能,而是把最主要的功能展现给用户,让界面看起来不那么杂乱。

  有些人可能会觉得我作为一个后台程序员或者服务器工程师,或者是网络安全专家,无需了解什么产品设计,其实不然。你设计的每一个类,每一个方法,都应该足够的简单。不是说功能的单一,而是通过精心的设计隐藏掉复杂的实现,展现给用户或者使用者的是一个最简单的接口或者外观。

  首先说简约:

  少即是多这个道理,在视频中进行了阐述,以iphone为例,仅仅一个按钮就实现了很多复杂的功能。像以前的诺基亚全键盘的手机,做一些功能的设计通过键盘敲击就可以实现,而现在一个按钮就要做到很多复杂的事情是需要花费更多的时间和精力来设计,但是展现给用户的却是简单的一个按钮。

  再谈用户需求

  无论是做产品还是项目,即便是做科研,最终的目的都是为了使用。落不了地的技术都是空谈,而为了落地使用就需要先了解需求。

  软件业外除了自己做产品做项目自己使用外,其他的基本都是需求者与产品开发者分离,比如外包或者专们做软件的公司。这样就很容易导致需求者与设计者与开发者的想法不一致,最终导致最终开发出来的产品,设计人员受不了,使用者更是诧异!这是神马?

  传统的瀑布模型软件工程,通过详细的阶段设计也许不会造成太大的诧异。但是现在的公司估计很少有按照这种标准走下来的,奉行敏捷开发,各种迭代周期,与用户或者设计者沟通欠缺,最终导致产品不断的重新设计开发。

  究其原因,就是因为开发者总是按照自己的想法来设计软件。

  我认为用户可能想要这个!我认为用户操作的时候应该这样!我认为用户必须需要这个功能!

  总结起来,都是开发者自己认为!这也不是软件开发人员的错,毕竟我们也只是想做一个完美的产品。

  功能的强大带来的是易用性的忽略。

  因此,首先了解用户的业务需求,了解问题的本质!再设想如果我遇到这个问题,我想要怎么解决。再去设计软件开发,效果也就不同了。

  基于领域驱动的模型设计也是如此,以业务导向驱动开发,最终会给用户带来一个业务上的软件,而不是复杂功能拼凑的集合体。

  重视用户的需求,再去设计软件,并且考虑到易用性以及操作习惯,才是开发者需要注意的地方。

  简约四策略

  书中也为我们提供了几种简约的方法:删除、组织、隐藏、转移。

  删除:

  即要删除掉一些不重要的功能,这些功能的存在也许是开发者为了考虑周到而设计。但是使用者根本不会去使用的功能,这些功能的存在简直就是浪费开发者的生命,也是浪费公司维护的成本。如果一个软件有很多复杂的功能,面向用户群也很多,那么可以综合的考虑,几种公用的重要功能进行详细的设计,而一些锦上添花的功能就随意处理了。

  组织:

  一个网站或者APP如果界面杂乱,用户进去都不知道做什么,那就是设计开发的失败了。设计者应该把一个类型或者一个业务领域的功能组织起来,进行分类,这样不同的操作场景只需要使用固定的区域,不会造成使用的混乱。

  隐藏:

  有时候一些不必要的功能隐藏掉,在必要的时候,可以通过复杂的操作展现给用户也是可以的。毕竟这些操作都是极少数情况下才会使用的。比如微信界面从一开始到现在都没怎么变过,但是增添了很多复杂的功能都是隐藏在主页下面的,可能你点击+,才会看到这些功能。如果每一次上线的新工呢过都往主页上放,那么这个产品也许主页往下拉一天也拉不完了。

  转移:

  简单的说,就是一些功能的转移。比如余额宝或者当面付,后台需要很多复杂的校验以及计算。但是需要用户操作的就是简单的密码确认而已,这种功能由前端转移到后台也是一种设计的转移。应该让用户尽可能少的去操作,但是关键的动作还需要用户感觉到有控制感!而不是被软件控制。

  这里也推荐一下蚂蚁金服的程立做的演讲,收获很多!他在视频中说过,我们尽可能少的让用户去做一些事情,因此用户根本不应该去关心这些。

  功能的转移就像动物的迁徙,从一个地方转移到另一个地方,不是删除或者不要这个功能,而是转移到别处进行处理。

  最后单一与极致

  这句话取自猎豹的工程师文化视频,单一与极致,意味着功能的简约,但却做到极致。要不不做,要不就做到极致。这是一种做事的态度吧!

  就像我们写软件,就应该写出来具有可用性与可扩展性的代码。可用性意味着,不能写完一段代码,要不就全是BUG。缺乏可扩展性意味着,有了类似的应用场景,却发现根本无法二次使用。

  如果遇到这种情况,也推荐不要重新再去写一段新的代码,要重构!重构不是说产品上线了,或者项目开发结束了,再回去把代码架构翻新一边,而是开发的过程中,看到两段相似的代码,就提取出来进行整合(这也是infoq上面学到的)。当然,前一阵看一个博友进行代码的重构,结果代码量少了很多,有些公司按照代码量考量一些程序猿的工作量,这个......此处省略一万字。

  最后呢,感谢公司知识网站让我接触到产品设计的书籍,也感谢infoq,让我收获良多。

时间: 2024-10-13 19:14:59

程序猿的简约之道的相关文章

高效程序猿的45个习惯:敏捷开发修炼之道之主题建议翻译1-10

高效程序猿的45个习惯:敏捷开发修炼之道1-10 阅读本书时,总共同拥有45个建议,每一个建议有一个主题,而且每一个建议有2段话,第一段话是一般人的思维,之后作者对这样的思维现象进行剖析,最后得出作者自己的结论,第二段话就是作者的观点. 本次翻译,主要分为5篇来完毕,前四篇每篇为10个建议,最后一个为5个建议.每次翻译的中文在上面,原版英文在最以下展示,已方便大家的对比学习. 因为个人能力有限,如有翻译不恰当之处,还请大家多多不吝赐教,给我留言,给出建议,我会更新文章,让看到文章的人员有所裨益.

读书笔记 -《高效程序猿的45个习惯-敏捷开发修炼之道》

<高效程序猿的45个习惯-敏捷开发修炼之道> 一本2010年出版的书,当时敏捷还仅仅是在国外開始流行,像我这样的菜鸟级根本听都没听过.这次通读了这本书.受益良多.回想自己的职业生涯,多是漫无目的的瞎混,为了生活而生活而已. 通过这本书才算对敏捷有了初步的了解,并有意向敏捷进行实践.愿此文可结识很多其它敏捷的先行者.带领我进入敏捷的世界. 第一章. 敏捷--高效软件开发之道 名言:  无论路走了多远.错了就要又一次返回   -- 土耳其谚语 敏捷开发宣言  个体和交互 > 过程和工具 可工

Java程序猿修炼之道 之 Logging(3/3) - 怎么分析Log

1. 说明 作为一个程序猿我们常常要做一件事情:获取某个Log文件,从当中找出自己想要的信息. 本文总结了我在工作中使用了哪些工具来分析Log文件获取我想要的信息,我近期几年的工作环境都是server在Linux上,工作机是Windows, 所以我用的工具主要是Linux上的一些命令行工具,当然他们在Windows上也能够用,详细看以下的工具篇. 先声明,我仅仅是很普通的Linux用户,所以假设有些Linux命令或者工具用的不高效,请大家教育我. 题外话:我的观点是作为一个Java程序猿,仅仅须

《程序猿修炼之道》收获整理(一)

学会管理自己的知识资产 程序猿的知识资产 程序猿知道的关于计算技术和他们所工作的应用领域的所有事实.以及他们的所有经验视为他们的知识资产(Knowledge Portfolios) 经营目标 每年至少学习一种新语言.拓宽自己解决这个问题的思维 每季度阅读一本技术书籍 学习自己感兴趣的课程,去大学蹭课.去网上学习 參加本地组织,博客.论坛等.与用户或同行业人员交流 多尝试新鲜的东西.系统.软件等.程序猿要能折腾 上网,学会检索信息 多交流.与用户.小白.大牛等交流,促进思想的传播和灵感的触碰

屌丝程序猿赚钱之道 之投资续

最近因为出差等原因,更新较慢. 本来想发一篇关于淘宝的文章,只是感觉前篇投资讲得不是非常透彻,所以想写一个续篇. 前篇发出来后,收到了不少人的反馈,当中褒扬者有之,不屑者有之,贬踩者有之. 有的人认为我写的比較0基础,这个我也承认,假设大家有更好的投资渠道和建议,也希望可以留言交流,我写的确实是0基础阶段的,只是我的标题就已经表明了,我是面向屌丝程序猿的,当然我自己就是一个屌丝程序猿. 有的人对于我的后面关于白富美的言辞认为不爽,这个仅仅是调侃之词,假设你不喜欢,我表示不抱歉. 言归正传,前面说

提高情商的好书推荐 (程序猿不仅要智商也要情商)

程序猿不仅要智商也要情商 上班与同事与领导会让很多IQ爆表 但EQ(情商)渣渣的童鞋很痛苦, 同时你想有好的发展未来就要懂得一些... 希望通过这篇博文能对你有所帮助与进步 同时记住不忘初心!!!! 有哪些可以提高你情商的书(新增书作者) 首先,你要挑对适合你的书! 赶紧把那些什么之类二十句之类的扔掉,别再看朋友圈转发的那些鸡汤! 卡内基什么的我还是保留意见.来看两句:人性的弱点之十八:不尊重他人的意见 反之:对别人的意见表示尊重,不管是对是错 人性的弱点之十九:不敢承认自己的错误 反之:如果你

读一个程序猿的生命周期感想

读了<一个程序猿的生命周期>的几篇文章,让我深深感觉到当今社会作为程序员真心不容易,科技的快速发展,本来就给这个行业带来前所未有的工作压力,再加上现在程序员数量的增多,更加让程序员对毕业后的就业问题感到头疼.所以面对这种情况,我们不但要努力提高自己的专业能力,还要积极培养团队合作能力和精神. 那该怎么做才是对的,而这些,恰恰是我读过之后的一些感悟,一个人的确可以做很多事情,但事情有轻重缓急,所以加入一个团队,你得知道你自己的实力,你能做多少,而不是一味的逞强,从而是整个团队陷入混乱,效率低下,

《裸辞的程序猿漂流记二十》——备胎的自我修养一

首先向广大的猿们,表示深深的歉意:楼主由于有事耽搁了,迟来的更新.. 不知道为神马,今天感觉好开心,和妹子一起去麦当劳了,感觉到现在心都扑通扑通的跳啊!!!详细见后节.. 其次感谢广大围观的猿友们,小猿在此表示深深的敬意:感谢soledadzz 给博主上榜的机会,感谢积极评论的猿友们的大力支持,以致于让博主有更博的动力.. 下面,回到正文,首先打开QQ音乐播放器,输入"陈奕迅 时光隧道",Music起,CSDN 貌似不可以放点Music..要是能加个音乐播放器就酷毙了:来点Music

要嫁就嫁程序猿

一. 程序猿问科比:“你为什么这么成功? ”科比:“你知道洛杉矶凌晨四点是什么样子吗? ”程序猿:“知道,一般那个时候我还在写代码,怎么了?”科比:“额…….” 二. 女神:你能让这个论坛的人都吵起来,我今晚就跟你走.程序猿:PHP语言是最好的语言!论坛炸锅了,各种吵架.女神:服了你了,我们走吧,你想干啥都行.程序猿:今天不行,我一定要说服他们,PHP语言是最好的语言. 三. 我是一个苦b的程序员,今晚加班到快通宵了,困得快睁不开眼了,女上司很关心,问我要不要吃宵夜.我没好气地说,宵夜就算了,能