帮助设计

时间:2008-12-14 04:22:48

标签: oop ooad

我认为编程C#语法非常好。我现在正在寻找的是一些资源,书籍(首选),网站,博客,它们处理设计面向对象的桌面应用程序和Web应用程序的最佳方式,特别是涉及数据和数据库时。

由于

8 个答案:

答案 0 :(得分:6)

你要求从消防水中喝水。在你解决大问题之前,我鼓励你写一些小程序。然而,这里有一些关于设计的书和一篇论文,认为很多设计都无法从书本中学到:

  • On System Design是一篇很好的简短论文,阐明了许多有经验的程序员对设计艺术的看法

  • Jon Bentley的
  • Programming Pearls在小型中展示了一些可爱的设计示例。这是一个有趣的阅读,包括许多经典故事。

  • Kernighan和Pike的
  • The Unix Programming Environment提出了 20世纪伟大的软件设计理念之一。在将近25年之后仍然需要阅读。

  • Software Tools in Pascal更窄更深,但会告诉你很多关于构建软件工具的细节和设计理念。

  • Barbara Liskov和John Guttag的
  • Abstraction and Specification in Program Development将教你如何设计单个模块,以便它们可以与其他模块配合,以形成优秀的库。已经绝版,但您当地的大学图书馆可能会有。

  • C Interfaces and Implementations提供了一个设计精良的库,它为C程序员提供了更高级语言中的抽象。

  • 最后,Test-Driven Development将通过重要的事情教你如何表达和开发设计:你的软件实际上做了什么。

我从格伦福德迈尔斯的Composite/Structured Design那里学到了很多东西,但它对你所询问的主题没那么直接。它主要讨论模块可以相互依赖的好坏方法

答案 1 :(得分:1)

有关如何开发软件的书,我建议The Pragmatic Programmer。对于设计,您可能需要查看Interface Oriented DesignCode Complete是关于开发软件的“A到Z”参考。您可能还想考虑O'Reilly Head First书籍,尤其是Head First Object-Oriented Analysis and Design,这些书更容易入手。

编辑我不知道我是怎么忘记Bob Martin的,但你也可以阅读Object Mentor在其任何一个列表上的任何书籍。以下是他们关于Software Design的部分。特别推荐Agile Software Development: Principles, Patterns, and Practices(亚马逊,但它也是Object Mentor列表上的第二本书)。

答案 2 :(得分:1)

我对最近的任何一本书都不感兴趣,以至于我正在认真考虑写一本新书。 “Head First”书籍通常都会向我读到“For Dummies”书籍上方的一步(公平地说,我还没读过那本书。)

我实际上喜欢彼得·科德的Java Design;你可以得到一个便宜的,它不再是印刷品。显然,Java很重,但设计部分很好,非常轻巧。

Ivar Jacobson的Object Oriented Software Engineering也非常好(它引入了“用例”等概念)并且看起来仍然是印刷品,但周围有数以万计的旧版本。

答案 3 :(得分:1)

我从您的问题中选择以下关键字:面向对象(建模和编程),构建桌面应用程序,构建Web应用程序和数据库设计。因为您没有提及任何特定语言,所以很难为您推荐。所以我假装我是那个提出问题并了解我的人,我向自己推荐:

  1. OO:用C ++思考或用Bruce Eckel思考Java。
  2. 构建桌面应用程序:Ultimate++
  3. 和Web应用程序开发:http://www.djangoproject.com/
  4. 数据库:我没有任何好的建议。
  5. 我提出上述建议的理由:

    1. 我不想推荐十几本书或更多。你不必全部阅读。
    2. 布鲁斯·埃克尔的“思考”书籍可以涵盖主要的OO概念,因为你只需要语法问题就不会有任何问题,因为它只是语法问题。
    3. Ultimate ++可以生成最精简的桌面应用程序,并且他们非常积极地使用模板,从而产生非常优雅的代码。使用U ++而不是MFC,WPF,Java Swing Java SWT,Python等的另一个好处是你的可执行文件没有任何包袱或依赖。它不会要求您的用户安装JRE,.NET框架,MFC DLL或Python等。这是我的选择,因此我提出了这个建议。
    4. Django,因为我知道并喜欢Python,我不太了解Ruby。 Ruby专家会说RubyOnRails或C#专家会说ASP MVC。 Java可能会说Struts,JSF,Stripes,但我认为Java最近没有任何可以与Python,Ruby,C#甚至PHP的框架竞争的东西。

答案 4 :(得分:1)

我很惊讶没有人提到过“四人帮”的设计模式。这本书真的在我的脑海中巩固了如何真正使用OO。前几章对于如何在一个好的系统中工作起来特别有启发性。这不是最简单的阅读,但我认为这是最好的。如果您想要了解相同主题的更清晰的视图,请查看Head First Design Patterns。

答案 5 :(得分:1)

Martin Fowler的Enterprise-Application-Architecture 对于许多客户端服务器应用程序中常见的模式,这是一本很棒的书。

更多关于面向对象问题思考的书是Eric Evan的Domain-Driven Design: Tackling Complexity in the Heart of Software

答案 6 :(得分:0)

多年前,作为一名做过Windows 3.1编程的程序员,我通过使用开发框架,特别是Borland的Object Windows Library,学到了很多关于面向对象设计的知识。他们的软件包当时还为他们的数据库引擎设计了一个精心设计的数据库对象库。如今,所有数据库的东西都是SQL,它不适合展示,imho,良好的设计。

所以,我的建议是对你熟悉的东西做一些编程,利用设计良好的对象库。我不知道在哪里指向你 - Visual Studio有点庞大,Office对象模型有点难以让你动手,直到你花了一些时间与他们在一起......

答案 7 :(得分:0)

您还应该使用面向对象的分析和设计与应用程序 - Grady Booch

对于对OOAD感兴趣的人来说,这是必须的。