读程--从未参与的项目中学习

Posted bfxr

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了读程--从未参与的项目中学习相关的知识,希望对你有一定的参考价值。

  这是软件工程综合实践课程布置的第一次个人博客任务,我需要完成的是找一个未参与的项目,读程后写出自己的感受。

  首先,特别感谢我可爱的同学及好朋友分享给我她的项目,让我能够从她的程序和代码风格中学习到一些我不具备的知识和能力。

                      技术图片

 

  这个项目是我们大一下完成的一个项目,网上购物系统,是一个用于网上购书的一个程序,实现了购书所需的大部分功能,是我们大一下需要完成的大作业,使用的是语言是C++,她在该项目中分了三个头文件和一个源文件,将购书系统分成了订单管理,书籍管理和用户管理三部分进行实现。

  我想起自己在大一上学期完成的大作业,由于在头文件运用上出现了问题,把原本分块实现的代码又整合在了一起,看起来感觉十分的杂乱,内容太多,找不到自己想要的代码。在她的代码实现中,有较为详尽的注释,方便了他人和自己的读程,这一点是我在那个时候没有做好的一点,我也是因为自己在重新读自己写的程序和在debug的时候(尤其是debug时的痛苦),才意识到注释的重要性,而后开始给自己的读程提供便利,以便能够更快找出问题。

                      技术图片

 

  从使用者角度,她把程序分成了两个部分,管理员和用户。管理员的信息存储在txt文件中,在上面这张图例中可以看出,在输入密码登录之后,输入的密码,登陆成功提示和下一个界面的修饰符出现在同一行,未处理得当,不过,在密码输入时将输入的密码都用*号显示,这里做得特别好,可以保护隐私。在界面转换上,她并没有进行处理,我在我自己的程序中,使用了system("cls");清屏函数来实现页面的假跳转。

          技术图片  技术图片

                  技术图片  技术图片

                      技术图片

                        技术图片

                       技术图片

 

  她在主要功能的实现上使用了清屏函数,让界面变得更加整洁。在文件信息存储上,用txt文档分别存储了管理员信息,书籍信息,用户信息,订单信息和用户登录账号密码信息。在管理员处理图书信息的时候,也出现了一些问题,可能在测试上并没有考虑到相应的情况,我尝试输入了一个不存在的图书信息,在删除信息上,删除不存在的书籍时并未作相应的处理;在修改信息上,虽然提示了书籍不存在,却又把信息存入,也出现了错误;在查找书籍上,给出了提示,却又显示了一本图书的信息;在新增图书信息上,没有考虑到编号相同的问题。这些问题是刚开始写程序很容易出现的问题,考虑不完备,测试工作没有做全,因为我们经常是为了证明自己想要的结果,所以就按照正确的来输入,结果正确后就忽略了其他情况,在安全性能上存在很大的问题,如果是在医学,航天航空等领域,会造成不仅仅是经济损失,甚至是出现严重事故。因为当时时间比较赶,大家基本上都是实现了功能,而并没有考虑到其它的因素,我在自己的项目中,考虑过输入错误的问题,不过因为合作时出现了问题,在这方面做得并不是很好。

技术图片技术图片

技术图片  技术图片  技术图片

 

                           技术图片

   她的代码很值得学习,她在编写的代码的时候,很明确的把图书类,用户类和订单类分开,用结构体来存放管理员账号和密码。还有这一段把密码自动转换成“*”,考虑到了账户安全的问题,这是我在这个项目中做得不足的地方,是一个很不错的想法。我在编写购书系统的时候在文件存储上做得不是特别好,在存储方式和读取方式上存在着一定的困惑,当时我把每个用户的信息分别存在各自的文件里,这样的方式并不太可取。

技术图片技术图片技术图片

  在她的代码中,我看到她有部分功能未实现,还有被注释掉的功能。我在编写购书系统的时候也遇到相应的问题,刚开始给出了很多功能,到后面又遇到了问题,把时间用在了debug上,由于时间有限,不得放弃一些功能,实现主要的功能,虽然最后把主要的功能实现了,却存在着很多漏洞,没有把可能出现的情况进行处理,完成得很仓促。从她未实现的功能出发,我找到了她出问题的地方,后面两张并不是因为我截取了同一段代码,而是她在处理相似问题时,把这段代码复制了一遍,是出错的原因之一,还有就是这一段代码本身也有着问题,导致功能实现上出现了问题。还有就是她的存储订单的方式和她读取订单的方式,只能读取一个人同一时间存入的订单信息,而且把错误的订单也同时录入了文档里。这些都是我们在编写代码过程中容易出现的错误,我在编写代码的时候会尽可能重复敲类似的代码,虽然可以简单的复制粘贴,但是较难的代码我会选择自己重新敲一遍,这样既可以加深印象,又可以查看代码是否出现问题。

  在看代码的时候第一感觉就是头疼,虽然她分得很详细,还有着注释,但是从一个函数中找另一个函数,不仅仅是只有那么一个,这种感觉不是很好。所以如果我在读一个什么注释也没有的大串代码,并且是一个没有参与过的项目的时候,可想而知,是很头疼的一件事,还有就是代码的分块对读程的进度也有很大的影响。

 

 

 

  

 

以上是关于读程--从未参与的项目中学习的主要内容,如果未能解决你的问题,请参考以下文章

Angular 在项目中学习@ViewChild和ElementRef的使用

国产操作系统可以从 Google AndroidFuchsia 中学习到什么?

java中学习了swing可以做一个啥项目

想在 C# 中学习 ActiveRecord 模式 [关闭]

业界 | 让机器在对话中学习自然语言:百度提出交互式学习方法

VueJS中学习使用Vuex详解