首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何做好面向对象的分析和设计(OOAD)?

如何做好面向对象的分析和设计(OOAD)?
EN

Software Engineering用户
提问于 2011-07-26 19:41:07
回答 3查看 10.7K关注 0票数 27

成为一个优秀的分析器和设计人员可以极大地造福于开发人员。但这肯定是有障碍的。不是每个人都对OOAD感兴趣,也不是每个感兴趣的人都知道这条路。一个好的OOAD应该知道多种OO语言吗?或者他(她)应该失败的项目?怎样才能成为一个好的OOAD呢?

EN

回答 3

Software Engineering用户

回答已采纳

发布于 2011-07-26 19:53:41

那些不感兴趣的人正在制造他们自己的障碍。我不担心这个。

对于那些不知道道路的人,我建议:

  • 我发现我学到的每一种面向对象语言都使我成为一个更好的OO开发人员。只要你找到社区,每一种语言都能带给别人很多东西。
  • 你从失败中学到的东西比从成功中学到的要多,但你要试着在你自己的时间里做到这一点。在职业上,信任那些经验丰富的人,至少在某些时候如此--但不要害怕问“为什么?”
  • 学习所有五个坚实的原则,并理解它们存在的原因。它们都不是规则,但当你迷失方向时,它们是很好的指引。
  • 测试驱动的开发使我的OO设计技能比我以前学到的任何东西都有了更大的提高。
  • 你不会是你最好的,直到你已经从欠工程到过度工程,然后找到正确的平衡(更接近后者)。
  • 实际上,算了吧,你永远不会像两年后那样好。
  • 读很多书和博客,但不把任何东西当作福音。这个行业仍然没有找到一条完美的道路,而且可能永远也不会找到。
  • 无论如何,学习设计模式,但不要寻找使用它们的地方,只需将它们作为沟通的促进者。

希望这能帮上忙。

票数 36
EN

Software Engineering用户

发布于 2011-07-26 19:59:55

我认为,为了充分理解OO模型,您必须经历非OO编程技术的不幸失败。你可以理解OO的由内而外,但要欣赏和尊重它,它必须是一个闪亮的新工具,以取代旧的生锈的工具,没有完全完成这项工作。

我自学了7年,最后终于学会了大学水平的Java。在此之前,我会不断地建造这些项目,它们会变得如此之大,以至于我会忘记到底发生了什么。他们将是庞大,无组织的,并需要大量的维护,以作出小的改变。基本上,我一直发现自己陷入了代码的泥潭,并且不断地重新开始。

我花了一段时间才从我采用的线性设计中解脱出来,但一旦我完全理解了OO模型,它就像尤里卡一样!我能够自己编写更复杂的项目,在学习了诸如继承等概念之后,我的生产力跃跃欲试。我不是在浪费时间重写代码或重新开始,因为客观上一切都是有意义的,它只是直观的。

我认为每个程序员都应该知道尽可能多的语言。这将使他们成为一个更有经验的老兵,不管是OO还是非OO。一旦您真正理解了OO,您就可以采用这些技术,并将它们应用到实现的任何地方。

IMHO,如果你不理解,或者没有学习OO的欲望,你就会在生活的战场上装备不足。越来越多的公司正在使用新的面向对象语言。我看不出有什么理由不知道这个年龄的OO模型。

取决于人如何学习,这取决于他们想要如何学习模式。当有人教我的时候,我个人学得最好,所以去上Java和Java的课对我真的有很大的影响。我建议在大学里选修软件工程课程,或者只是上网找OO教程,如果你没有大学课程,或者你想在业余时间学习。

当我回想起人们对我的描述时,我会说:苹果是苹果,橙色是橘子。是的,它们都是从树上掉下来的,但它们是两种完全不同的果实,你的和谐就在那里。

票数 5
EN

Software Engineering用户

发布于 2011-07-27 03:34:51

对那些感兴趣或不感兴趣的人来说,总是有障碍的,但背景和严重程度可能有所不同。

没有必要为OO概念学习多种语言,从一种你喜欢的语言开始,经过一段时间,你会在语言上站稳脚跟,贴出它的可行性来探索一些你已经做过的事情,并尝试在另一种语言上执行同样的语言。一种语言的专业知识可以帮助你转换成新的语言,因为你会有一个基准来评分。

任何一个项目都是一种学习经验,而不是它的成功--重要的是,您对这些特性进行了多好的调整以使您得到最佳的使用,偶尔阅读其他代码并弄清楚它是如何完成和为什么完成的是很好的。如果你能找到一位导师那就太好了。总是知道为什么这是选择的原因,如何以其他方式这样做。尝试在你自己的逻辑和设计模型上工作,并把它扔给你的高级/导师。这样你就会提高你的技能,也许在一开始他们就会直接去垃圾桶,但是你已经尝试并学会了你做错了什么。反反复复地说,你会越来越好。

票数 0
EN
页面原文内容由Software Engineering提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://softwareengineering.stackexchange.com/questions/96192

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档