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