diff options
author | Hui Lan <lanhui@zjnu.edu.cn> | 2020-05-08 12:10:45 +0800 |
---|---|---|
committer | Hui Lan <lanhui@zjnu.edu.cn> | 2020-05-08 12:10:45 +0800 |
commit | b0e8f26c43fa3a22c5c01c4cbdf4024fd0394ae8 (patch) | |
tree | 9694d29ade8c8b2c9a4237b2378134308f9e77af | |
parent | 18e1d8e7ffdcd43e2e18c7d63d6eaf25fdbe5e62 (diff) |
DialogOnSoftwareProjectManagement.rst: lecture notes on 2020-05-08.
-rw-r--r-- | DialogOnSoftwareProjectManagement.rst | 510 |
1 files changed, 510 insertions, 0 deletions
diff --git a/DialogOnSoftwareProjectManagement.rst b/DialogOnSoftwareProjectManagement.rst index 6a58461..8f4417f 100644 --- a/DialogOnSoftwareProjectManagement.rst +++ b/DialogOnSoftwareProjectManagement.rst @@ -9407,6 +9407,516 @@ Bye + +Friday, 8 May 2020 +===================== + + +Morning section +--------------- + +*Pull Request Review - Bus Factor - Fork and forkability* + +2020-05-07 19:47:21 蓝珲(1348141770) +明天上午有课,腾讯会议 ID:684 968 983 + +2020-05-08 8:00:46 蓝珲(1348141770) +大家早上好。 + +2020-05-08 8:01:00 蓝珲(1348141770) +请把学号打一下。 + +2020-05-08 8:01:04 软工初阳171周佳威<zhouwys@qq.com> +201736900130 + +2020-05-08 8:01:06 软工初阳171 刘莉莉(1196448461) +201736900108 + +2020-05-08 8:01:08 初阳软工171叶红霞(1655602611) +201736900115 + +2020-05-08 8:01:09 初阳软工171 蒋佳玲(1850424414) +201732120103 + +2020-05-08 8:01:09 初阳软工171 余慧(945168786) +201736900117 + +2020-05-08 8:01:10 初阳软工171方梓安(2453122992) +201736900105 + +2020-05-08 8:01:14 软工初阳171 何可人(1461938594) +201736900106 + +2020-05-08 8:01:15 重新做人(1344914885) +201736900113 + +2020-05-08 8:01:16 软件工程 常思琦(995959606) +201732120101 + +2020-05-08 8:01:17 初阳软工171 伍泰炜(2728735169) +201736900125 + +2020-05-08 8:01:17 初阳软工171袁世家(1515245651) +201739230123 + +2020-05-08 8:01:18 初阳软工171 王海榕(1012635788) +201732120105 + +2020-05-08 8:01:19 初阳软工171 吴贞娴(1395588359) +201732120108 + +2020-05-08 8:01:20 软件工程 张珣(1955357976) +201732120109 + +2020-05-08 8:01:21 软件工程初阳1701 徐梦旗(2663479778) +201732120124 + +2020-05-08 8:01:23 初阳软工171 徐闰钞(374526027) +201736900127 + +2020-05-08 8:01:24 初阳软工171 陈俊蕾(1223259604) +201736900103 + +2020-05-08 8:01:39 网络171—董文文(2373706002) +201730210303 + +2020-05-08 8:01:50 软件工程 王雪洁(249795581) +201732120106 + +2020-05-08 8:02:07 唐叶尔(1768559501) +201736900111 + +2020-05-08 8:02:27 软工初阳171 应舸(1434305984) +201736900128 + +2020-05-08 8:07:50 蓝珲(1348141770) +Review Merge Conflict Question in Quiz 5. The answre is False. + +2020-05-08 8:08:14 计非181 王智洋(1162466610) +201830220719 + +2020-05-08 8:14:40 初阳软工171 陈肖飞(1662727361) +201736900104 + +2020-05-08 8:15:54 蓝珲(1348141770) +https://github.com/lanlab-org/OAPS-Jifry/pull/4 + +2020-05-08 8:20:45 蓝珲(1348141770) +我们看一下上面的Pull Request,这是对Open Access Publishing Service的一个修改。 + +2020-05-08 8:21:32 蓝珲(1348141770) +这个Pull Request的主要目的是“只允许上传PDF文件”。 + +2020-05-08 8:21:52 蓝珲(1348141770) + +.. image:: TIM20200508104146.png + :height: 100 + :alt: space after ${ + + +2020-05-08 8:22:22 蓝珲(1348141770) +Ibrahim是Committer。我是Reviewer。 + +2020-05-08 8:22:29 蓝珲(1348141770) +我即spm2020spring。 + +2020-05-08 8:22:46 蓝珲(1348141770) +第一个Review是关于格式的。 + +2020-05-08 8:23:29 蓝珲(1348141770) +为什么在${ author}$里, author前面要有一个空格,而后面没有空格? + +2020-05-08 8:23:36 蓝珲(1348141770) +Ibrahim的回答很有意思。 + +2020-05-08 8:23:45 蓝珲(1348141770) +习惯。 + +2020-05-08 8:23:55 蓝珲(1348141770) +第一个编程老师教的吧? + +2020-05-08 8:24:56 蓝珲(1348141770) +其实格式看似不是个大问题,“编译器不会报错啊”。 + +2020-05-08 8:25:21 蓝珲(1348141770) +但是软件工程不仅仅是编译器啊。它涉及到维护,维护就涉及到人。 + +2020-05-08 8:25:31 蓝珲(1348141770) +人对这种不对称比较敏感。 + +2020-05-08 8:25:51 蓝珲(1348141770) +Ibrahim提到了Same School Effect。 + +2020-05-08 8:25:57 蓝珲(1348141770) +学校的重要性体现出来了。 + +2020-05-08 8:27:29 蓝珲(1348141770) + +.. image:: TIM20200508104212.png + :height: 100 + :alt: variable naming + +2020-05-08 8:27:44 蓝珲(1348141770) +这个是关于变量命名的。 + +2020-05-08 8:28:00 蓝珲(1348141770) +好的变量名字应该能够最大化反映变量的目的。 + +2020-05-08 8:28:25 蓝珲(1348141770) +起初Ibrahim用的是checkstatus。 + +2020-05-08 8:28:50 蓝珲(1348141770) +也还不错,似乎是用来检查某种状态。 + +2020-05-08 8:28:58 蓝珲(1348141770) +但是,是什么状态呢? + +2020-05-08 8:29:07 蓝珲(1348141770) +不得而知。 + +2020-05-08 8:29:55 蓝珲(1348141770) +其实它的这个变量的设置目的是检查插入的文章标题(article title)是不是数据库中已经有了。 + +2020-05-08 8:30:16 蓝珲(1348141770) +用checkstatus显得过于宽泛而不具体了。 + +2020-05-08 8:30:29 蓝珲(1348141770) +不需要用check。 + +2020-05-08 8:30:57 蓝珲(1348141770) +check是一个动词,如果checkstatus作为一个函数,还说得过去,作为一个变量名,就不那么合适了。 + +2020-05-08 8:31:24 蓝珲(1348141770) +还是那句话,不会影响程序运行,但是会影响程序的可读性(readability)。 + +2020-05-08 8:31:31 蓝珲(1348141770) +我们休息5分钟。 + +2020-05-08 8:32:41 网络171许晓鹏(892376699) +201730210128 不好意思,迟到了[表情] + +2020-05-08 8:36:34 蓝珲(1348141770) + + +.. image:: TIM20200508104240.png + :height: 100 + :alt: grammar error in displayed message + + +2020-05-08 8:36:39 蓝珲(1348141770) +我们回来。 + +2020-05-08 8:37:02 蓝珲(1348141770) +这个属于给用户的提示信息中出现语法错误了。 + +2020-05-08 8:37:28 蓝珲(1348141770) +exist是个动词,is ... exist显然是语法错误。 + +2020-05-08 8:37:50 蓝珲(1348141770) +anotherone把another与one两个单词连在一起了。 + +2020-05-08 8:38:06 蓝珲(1348141770) +如果把这种信息程序给用户,就显得比较低级了。 + +2020-05-08 8:38:28 蓝珲(1348141770) +“我英文不好”,不能成为一个理由。 + +2020-05-08 8:39:33 蓝珲(1348141770) + +.. image:: TIM20200508104317.png + :height: 100 + :alt: use bing translator if you are not good at English + +2020-05-08 8:39:43 蓝珲(1348141770) +自动翻译工具就在网上,为什么不用呢? + +2020-05-08 8:40:20 蓝珲(1348141770) +主要的原因是程序员(programmer)当时把注意力集中在“让程序能跑”上面了。 + +2020-05-08 8:40:28 蓝珲(1348141770) +这个可以理解。 + +2020-05-08 8:40:48 蓝珲(1348141770) +反过来说,这就凸显Code Review的重要性了。 + +2020-05-08 8:41:11 蓝珲(1348141770) +因为在Code Review中,我们的注意力是在查错。 + +2020-05-08 8:42:45 蓝珲(1348141770) +所以,写完要自己写得东西再读一遍。 + +2020-05-08 8:42:59 蓝珲(1348141770) +这是作为作者最基本的义务。 + +2020-05-08 8:43:22 蓝珲(1348141770) +写完自己都不想看了,不应该。 + +2020-05-08 8:43:51 蓝珲(1348141770) +这种类型的错误,我见得很多了。 + +2020-05-08 8:44:07 蓝珲(1348141770) +也反应了一般国人的做事态度吧。 + +2020-05-08 8:44:20 蓝珲(1348141770) +[图片] + +2020-05-08 8:45:11 蓝珲(1348141770) +与语法错误类似的,是typo(打字错误)。 + +2020-05-08 8:45:54 蓝珲(1348141770) +这类错误,通过使用工具加之一定的勤勉,是可以消除的。不需要多聪明。对程序的改善作用很大。 + +2020-05-08 8:46:30 蓝珲(1348141770) +Ibrahim这里漏掉了n。 把plain写成plai了。 + +2020-05-08 8:47:11 蓝珲(1348141770) +不怪他第一遍把plain写成plai了。 + +2020-05-08 8:47:33 蓝珲(1348141770) +怪他把plai当作plain交上来了。 + +2020-05-08 8:48:02 蓝珲(1348141770) +[图片] + +2020-05-08 8:48:19 蓝珲(1348141770) +这个更加精彩了。 + +2020-05-08 8:48:28 蓝珲(1348141770) +安全漏洞。 + +2020-05-08 8:48:47 蓝珲(1348141770) +把密码124536直接写到源程序中了。 + +2020-05-08 8:50:05 蓝珲(1348141770) +所以,Code Review的作用是多重的。 + +2020-05-08 8:50:53 蓝珲(1348141770) +最后一个。 + +2020-05-08 8:51:11 蓝珲(1348141770) +[图片] + +2020-05-08 8:51:23 蓝珲(1348141770) +我的Code Review间接帮他找到一个Bug。 + +2020-05-08 8:52:25 蓝珲(1348141770) +我没有直接提到这个Bug,但是Ibrahim在仔细检查自己代码的途中,发现了一个隐藏得很深的Bug。 + +2020-05-08 8:52:41 蓝珲(1348141770) +有兴趣的同学可以去看看这个Bug report。 + +2020-05-08 8:53:34 蓝珲(1348141770) +所以,如果我问你,Code Review能够检查出什么类型的问题,你应该可以回答了吧? + +2020-05-08 8:53:58 蓝珲(1348141770) +Ibrahim他们这个程序是用JSP写的。我不知道JSP是什么玩意。 + +2020-05-08 8:54:12 蓝珲(1348141770) +但是这不妨碍我做Code Review啊。 + +2020-05-08 8:54:49 蓝珲(1348141770) +不妨碍有一定计算机专业知识背景的人去做Code Review。 + +2020-05-08 8:56:17 蓝珲(1348141770) +Code Review之前,与经过Code Review修改代码后,代码的质量不可同日而语。 + +2020-05-08 8:56:29 蓝珲(1348141770) +慢是慢。 + +2020-05-08 8:56:35 蓝珲(1348141770) +好处是质量提高了。 + +2020-05-08 8:56:51 蓝珲(1348141770) +休息5分钟。 + +2020-05-08 9:01:53 蓝珲(1348141770) +我们回来。 + +2020-05-08 9:02:01 蓝珲(1348141770) +我昨天看了一下你的看板。 + +2020-05-08 9:02:07 蓝珲(1348141770) +基本上没有什么变化。 + +2020-05-08 9:02:16 蓝珲(1348141770) +考虑到是5.1节,可以理解。 + +2020-05-08 9:02:42 蓝珲(1348141770) +希望在接下去的两个星期,会有一些积极变化。 + +2020-05-08 9:05:11 蓝珲(1348141770) +[图片] + +2020-05-08 9:05:35 蓝珲(1348141770) +讲一下Bus Fator。 + +2020-05-08 9:05:43 蓝珲(1348141770) +不知道大家有没有听过Bus Factor? + +2020-05-08 9:05:49 蓝珲(1348141770) +Bus Factor。 + +2020-05-08 9:06:24 蓝珲(1348141770) +意思就是,一个团队要有多少人被Bus撞坏才能使得团队的项目无法进行。 + +2020-05-08 9:06:49 蓝珲(1348141770) +那么大家说这个Bus Factor大好还是小好? + +2020-05-08 9:07:12 蓝珲(1348141770) +我觉得是大好。 + +2020-05-08 9:07:19 蓝珲(1348141770) +如果很小,比如1. + +2020-05-08 9:07:40 蓝珲(1348141770) +团队中1个挂掉,整个项目就搁浅了。 + +2020-05-08 9:07:55 蓝珲(1348141770) +如果很大,比如5. + +2020-05-08 9:08:22 蓝珲(1348141770) +就是说要5个人离职,项目才无法进行。 + +2020-05-08 9:08:57 蓝珲(1348141770) +Institutional permanence achieved by: + +2020-05-08 9:09:28 蓝珲(1348141770) +[图片] + +2020-05-08 9:09:40 蓝珲(1348141770) +铁打的营盘,流水的兵。 + +2020-05-08 9:10:15 蓝珲(1348141770) +团队如何变得如铁打状呢? + +2020-05-08 9:10:40 蓝珲(1348141770) +一方面需要有一个大家都能够接受的制度。 + +2020-05-08 9:10:54 蓝珲(1348141770) +另外一方面是要有一个比较公平的氛围。 + +2020-05-08 9:11:10 蓝珲(1348141770) +人对不公平是比较敏感的。 + +2020-05-08 9:11:53 蓝珲(1348141770) +[图片] + +2020-05-08 9:12:03 蓝珲(1348141770) +Fork这个词大家都见过了。 + +2020-05-08 9:12:16 蓝珲(1348141770) +原始的意思就是分叉。 + +2020-05-08 9:12:40 蓝珲(1348141770) +大家如果看看手里的叉子,就知道分叉是什么意思了。 + +2020-05-08 9:13:07 蓝珲(1348141770) +Fork的原始意思不就是叉子吗? + +2020-05-08 9:13:29 蓝珲(1348141770) +GitHub上,你也很容易可以Fork一个repo。 + +2020-05-08 9:13:41 蓝珲(1348141770) +全克隆一个公有项目。 + +2020-05-08 9:14:16 蓝珲(1348141770) +你可以轻易fork一个项目,但是别人很可能不理会你的Fork。 + +2020-05-08 9:14:31 蓝珲(1348141770) +因为你没有原始的团队有能力维护这个项目啊。 + +2020-05-08 9:14:51 蓝珲(1348141770) +所以,这种fork是没有什么实际意义的。 + +2020-05-08 9:15:03 蓝珲(1348141770) +对原始的项目产生不了任何实质性影响。 + +2020-05-08 9:15:26 蓝珲(1348141770) +真正有影响的fork发生在原始的项目团队里面出现了分歧。 + +2020-05-08 9:15:45 蓝珲(1348141770) +导致原始团队中有一部分人要“起义”了。 + +2020-05-08 9:16:18 蓝珲(1348141770) +于是,那部分人说,我们fork一个,然后在这个Fork上独立开发了。 + +2020-05-08 9:16:45 蓝珲(1348141770) +这时候,原始的项目团队也许会面临解构的风险。 + +2020-05-08 9:16:59 蓝珲(1348141770) +这部分人为什么要玩fork呢? + +2020-05-08 9:17:23 蓝珲(1348141770) +因为这部分的人“正确”意见不被接受吧? + +2020-05-08 9:18:20 蓝珲(1348141770) +有fork机制的存在,那么原始项目团队在做决策的时候就会比较审慎了。 + +2020-05-08 9:18:37 蓝珲(1348141770) +怕人“反叛”啊。 + +2020-05-08 9:20:04 蓝珲(1348141770) +所以,Possibility of fork的存在,对原始项目团队的负责人形成了制衡。 + +2020-05-08 9:20:19 蓝珲(1348141770) +当然,以上所说,都是开源的情况。 + +2020-05-08 9:20:36 蓝珲(1348141770) +公司的私有项目就不适用了。 + +2020-05-08 9:21:31 蓝珲(1348141770) +我现在讲的是第四章。 + +2020-05-08 9:21:47 蓝珲(1348141770) +我假设你们已经读完第四章了。 + +2020-05-08 9:22:14 蓝珲(1348141770) +第四章的最后一节不需要读。 + +2020-05-08 9:22:24 蓝珲(1348141770) +Joining or Creating a Non-Profit Organization. + +2020-05-08 9:22:34 蓝珲(1348141770) +还有一个月就期末考试了。 + +2020-05-08 9:23:02 蓝珲(1348141770) +我们这个学期的考试暂定采取线上开卷考试。 + +2020-05-08 9:23:38 蓝珲(1348141770) +这个大家都知道了吧? + +2020-05-08 9:24:01 蓝珲(1348141770) +如何开卷还在考虑之中。 + +2020-05-08 9:24:08 蓝珲(1348141770) +一种是用超星。 + +2020-05-08 9:24:19 蓝珲(1348141770) +超星我没有怎么用过。 + +2020-05-08 9:24:56 蓝珲(1348141770) +我个人更喜欢的方式是把卷子发给你们,让你们在一定的时间内返回给我就可以。 + +2020-05-08 9:25:02 蓝珲(1348141770) +避开超星。 + +2020-05-08 9:25:13 蓝珲(1348141770) +我怕超星平台奔溃啊。 + +2020-05-08 9:25:33 蓝珲(1348141770) +你们有什么好建议可以通过email发给我。 + +2020-05-08 9:25:39 蓝珲(1348141770) +lanhui@zjnu.edu.cn + +2020-05-08 9:25:48 蓝珲(1348141770) +今天就到这里。 + +2020-05-08 9:25:51 蓝珲(1348141770) +谢谢大家。 + + + How to cite ============= |