当前位置:380元网站建设 虎网站 > 建站百科 > 正文

不要过度设计你的网站

发布日期:2020-03-11
目的:防止设计中出现复杂的解决方案。

适用情形:适用于任何项目,所有大型的或复杂的系统和项目都应该采用该原则。

应用方式:让同同行来检查解决方案是否好理解,抵制过度设计的强烈欲望。

应用理由:复杂的解决方案实施成本高,而且会产生大量长期成本。要点:过度复杂的系统会限制扩展能力。简单的系统更容易维护和扩展,且成本更低。

维基百科解释说,过度设计分为两大类。一类是指设计与实现超出了有用需求的产品。出于完整性的考虑,我们只简单地讨论一下这个问题。相对于第二类问题来说,这类问题对可扩展性的影响较小。过度设计的另一类问题指过于复杂的产品。如前所述,我们最关心的是第二类问题对可扩展性的影响。不过,还是先来了解一下第一个问题吧。
 
要解释过度设计的第一类问题,即超出产品有用需求的问题,就要先搞清楚楚“有用的”这个术语的含义,这个术语在这里表示的只是“能够伸用”。例如。为家庭住房设计一种空调,能够在室外温度为0开时把整个房子的温度加热到300华氏度,这毫无意义,纯属浪费,我们只需要一个能够在室外温度为-20华氏度时把房子加热到舒适温度的产品。这种过度设计会产生过度的成本,其中开发的成本会更高,实施该方案的硬件和软件成本也会更高。如果研发这种过度设计系统的时间比研发有用系统的时间更长,还可能拖延产品的发布,对公司造成进一步的影响。成本高,利润就低。研发时间长,收入或收益就会被延迟,所有这些成本都会影响到利益相关者。范围蔓延,或者最初的产品定义和最初的产品发布之间的范围差异,是过度设计的一种表现。

不要过度设计你的网站

说个更接近我们工作的例子,是开发一个员工打卡系统,这个系统能够处理的员工数量是整个地球上人数的100倍。在这个软件的使用期限内,地球上的人口升至100倍的可能性是微乎其微的,而所有人都为一家公司工作的可能性则更小。我们当然想让构建的系统满足客户需求但也不想浪费时间来实现和部署远远超出需求的系统。

过度设计的第二类表现是使系统过度复杂,或者用复杂的方式来实现它。简而言之,就是要花费过大的力气去完成一项工作,或者是让用户花费过大的力气去完成一项任务,或者是让程序员花费过大的力气去理解一个功能。让我们来逐一分析过度复杂的系统的这三种情况。

什么是花费过大的力气去完成一项工作呢?现实世界有最简单的例子。假设你让某人去杂货店买东西,你告诉他,店里面的所有商品都拿一个,排队结账时给你打电话。等他打电话给你时,你再告诉他到底想要哪几个,让他从所拿的无数篮商品中选出来,然后把其他商品都倒在地上。你一定会说:“别开玩笑了。”可是,你在自己的代码中用过select(大)schema_nane.tab1e_name这样的SQL语句,只是为了从返回的集合中找出自己想要的结果吗?我们这个杂货店的例子,和上述的se1ect(*)正是异曲同工。在你的代码中,有几个条件语句是处理个别情况的,它们是按照什么顺序执行的?是不是最可能发生的情况最先执行?你是不是经常刚查询完一个结果,又重复查询一次?是不是经常刚显示了HML面,这种情况随处可见,却又经常被忽视。

什么是让一位用户花费过大的力气去完成一项任务呢?答案非常简单。在许多情况下,少就是多。为追求系统的灵活性,我们总是想给它硬加上尽可能多的奇怪功能。但生活的情趣并不总在于多种多样。许多时候,用户只是想无干扰地尽可能快地从A到达B。如果你的市场中有99%的用户不需要把日志文件存成pdf文件,那么就不要构建一个提示框询问他们是否想把日志文件保存成pdf文件。如果你的用户想把.wav文件转换成MP3文件,那么他们已经不在乎损失精度了,所以不必再提示他们转换成无损压缩的FLAC文件,那样只会干扰他们。

最后一种情况,就是软件复杂得让其他程序员难以理解。创建复杂的代码让他人难以理解曾经非常流行(还有过比赛)。有时,代码写得复杂,是为了让它比一般程序员所开发的代码运行更快。而更多的情况是代码的复杂度(就其理解的难度而言)成了程序员才华的象征,或者说是功夫高低的象征。那些开发的代码能让做代码检查的高级开发人员欲苦无泪的人反而颇受推崇。复杂度成了智慧的牢笼,编程极客们会在公司内部争强好胜。对于乐此不疲的人来说,这是很好的比赛,但对于公司和股东来说,则要为一场无人关心的牢笼大赛买单。对于那些仍然沉浸于这场极客盛宴的人,如果不想损害利益相关者的利益,又想真刀真枪地拼一场,那建议你参加国际混淆C代码竞赛。

我们都应该努力去写让每个人都能理解的代码。衡量一个伟大程序员的真正标准,是他能够多快把一个复杂的问题简化,多快能开发出一个既容易理解,又容易维护的解决方案。容易执行的解决方案意味着一般程序员就可以快速地掌握系统,为它提供支持。容易理解的解决方案则意味着在查找问题时能够甲

