`

关于设计的度的一点小认识

阅读更多

  

关于设计的度的一点小认识

 

引言

  最近读了《设计之道》这本pdf书,是园子的老师傅总结的,感谢他的分享。

  前几天葡萄城控件团队也发表了一篇《设计做到什么程度? 》,写的不错,有一定的指导意义,不愧是大厂出来的。

  正好自己今年也开始进入真正的设计领域,虽然设计的问题出来不少, 也是改来改去的,也是由于中间学习了好几关于设计本书,同时参考了好几个框架和代码示例。发现大家在这方面还是各有认识,没有绝对的标准,而且都有自己的道理。

  总之,感觉还是成长了不少。不过,同时也发现自己知道的太少了。学习的路还很长。

正文

      关于设计的“度”的问题,我想也是一个颇有争议的问题。主要有两个论点:

      1.       要不要预先设计
      2.       设计的“度”如何把握

      说一点题外话,最近也准备开始学习TDD和Agile了,看来一点这方面的资料,说的不准确的地方,还请各位指出。

      这两个问题看似是两个,其实它们有着千丝万缕的联系。

      关于第一点,在我初步接触的Agile理论中,还有就是一些人士写的文章中,都说不要预先设计,因为会搞成过度设计。我不这么认为。我个人还是比较推崇和赞成预先设计的,原因如下:

      •       不需要预先设计,那还要架构师做什么呢?大家开工就好了,然后在后面需求变化的时候再来refactoring就好了。当然了,这时候可能需要架构师做好一点的重构,但是他们(agile)好像说,重构也不要过度,满足当前需求就好,那不就是说还是不需要架构师吗?难道架构师在agile要失业,或者说要转型了吗?还是我理解的方向有问题呢?
      •       不错预先设计,会给后面的重构带来很大的麻烦。甚至于没有办法重构,只能推倒重来,因为可能是结构性的变化。这个我是深有体会的,相信大家也是深有体会的。
      • 不预先设计,就代表着将风险推后,会给后面的修正带来严重的后果。造成后期的维护异常困难,成本急剧升高。
      • 不要被眼前的快速开发蒙蔽了双眼,眼前的快速,将造成后期的速度成倍的减慢。

      当然了,做预先设计,就会涉及度的问题,也就是第二个问题,度如何来把握?

      我想大家也不是不赞成预先设计,只是由于害怕过度,所以放弃,我觉得不好。不能因为怕过度,就找个理由,找个什么“重构”的理由不进行丝毫的设计,我不相信这样的代码在后面还能重构,就算重构,所花的代价,完全可以在编码之前进行一点设计,就可以避免大量的浪费。

      我个人完全不赞成“事先不设计”的观点,还完全鄙视那些没有搞懂agile,拿refactoring来推脱设计的人士。

      我也没有其他意思,就是觉得设计完全必要的,但是要把握度,尽量不要过,但是也不要太草率,草率开工,后患无穷,今年的我是十分有感触的。

      如果设计的度可以划分为1,2,3,4,5等级的话,我觉得至少需要进行到3级,至少也要及格吧。往后面可能是过度了,但是往前的话,肯定是不充分,编写的代码在后面会被大量的抛弃。这还好,主要是浪费的时间和精力无法找回了,最重要的人的斗志,斗志减退了,就真的很难找回来了。

      我见过很多最终作总结的时候,说设计不充分,所以修改很痛苦,越到后面越修改的慢。但是,让他做设计的时候,他又说什么agile,不要过度,不要进行预先设计,我觉得这不就是矛盾吗?我也不针对某些人,但是这就是很明显的矛盾。只是觉得这样会浪费大家的时间,为什么不预先设计一点点呢?预先思考一点点,也许后面就不会那么痛苦了。

     

 

结论

      总之,个人觉得预先设计是非常必要的,是必不可少的。但是度需要把握,不要过深,否则会陷入其中很难自拔,设计过度了,加大了开发的难度,影响后续开发工作。但是也反对那些因为怕过度,就不进行设计,还拿agile来搪塞的tx。

      agile我最近会开始学习,我需要自己好好的理解一下,是不是他们口中说的思想,我觉得应该不是,肯定是很多人曲解里面的意思。不过也难免,毕竟是国外的思想,国外的环境和我们不一样,国外人的思考方式也和我们不一样,到了我们这里被一些人在曲解了,这样就会发生误会了。

      国外可以成功的理念,在国内不一样可以成功,甚至会失败。至少需要修正,根据国情来修正。

      本文没有其他意图,只是想听听各位经验丰富的老兵的一些经验之谈。感谢大家耐心的看完我的这篇唠叨。

分享到:
评论

相关推荐

    《长方体的认识》教学设计.pdf

    这是长方体的基本定义,对于学生来说,理解这一点是认识长方体的基础。 其次,教学过程中应强调长方体的特性。包括但不限于以下几点: 1. **对称性**:长方体具有三条对称轴,分别沿着长度、宽度和高度方向。 2. **...

    微课教学设计-地理等高线的认识

    在这个案例中,微课的主题是“地理等高线的认识”,针对的是初一(七年级)的学生,使用人教版教材。课程设计者洪明子丹通过一个熟悉的故事——浪浪山的小猪妖,激发学生的学习兴趣,引入等高线地形图的概念。 首先...

    部编版道德与法治《我认识您了》教学设计-12页.pdf

    课程设计考虑到了这一点,旨在消除学生对老师的陌生感和紧张情绪,教会他们正确与老师和其他教职工交流,以便更好地适应小学生活。 3. 学习准备期的内容与要求:本课作为《我是小学生啦》单元的一部分,强调师生...

    CAD技术在服装个性化设计中的应用.pdf

    综上所述,CAD技术的应用不仅极大地提高了服装设计和生产的效率,降低了成本,而且有力地推动了服装设计行业向多品种、小批量以及以消费者为中心的生产方式转变。随着技术的不断进步和设计师熟练度的提高,我们可以...

    程序画面设计 你不知道的那些事情

    - **软件的操作习惯**:不同的软件会有不同的操作习惯,设计人员需要考虑到这一点。 - **错误的界面设计及应对方法**:对于容易引发用户误解的设计,应及时进行修正。 - **如何应对下意识操作**:通过预判用户的下...

    谈一谈为什么要一点接地(图解)

    通过以上内容,我们可以得出结论,一点接地在PCB板设计中是非常重要的。它能够有效地解决模拟电路和数字电路之间的相互干扰问题,保证电路的稳定性和信号的完整性。在实际的PCB设计中,要根据电路的特性和工作频率来...

    网页设计配色基础知识

    这种方式既保持了一定的对比度,又不会过于强烈,适合于需要平衡对比和协调的设计。 #### 三、色彩在网页设计中的应用 在实际设计过程中,色彩的选择和搭配还需要考虑以下几个方面: 1. **品牌色彩**:确保网站...

    二十三种设计模式【PDF版】

    关于本站“设计模式” Java 提供了丰富的 API,同时又有强大的数据库系统作底层支持,那么我们的编程似乎变成了类似积木的简单"拼凑"和调用, 甚至有人提倡"蓝领程序员",这些都是对现代编程技术的不了解所至. 在...

    对考试质量分析一点认识.ppt

    【对电大考试的认识】 电大的考试不仅对学生的学习进行全面评估,同时也对教学效果提供反馈。电大的考试具有双重性质:一方面作为成绩评定,通过对课程知识的部分代表性内容测试,量化评估学生的学习表现;另一方面...

    五、认识人民币教学设计.doc

    4. **教学方法**:结合生活情境,如“去超市购物”的场景,引入人民币的认识。通过分类活动,如按材料(纸币和硬币)、单位(元、角、分)划分人民币,帮助学生理解和记忆。此外,通过观察人民币的特征,如人像、...

    怎样成为优秀软件模型设计者.pdf

    优秀的软件模型设计者认识到自己的知识局限,并且始终保持学习的态度。他们会定期阅读最新的行业资料,参加培训课程,以保持自身的竞争力。 #### 4. 需求定义的重要性 没有明确的需求定义,软件项目几乎注定失败。...

    小企业的销售人员薪酬设计.doc

    小企业必须认识到这一点,并据此设计薪酬体系,以满足不同销售人员的需求,同时激发他们的工作积极性。 销售人员的薪酬设计通常包括以下几个关键组成部分: 1. **基本工资**:基本工资应该反映出销售人员的职业...

    如何能成为优秀UI(交互界面)设计师.doc

    同时,UI设计师应提出关于产品交互设计的建议,避免在设计阶段加入不必要的复杂功能,追求功能的实用性而非花哨性。 在系统设计阶段,UI设计师需要与技术团队紧密合作,确保设计的可行性,并考虑技术实现对用户界面...

    电商环境下八马茶业的包装设计及其品牌营造.pdf

    包装设计在电商环境下已成为消费者了解和认识商品的首要途径,因此,八马茶业必须重视包装设计在品牌形象塑造中的关键作用。 首先,包装设计不仅仅是保护产品、方便运输那么简单,它还涉及到材质的选择、色彩的应用...

    “交互即信息”:互联网新闻产品交互设计基本理念与创新路径.pdf

    在这种背景下,“交互即信息”理念的提出,强调了交互设计在互联网新闻产品中的重要性,这一点在实际应用中体现得尤为明显。 交互设计的核心在于为用户创造一种友好的使用体验,它要求新闻产品不仅要在视觉效果上...

    【部编版】四年级道德与法治下册《有多少浪费本可避免》优质课-教学设计.doc

    通过案例分析、小调查和设计宣传画或标语等活动,让学生更全面地理解浪费的多样性和普遍性,以及个人行动对减少浪费的重要性。同时,纠正学生们可能存在的错误观念,如认为浪费一点无所谓,或者认为个人行动微不足道...

    对ns2中分裂模型的一点认识

    ### 对ns2中分裂模型的一点认识 网络仿真软件NS2是研究和教学网络协议的重要工具,它采用了一种独特的“分裂模型”架构,将功能分解为编译时的C++类和运行时的OTcl类,实现了模型的灵活性与性能的平衡。本文将深入...

    模电课程设计——函数发生器

    函数发生器设计 本设计的主要目的是研究正弦波等振荡电路的振荡条件,学习波形产生、变换电路的应用及设计...函数信号发生器的设计和调试让我对模电有了进一步的认识,我觉得这种课程应该多一点,增加学生的动手能力。

    认识计算机的各个部件-教学设计.doc

    前者由于缺少实物展示,导致 学生感受度不高,学习兴趣不大。后者虽然弥补了前者不足,但受实物携带太多不便, 实物展示空间范围受限,计算机的拆解与组装化费时间过长等因素影响,教学效果仍不 理想。 有没有办法,...

Global site tag (gtag.js) - Google Analytics