前言
经过5天时间(12.16-12.20),物品交换软件的第二版终于开发完成了。该版本在第一版的基础上增加了可视化界面,补充了用户注册和审核功能,对物品进行了更为细致的管理(进行了类别上的区分),物品搜索功能相较之前也更加强大。
由于之前从来没有接触过GUI相关的编程知识,我在交互界面的实现上花费了较多的时间。因为本人之前仅对C++比较熟悉,所以选择了较为入门的C# Winform进行实现。然而网上C# Winform相关的代码不是很多,语言也相对底层,不少逻辑需要亲自动手来实现,因此这对于纯新手而言还是存在一定困难的。相信以后随着编程经验的增加和技术的积累,对于交互界面的实现也能够做到更加游刃有余。
编程过程中对课程知识的体会
在本次软件作业的编程实践中,我亲自体验了从面向对象分析、设计到最终实现的过程,也感受到了课堂里相关知识在实际编程中发挥的作用。在画用例图和类图时,我发现自己的思考也开始有了章法,不再向之前一般想到什么写什么。顺序图正如课堂上所说,“构造时费时费力,但是非常值得。”在画顺序图之前,我可能只能想得到User类,Tag类和Item类这三个实体类,但在画顺序图时,我非常自然地又找到了边界类和控制类。在课堂上接触到这一知识时,我其实还不大能理解为何需要这两种类,觉得它们的存在似乎是可有可无的,而经过此次编程实践后,对我而言它们的存在已经是自然而然的了。此外,通过顺序图我还能知道有哪些类参与了该用例,由于类与类之间没有较强的耦合关系,因此有时分析和编程可同步进行。在实际编程过程中,我也是逐个用例去做分析和实现的,并没有等到所有分析都完成后再进行代码编写。
在开发该程序的过程中,我对面向对象这一思想也有了更深的理解。在此之前,面向对象对我来说似乎就是一个个的类,用面向对象的方法编程无非就是把处理数据的逻辑搬到类内。这是因为之前编程时我很少从软件的角度对代码进行思考,更多地把注意力放在逻辑的实现上。但是,开发软件不仅仅等于写代码,软件开发还强调系统,强调有序。当我从开发软件的角度去思考代码时,才能够真正感受到面向对象方法学的必要性和优越性。面向对象方法使我的代码模块更加清晰而易于理解,这对于软件而言确实意义非凡。
当然,这次软件开发实践还有很多东西没有覆盖到,比如可行性分析,需求分析,编程过程中的测试以及后续的维护等。跟人打交道的部分才是最困难的,因为那也是存在最多不确定性的地方。软件工程讲了不少处理不确定性的“大道理”。然而,只有和实践相结合,才能体会到这些知识带来的益处。因此,对于这门课程的知识,学一遍是不可能学透的,只有在往后的编程实践中多加思考和体悟,才能不断深入对它们的理解。
标签:知识,代码,编程,实践,面向对象,物品,2.0,心得 From: https://www.cnblogs.com/Sautoy/p/17001988.html