您是否推荐程序方法论软件开发,用于在.net中开发小型数据库应用程序?

您是否推荐程序方法论软件开发,用于在.net中开发小型数据库应用程序?,.net,vb.net,oop,methodology,.net,Vb.net,Oop,Methodology,作为软件开发行业的新手,我尝试用不同的方法来发展我的编程技能。我发现的一个方法是阅读其他作者的代码 当我开始开发时,我想对任何应用程序使用面向对象的设计范式。首先,我从小型数据库编程项目开始,如酒店管理、工资单、销售应用程序等。然而,在我的课程中,当我在互联网上搜索源代码时,我发现许多程序员在互联网上以程序的方式为这些类型的小型应用程序开发源代码。尽管他们使用vb.net或C#(面向对象的语言),但他们尝试遵循过程性的方法,例如,他们在一个类中定义所有全局方法和变量,然后从特定形式为特定操作调用

作为软件开发行业的新手,我尝试用不同的方法来发展我的编程技能。我发现的一个方法是阅读其他作者的代码

当我开始开发时,我想对任何应用程序使用面向对象的设计范式。首先,我从小型数据库编程项目开始,如酒店管理、工资单、销售应用程序等。然而,在我的课程中,当我在互联网上搜索源代码时,我发现许多程序员在互联网上以程序的方式为这些类型的小型应用程序开发源代码。尽管他们使用vb.net或C#(面向对象的语言),但他们尝试遵循过程性的方法,例如,他们在一个类中定义所有全局方法和变量,然后从特定形式为特定操作调用访问方法

例如,对于图书馆管理应用程序,设计可能如下所示

   //one global class for whole method and variable definition
Class globals {
//define  public variable and public function such as
//connection to db code
Public  void storebooks() 
{//code for storing books to db
}
Public  void  storeusers
{ //code for storing users to db
}
.
.
//code for searching books  …etc
}
然后表单使用特定的全局方法和变量进行操作,就像vb6中的模块声明一样

我的问题是,当我尝试使用oop方法,通过定义类对象、属性等来实现应用程序时。 那么我的方向对吗?我应该使用面向对象的方法(虽然很小)开发这些类型的应用程序,还是应该坚持使用我在web上找到的上述类型代码(过程性方法)

请详细说明何时使用oop方法,以及何时使用过程方法(如果适用)。我的目的也是作为一名毕业生发展我的软件开发技能

谢谢

尽管“OOP与过程编程”的争论仍然存在,但我怀疑对于这样一个小项目,是否需要进行真正的方法论分析


许多做简单ERP项目的程序员都有过程化的背景(Visual Basic事实上,过程化开发没有错。你可以用它编写漂亮的、可维护的应用程序。然而,你经常看到的是将过程化实践应用于OO语言

一个原因可能是程序员只是来自非面向对象语言,比如C语言,并试图将他的知识应用到一种新的语言中。也可能是因为应用程序非常简单,所以过程方法最适合

在我看来,一种有效的方法是确定您想要创建什么类型的应用程序。如果您知道您可以选择所需的平台和语言,但这并不总是可能的,因为平台和语言已经定义(由管理层定义)了

编写一个纯粹的OO应用程序并不像看上去那么容易。特别是找出你的领域模型(你的应用程序设计是基于这个模型的)可能会很困难。但根据我的经验,一旦你有了这个模型,创建一个OO应用程序就相当容易了,无论大小。当然,了解所有的流程是非常重要的(用例、流程/过程(!),以便能够定义模型中的关系

OO最大的陷阱是过度设计。数百个类都带有继承之类的东西。这样做最终会导致应用程序的功能膨胀,而这是不值得的

让这个长篇短文:让你自己清楚OO的本质和其他范式的本质,并考虑什么是你想要构建的最佳应用。作为一个实践,你也可以创建一个OO和过程的应用程序,看看你能从中学习到什么。


说到我自己,我几乎总是将OO用于C#(或Java)中的应用程序,也用于简单的应用程序。模型的深度也因复杂性和可维护性而异。通常我会使用几个选项进行原型设计,然后再决定我的最终设计(建议:始终绘制/设计模型!)我仍然不相信OO范式适合所有人。

一本由Wrox出版社出版的名为《面向对象设计》的书是研究过程开发演变为面向对象设计的一个很好的资源

本书列举了一些示例,在这些示例中,您可能会快速编写针对小型、可管理问题的过程性解决方案,但客户却要求进行修改和日益复杂的改进,这反过来又会受益于面向对象开发的更自主性


虽然这本书不一定是对各种开发策略和实现的概述,但它在通过重构的迭代过程对比不同的技术方面做得很好。

是的,这是我面临的问题。如果你想做一个好的软件,我应该坚持使用OOP开发这些应用程序吗可以用OOP和过程编程来实现,所以这取决于你的喜好。我当然会用OOP。