读《构建之法》有感

第一章:概论

文中这样说:“一个好的软件,即使功能和同类软件区别不大,但却会让人感觉到非常好用。这就是软件的用户体验。用户体验和数据结构、算法没有直接的关系,但是很多非常成功的软件就赢在这个方面。”

我的问题是:怎样使得功能差不多的软件给用户以更好的用户体验?而这些用户体验又与数据结构、算法有怎样的联系呢?

我查了资料,有这些说法:

l  用户体验就是用户使用软件时给他的整体感受,而用户体验设计就是针对“用户体验”的设计。

l  要让用户有好的感觉,主要取决于以下三点:

   1)软件能满足需求;

   2)在1)的基础上,软件用起来很舒服;

   3)软件的价钱是合理的

l  用户体验设计需要考虑以下三方面:

   1)整体界面规划

   2)统一界面标准

   3)易用性设计

我觉得用户体验对于一个软件来说是很重要的,即使一个软件的程序结构良好,但用户体验很差,软件卖不出去,这样子的软件就面对不了最终用户。比如说,我们以前习惯把钱存在银行里头,但是现在有了余额宝,明明和银行功能是一样的,但是余额宝比起银行不仅收费低,存取方便,而且利息还高,所以大家都会愿意把钱存进余额宝里头。可见用户体验很重要。书上说用户体验与数据结构、算法没有直接的联系,是不是好的算法好的程序会让软件本身拥有更好修改的基础?可以更好的从整体去规划整个软件从而给用户更好的体验?

 

文中这样说:

“如果一架民用飞机上有需求,用户使用它的概率是百万分之一,你还要做这个功能么?你会选择:

  1. 根本不考虑
  2. 如果没时间实现这个功能,就算了
  3. 做了,但是不用告诉用户
  4. 做了,而且不厌其烦地告诉用户如何使用

你会如何选择呢?

谜底是—飞机的安全性能”

我的问题:民用飞机出事的概率是百万分之一,所以用到安全设备的概率是百万分之一,这个概率很小,但是这个需求要实现,而且越完善越好,这个需求就需要做,而且不厌其烦地告诉用户如何使用。但是飞机是不是还有别的功能,也有不是很重要的需求,使用它的概率也很小,就不一定每一次都要告诉用户如何使用?或者说不一定要做?

 

文中说:“IT专业的大学毕业生找工作时声称:我精通java,会用C++写‘Hello World’程序,我懂软件工程,我画了很多图,写了很多文档,最后得了很高的分数……这些同学是真的懂软件工程,是一个合格的软件工程师么?”

我觉得老师提的问题很对,得分很高确实不一定是合格的软件工程师,但是一个合格的软件工程师是怎样的呢?

我百度了一下,上头说的是,一个合格的软件工程师需要具备的是:

l  良好的编程能力

l  自觉的规范意识和团队精神

l  认识和运用数据库的能力

l  较强的英语阅读和写作能力

l  具有软件工程的概念

l  求知欲和进取心

一个合格的软件工程师应当具备以上特征,而不是简单得含糊其辞地说自己精通各种语言等等,而是应该具备应有的专业素养、思维习惯、编程能力。

 

第二章:个人技术和流程

文中提到的“我有银弹”误区:

“哎,你看我一通加班,就写好了程序,得了高分。也不用啥软件设计的原则,事先也不用需求说明说,也不用留什么文档,就搞定了!软件容易得很!”

反思我当时完成JAVAEE作业时,也是不管软件设计的原则,没有文档,没有测试,所有代码就是打出来,也不去考虑是否层次分明。希望我以后能够更好地理解与运用软件设计的流程。

 

第十六章 IT行业的创新

很喜欢这一章,觉得老师运用了很多实例,连接得非常紧密,引人思考~

迷思之四:创新者都是一马当先

文中提到:“其实,大部分成功的创新者都不是先行者,例如搜索引擎,Google是很晚才进入这个领域的。另外,Gmail、Google Calendar都不是第一个产品,但是,作为后来者的Gmail却在很短的时间内赶上并超越了先行者。”

我的问题:这些所谓后来者到底是凭借着什么能够赶上并超越先行者,成为领导者的?

于是,我对这些软件分别进行了百度:

阿密特·辛格尔(Amit Singhal)是 Google 搜索团队的负责人,揭示 Google,这个世界上最流行的搜索引擎在这几年的时间里是如何进化到这一步的。他总是愿意把 Google 搜索中的变化比作是在给半空中飞行的喷气式飞机更换引擎,比如 Google 正在不断改进自己的算法,对搜索结果的排名顺序进行调整;比如增加了更多种类的信息纳入到搜索结果中(图片、书籍、旅行);比如在用户还没有打完整个问题的时候就已经开始搜索他想要的答案。

由此观之,google一直在改进给用户用户想要的,而不是把自己的东西硬塞给用户。

 

迷思之五:要成为领域的专业,才能创新

文中提出的一个问题:“为什么领域的专家有时候没有领域外的创新者那么有创意?”

我的疑问:领域内的专家相对于非领域人士有着更多的固有优势,了解行业发展,熟悉业务,但是为什么经常没有非领域内人士的创意呢?

结合生活实际,我觉得领域内的专家是因为自己的某些过度自信而忽略了需要被改善的地方。作为专家,他们更着眼于革命性的进步,而不是类似小打小闹的完善性创新。就好比一个游戏厂商的游戏,作为玩家,我们在实际体验中发现很多需要进步的地方,然而游戏厂商却只关注游戏的画面提升,剧情的震撼人心。作为一款网游,添加好友只是一个很小的功能吧?但是它很重要,这能体现网游的本质,和朋友甚至毫无关系的陌生人互动。但因为重视游戏的巨大进步而忽略了这一小小功能,便是一个很严重的错误。同理,这个创新虽然很方便,很实用,但是业内的专家往往会忽略它,因为这不是革命性的进步,我们不需要它。IT行业已经发展了很多年,或许以后我们不能带来革命性的创新,但是我们不应该放过每一个能使它变得更完美的机会,哪怕它微不足道,但只要它提升了用户的体验,那就是一个值得称赞的创新。

 

以上就是我看《构建之法》所有的问题和看法,谢谢老师的耐心阅读~

 

posted @ 2018-03-17 19:27  卢琪琪  Views(171)  Comments(7Edit  收藏  举报