天天看点

大师品软件-软件之痛与应对之道-摘抄

计算机软件的安全性(木马和病毒)、计算机软件的可靠性(死机和崩溃)、计算机软件的易用性(简洁和易用)。

作为软件开发人员应该时刻谨记:你的用户不是你自己。因此要始终站在用户的角度来开发自己的软件。

程序员、架构师和项目经理不能很好的理解客户的需求导致软件质量不可靠。开发人员往往没有弄清客户的问题

因此解决错问题并添加一些毫无用处的功能。一个毫无用处功能、难以操作某个功能会浪费用户时间;将10亿个用户的时间每天加起来那是多大的一个数字。因此,程序的易用性和其功能同样是非常重要的。

警句:如果自己没有更好的想法就别抱怨。

在计算机早期时代计算资源极其宝贵(相对用户的时间);早期时代计算机用户主要是程序员、科研人员等专业素质的人群。而现在计算机硬件的飞速发展使得计算资源相对用户时间已经非常廉价,另外,计算机用户已经非常大众化从几岁的小孩到八九十岁的老人,因此计算机软件的易用性显得非常重要。

警句:认真了解用户,用户并不是您自己;Garbage In, Garbage Out; Always cut the cards;

程序员往往从自己的角度出发来看待客户的需求,认为自己很了解客户。

1.他们往往把程序的控制能力看得比易用性更加重要,并集中精力制造复杂的程序,而不是让复杂的事情简单化,容易的事情更加简单。

2.强迫用户理解程序的内部工作机制,而不是调整自己的思维来适应客户的思维方式。

例子:弹出对话框的滥用,无数需要用户确认的点击。过度使用确认机制已经使得它毫无意义。

因此程序的用户界面应该按照用户的思维方式来设计,真正优秀的设计是不需要用户总是去确认的,如果需要确认说明在GUI设计的某个部分一定存在问题。

 撤销操作是一个伟大的发明甚至不亚于发明鼠标,人类使用新事物需要不断的犯错误和不断的尝试,而撤销保证了这种错误不会带来严重的后果。

Platt法则:每个软件项目所花费的时间是您最佳估计时间的三倍,即使您已经应用了这个法则。

软件观念革命-交互设计精髓“About Face:The Essential of User Interface Design”

在产品发布以前可以先将版本在内部的真实用户进行测试和试用。

Web程序员应该深入理解Web的目标、工作机制和功能。

万维网和Internet是两个完全不同的东西,Internet是通用数据网络,它承载着各种数据,负责将它们从一个智能终端传送到世界上的另一智能终端。万维网则是Internet上传输的一种特定类型的数据,它包含了人类通过类似Internet Explorer或Firefox的浏览器可以阅读的页面。基于Internet构建万维网是一个伟大的发明。

使用Web能够屏蔽物理和时间上的隔离;

数据所有者利用Internet能快速访问数据因而降低已有业务流程的成本。

Web的工作机制:Web最初设计用来传送包含文字和图片的静态页面(在用户请求页面之前已经通过文字处理器制作好)。用户在浏览器输入某个Web页面的地址或点击超链接请求某个页面,该页面所在服务器从硬盘上读取页面,并将其发送给用户,服务器不对用户请求做其他任何额外的处理,只是简单的查找并返回作者早已写好的文章。

静态使用方式代表了一种人与人之间的沟通。不过这种方式大大节约了服务成本。

动态页面不同,动态页面更多的代表了人与机器的交互。

网站首页能够在极短时间内让用户明白提供的主题和服务;优秀网站应将用户需要完成的工作降到最少。

Don't Make Me Think一本很好的Web设计的书籍。

可以用平均点击次数和时间达到用户需要的服务,来评价简单易用性。

最好为用户量身定制一个默认的服务选项,Google中的请求主页的默认语言就会按照请求者的地方IP来确定。

网站应该都设置一个收集客户反馈的超链接,以广泛收集客户评价信息作出不断的改进。

网络在带来便利的同时也带来很多安全隐患:跨时间限制、跨地域限制的破坏,高级破坏技术的快速传播....

密码验证手段:客户端发送用户名,服务器收到后生成一个随机数发送回客户端,客户端和服务器通过密码和该随机数做运算(服务器也做同样的运算),来验证密码的有效性(有效的解决了真实密码被截获的问题)。

Windows和其他操作系统问题。

google是一个很好的软件。