diff options
author | Hui Lan <lanhui@zjnu.edu.cn> | 2020-03-17 17:27:40 +0800 |
---|---|---|
committer | Hui Lan <lanhui@zjnu.edu.cn> | 2020-03-17 17:27:40 +0800 |
commit | 04128d6ccf1d176c81106c0f14d3930941f14910 (patch) | |
tree | 95a8e2cea9900942a4c234c853e800086b52c359 | |
parent | 6c1e0fd7a97fe7e77a25aa905d2ed590c43aabad (diff) |
DialogOnSoftwareProjectManagement.rst: spm lecture notes on 13 March 2020 - instruction language: Chinese.
-rw-r--r-- | DialogOnSoftwareProjectManagement.rst | 429 |
1 files changed, 428 insertions, 1 deletions
diff --git a/DialogOnSoftwareProjectManagement.rst b/DialogOnSoftwareProjectManagement.rst index ef84594..f067190 100644 --- a/DialogOnSoftwareProjectManagement.rst +++ b/DialogOnSoftwareProjectManagement.rst @@ -4,7 +4,7 @@ Dialog On Software Project Management :Authors: Hui Lan (lanhui at zjnu.edu.cn) -:Version: 0.0.1 of 2020/03/16 +:Version: 0.0.2 of 2020/03/17 .. contents:: Table of content @@ -17,6 +17,433 @@ This book contains a series of special lecture notes in a dialog form on softwar + +Friday, 13 March 2020 +===================== + +*Quiz review - The Cathedral and the Bazaar - Project management software - Kanboard - Sustained maintenance efforts - Project mission - Standard code tree* + +Morning section +---------------- + +2020-03-13 7:57:26 初阳软工171 伍泰炜(2728735169) +[表情] + +2020-03-13 7:57:45 网络171许晓鹏(892376699) +[表情] + +2020-03-13 8:00:05 初阳软工171 伍泰炜(2728735169) +201736900125 + +2020-03-13 8:00:10 软工初阳171 刘莉莉(1196448461) +201736900108 + +2020-03-13 8:00:17 软件工程 张珣(1955357976) +201732120109 + +2020-03-13 8:00:18 初阳软工171 吴贞娴(1395588359) +201732120108 + +2020-03-13 8:00:22 初阳软工171 余慧(945168786) +201736900117 + +2020-03-13 8:00:22 初阳软工171叶红霞(1655602611) +201736900115 + +2020-03-13 8:00:23 初阳软工171袁世家(1515245651) +201739230123 + +2020-03-13 8:00:23 软工初阳171周佳威<zhouwys@qq.com> +201736900130 + +2020-03-13 8:00:24 初阳软工171 王海榕(1012635788) +201732120105 + +2020-03-13 8:00:24 初阳软工171 蒋佳玲(1850424414) +201732120103 + +2020-03-13 8:00:28 系统消息(10000) +初阳软工171 陈俊蕾撤回了一条消息 + +2020-03-13 8:00:28 唐叶尔(1768559501) +201736900111 + +2020-03-13 8:00:30 网络171许晓鹏(892376699) +201730210128 + +2020-03-13 8:00:33 软件工程初阳1701 徐梦旗(2663479778) +201732120124 + +2020-03-13 8:00:37 初阳软工171 陈俊蕾(1223259604) +201736900103 + +2020-03-13 8:00:40 重新做人(1344914885) +201736900113 + +2020-03-13 8:00:40 软件工程 王雪洁(249795581) +201732120106 + +2020-03-13 8:00:44 初阳软工171 陈肖飞(1662727361) +20173690104 + +2020-03-13 8:00:46 蓝珲(1348141770) 大家早上好 + +2020-03-13 8:00:52 网络171—董文文(2373706002) +201730210303 + +2020-03-13 8:01:00 初阳软工171 徐闰钞(374526027) +201736900127 + +2020-03-13 8:01:03 网络171许晓鹏(892376699) +早上好 + +蓝珲(1348141770) =============================================== + +蓝珲(1348141770) 我们上次课讲了开源软件的收费模式,以及开源软件的许可证。 + +蓝珲(1348141770) 还做了一个Quiz。 + +蓝珲(1348141770) :: + + [True/False] Free software means zero-cost software. + [True/False] Zero-cost software cannot be proprietary. + [True/False] If the source code is visible, then the software is open source. + [True/False] Open Source software cannot be used for commercial purposes. + +蓝珲(1348141770) 我觉得答案都是F。 + +蓝珲(1348141770) 大家有没有不同意见的? + +蓝珲(1348141770) Free software means zero-cost software. 说得过于绝对。 RStudio就可以收费啊。 + +蓝珲(1348141770) Zero-cost software cannot be proprietary. 如果这个zero-cost是对用户来说的话,其实大家在Apple Store免费下载的很多软件都是私有的。 + +2020-03-13 8:05:10 计非181 王智洋(1162466610) +201830220719 + +2020-03-13 8:05:18 网络171-侯新苗(953957823) +20173021034 + +蓝珲(1348141770) Simple Note是不是私有的? + +蓝珲(1348141770) https://simplenote.com/ + +蓝珲(1348141770) 看一下它的主页,好像没有说是open source的,许可证的信息也没有。 + +蓝珲(1348141770) Simple Note下载使用是免费的,有些额外功能需要付费。 + +蓝珲(1348141770) If the source code is visible, then the software is open source. 如果仅仅是代码可见,但是许可证是私有的话,就不是open source的。 + +蓝珲(1348141770) Open Source software cannot be used for commercial purposes. 这个也是False。 RStudio就是例子。它有不同的收费计划(pricing plan),收费是用于商业目的。 + +蓝珲(1348141770) 以上是Quiz的内容。 + +蓝珲(1348141770) 我还要求你们去读课本的第二章。大家都已经读完了吧? + +蓝珲(1348141770) https://producingoss.com/en/getting-started.html + +蓝珲(1348141770) 我估计有部分同学还没有开始读 -- 还没有开始读的要开始读起来了。 + +蓝珲(1348141770) 你们中文版的那个可以做成电子书吗? + +蓝珲(1348141770) https://producingoss.com/zh/ + +2020-03-13 8:12:34 软工初阳171 应舸(1434305984) +哪个中文版[表情] + +蓝珲(1348141770) https://producingoss.com/zh/ch02.xml + +蓝珲(1348141770) 就是上面这个。 + +蓝珲(1348141770) https://producingoss.com/zh/ + +蓝珲(1348141770) 把整个文件夹拷贝下来,应该是可以做成电子书的。 + +蓝珲(1348141770) 大家可以试试看。我试过,没有成功。 + +蓝珲(1348141770) 如果有人成功了,可以分享一下。 + +蓝珲(1348141770) 因为我的英文比较好,所以英文看起来比较顺畅。 + +蓝珲(1348141770) 但是阅读速度,还是读中文快的。 + +蓝珲(1348141770) 中文的话,可以上下扫描。英文,只能老老实实一句一句读了。 + +蓝珲(1348141770) 也有好处。 + +蓝珲(1348141770) 另外一个阅读任务也出来了 + +蓝珲(1348141770) http://catb.org/~esr/writings/cathedral-bazaar/cathedral-bazaar/index.html + +蓝珲(1348141770) The Cathedral and the Bazaar + +蓝珲(1348141770) 大教堂与集市 + +蓝珲(1348141770) 这个是比较有名了,讲两种软件开发模式。 篇幅较长。 + +蓝珲(1348141770) 我也是教这门课才看一遍,以前听说过,一直没看,以为是讲生活信仰的。 + +蓝珲(1348141770) [图片] + +.. image:: Cathedral-and-Bazaar-ToC.png + :height: 100 + :alt: required reading sections + + +蓝珲(1348141770) 你们只需要把箭头经过的章节读一下,其他的不用读(主要在讲fetchmail的开发细节)。 + +蓝珲(1348141770) 这个,中文版也是有的,但是网上说翻译的比较烂。 + +蓝珲(1348141770) 确实也不好翻译。 + +蓝珲(1348141770) b站的一些字幕组来翻译估计会翻译的更好。 + +蓝珲(1348141770) 我们先休息5分钟。 + +2020-03-13 8:21:12 软工初阳171 何可人(1461938594) +201736900106 + +2020-03-13 8:21:40 软工初阳171 应舸(1434305984) +201736900128 + +2020-03-13 8:22:21 初阳软工171方梓安(2453122992) +201736900105 + +蓝珲(1348141770) =============================================== + +蓝珲(1348141770) 还有其他一些好书,Peopleware 之类的。 + +蓝珲(1348141770) 这个大家工作后可以读读。 + +蓝珲(1348141770) [文件] + +蓝珲(1348141770) 上面这个文件主要是专访熊节的文字实录。大家课后可以看看。 + +蓝珲(1348141770) 不做要求。 + +蓝珲(1348141770) 对了,你们的 Decide areas for improvement 还没有交。 + +蓝珲(1348141770) 是我忘记在对分易创建提交目录了。 + +蓝珲(1348141770) 现在已经创建,你们在下周一之前交上去。别忘了包括组员信息,这样方便我给分。这个是2分。 + +蓝珲(1348141770) 看板 - Kanboard + +蓝珲(1348141770) 我想让你们用看板来管理软件项目。 + +蓝珲(1348141770) 你们的账号密码我已经创建。 + +蓝珲(1348141770) [图片] + +.. image:: TIM20200316180248.png + :height: 100 + :alt: Kanboard for undergraduate thesis supervision + +蓝珲(1348141770) 我的看板是长上面这个样子的。 + +蓝珲(1348141770) 卡片可以拖动到不同的泳道(swim lane)。 + +蓝珲(1348141770) 有4个泳道。 + +2020-03-13 8:37:28 初阳软工171 伍泰炜(2728735169) +然而这是Github已经包含的一部分功能…… + +蓝珲(1348141770) 原则上是“进行中(In Progress)”那个泳道卡片(任务)不能超过2个。这是为了避免 Multi-tasking。 + +蓝珲(1348141770) Github只是拿来做代码版本管理的。 + +蓝珲(1348141770) 看板肯定没有这个做得好。 + +蓝珲(1348141770) 个人观点。 + +蓝珲(1348141770) 我的目的是,我要看到你们管理项目的动态。 + +蓝珲(1348141770) 也许你已经有动态了,但是我不知道。 + +蓝珲(1348141770) 所以你要记录下来。 + +蓝珲(1348141770) 看板这个功能很多团队协作工具都有的,比如Trello,JIRA。 + +蓝珲(1348141770) 我们用的这个 kanboard 胜在轻量,简洁明快。 + +蓝珲(1348141770) 你们以后去公司工作,可以自己部署在公司服务器。 + +蓝珲(1348141770) 最多花一天时间,就可以部署好了。 + +蓝珲(1348141770) 所以,你们从今天开始,就可以慢慢在看板上(http://118.25.96.118/kanboard)添加卡片了。 + +蓝珲(1348141770) [图片] +蓝珲(1348141770) [图片] + +蓝珲(1348141770) 每个卡片点进去是这样的。可以添加评论。 + +蓝珲(1348141770) [图片] + +蓝珲(1348141770) 这个软件是个开源软件,法国人开发的,但是参与项目的人数前前后后也有200人了吧。 + +2020-03-13 8:44:30 系统消息(10000) +初阳软工171 伍泰炜撤回了一条消息 + +2020-03-13 8:44:45 初阳软工171 伍泰炜(2728735169) +[图片] + +蓝珲(1348141770) 你们登录一下试试。 + +蓝珲(1348141770) 我们先休息5分钟。 + +2020-03-13 8:45:40 软件工程 常思琦(995959606) +201732120101 + +蓝珲(1348141770) =============================================== + +蓝珲(1348141770) [图片] + +蓝珲(1348141770) 我们要做软件,首先要想想自己手里头有什么。 + +蓝珲(1348141770) 现在老是喊创新。 + +蓝珲(1348141770) 创新哪里有那么容易。 + +蓝珲(1348141770) 根据辩证法,创旧到极致就是创新。 + +蓝珲(1348141770) 很多所谓的创新,那叫一个惨不忍睹。 + +蓝珲(1348141770) 我手头上有一个软件,我要把它开源,公之于众,怎么个搞法? + +蓝珲(1348141770) 把代码往github一扔,就完事了? + +蓝珲(1348141770) 在现阶段,你们搞开源,其实更多的目的是对自己的一种鞭策。 + +蓝珲(1348141770) 看看自己有几天没有打卡了。 + +蓝珲(1348141770) 比如这个 Benno Schulenberg 就是几乎天天都在打卡。 + +蓝珲(1348141770) https://git.savannah.gnu.org/cgit/nano.git/log/ + +蓝珲(1348141770) [图片] + + +.. image:: nano-git-log.png + :height: 100 + :alt: Benno Schulenberg's nano maintenance activity + + +蓝珲(1348141770) 十年如一日的打卡,这样做出来的产品会不行? + +蓝珲(1348141770) Benno Schulenberg 是在创旧啊。 + +蓝珲(1348141770) 说实话,我很佩服这个老哥的做事精神。 + +蓝珲(1348141770) 这才是做软件,才是管理软件嘛。 + +蓝珲(1348141770) 都是一行一行,实打实出来的嘛。 + +蓝珲(1348141770) 开源后,要告诉这个世界你的软件是做什么用的。 + +蓝珲(1348141770) 这个是 mission statement 里要包含的东西。 + +蓝珲(1348141770) 还有比较重要的是描述你的软件的特色, + +蓝珲(1348141770) 与不足。 + +蓝珲(1348141770) 特色大家都不会忘记。 + +蓝珲(1348141770) 不足大家都不愿意提及。但是,这个确实是要提及的,而且是有帮助的。 + +蓝珲(1348141770) 能够拉近人与人的距离。 + +蓝珲(1348141770) 我们与圣人的距离很远,因为他的不足很少。 + +蓝珲(1348141770) 我们提不足,其实是锚定期望值。 + +蓝珲(1348141770) “我事先告诉你了哦,我的软件可能会随时崩溃,你可要经常存盘哦。” + +蓝珲(1348141770) 当然,我们把不足描述了以后,也是为了给以后的改进提供方向。 + +蓝珲(1348141770) 介绍软件要尽量简洁明了,让别人理解你的软件。 + +蓝珲(1348141770) 别炫技。 + +蓝珲(1348141770) 把代码公开后,也有助你一开时就注意采取比较好的开发目录。 + +蓝珲(1348141770) 不要把所有的文件都丢在一个文件夹下。 + +蓝珲(1348141770) 除非你的项目只有很少的文件。 + +蓝珲(1348141770) [图片] + + +.. image:: courseobjectivesatisfaction-git-log.png + :height: 100 + :alt: source tree for Course Objective Satisfaction + + +蓝珲(1348141770) 比如我这个,只有两个文件,所以放在一个文件夹下也可以。 + +蓝珲(1348141770) 项目的名字就是 “课程目标达成度”。 + +蓝珲(1348141770) 不是很好的名字,是个功能性的名字。 + +蓝珲(1348141770) 就是根据同学的各项成绩,算出一个班级的课程达成度。 + +蓝珲(1348141770) 不过这个指标是有 bug 的。 + +蓝珲(1348141770) 什么bug大家自己想。(参见 Goodhart's Law) + +蓝珲(1348141770) Code tree: src/, bin/, lib/, etc/, include/, test/, share/, data/, example/, doc/, README, LICENSE, COPYING, MANUAL, TUTORIAL, FAQ, ... + +蓝珲(1348141770) 大型一点的软件,一般会有下面的子文件夹与文件。 + +蓝珲(1348141770) Code tree就是代码的目录结构。 + +蓝珲(1348141770) src里面放源代码,.c, .py, .java之类。 + +蓝珲(1348141770) bin里面放可执行文件。这个一般可以提供,也可以不提供,不提供的话,要确保用户能够很容易自己生成可执行文件。 + +蓝珲(1348141770) 提供的话,就要考虑不同的CPU架构、操作系统了。 + +蓝珲(1348141770) etc里放些杂七杂八的东西。 + +蓝珲(1348141770) doc放文档。 + +蓝珲(1348141770) LICENSE与COPYING选一个就好了,放许可证。 + +蓝珲(1348141770) 现在我看到的情况是,COPYING用得比较多。 + +蓝珲(1348141770) 这种标准化的软件项目目录是比较好的结构。 + +蓝珲(1348141770) 我们休息5分钟。 + +2020-03-13 9:15:03 初阳软工171 伍泰炜(2728735169) +@蓝珲 应该没有行不行一说,Nano在做简单文本文件编辑时是不错。但不要希望用它来做复杂的编辑工作。其它的编辑器诸如'emacs','vim','gedit'都提供了文本着色以及自动文本格式化。而Nano只做最基本的编 辑操作,而不提供其它功能。而用户只要有需求就会尝试符合需求的软件。Linux平台的文本编辑器还有很多,vim,geditor,emacs等等,nano不是唯一的选择,也不能说是做的最好的。而且,nano的作者没有关心可怜的乌干达儿童。(玩笑) + +蓝珲(1348141770) =============================================== + +蓝珲(1348141770) 凡我不能做到的正义之事皆值得敬佩。 + +蓝珲(1348141770) 10年在维护一个“简单”的东西,你说他图啥? + +蓝珲(1348141770) 值得深思。 + +蓝珲(1348141770) 下课。 + +蓝珲(1348141770) 这个大家看看。 + +蓝珲(1348141770) 10-year Rule https://www.joelonsoftware.com/2001/07/21/good-software-takes-ten-years-get-used-to-it/ + + +.. image:: 10-year-rule-spolsky.png + :height: 100 + :alt: Good Software Takes Ten Years. Get Used To it. JULY 21, 2001 by JOEL SPOLSKY + +蓝珲(1348141770) 我们下次课讲。 + +2020-03-13 9:32:23 初阳软工171 伍泰炜(2728735169) +英雄联盟也很厉害的,他从2009年美服开服,一直维护到今天,版本号从0到10。大家也来敬佩敬佩[表情] + + + + Monday, 16 March 2020 ===================== |