《构建之法》之第一次作业

《构建之法》之第一次作业

这个作业属于哪个课程 <课程的链接>
这个作业要求在哪里 <作业要求的链接>
我在这个课程的目标是 <认识软件创建流程及各流程常用模式方法>
这个作业在哪个具体方面帮助我实现目标 <代码创建规范、软件创建流程规范>
个人博客主页 我的博客

1.简单介绍自己

自我介绍:现在已经大三了,可以说我是一个从大一焦虑到大三的人。给自己定的目标太高了执行力又没跟上去,压力大到自己每天都不开心,让自己思考郁闷的也都是没有什么现实意义的问题。不过相比于大一,现在大三的我反而心态更好了一些,能够更沉稳踏实地思考问题,思考所要学习的内容,思考将来的规划。大概这也是自然成长不断自我磨砺的结果。

2.阅读与思考

(1)回想一下你初入大学时对你所在专业的畅想

· 当初你是如何做出选择你所在专业的决定的?

​ 其实刚高考完是不知道自己的兴趣点在哪里的,我喜欢的东西很多,诸如心理学,园林工程,计算机,天文学,翻译都在我的考虑范围之内。但结合就业等情况,加之父母希望我学医时我的逆反心理,报考志愿时我还是很赌气地填满了计算机相关专业。

· 你认为过去一(两)年中接触到的课程是否符合你对你自己所在专业的期待,为什么?

​ 就软件工程这个专业而言我是很喜欢的,但学校的课表课程就一言难尽了。个人认为学校的课表安排的极其不合理,相关课程完全脱离了主次衔接关系,且课时被砍得七零八落。比如数据结构在大一下学期上的,且只有八九周的课程量,脱去放假区区30课时的课时量就完了?说好的数据结构很重要呢?计算机系统基础在我们毫无汇编基础的情况下草草开课,在一脸懵逼中草草结束。汇编这门课听老师说以前是有的,又是怎么没的呢…当然自学以上问题都能解决,但还有什么上学上课的必要呢。

· 你觉得你所在的专业是你喜欢的领域吗,它是你擅长的领域吗?

​ 软件工程是我喜欢的专业,前一段时间有点误入歧途,代码写的没有很多而专注于其他方面,偏离了自己专业最相关的软件开发方面,但也能自己认识到问题,从暑假上过课后到现在也在积极弥补。

· 将来你会选择从事和你专业相关的工作吗?是的话给出你想去的城市、公司和岗位,否的话给出原因

​ 会吧,可能会从事软件开发相关的工作,当然自己对网络安全更感兴趣,也可能去当一名安全工程师或者软件测试师。

​ 成都深圳杭州。

(2)对照前人们走过的路和描述未来发展,现在的你

· 自我感觉你已经具备的专业知识、技能、能力有哪些?已经写过的代码量是多少?描述你做的最复杂的项目/作业。

​ 软件开发及网络安全相关的知识都了解一些;代码量之前有点误入歧途有点少,现在也在积极弥补;最复杂的项目可能是现在正在弥补的措施之一,一个新闻内容管理系统。

· 离成为一个合格的本科毕业生,在专业知识、技能、能力上还差距哪些?

​ 代码写少了,还不能够在没有完整参照下独立完成一个项目,相关算法积累也不够。

​ 操作系统,计算机网络等看过的也忘得差不多了,未在实践中有所应用涉及。

(3)目前是一个人生选择的十字路口,考研、工作、考公、出国,不同的选择在大三就有不同的努力方向。而无论考研还是工作的每条路径,也有许多不同的分支。

· 对照以上你阅读的前人们的经历,你的选择是什么?

​ 考研,还是有名校情结的。

· 在这种选择下,你认为你相比其他同学来说有何优势,有何劣势?

​ 大概知识面更广一些?又或者面对工作的压力稍微晚一些?见识更广一些?

