精华内容
下载资源
问答
  • 软件测试中过度设计的那些事儿

    千次阅读 2013-06-30 01:22:05
    在软件测试行业同样也会存在过度测试的情况,今天我就班门弄斧一下说说我对过度测试的理解。 很详细的需求文档会导致维护成本剧增 我所经历过的项目有过几种很有代表性的PRD(product requirement document的...

    过犹不及,这是古代《论语》中的一个成语,做得过了就好比没有做够一样。在软件测试行业中同样也会存在过度测试的情况,今天我就班门弄斧一下说说我对过度测试的理解。

    很详细的需求文档会导致维护成本剧增

    我所经历过的项目中有过几种很有代表性的PRD(product requirement document的简称,即产品需求文档):1. 很详细的文档,详细到会定义一个链接是新开一个tab还是在原tab打开,告诉你你想知道的一切信息; 2. 包含了产品主要功能流程的文档,会以流程图辅助说明,不会太细化,细节性的内容更多要通过交流和讨论获取; 3. 一封邮件说明或直接几个人讨论决定。

    特别对于互联网项目,需求变更频繁,需求信息巨多,对于PM(产品经理)来说,完成一篇很详细的文档需要的时间不说,每次的需求变更或评审后的需求漏洞都需要更新到PRD中,对于测试人员而言,需要重新阅读PRD中改动的部分,而且详细的需求就需要更详细的用例来覆盖,是否有必要这么详细的文档呢?对于互联网项目能保持一年不大改都是少有的了,我们是否有必要考虑下不为文档所累呢。

    详细的测试用例会拖累我们

    以前我的观点一直都是秉承着一个基准来要求我自己和团队其他人来写用例:让不懂业务的人也能顺手拈来执行用例。而在后来的一段时间,用例维护起来竟是如此头疼,每次更新详细的测试步骤和结果都需要大量的时间,而且发现项目中很少有让一个不熟悉业务的人来执行这些用例的时候,即便是新人来了看着用例仍然比较迷惑,仍然会多次询问详细的业务,发现还是PRD看着更系统更有逻辑条例,能更快的了解业务内容。毕竟看着用例,我们仿佛执行了40,50条用例仍然在一个功能上,根本不能跟其他功能串起来,对于业务的熟悉是多大的阻碍啊。我觉得从宏观到微观再到宏观才是正确之道。而对于测试技能则更需要导师指导,并不能从用例中掌握太多东西,除了考虑问题的周密性外。

    之前在维护用例的目录时也有过度维护的情况,比如有AB两个页面都有一个子功能C,每次回归测试时需要对AB两个页面上功能进行回归,避免遗漏,就把C对于的用例都copy到AB两个目录下了,那么每次更新维护时也都需要维护多份,重复的工作可想而知。

    如何让用例不拖累我们呢?

    标题能说明的就无需步骤和结果,内容太多实在是放不下的时候再有详细步骤和结果说明,可以以附件形式上传excel表格的多条用例,不要为了规范而规范,而且用例多是给测试执行人员使用的,不是为了让新人了解业务而存在的。目录结果过于臃肿的再优化,比如C有专门的目录存放用例,AB下建个目录仅说明有C这项功能,好比是linux下的软链接,原来那种方式连硬链接都不如,它不能同步更新(PS.我们使用的是QC管理用例)。

    过度设计的用例会降低我们的效率

    你是否遇到过这样的情况,比如有三个输入框,但是没有很强的逻辑关联,只不过他们是必填项决定着是否能成功提交,如果设计出8个case来覆盖是必填项这个条件才够放心的话,对于有更多的输入框时我们是否会崩溃掉呢?

    另外一种情况,比如需要调用第三方分享,就说微博吧,我们是否需要覆盖含有特殊字符的文字内容能否成功分享,超长文本内容能否成功分享?

    上面这两种很显然是过度设计,我们完全没有必要为了这类等价类边界值的case用判定表方式来完成,像这类型很简单的页面控件,应该编写好统一的测试用例集,不同的也就是字符长度限制了。我们也没有必要花心思来测试第三方软件。当然工作中可能还有很多类似这样过度设计的案例,工作经验比较足的人都能从过往中总结出我们更有效的测试思路。

    过度回归测试会导致测试周期延长

    什么叫过度回归测试呢?我总结成两点:1. 测试过程中环境的不稳定性导致之前测试结果的不可信赖,刚刚还好好的地方又出现问题了,又得回过头来跑一遍原来的用例,这样反复何时才是个头啊?! 2. 回归测试时我们总是要善于判断哪些功能需要回归,如果不想漏掉任何一个功能会导致测试周期严重延长,也就需要全部回归。

    第一点解决好了测试环境的稳定性就可以避免,在测试每一轮次过程中保持代码不随意更新,数据库不任意更改不删除插入数据,各种服务不任意重启,让每个case运行结果都是可信的,那么会节省我们很多时间。

    而回归测试时,我们只要判断好软件功能间是否有依赖,内容就明确了。

    1. 有关输入:这些功能会不会处理同样的输入??

    2. 有关输出:这些功能会不会在用于界面上显示在同一个区域?会产生同一个输出吗?

    3. 有关数据:是否会操作同样的数据?是读取还是修改?

    以上只要有一个答案是肯定的,那必然有依赖,就需要回归一下。

    过度自动化会让我们力不从心

    我经历过以下两种情况:1. 我们有时候为了盲目追求覆盖率,会对一些简单的基于页面层面的case实现自动化,而这些内容适合自动化吗?2. 有些自动化case种都是基于某个前提下完成的(比如登陆),而为了追求case间独立性,每一条都实现了该前提(登陆),是否属于过度自动化呢?

    如果页面改版,登陆功能重设计,对于代码的改动量可想而知,我们需要找出那些频繁地被拿来手动执行的用例,属于业务核心的用例进行自动化开发,而且我们完全可以在测试方法之外额外实现一个方法来实现登陆,只需要以下的所有测试方法都有异常捕获并且在该方法运行成功之后才执行。



    展开全文
  • 规则 - 避免过度设计

    千次阅读 2018-08-24 08:16:32
    内容:在设计中要警惕复杂的解决方案 场景:适用于任何项目,而且应在所有大型、复杂系统或项目的设计过程中使用 用法:通过测试同时是否能够轻松理解解决方案,来验证是否存在过度设计 原因:复杂的解决方案实施...

    内容:在设计中要警惕复杂的解决方案

    场景:适用于任何项目,而且应在所有大型、复杂系统或项目的设计过程中使用

    用法:通过测试同时是否能够轻松理解解决方案,来验证是否存在过度设计

    原因:复杂的解决方案实施成本过高,而且长期的维护费用昂贵

    要点:过于复杂的系统限制了可扩展性。简单的系统易维护、易扩展且成本低

     

    过度设计有两大类,一类是产品的设计和实施超过了实际的需求;第二类是完成的产品过于复杂。

     

    第一类的过度设计的例子是:

    select * from table;

    明明只需要table中两列的数据,我们却非要用 * ,这是过度设计

     

    第二类过度设计的例子是:

    我们找了一个高级开发人员写代码,结果这位兄弟写的代码只有他自己能看懂。

    然后在这位兄弟离职后,其代码的维护只能删除掉重写

     

    现实中常用的解决方法:

    将你做的解决方案向其他没接触过的人描述,看看他是否能轻易理解。如果他听完之后可以轻松的接手维护,那么你的方案是非常棒的。当然不排除你有煽动他人的能力。

     

    这个原则是强调适中的原则,最适合的才是最好的,性能最高的和最便宜的也只是一种选项而已。在这个原则面前,没有固定的标准,要根据实际情况确定什么是最适合的。

    展开全文
  • 不要过度设计

    千次阅读 2012-07-09 12:37:38
    高扩展性网站的50条原则》第1章化简方程,本章...本节为大家介绍原则1:不要过度设计。   第1章 化简方程 在我们的学习或工作,都曾遇到过这样的情况:死盯着一个复杂的问题不放,以至于最后丧失了希望。我们应

    高扩展性网站的50条原则》第1章化简方程,本章如何把大的架构问题分拆成小问题,用较少的工作实现同样的结果。在很多案例中,该方法都减少了(而不是增加了)解决问题所必需的工作量,简化了架构和解决方案,最终得到了更具可扩展性的解决方案或平台。本节为大家介绍原则1:不要过度设计。

     

    第1章 化简方程

    在我们的学习或工作中,都曾遇到过这样的情况:死盯着一个复杂的问题不放,以至于最后丧失了希望。我们应该从何处入手?如何在预定的时间内解决问题?或者说得极端一些,如何在有生之年解决这个问题?要做的事情太多了,这个问题太过棘手,是不能解决的,事实如此,就此罢手吧。游戏结束了……

    等等,不要丧失希望。深呼吸,想想你的高中或者大学数学老师。就像解数学题,把大方程化简成易于计算的小方程一样,如果你遇到的是棘手的大型架构问题,那么可以把大问题分拆成小问题,把小问题分拆成更小的问题,直到这些问题可以轻易解决为止。

    我们的观点是,任何大问题,只要分拆方法正确,都不过是一系列有待解决的小问题的集合。这一章介绍的就是如何把大的架构问题分拆成小问题,用较少的工作实现同样的结果。在很多案例中,该方法都减少了(而不是增加了)解决问题所必需的工作量,简化了架构和解决方案,最终得到了更具可扩展性的解决方案或平台。

    本书各章所介绍的原则篇幅不一,复杂度也不同。有些普适的原则,适用于一个设计的多个方面。而有些原则只适合特定系统。

    1.1 原则1:不要过度设计

    目的:防止设计中出现复杂的解决方案。

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

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

    应用理由:复杂的解决方案实施成本高,而且会产生大量长期成本。

    要点:过度复杂的系统会限制扩展能力。简单的系统更容易维护和扩展,且成本更低。

    维基百科解释说,过度设计分为两大类[1]。一类是指设计与实现超出了有用需求的产品。出于完整性的考虑,我们只简单地讨论一下这个问题。相对于第二类问题来说,这类问题对可扩展性的影响较小。过度设计的另一类问题指过于复杂的产品。如前所述,我们最关心的是第二类问题对可扩展性的影响。不过,还是先来了解一下第一个问题吧。

    要解释过度设计的第一类问题,即超出产品有用需求的问题,就要先搞清楚"有用的"这个术语的含义,这个术语在这里表示的只是"能够使用"。例如,为家庭住房设计一种空调,能够在室外温度为0开时把整个房子的温度加热到300华氏度,这毫无意义,纯属浪费,我们只需要一个能够在室外温度为 20华氏度时把房子加热到舒适温度的产品。这种过度设计会产生过度的成本,其中开发的成本会更高,实施该方案的硬件和软件成本也会更高。如果研发这种过度设计系统的时间比研发有用系统的时间更长,还可能拖延产品的发布,对公司造成进一步的影响。成本高,利润就低。研发时间长,收入或收益就会被延迟,所有这些成本都会影响到利益相关者。范围蔓延,或者最初的产品定义和最初的产品发布之间的范围差异,是过度设计的一种表现。

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

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

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

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

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

    我们都应该努力去写让每个人都能理解的代码。衡量一个伟大程序员的真正标准,是他能够多快把一个复杂的问题简化(见原则3),多快能开发出一个既容易理解,又容易维护的解决方案。容易执行的解决方案意味着一般程序员就可以快速地掌握系统,为它提供支持。容易理解的解决方案则意味着在查找问题时能够更快地发现问题,从而以更快的方式把系统恢复到正常工作状态。容易执行的解决方案可以提高公司和解决方案的可扩展性。

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

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

     

    原文出自:http://book.51cto.com/art/201206/342544.htm

    展开全文
  • 对一个做技术的人看到这个词可能心里会很不爽,过度设计------说的好听,但到底什么是过度设计,怎么样判断过度设计,如何去避免过度设计呢?如果你有两年以上工作经验,肯定会心里点下头,“嗯。。。想当年我做什么...

        对一个做技术的人看到这个词可能心里会很不爽,过度设计------说的好听,但到底什么是过度设计,怎么样判断过度设计,如何去避免过度设计呢?如果你有两年以上工作经验,肯定会心里点下头,“嗯。。。想当年我做什么什么的时候就有点过度设计了”,其实这也是过度设计的一个特点,很多人都是事后回想一下,才感觉以前设计的东西可以有点过度设计了。其实,如何把握这个度也就是判断一个做为设计者的水平,也决定了你这个项目最重的命运。

          其实对于过度设计来讲可能更容易出现在一些相对较小,较年轻的公司中(这个年轻应该是开发人员的资历吧,因为下面我要说的我以前的所在的公司2000年公司成立,经过了9年的发展还是一个年轻的小公司,年轻是因为工在公司工作的最长资历超过两年的不足4人),因为在年轻的公司中,大家都在学习都在追求所谓最先进的技术。特别是这样的公司起步的话老总一般都是技术出身,也就更使程序增加‘人为’的因素。

          现在就来说一下我刚毕业所在长沙待的这家公司,公司大体情况是这样的,老总是一个搞技术出身的人,公司最近开的一个项目做了4年,现在还没有一个可用的产品,来公司的人大约是一年左右一换,因为老总有这样一句名言:我宁愿用同样的钱请三、四个新人,也不愿花钱涨一个老员工的工资。我们不去评论这个老总的用人方法,他只是把我下面要分析的这个观点放大了。现在我要分析的一个观点是:更换新人,特别大量更换人员,会引起过度设计。

          当然新人对一个项目来说,可以增加新的Idea,新的创意。他也增加了一些学习、管理成本,这些很多项目管理的书中都有介绍。我想强调的是,这样也会引起重复设计和过度设计,也正因为这些新的想法、新的创意,就会花大力气去更新以前的代码和框架(美其名日:重构),这不应该做为重构的触发点、触发原因。做为一个新人来到一个项目组首先要做的不是实现自己的Idea,而是接有别人的Idea。(但是表达自己的思想容易,学习别人的思想可能比较难了)。

          那我们现在要做的就是针对这一点,保持团队的隐定性是根,但是在没有办法的情况下,学会接受应该是很好的解决方法。

    展开全文
  • 过度设计,一般是说技术开发,对于逻辑复杂、技术先进的过度追求,导致了技术框架虽看似华丽却复杂难用。若说到产品功能及交互的过度设计,应该是“过度追求体验完美、需求满足”而导致的“实际体验下降 or 长期...
  • 建议154:不要过度设计,在敏捷体会重构的乐趣 有时候,我们不得不随时更改软件的设计: 如果项目是针对某个大型机构的,不同级别的软件使用者,会提出不同的需求,或者随着关键岗位人员的更替,需求也会随个人...
  •  过度设计,从产品方案与设计上来讲,指盲目满足用户需求,极度追求用户体验,最后导致需求未果,产品可用性下降。主要表现在机械粗鲁地添加功能,造成产品设计路径坏死,功能堆积、复杂、重复和冗余。  说易行难...
  • 我刚到了一家新公司,公司给我的感觉很不错,不过当开始做第一个项目时便有过度设计的嫌疑,项目不大,基本就实现CURD的功能,用struts2+spring+ibatis+extjs。拿我开发的一个简单的功能来讲,就花了大概一周,如果...
  • 对于每日忙着交付的码农来说,能闲下来有点私人时间就很不容易了,谈什么架构或者设计,那是有理想有抱负人干的事情,恨不得别人把架构搭建完美,照着模版可以快速把任务完成,等哪天心情好了翻
  • 产品设计中收敛的十一件事

    千次阅读 2012-08-10 08:49:28
    正确引导才能让整个设计团队交响。它体现在对大局的把握、对团队的激发、恰到好处的点拨、果断理智的决断、拥抱挑战的心态等等。 体验设计是收敛和引导的艺术,互动和协作也是一个优秀的体验设计师必备的能力。 ...
  • 精益生产七大浪费中过度加工浪费是什么?  华天谋精益生产管理专家概述:七大浪费是丰田生产方式非常重要的一个观念。丰田人认为要消除浪费,持续改善,企业才能保持良性运转,竞争力才会提升。  一、七大浪费--...
  • 产品读书《设计心理学1-4》-设计

    千次阅读 2016-12-27 10:58:51
    诺曼在这套书里面谈到,设计本质不是创意,而是设计者与使用者的沟通,是要让用户一眼就看得懂产品,知道怎么使用。所以一个好的设计,一定是兼顾了可视性和易懂性。 简单来说,好的设计就是让用户一看就知道这个...
  • 过度工程

    千次阅读 2011-04-30 22:25:00
    最初我知道这个词是在Rod Johnson的《J2EE Development without EJB》,随着阅历地增长,渐渐发现书熟悉的场景也在身边再现了。 敏捷、还有设计模式,给一个团队带来了什么? 我之所以把这两个词放在一起讲,是...
  • 产品经理广告位设计

    万次阅读 2019-05-25 14:58:21
    随着互联网的发展,曾经是万金油的产品经理岗位也出现了越来越细的分工,按职能定位划分有用户产品、平台产品、策略产品、增长产品,商业产品经理……通用能力的产品不再具备竞争力,基于专业和行业壁垒建立核心能力...
  • 作者:Rindy全文共 4870 字 12 图,阅读需要 10 分钟———— / BEGIN / ————“操作反馈”,是指在使用产品时,系统对...从广义来说,产品设计中的“反馈”就是指产品对用户的行为作出的即时响应。本文主要主要总
  • 游戏开发入门(二)游戏设计模式

    万次阅读 多人点赞 2018-01-17 22:02:52
    视频链接:游戏开发入门(二)游戏设计模式(3节课 时常:约2小时40分钟) 该视频主要围绕游戏常见的设计模式展开讲解并实践,需要大家多多实践与理解 笔记与总结(请先学习视频内容): 1.有必要深刻的...
  • 产品设计之二:优化你的产品细节

    万次阅读 多人点赞 2011-07-31 08:09:52
    几天前的一个清晨,我敲下了《产品设计原则之一:精简你的产品》很荣幸被推荐到了首页,同时收到了好多人的信息反馈。在我看来,有人评论我写的东西,莫过于最荣幸的事情,所以我做了一一回答。而今天我决定继续敲打...
  • 它将向您介绍最重要的术语和概念,以帮助您入门,并帮助您在设计中应用色彩时做出更好的决策。 主题 与这些指南一样,我们将涵盖很多内容,包括: 颜色? 色调 色调,阴影和色调 值 饱和度/色度 ...
  • 通过写书和授课,她已经影响了整整一代数字设计师,是Adobe和Mac技术社区内的偶像级专家,Publish Magazine、Adobe Magazine等杂志的专栏作家,是MacWorld Expo 等业界重要活动和组织的顾问委员会成员,还创办了...
  • 块钱,上面主要有整个项目的时间轴、各个团队的重要里程碑、产品设计过程的一些可视化文档等等。究其目的,也是让所有项目干系人随时可以了解到项目的各方 面信息,在每个项目里,类似的看板应该包含哪些内容,大家...
  • 作者简介 刘津,现为阿里巴巴交互...是网易多款产品设计体验负责人。2014年加入阿里。李月,网易移动中心交互设计师,设计艺术学硕士。曾在淘宝UED工作,目前供职于网易。先后参与网易彩票、网易新闻客户端等产...
  • 设计B端产品的基本原则

    千次阅读 2015-07-14 17:35:40
    设计B端产品的基本原则 3年前我来到Facebook主管商业产品设计,即便之前只有C端产品经验,但我还是一头栽进了默默无闻却又举足轻重的B端市场。具体来说,我的任务是为Facebook组建商业产品团队,挖掘其作为...
  •  在>一文,和大家分享了“我心目一个产品项目标准的执行套路与方法”,但是依据个人的经验发现:宏观的套路与道理,路人皆知,区别能力与决定成败的往往在于细节的“度”以及全局上的“节奏”。“从无到有建造...
  • 在近日举办的2018第七届品牌农商发展大会上,同济大学教授顾伟楠表示,农产品生产销售过程应避免区块链的过度使用。“将来优质农产品只能是一个链,其他的都是在他上面的子链,可以是猪、牛、羊、苹果、黄瓜分别...
  • 苹果产品的蓝牙配件的设计指导

    千次阅读 2016-08-10 11:49:02
    1. 简介这个设计指导文档面向的是使用蓝牙技术与苹果产品通信的硬件配件,包括Mac,iPhone,iPad和iPod。为了与当前和未来的苹果产品兼容,蓝牙配件应遵循这个文档的规范。一个苹果产品需要蓝牙配件上的特性可用性...
  • 替代品的威胁 两个处于同行业或不同行业的企业,可能会由于所生产的产品是互为替代品,从而在它们之间产生相互竞争行为,这种源自于替代品的竞争会以各种形式影响行业现有企业的竞争战略。 同业竞争者的竞争...
  • 以前本站向大家介绍过一些软件开发的原则,比如优质代码的十诫和Unix传奇(下篇)中...在这里想和大家说说设计中的一些原则,我认为这些东西属于长期经验总结出来的知识。这些原则,每一个程序员都应该了解。但是请不要
  • 一、领域驱动设计两大设计:战略设计和战术设计 二、理解和分析领域+子域+核心域+通用域+支撑域 三、理解和分析界限上下文,定义领域边界 四、理解和分析实体和值对象 五、理解和分析聚合思想:聚合和聚合...
  • APP设计中的细节

    千次阅读 2018-04-16 09:03:01
    APP设计中的细节APP设计中的一些微妙细节决定了作品的深度,不断地提高APP的设计质量是每个设计师的追求。目录1、统一的图标设计风格2、图标大小的视觉平衡3、优化分割线4、合理的运用投影的颜色与透明度5、不要过度...
  • Android过度绘制优化心得

    千次阅读 2015-08-20 14:24:32
    随着产品的更新上线,迎来了短暂的休闲期,借此来总结一下最近完成的任务–有关Android过度绘制的优化。过度绘制概念: 在屏幕一个像素上绘制多次(超过一次)。比如一个TextView后有背景,那么显示文本的像素至少绘了...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 40,758
精华内容 16,303
关键字:

产品中的过度设计