个人阅读作业-阅读和调研
本作业属于 2022年北航敏捷软件工程 课程,依照的要求是 https://bbs.csdn.net/topics/605073900。本课程中我们的目标是通过实践锻炼工程能力,本作业是作为其理论基础而设置的。
阅读问题
项目内分工原则和管理方法
5.2 节作者主要谈了团队内的几种组织模式,但是并没有谈如何发掘团队成员的技能、如何按照项目特点和人员特点进行分工。这二者其实没有表面上看起来那么的显然,而是蕴含着一些问题:一个人既往的经历固然可以代表他已经拥有的能力,但在某些情况下,人可以在较短的时间内熟悉新的技能,并且也可以取得一定的效果;很可能我们的项目所需要的技能并不能由成员的技能覆盖,在这种情况下,我们按照意愿来分配是一个显然且容易的选择。但是否有其他的方式能带来更多的短期或长期收益呢?
词性与分类的关联
在 11.2 节中作者使用了一张表格展示英语语言中不同的词性和 ERD 的元素的分类的关系。
然而,必须引起注意的是,语言本身就存在二义性,语法等结构是建立在意义本身之上的建构,并不是原本意思的完美分类。如何保证此规则是通用且合理的?
任务的组织和计划
在 8.6 节中主要讨论了计划和估计。诚然估计是计划的基础,然而计划本身也是一件可简单可复杂的事情。书中对于估计花费后我们如何组织任务、安排时间的讨论较少,在需求到执行的过程中留下了一个较为薄弱的中间点,而我恰好对此不甚清楚。
个人技术的扩展
第 2 章中我们讨论了若干开发人员应当掌握的技能和软件工程进行中的若干常见环节。然而作者使用的工具链较为陈旧不谈(毕竟成书时间较早),出现的工具和环节也有不甚全面之处。其实实际的软件工程中还有大量问题和工具没有覆盖。谨举几例:测试机制的组织(不是测试内容本身)、存储管理、特定技术方向(Web、嵌入式)需要注意的点(高可用、低时延、低能耗、高效率)等等。
关于社会的发展
在 16.2 节中有这样一段话:
如果只看微博上的发言,你会觉得德先生和赛先生早已是国人的共识;如果只参加最前沿的科技沙龙,你会觉得明天大家都会用人体嵌入智能芯片同时会同步电子书邮件微博 SNS 再加 GPS 外加云计算,不推出相应产品就会被淘汰……但是社会作为一个整体还没有进步得这么快。
首先第一点上我个人觉得与事实不符;第二点这里作者将其归因于技术的发展,然而这其中不可避免地存在商业运作的成分,其中由于争抢市场份额必定会或多或少出现浮躁、夸大等现象,这也是营销的重要一环,是此现象的重要成因之一,不应该被略过。这里还有一个问题,如何辨别我们看到的“发展”氛围更多是由于真正的进步还是营销?
源代码版本管理软件调研
作业要求是:
上网调研并了解目前被广泛使用的基于源代码版本管理软件Git的项目管理工具,如GitHub、Gitlab、Bitbucket 等,比较它们之间的异同(包括但不限于团队协作流程,项目管理等)。
其实于其称之为版本管理“软件”,我更愿意称之为“平台”。因为这些例子已经远远超出单一软件,而形成了完整的、多维度的、有机的、开阔的开发、协作平台。比较几例如下:
GitHub
GitHub是一个面向开源及私有软件项目的托管平台,因为只支持Git作为唯一的版本库格式进行托管,故名GitHub。
作为开源代码库以及版本控制系统,Github拥有超过900万开发者用户。随着越来越多的应用程序转移到了云上,Github已经成为了管理软件开发以及发现已有代码的首选方法。
如前所述,作为一个分布式的版本控制系统,在Git中并不存在主库这样的概念,每一份复制出的库都可以独立使用,任何两个库之间的不一致之处都可以进行合并。
GitHub可以托管各种git库,并提供一个web界面,但它与外国的SourceForge、Google Code或中国的coding的服务不同,GitHub的独特卖点在于从另外一个项目进行分支的简易性。为一个项目贡献代码非常简单:首先点击项目站点的“fork”的按钮,然后将代码检出并将修改加入到刚才分出的代码库中,最后通过内建的“pull request”机制向项目负责人申请代码合并。已经有人将GitHub称为代码玩家的MySpace。
在GitHub进行分支就像在Myspace(或Facebook)进行交友一样,在社会关系图的节点中不断的连线。
GitHub项目本身自然而然的也在GitHub上进行托管,只不过在一个私有的,公共视图不可见的库中。开源项目可以免费托管,但私有库则并不如此。Chris Wanstrath,GitHub的开发者之一,肯定了通过付费的私有库来在财务上支持免费库的托管这一计划。
通过与客户的接洽,开发FamSpam,甚至是开发GitHub本身,GitHub的私有库已经被证明了物有所值。任何希望节省时间并希望和团队其它成员一样远离页面频繁转换之苦的人士都会从GitHub中获得他们真正想要的价值。
在GitHub,用户可以十分轻易地找到海量的开源代码。
GitLab
GitLab 是一个完善的 DevOps 平台,有社区版和企业版,主要面向 self-hosted 需求,是企业和私人项目的上佳选择。
Gitee
码云是境内的企业级 DevOps 研发管理平台,能帮助开发者/团队/企业更好地管理代码,让软件研发更高效。已有逾 800 万开发者注册。
CI / CD 调研
GitLab
链接:http://82.156.10.137/peaches/ec-frontend/-/pipelines
使用情况如下:
GitHub Actions
链接:https://github.com/GrapeLemonade/grapelemonade.github.io
使用情况如下:
使用体验
CI/CD 可让持续自动化和持续监控贯穿于应用的整个生命周期,帮助我们自动化项目的集成、测试与部署,节省大量人工时间。