软件工程个人阅读作业#2
项目 | 内容 |
---|---|
这个作业属于哪个内容 | 软件工程(罗杰) |
这个作业的要求在哪里 | 个人阅读作业#2 |
我在这个课程的目标是 | 培养软件开发能力和团队合作能力以及代码阅读能力 |
这个作业在哪个具体方面帮助我实现目标 | 本次作业需要阅读《构建之法》了解CI |
一、提出问题
1.在第一章中出现软件病毒,我们应该如何去应对这类恶意软件
首先我们要知道病毒的传播路径,比如访问网页,电子邮件,社交媒体,下载其他软件时赋带的病毒等。特别具有迷惑性的是伪装了自身形象的勒索病毒,比如它常会伪装成flash player升级提示窗口,这也是为什么近些年flash成为了被淘汰的插件。
2.如何研发一个好的软件
首先我们应该要根据实际的工作需求,设计满足这些需求的软件,面向对象开发。其次这个软件不是几天就能完成的急于求成的东西,而是通过团队努力,在一个长期的实践与调试中逐步完成的。最后这个软件应该要可以维护和继续发展,比如能够在需求基础上增加一些需求,而代码的可扩展性要好。
3.结对编程比一个人编程要更好吗?
这里的结对编程是指和另一个人共同开发一个软件,刚好我们这学期也需要结对进行开发一个大概两千行的软件。但是我在想,2000行可能自己一个人熬夜几个晚上就能解决的事情为什么要结对进行呢?比如在选议题上面,两个人可能会产生分歧,在阅读他人代码时也会很难受,然后总共2000行的代码,分工问题,合并之后的检查,软件的运行,我觉得都是费时费力的,不过这是在为接下来的团队合作打下一个基础,学会阅读他人的代码。
4.软件开发需要像OO那样保证很强的严谨性吗?
我觉得如果像做题一样去看待软件工程,显然是没有必要的,Windows也照样BUG一堆,前天还刚刚更新了电脑,导致电脑险些崩溃。一个软件开发出来不可能就不需要修改,肯定需要在用户使用中去不断发现和完善功能,但是起码得保证软件的代码框架没有问题,这样在代码基础上只需要进行功能的修改增加,比如多写一个继承类之类的。
5.软件工程师的职业发展?
都说程序员到了35岁会面临着失业危机,我觉得这个是有一定道理的,如果只会敲代码,那公司为什么不用那些更年轻效率更高更便宜的年轻员工呢?我觉得从事软件工程师就得有着自己的一套独门绝技,让公司不可缺少这样的人才,或是在技术上精湛,或是在架构上眼光远超他人。
二、调研源代码版本管理软件
1.GitHub
GitHub是git存储库和协作项目开发的首选网站。该系统旨在允许用户轻松创建基于Git的特殊版本控制系统。为什么这么受欢迎?Git通过非线性开发历史的可视化工具和导航工具的帮助,支持流畅的版本合并和分割。现在,GitHub拥有5000多万个开源项目。
2.Gitlab
GitLab服务也是基于Git版本控制开发的。尽管GitLab功能与其主要竞争对手GitHub类似,但仍有一些主要特点。GitLab有几种不同的形式,如适用于企业的GitLab SAAS,以及用户的个性化解决方案GitLab Community Edition。
3.Gitee
即码云,是 oschina 免费给企业用的,不用自己搭建环境,可以建立自己的私有仓库。
4.Bitbucket
BitBucket服务也非常类似于GitHub,但是它的大部分功能也略有不同。BitBucket最适合小型开发团队,随着团队的成长,BitBucket提供了与GitHub和GitLab相比更温和的定价条件。BitBucket还为团队提供了灵活的部署模式。
三、调研持续集成/部署工具
gitlab:使用了OO_pre2_task1作为测试对象
1.源码在这
2.代码截图如下:
3.感受:
我觉得这个对于测试一些小型项目还是很方便,但是如果项目输入过多还是会很麻烦