summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHui Lan <lanhui@zjnu.edu.cn>2020-05-08 12:10:45 +0800
committerHui Lan <lanhui@zjnu.edu.cn>2020-05-08 12:10:45 +0800
commitb0e8f26c43fa3a22c5c01c4cbdf4024fd0394ae8 (patch)
tree9694d29ade8c8b2c9a4237b2378134308f9e77af
parent18e1d8e7ffdcd43e2e18c7d63d6eaf25fdbe5e62 (diff)
DialogOnSoftwareProjectManagement.rst: lecture notes on 2020-05-08.
-rw-r--r--DialogOnSoftwareProjectManagement.rst510
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
=============