参加工作晚意味着实践经历会少,当别人攒满三年工作经验的时候我们还是相关应届毕业生。

· 针对你的选择,你给自己的大三设定的规划安排是什么?

​ 认真写几个项目,把代码量提上去,尽力弥补之前的迷路。搜索合适的考研院校,进行相关的考研准备。

· 你对于实现自己的梦想已经做了或者计划做什么样的准备?

​ 进行相关小项目开发;买了相关考研辅导书,关注相关考研院校动态。

3.提有质量的问题

1.第四章两人合作讲述的是一种理想情况下两人或者两人以上进行合作开发项目。但实际操作过程中,如果两个人或团队成员之间诸如由于水平不一致而造成的进度差错、代码习惯不同,乃至团队成员之间性格不同所需的磨合、磨合好的搭档由于公司项目需要被分配到不同组别中,种种情况作为公司负责人如何解决?作为公司项目团队的一员又如何调整自己的心态?
2.如第八章174页那个极端的例子:几个从来没有合作过的程序员用他们从来没有用过的技术去实现一个他们以前没碰到过的需求,他们的时间估计一定很飘忽。
也如同书中讲到,项目的复杂程度由需求的复杂程度和技术的复杂程度共同决定,因而我们进行前期分析规划的时候如何真正地去把握好一个大概时间点呢?毕竟复杂度大部分也就是个个人感觉问题,个人主观随意性太大。
3.第十一章软件设计与实现中,当感觉拿到的文档不符合自己观点或者与实际有冲突(本人未参与文档设计),而其他大部分人没有异议,该如何超越职责提出自己问题,与团队成员进行相应沟通?
4.关于第十三章软件测试问题,关于功能性测试和非功能性测试,由于专业的安全测试人员对软件结构可能不甚了解,对代码结构了解的人对于安全测试又不了解,那测试是需要好几拨人吗?如果对于一支小型团队,预算人员能力都有限的情况下如何进行软件测试呢?什么情况下需要专门的代码审计?
5.第十六章的迷思五:要成为领域的专家,才能创新。
个人认为是没有错的。即便不是专家,也至少对这个领域有相当的了解以及熟练度。比如大一时有了一个好的想法创意,准备开发一个相关网站,但真正上手去做以后,发现html、css、js、ajax、工具框架、数据库、、、、、、不会的东西太多了,每一步都举步维艰的情况下热情很快就会被打消,一个普通的东西都做不出来,更不用谈创新了。

4.了解和调查源程序版本管理工具

1.Git:是一个开源的分布式版本控制系统,可以有效、高速地处理从很小到非常大的项目版本管理。Git是为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件。

优点:

1.适合分布式开发,强调个体。

2.公共服务器压力和数据量都不会太大。

3.速度快、灵活。

4.任意两个开发者之间可以很容易的解决冲突。

5.离线工作。

缺点:

1.相关可查阅资料较少。

2.学习周期长,入门比较复杂。

3.代码保密性差,一旦开发者把整个库克隆下来就可以完全公开所有代码和版本信息。

2.GitHub是一个面向开源及私有软件项目的托管平台,因为只支持git 作为唯一的版本库格式进行托管,故名GitHub。

优点:支持多种编辑器,可以方便编写文档;熟悉git后容易上手。

缺点:同样,如果不熟悉git,学习成本较高。

3.Mercurial是一种轻量级分布式版本控制系统,采用 Python 语言实现,易于学习和使用,扩展性强。

优点:

1.管理更为轻松。

2.系统更为健壮。

3.对网络的依赖性更低。

4.BitBucket 是一家源代码托管网站,采用Mercural和Git作为分布式版本控制系统,同时提供商业计划和免费账户。

优点:

1.无限制的私有仓库个数

2.无限制的磁盘空间

3.API 支持

4.灵活的权限控制

5.可自定义域名

posted @ 2019-09-11 10:12  米开朗琪罗’  阅读(187)  评论(1编辑  收藏  举报