`

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

阅读更多

  

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

 

引言

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

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

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

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

正文

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

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

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

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

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

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

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

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

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

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

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

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

     

 

结论

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

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

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

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

分享到:
评论

相关推荐

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

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

    行业文档-设计装置-用于瓦楞纸加工的预热器自动温度包角控制装置.zip

    随着全球包装行业的发展,瓦楞纸板作为一种重要的...通过深入研读这份文档,相关人员可以对预热器自动温度包角控制装置有一个全面的认识,掌握其设计和操作的关键技术,进一步推动瓦楞纸加工行业的技术进步和产品升级。

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

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

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

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

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

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

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

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

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

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

    嵌入式系统课程设计报告

    学生通过这些实践,能够形成对嵌入式系统设计全流程的清晰认识,为将来从事更高级的嵌入式系统开发工作打下坚实的基础。通过这种理论与实践相结合的教学方式,学生的学习积极性被极大激发,对嵌入式系统领域的兴趣也...

    网页设计配色基础知识

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

    毕业设计电子时钟的设计单片机课程设计.doc

    89C51单片机属于MCS-51系列,以其高集成度、小体积和低功耗特点著称,广泛应用于各种控制领域。本次毕业设计的目标是利用这款单片机的功能来构建一个简单的电子时钟系统,实现基本的计时和时间调整功能。 电子时钟...

    最新北师大版小学数学六年级下册《图形的认识(二)立体图形》教案设计.pdf

    北师大版小学数学六年级下册《图形的认识(二)立体图形》的教案设计便以深入浅出的方式,为学生揭开了立体图形的神秘面纱。本篇教案不仅涵盖了立体图形的基本概念和特征,还着重于探讨立体图形与平面图形之间的关系,...

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

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

    机械设计读书报告.pdf

    在阅读了《机械设计读书报告.pdf》之后,对于机械设计的理论与方法的发展有了更加深刻的认识。本报告旨在梳理机械设计的演进历程、现代设计的特点、以及在实际产品开发中的应用,并结合我国在该领域的发展现状和面临...

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

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

    单线总线智能温度传感器测温系统

    系统设计者需要对DS1820的正确接线、电源管理以及信号干扰的避免有充分的认识,同时还需要知道如何正确地设置和读取传感器的温度数据。 随着数字化、集成化和智能化的发展趋势,温度传感器的技术也在不断地进步。DS...

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

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

    杯形件模具设计说明书.doc

    本文将深入探讨一份关于杯形件模具设计的详细设计说明书,揭示这一专业领域的设计原理和工艺过程。 首先,设计说明书开始于对冲压模具特点的概述。冲压模具是一种高效且经济的加工方式,它能够一次性完成多个工序,...

    计算机UI设计论文.pdf

    首先,我们必须认识到UI设计的核心目标是创造一个既易于使用又直观的界面,让用户能够高效地完成任务。在这一点上,图形用户界面(GUI)占据了UI设计的主要舞台。通过按钮、图标、菜单等图形元素,GUI设计让用户的...

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

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

Global site tag (gtag.js) - Google Analytics