[软件工程]第一次阅读作业
一、读完《构建之法》后产生的问题
问题一:究竟是应该成为一名全栈工程师还是专精于某一个方向的工程师呢
有人说一个人就可以快速成长成为一名全栈工程师,这让我想起街头卖艺的单人乐队,他们什么都会一些,可以很快的演奏一些曲子。与之对立的,是只研习某一乐器的乐手,你愿意花钱听哪种演奏呢?(第三章)
一方面,无论是谁肯定都希望自己啥都会一些,另一方面,也都会有样样稀松的顾虑。总的来说我觉得在一个项目规模较小的时候,肯定能成为全栈最好的,但是当项目不断变大时,那么全栈工程师的精力也无法支撑他去运维整个项目了,或者项目有某些难点需要攻克的时候,全栈工程师也应当不会有那个难点的专家来的优秀。因此有必要成为一个全栈工程师吗?
问题二:新成员能够参加也能够参加代码复审吗
代码复审能非常有效地帮助新成员了解团队的开发策略、编程风格及工作流程(第四章)
代码复审的目的难道不是帮忙纠错吗,如果新成员加入代码复审的环节,那么新成员的纠错能力应该不足够吧,还是说除了新成员以外还有专门的人员来参与代码复审呢,如果都有的话,那么新成员是否有能力正确的提出有效地bug呢。
问题三:敏捷流程中,是如何保证原来的代码能够支持新的功能的?
软件开发的原则是:
尽早并持续地交付有价值的软件以满足顾客需求
敏捷流程欢迎需求的变化,并利用这种变化来提高用户的竞争优势(第六章)
在完成OO课程的过程中,我觉得就是比较靠向敏捷式开发,在OO课程中我个人感觉最痛苦的时间就是加新的功能,因为一开始我并不了解未来可能增加什么样的功能,所以为了加快速度,更多时候代码的扩展性会比较差。在敏捷式流程中,对于总体的设计似乎不如瀑布流程中来的严苛,那么是怎么保证敏捷性的同时有保证可扩展性的呢。
问题四:软件行业真的是赢者通吃吗
软件行业就是一个赢者通吃的环境,最后一名还要把自己的身家倒贴进去。(第十六章)
尽管大家都用QQ,但是我也没想到,有一天微信代替QQ,同样的还有Windows也被macOS抢占了一部分市场份额,尽管确实第一名占据了绝对有利的位置,但是对于后来者来说,努力发展自己软件的优势,也是能够抢占下相当一部分市场份额的。创新迷思之四中提到到Intuit公司不久成功的打败了微软,成为市场老大。
问题五:处于第四象限的初学者要如何成为自立、取得成就的人
处于不同象限的人,心理不一样,贡献不一样,对领导的期望不一样,领导不能千篇一律地跟他们说“请加油吧”,或者“和大家打成一片”就指望能解决问题。领导还有自己的工作,也不可能全程陪伴所有人,要选择合适的时机,对不同的人施以不同的领导。(第十七章)
对于运气好的人,也许会有一个英明的领导去领导他走向第一象限,但是也有可能领导一上来就对着第四象限的初学者,施加第一象限的压力,那么这时候初学者应该怎么在这样的压力中去努力学习突破自己呢。
二、请问“软件”和“软件工程”这些词汇是如何出现的
软件 | 软件工程 | |
---|---|---|
何人 | Richard R. Carhart | Margaret Hamilton |
何地 | 在rand公司的研究备忘录中 | 在早期的阿波罗登月项目中 |
何时 | August 1953 | 1960s |
三、请问软件工程发展的过程中有什么你觉得有趣的冷知识和故事?
IBM System/360是软件工程发展早期最大的一次项目,IBM公司生产了一系列使用相同指令集的电脑来满足不同用户的需求,并且在升级到更高级的设备时无需更换程序,并且System 360上的应用程序如仍然能在System z上运行。
来源:https://en.wikipedia.org/wiki/IBM_System/360
四、上网调查一下目前流行的源程序版本管理软件和项目管理软件都有哪些, 各有什么优缺点?
项目管理软件 | 优点 | 缺点 |
---|---|---|
git | 对于任何大小的项目,他都是理想的工具.他也是伟大的web工作流工具。他可以作为一个版本控制系统和协作工具,用它来发布工作。代码不需要保存在本地或者服务器.能够跟踪错误. | 复杂,缺少友好的GUI界面 |
Microsoft TFS: | 任务版上能将需求、项目进度一览无余,对于小团队而言,比甘特图更有用,集成了项目管理、版本控制、BUG 跟踪,能有效实现 SCRUM,能与 VS 无缝接合。 | 搭建、维护tfs比较复杂,硬件要求也比较高。 |
Trac | 1、良好的扩充性 2、权限体系是比较完备的设计 3、非常灵活,可以随心所欲的定制,可以和TortoiseSVN集成。 | 1、不支持多项目 2、需求和缺陷没有分离 3、用wiki代替word等编写文档对于产品策划来说门槛太高了 4、中文化不完整 |
BUGZILLA | 1、不收费 2、现在有中文版支持 | 只能管理缺陷 |
Apple XCode | 可以自动创建分类图表。 自动提供撤消、重做和保存功能,无需编写任何编码。 | 更新版本后,某个插件可能会失效 |
来源:https://www.cnblogs.com/yuyue1216/p/5281544.html
Name | Users | Projects | Alexa rank (lower = more popular) |
---|---|---|---|
Assembla | Unknown | 526,581+[44] | 37,451 as of 25 December 2018[45] |
Bitbucket | 5,000,000[46] | Unknown | 869 as of 25 December 2018[47] |
GitHub | 31,000,000[48] | 100,000,000[48] | |
GitLab | 100,000[50] | 546,000[51][k] | 1,885 as of 25 December 2018[52] |
GNU Savannah | 93,346[53] | 3,848[53] | 67,386 as of 25 December 2018[54] |
Launchpad | 3,965,288[55] | 40,881[56] | 7,481 as of 25 December 2018[57] |
OSDN | 54,826[58] | 6,294[58] | 6,429 as of 25 December 2018[59] |
Ourproject.org | 6,353[60] | 1,846[60] | 794,540 as of 25 December 2018[61] |
Phabricator | Unknown | Unknown | Unknown |
SourceForge | 3,700,000[62] | 500,000[62] | 377 as of 25 December 2018[63] |
来源:https://en.wikipedia.org/wiki/Comparison_of_source-code-hosting_facilities