第一次作业-李纯锐201731084433
作业属于课程
https://edu.cnblogs.com/campus/xnsy/SoftwareEngineeringClass2
作业要求位置
https://edu.cnblogs.com/campus/xnsy/SoftwareEngineeringClass2/homework/2706
我在这个课程的目标是:
认真学习好软件工程原理以及科学的软件项目开发与管理方法,并能把学到的知识运用到以后的工作当中
一,建立博客及个人介绍
1,我的博客
https://www.cnblogs.com/lichunrui/
2,个人介绍
我叫李纯锐,我是一名转专业学生,进入大学时因为成绩不大理想没有直接进入到软件工程专业,但通过我一学期的努力,以综合绩点专业第二的成绩转入了软件工程专业。起初也不能说很喜欢这个专业吧,毕竟当时没有一个方向。但在我平时就是一个非常喜欢创作和设计的人,我平时喜欢剪辑音乐,剪辑视频,喜欢做出一个像样的作品,不管是音乐视频,还是现实生活中的东西,也许这就是当初指引我来到软件工程专业的号角吧。转过来以后,我迅速爱上了敲代码,虽然计算机语言的各种算法很烧脑,但做出成品的那种成就感正是我需要的。特别是上学期学习C#语言通过学习到的知识做出了一个简易学籍管理系统的时候,我愈发觉得自己喜欢上软件工程这门专业了。再说说我平时的爱好吧,我现在的爱好,街舞,也是我坚持最久的一个事情。从初二跳到大学,已经有七年时间了,这几年里面,几乎没有任何东西能够磨灭掉我对街舞的热爱。因为它给了我很多东西,是它给予我自信,让我能主动和别人交朋友,让我能面对全班乃至全校同学分享自己的观点。高中、大学担任街舞队队长,让我从中学会了如何管理一个团队,如何在一个团队中起好带头作用,如何去处理一些之前从未接触到的事情。上大学之后,在大一一年的时间里我取得了新生才艺大赛第一名、四川省排舞比赛第一名以及全国排舞比赛第一名的成绩。所以说街舞给了我很多,最重要的是,我从中学会了坚持和迎难而上的精神。
(1) 回想一下你初入大学时对软件工程专业的畅想
自我介绍中已经说过,我是一名转专业学生,进入大学时因为成绩不大理想没有直接进入到软件工程专业,但通过我一学期的努力才转入了软件工程专业。因为自己喜欢设计与创作的缘故,我选择了进入软件工程这个专业。过去将近一年半的时间里,我学习到的专业知识很符合我对这门专业的期待,因为我可以通过这些知识完成自己目前想完成的事情,比如说制作一个简单的程序,能够满足我自己的需求。软件工程对我来说算是喜欢的领域了,因为恰好符合我的爱好之一。我很希望自己将来能够从事软件方面的工作,最好是在成都这座软件之都吧。
(2) 即将大三的你,对照前人们走过的路和描述未来发展,现在的你
我已经具备了基本的C语言与C#语言的编程知识以及数据库原理及应用,能够运用这些知识解决一些简单的生活问题。但练习的代码量还是很少,没有达到熟练运用的效果。如果想成为一个合格的软件工程本科毕业生,我觉得还应该多多练习代码的运用,并且多掌握几门计算机语言,比如Java、Python等,在实习时能够熟练运用所学知识解决工作问题。
(3)大三是一个人生选择的十字路口,考研、工作、考公、出国,不同的选择在大三就有不同的努力方向。而无论考研还是工作的每条路径,也有许多不同的分支。
博客L【1】的作者提道,“兴趣和热情只能让你很执着,但并不一定能让你走好这条路,只有你的能力和你的强项才能让你走好这条路。”所以说,光有兴趣是不行的,得在能力上下足功夫,应聘的时候别人不是看你对这个行业有多大的兴趣,而是拿实力说话。对我来说,在编程能力这方面,离一名合格的软件工程专业学生还相差甚远。所以我准备在大三努力学习专业知识,同时自学课程外的专业知识,为就业做好准备。
【1】https://coolshell.cn/articles/4561.html
三.提有质量的问题
(1)第十六章《IT行业的创新》中作者提到“改良式”与“颠覆式”两种创新,343页中,作者举出了工业革命时期颠覆式创新的例子说明颠覆式的创新可能给市场带来翻天覆地的变化。对于IT行业亦是如此,一项颠覆式的技术足以让一个发展成熟的公司失去市场。那么一个发展已经足够稳定的公司如何权衡技术维持与技术创新的发展呢?
(2)第十六章16.4中,作者通过三个小朋友与魔方创新的故事阐述了创新不但需要前人经验与市场的积累,最重要的是不能把“屁股”对着观众。16.2中作者通过黄金点游戏来说明成功的创新还需要恰当的时机。那我们在创新的时候,如何才能创新出大众喜欢的东西并在最恰当的时间推出这项创新呢?
(3)第五章《团队和流程》提到,完成软件行业的项目往往需要一个高效率的团队,所以软件行业中产生了很多种团队模式,且各有各的利与弊。那我们应该如何正确的选择出一个最适合自己的团队运行模式才能把效率最大化呢?
(4)第十三章《软件测试》中,作者在P281提到“如果这里面各个模块的用户界面不一致(即使是‘确认’和‘取消’按钮的次序不同),用户使用起来都会很不方便。这些问题都是在单独模块测试中不容易发现的”,那应该如何在给用户使用前发现并解决这一类的问题呢?
(5)第十四章《质量保障》中作者提到“软件要在功能、成本、时间三个方面满足利益相关者的需求”,那么软件开发者应当如何在时间紧张的情况下保证软件的质量呢?
四.了解和调查源程序版本管理工具
1、GIT
优点:1、GIT 出来的目标是支持多人同时维护庞大的开源代码(linux),所以它的分支能力特别强大,体验特别好。加上支持离线提交,分布式推送拉取,使得代码层面的协作相当流畅。
2、适合分布式开发,强调个体。
3、公共服务器压力和数据量都不会太大。
4、速度快、灵活。
缺点:1、学习周期相对而言比较长。
2、不符合常规思维。
3、代码保密性差,一旦开发者把整个库克隆下来就可以完全公开所有代码和版本信息。
2、Microsoft TFS
优点:在用户习惯上,TFS秉承了微软所有产品的特新,开发人员非常容易上手。软件使用过程中,用户会发现与日常导入操作系统、开发工具(VS),Office软件等有很多共同的体验。
缺点:TFS 定位并不是源代码管理,而是一个团队工具,贯穿需求,开发,测试,发布各个流程提供自动化工具。
3、SVN
优点:1、 管理方便,逻辑明确,符合一般人思维习惯。
2、 易于管理,集中式服务器更能保证安全性。
3、 代码一致性非常高。
4、 适合开发人数不多的项目开发。
缺点:1、 服务器压力太大,数据库容量暴增。
2、 如果不能连接到服务器上,基本上不可以工作,看上面第二步,如果服务器不能连接上,就不能提交,还原,对比等等。
3、 不适合开源开发(开发人数非常非常多,但是Google app engine就是用svn的)。但是一般集中式管理的有非常明确的权限管理机制(例如分支访问限制),可以实现分层管理,从而很好的解决开发人数众多的问题。