我有一个用于我的支票簿的 Access db(后面有大量相当简单的 VBA),我想将它重写为一个带有 SQL 后端的独立程序。我正在考虑使用 C++、Java 或 Python。
在开始之前,我曾假设我会写 OO,因为我认为我会“以 OO 术语”思考(由于我学习了 OO Logic 类和 C++ 类),但我发现我只能将其可视化为程序(但可能是因为我一直在思考数据库在 Access 中的工作方式)。我该如何决定?我是否有道理,或者我似乎不理解这些概念?
谢谢你的帮助。
我有一个用于我的支票簿的 Access db(后面有大量相当简单的 VBA),我想将它重写为一个带有 SQL 后端的独立程序。我正在考虑使用 C++、Java 或 Python。
在开始之前,我曾假设我会写 OO,因为我认为我会“以 OO 术语”思考(由于我学习了 OO Logic 类和 C++ 类),但我发现我只能将其可视化为程序(但可能是因为我一直在思考数据库在 Access 中的工作方式)。我该如何决定?我是否有道理,或者我似乎不理解这些概念?
谢谢你的帮助。
我建议 OO - 它并不比过程编程难,实际上使用正确的工具更容易维护。 Delphi将是我的选择——出色的 DB 编程支持、可视化设计器、强类型、大量可用组件。 有许多用 Delphi 编写的出色应用程序。经常被低估的原因有很多,它拥有忠实的追随者。
现在我会在讨厌德尔福的人装满西红柿的时候躲起来。
好吧,OO 可能有点矫枉过正,但它是极好的实践。任何代码猴子都可以编写程序代码。在任何情况下,它都是阻力最小的路径,这就是为什么大多数人将它用于不做太多事情的一次性应用程序。但是,如果您写作是为了获得使用 OO 的经验,那么最好这样想。您可以从设计一个管理金融交易的对象开始,然后您还需要一种与数据库交互的方法。也许您可以编写一个 DB 层,在其中使用 Entity 框架从事务对象中抽象出数据库调用,您可以在其中学习 LINQ(或任何 JAVA 等价物)。这一切都假设您这样做是为了娱乐和练习。
我会使用 Python:不编译并使用动态类型(如果你愿意,你也可以使用严格类型)。此外,它在开源社区中拥有大量追随者,这意味着免费提供强大的支持、工具和文档。
至于 OO vs. Procedural——你提到的所有这些语言都可以用程序风格编写——也就是说,一个可以做所有事情的大类/方法——但你很快就会发现你会想要遵循DRY 原则(不要重复自己)并从一些可以很好地完成某件事的私有方法开始。从那时起,您将希望将类似的事物分组到单独的类中,然后从那里您将要抽象这些类......明白我要去哪里了吗?
在我看来,你应该少关注 OO 和程序方面的事情。如果你有可能在一开始就走程序,那么就走程序。这是您开始时可以做的最简单的事情。另一方面,OO 的东西可能和 YAGNI(你不需要它)一样合格。
不过,您应该做的是编写测试、单元测试,然后是集成测试。你应该努力先写测试。这样,即使您从一个过程应用程序开始,您也可以稍后将其重构为一个成熟的 OO 应用程序。但是,仅当您需要对象时。这些测试将成为您在应用程序中移动代码时的安全网。
试图从一开始就将您的应用程序视为对象可能会导致您陷入类层次结构和体系结构的困境。
我不是天才,所以我可能是错的,但根据我的经验,从简单的函数开始,然后考虑将它们分组到对象或模块中比开始说:好的,我将让这个对象与这个对象,它正在实现模式 X,因此我将接口 Y 与实现 Z 解耦。稍后,您可能会发现您的域模型很弱。走一条进化设计的道路,从小的构建块开始。
oo 对于一个简单的支票簿应用程序来说似乎有点过头了。尝试更大规模的东西,比如管理你所有的财务账户。这样设计一个帐户类是有意义的
好吧,这取决于你的动机。如果您想要尽快使用支票簿应用程序,只需编写程序代码即可。除了您之外,没有人会知道其中的区别。如果您想使用此应用程序来提高自己作为程序员的能力。花时间学习如何在 OO 中编写代码。
如果您正在寻找可以扩展的快速应用程序,请查看动态数据。