我认为我很擅长编程 C# 语法。我现在正在寻找一些资源、书籍(首选)、网站、博客,它们处理设计面向对象的桌面应用程序和 Web 应用程序的最佳方式,尤其是在数据和数据库方面。
谢谢
你要求从消防水管里喝水。让我鼓励您在处理大程序之前编写一些小程序。然而,这里有几本关于设计的书和一篇认为很多设计不能从书本中学到的论文:
On System Design是一篇很好的短文,阐述了许多有经验的程序员对设计艺术的看法。
Jon Bentley 的Programming Pearls展示了一些可爱的小型设计示例。这是一个有趣的阅读,包括许多经典故事。
Kernighan 和 Pike的 Unix Programming Environment提出了 20 世纪最伟大的软件设计哲学之一。近 25 年后仍然需要阅读。
Pascal中的软件工具更窄更深,但会告诉你很多关于构建软件工具的细节和设计理念。
Barbara Liskov 和 John Guttag的程序开发中的抽象和规范将教您如何设计单个模块,以便它们可以与其他模块相适应以形成出色的库。它已绝版,但您当地的大学图书馆可能有。
C 接口和实现提供了一个设计良好的库,它为 C 程序员提供了在更高级别语言中发现的抽象。
最后,测试驱动开发将教你如何通过重要的东西来表达和开发设计:你的软件实际上做了什么。
我从Glenford Myers的Composite/Structured Design中学到了很多东西,但它与您所询问的主题的直接关系稍差。它主要讨论模块相互依赖的好方法和坏方法。
对于如何开发软件的书,我会推荐The Pragmatic Programmer。对于设计,您可能需要查看面向接口的设计。 Code Complete是关于开发软件的“A 到 Z”参考。您可能还想考虑 O'Reilly Head First书籍,尤其是Head First Object-Oriented Analysis and Design,因为它更容易开始。
编辑我不知道我是怎么忘记 Bob Martin 的,但你也可以阅读 Object Mentor 在其任何列表中的任何书籍。这是他们关于软件设计的部分。我特别推荐敏捷软件开发:原则、模式和实践(亚马逊,但它也是 Object Mentor 列表中的第二本书)。
我对最近的任何一本书都不感兴趣,以至于我正在认真考虑写一本新书。“Head First”的书通常比“For Dummies”的书高出一步(公平地说,我没有读过那本书。)
我其实很喜欢 Peter Coad 的Java Design;你可以买到便宜的,它不再印刷了。显然,它的 Java 很重,但设计部分很好,而且相当轻量级。
Ivar Jacobson 的面向对象软件工程也非常好(它引入了“用例”等概念)并且似乎仍在印刷中,但周围有数以万计的二手副本。
我从您的问题中选择了以下关键字:面向对象(建模和编程)、构建桌面应用程序、构建 Web 应用程序和数据库设计。因为你没有提到任何特定的语言,所以很难为你推荐。所以我假装我是问这个问题并且认识我的人,我向自己推荐:
我提出上述建议的理由:
我很惊讶还没有人提到“四人帮”的设计模式。正是这本书真正巩固了我应该如何真正使用 OO。前几章特别有启发性,说明在一个好的系统中应该如何工作。这不是最简单的阅读,但我认为它是最好的。如果您想要更轻松地了解同一主题,请查看 Head First Design Patterns。
Martin Fowler 的Enterprise-Application-Architecture 是一本关于常见模式的好书,您将在许多客户端服务器应用程序中看到。
更多关于思考面向对象问题的书是 Eric Evan 的领域驱动设计:解决软件核心的复杂性
多年前,作为做过一些 Windows 3.1 编程的 ac 程序员,我通过使用开发框架,特别是 Borland 的 Object Windows Library,学到了很多关于面向对象设计的知识。他们当时的软件包还为他们的数据库引擎提供了一个精心设计的数据库对象库。如今,所有数据库的东西都是 SQL,它不适合展示,恕我直言,好的设计。
因此,我的建议是使用设计良好的对象库对您有点熟悉的东西进行一些编程。我不知道该指向哪里 - Visual Studio 有点庞大,Office 对象模型有点难以掌握,直到你花了一些时间使用它们......
您还应该有面向对象的分析和设计应用程序 - Grady Booch。
对于对 OOAD 感兴趣的人来说,这是必须的