最近一段时间都在看ddd和up,个人感觉使用up进行项目的管理开发,运用ddd进行领域建模,在设计阶段,运用tdd进行驱动开发,这应该是一个比较理想的开发模式,但好的东西在项目的开发中不一定会得到充分的运用。
比如up中强调的迭代开发,细化阶段经过5-8次迭代,每次迭代3周,要完成确定整体需求的90%,完成20%左右的成品代码的编写,项目风险最高、最核心的业务的需求和设计已经确定并有部分实现,剩下的在构造和移交阶段去完成。每次一迭代中又是按照ddd进行领域驱动建模,通过tdd来测试驱动开发。但是在实际开发中,很多情况是客户并不知道他需要什么,需求十分模糊,甚至只有不到一百个字的需求,需求的不断深化和挖掘需要大量的沟通和时间,而这一点首先是客户不一定做到,在客户的传统思想中,你先拿出一个整体方案看看再说,也就是系统的需求分析文档,有了需求分析文档,再看看你的概要设计,等详细设计出来后,才给你打钱。客户需求的挖掘和up强调的迭代开发是吻合的,而客户的思维是见着东西才给钱又和迭代开发的每次迭代出一个可运行的产品相矛盾,因为客户没有更多的耐心,等你一点一点去捏泥人。我记得在一本国外大师写的书中提到过盖房子的故事,一个公司选两家设计公司给他们设计房子,第一家公司一去就拿来之前才做好的一个非常不错的建设方案,有成品、有图纸,看上去效果也不错;另一家公司没有给出图纸,也没有太多承诺,它要求看客户的建设场地和需求,根据客户的需求重新量身定做一套设计方案,确保设计出来的东西就是客户想要的东西。这位大师强调说,最后取胜的一定是后面一家公司,因为他把需求放到了第一位,相对而言风险更低,成功的机会更大,前一家公司虽然有一个不错的设计方案,而且有成品展示,但是别人认为好的东西,客户不一定就认为好,用在别处成功的东西,用在这里不一定就一样会成功,所以从这点考虑,这家公司必败无疑。
我很赞同这位大师的观点,但是在国内,似乎很多公司都会选择第一家公司为自己做设计,因为他们往往没有自己的明确的需求,很多时候很容易被一些先入为主的观念所左右,所以大多数情况下,他们很轻易的相信他们所看见的,而不一定是仔细考虑他们真正想要什么,这是一个十分突出的问题!
其次,迭代开发对团队的要求很高,它需要团队成员对涉及的领域知识十分熟悉,甚至是精通领域概念,这样才能在每次迭代中做到游刃有余,而这一点上有很多公司也是望而却步,他们常常会说:这东西看上去不错,但是我们不会去用!
再次,说一个具体的问题。就是对象和关系不匹配的问题,在设计领域模型的时候,我们从面向对象的角度去分析实体、值对象,分析关联,隔离领域、确定聚合,随着对领域的不断深入理解,我们会去不断的精华模型,去改善设计,是设计更加柔性,使结构更加合理。但在对象的持久化的问题上,很多时候我们不愿意去使用hiberante这样的ormapping工具,担心hibernate在某些方面(比如性能上),不如原生sql来得高效,多数情况是使用自己开发的中间件,对jdbc进行封装,对分布式数据进行一些处理,这个时候关系模型的设计显得越发的重要,有部分重要的业务甚至放到了数据库中去存储过程实现。关系模型和对象模型在粒度上不同,导致不匹配的问题比比皆是,最终选择了一个折中的方案,看上去成了一个类一张表的样子,在使用对象的时候,对象的导航也成了一件代价巨大的事情,因为没有了hibernate这样的ormapping工具,使得从数据库中查询来的数据无法自动封装成对象,这样对象模型中的对象导航就成了一副空架子,设计的时候虽然是面向对象的东西,但真正实现起来有逐渐回到了面向过程的老路上来,这种感觉十分痛苦!
如何解决上述存在的问题呢,这是最近一直困扰我的问题,请大伙谈谈自己的看法!
分享到:
相关推荐
上海住宅景观设计面临着一系列的困惑和问题,这些问题不仅关乎设计本身的质量,还直接影响到生态环境的保护和居民的生活质量。以下是对这些困惑的详细分析和解释: 1. 生态冠名滥用:很多新建绿地和住宅区打着...
经典而又实用的Java的GUI设计,可以帮助你解决Java的GUI设计困惑。
这款模板专门针对企业工作场景设计,旨在解决在日常办公中可能遇到的困惑,如信息整理、工作汇报、项目提案等难题。 首先,模板的设计风格应该与企业的品牌形象保持一致,这款"业务办公"模板考虑了这一点,提供了...
【消防设计审查困惑】 在商住楼的消防设计审查中,存在一个主要的困惑,即商住楼住宅部分应按照住宅标准设计还是与商业部分一起作为公共建筑进行设计。这个问题的关键在于不同分类会直接影响消防设计的各项指标,如...
《妞妞的困惑》教学设计.pdf
在FPGA设计领域,入门阶段可能会遇到很多困惑。然而,正如《佟林传》中的主人公通过基础训练成就非凡,FPGA设计者也需要掌握五项基本技能:仿真、综合、时序分析、调试和验证。这些技能是专为FPGA设计者而设,不同于...
农村小学数学课后作业布置的困惑及思考.pdf
总结来说,面对程序设计课程改革的困惑,我们必须坚持以提升学生计算思维和编程技能为核心,通过优化教学内容与方法,实现理论与实践的有机结合。只有这样,才能不断适应快速变化的教育环境,为学生的未来职业生涯...
许多问题源于开发商的设计缺陷,如地下管道堵塞,但业主往往将责任归咎于物业,要求他们解决。物业在处理这些问题时,尽管付出了努力,但往往无法满足所有人的期待,导致业主满意度下降,甚至引发拒交物业费的情况。...
一个好的结构设计应该使目录体系清晰,语词定义直观,例如,西门子手机设置闹钟的例子,"重要记事"的分类就让用户感到困惑。 2. 交互设计(Interactive Design)侧重于提升产品的易用性。设计师需要考虑用户的使用...
【消防设计审查的困惑】 商住楼是一种特殊的建筑类型,底部为商业空间,上部为住宅区。在消防设计审查中,如何处理商住楼住宅部分的消防要求是一大挑战。根据《高规》(高层民用建筑设计防火规范)2005版,商住楼被...
- **效率问题**:糟糕的交互设计会导致用户使用产品时感到困惑和沮丧,从而降低工作效率。例如,在Windows操作系统中寻找特定文件可能会变得极其繁琐。 - **软件种族隔离**:不同软件之间缺乏良好的兼容性和互操作性...
它要求设计师避免过于繁杂的内容,不要让用户感到困惑和疲劳。 简洁的设计可以提高用户的效率和满意度,避免用户感到疲劳和困惑。同时,简洁的设计也可以提高设计的可读性和可理解性。 3. 一致性:一致性是良好的...
撬开你脑子里的那些困惑,让你重新认识游戏设计的真谛,人人都可以成为成功的游戏设计者!从更多的角度去审视你的游戏,从不完美的想法中跳脱出来,从枯燥的游戏设计理论中发现理论也可以这样好玩。本书主要内容包括...
控制活动是指企业或组织对风险的控制和防范,包括内部控制的设计、实施和监督等。 信息系统与沟通是指企业或组织的信息系统和沟通机制,影响着企业或组织的内部控制的有效性和效率。 监督与检查是指企业或组织对...
在这关键的过渡期,教师们设计了如“上小学”这样的主题探索活动,目的是为了让孩子们在轻松愉快的氛围中熟悉和适应即将到来的小学生活。但在这个过程中,往往出现了一些教师始料未及的问题和困惑。 在教师们精心...
困惑处是指教学设计中制造困惑、创造困惑的地方。例如,在单词的记忆、语音教学、语法教学等困惑无时不在。如何帮助学生记单词?如何解决不讲发音规则又要让学生掌握语音?如何做到不讲语法又要让学生掌握语法?这些...
避免过于复杂或混乱的设计布局,这会导致用户感到困惑,难以找到所需信息。简洁的设计风格,如扁平化设计,可以有效地减少用户的认知负担。 其次,色彩搭配是WEB设计中的重要元素。过度使用鲜艳的颜色可能会使页面...
设计者需要考虑工艺线选择、设计的困惑、电参数、版图参数等问题。工艺线选择对设计的制约非常大,设计者需要选择合适的工艺线以确保设计的正确性。 2. 工艺抽象 工艺抽象是将工艺参数抽象化,以便于设计者更好地...