方式把系统恢复到正常工作状态。容易执行的解决方案可以提高公司和解决方案的可扩展性。

要测试系统是否太复杂,一个很好的方法是让负责解决复杂问题的程序员把他的解决方案陈述给公司内的一组程序员。这组程序员应该代表公司内不同的编码水平,不同的工作年限(加入这一条,是因为可能有些有经验的程序员在公司的工作经验不多)。要通过这一测试,需要这组程序员中的每一位都能够轻松理解该解决方案,能够在无帮助的情况下向他人描述它,而不只是知道它。如果这组程序员中的任何一位不能理解该解决方案,那么就要小组讨论该系统是不是过度复杂了。

过度的网站设计是可扩展性的一个敌人。开发一个超出有用需求的解决方案,既浪费金钱又浪费时间。此外,还可能进一步步浪费处理资源,增加扩展成本,限制系统的整体扩展能力(即系统能被扩展到什么程度)。构建过度复杂的解决方案会造成类似的后果。运行吃力的系统会增加成本,限制最终发展规模。让用户用起来吃力的系统,会放慢吸引客户的速度,从而限制业务增长的速度。太复杂以至于难以理解的系统,则会扼制司的生产力,让你无从增加程序员,或者难以给系统增加功能。

马尔代夫瓦宾旅游 马尔代夫各岛的排名?

    马尔代夫各岛的排名? 我来回答你的问题,根据国家地理杂志发布的数据显示。太平洋岛国马尔代夫各岛排名第一的是马累岛,面积为五十六平方公里,常驻人口为五千六百人。 为什么那么多人都喜欢去马尔代夫度假? 顶级,那里的海确实无敌干净! 再就是人少,度假我认为还是要远离人群。 最后也是很重要的,服务各方面配套也很棒! 马尔代夫有哪些岛适合一个人前往? 首先非常感谢在这里能为你解答这个问题,让我带领你们一...

       网站开发独播衍生市场 我想大家都知道,从《汉字英雄2》、《爸爸去哪儿》第二季,到《中国好声音》第三季、《奔跑吧兄弟》,卫视热门综艺节目正日渐成为各大视频网站争抢的高地。艺恩咨询的统计数据显示,在2014年的热门季播综艺节目中,七成以上的节目都采取了独播模式。但拥有独播资源不意味着旱涝保收,视频网站也在开发其衍生节目,实现为网站拉人气、吸广告和打品牌的目的。   某视频网站市场部相关负责人分析,受限娱令及一剧两星等政策的...

       作为一个网站首要满足的设计目标是什么 企业为了更好的推广自己的产品而建立自己的网站,在网站上通过文字、图片、视频等多种方式介绍和推广。不同的行业对网站的侧核心是不同的,对于一传统企业来说,目标就是推广自己的产品,对于学校类的网站来说,更多的是发表一些通知新闻,对于做营销型的网站来说,支付不可少,网站功能不同,侧重的设计也有很大的区别,只有符合行业特色的设计网站,最能表现网站的价值。那么作为一个网站首要满足的设计目标是什么? 作为一个网...

       深圳福田天之泰园林绿化和虎网站签下网站建设合同 天之泰选用虎网站企业商务型网站案例,其功能具备实用型所有配置外、特别值得关注的是增设了SEO深度优化,不管是内页还是标题都能够独立和个性化设置关键词和长尾词,更适合进行全站seo优化。天之泰是经深圳市福田区工商局审核的有资质公司,统一社会信用代码:914403005800778718。同时经国家工信部和广东省通信管理局审核通过ICP备案;备案号:粤ICP备16124036号。天之泰处于深圳市福田区...

       企业网站设计需要注意的十大事项 随着互联网的发展,企业都进行官网的建设,在网络这个大市场获得更高的竞争力,那么在众多的网站中如何脱颖而出呢?如何建设一个优秀的网站呢?在网站设计中需要注意哪些问题呢?一起来看一下吧!在网站的设计过程中应该避免哪些问题呢? 一、网站设计没有主题颜色 一个好的网站设计师应该知道,颜色不能滥用,最多使用三个主要颜色和一个坚实的背景。对于背景的选择,也是要注意选择的,选择一个有质感的背景,会让你的...

       广州虎网网站建设教你处理好网站的安全问题 一、网站FTP安全:   ftp就是超文件传输,是用来对网站的文件进行上传和下载,下载FTP工具要到正规的下载网站去下载,比如:太平洋下载网站,360等一些正规的网站下载,不要去一些不安全的网站下载,因为有可能会在FTP工具里面插入一些木马,导致你FTP帐号和密码泄露,ftp的密码要设置成复杂的密码,不要弄一些比较简单的密码,简单的密码很容易被别人破解,经常修改一下密码,可以防止密码泄露导致影响网...

最新模板
少儿英语培训机构网站建设 培训公司网站建设
成人自考网站建设 成人培训网站制作设计版面
智能家居摆设设计网站建设 智能家居装修企业网站建设
铜螺母,铜螺丝,螺栓,螺钉工厂网站建设
废气处理设备,如活性炭吸附箱、RTO蓄热式氧化处理设备、光氧等离子复合设备 低温等离子设备 光氧催化设备等网企业网站建设
图文阅读