项目 | 内容 |
---|---|
这个作业属于哪个课程 | 2021春季计算机学院软件工程(罗杰 任健) |
这个作业的要求在哪里 | 个人阅读作业#2要求 |
我在这个课程的目标是 | 培养软件开发过程中的团队合作能力,了解软件工程中的开发过程 |
这个作业在哪个具体方面帮助我实现目标 | 阅读《构建之法》,了解课程内容;了解版本管理工具软件和持续集成工具 |
1.提问
写了再改Code-and-Fix模式真的很差吗?
在这篇博客中,提到了使用写了再改模式缺点很多.但是在现实中写代码往往遇到设计很难想到的问题,比如oo课程中的表达式求导,很难说一次就想到一个很好的代码实现架构.而且即使是在企业中某个项目也没办法做到一次设计就能成功吧.下文提到的瀑布模型的修改不也是写了再改模式吗?
博客中提到的众多软件开发团队形式有本质区别吗?
在这篇博客中,提到了一窝蜂模式,主治医师模式,明星模式 ,社区模式 ,业余剧团模式,秘密团队,特工团队,交响乐团模式....感觉这些模式都是为了应对不同的团队成员的个性以及项目的难度来做的一个调整,没有本质性的区别.而在现实中团队是一定要按某个模式来开发吗?或者说大多数的团队其实是根本不需要模式这个概念的,只要处理好一些沟通上的问题就行?
开发团队中需不需要"影评家"?
在这篇博客中,提到了一个影评家这样的角色,那么在开发团队内部需不需要一个一行代码都不敲的影评家?虽然他有一定的提供需求的作用,但是很招人烦.
开源项目的商业价值如何体现?
在这篇博客中读了以下内容
斯坦:那开源/共享软件是怎么一回事,如果开源了,商业价值如何体现?
阿超:这个问题问得好,我估计如果开放讨论,以咱们的风格,三天三夜也讲不完。
对这个问题还是蛮好奇的,以及为什么很多人要去追求创造开源社区?
现在软件工程理论在现实应用中具有多少操作性?
随着技术的进步,越来越多的开源工具出现,很多大型项目其实已经有很好的辅助工具帮助进行项目的管理,包括测试,代码分格的要求,文档的撰写等等.包括软件工业化,出现大量的模板程序或者是ui组件.使得很多项目不需要软件工程方法就能实现很好的管理.同时现在写代码的人越来越多,你想到的需求很可能已经有人实现了,而那些没有想到的需求可能也不需要很多行代码就能完成.那么其中的理论在现在能用到的有多少?虽然看到老师的博客罗列很多,但都感觉只是现象或者是经验,而不是一个系统的理论.
2.调研源代码版本管理软件
相同之处
- GitHub,Gitlab,Bitbucket以及Coding都是基于git搭建的代码管理服务器
区别
- GitHub以开源友好而闻名并,但其本身不是开源的,允许托管无限的公有代码仓库
- Gitlab免费开源,可以部署在自己的本地服务器
- Gittee中国代码托管平台,优点就是快,缺点是部分功能需要付费,其中大部分项目来自GitHub.
3.持续集成/部署工具
gitlab
-
使用的仓库 ,代码是vue-cli自动生成的初始化代码.
-
.gitlab-cli.yml 本来是想部署到gitlab pages的,但是在oo的gitlab里面一直没找到pages这个功能和对应的链接.
image: node:latest
stages:
- build
- deploy
build:
stage: build
script:
- npm install
- npm run build
pages:
stage: deploy
script:
- rm -rf public
- mkdir public && cp -rf dist/* public
artifacts:
paths:
- public
expire_in: 30 days
cache:
paths:
- node_modules
- dist
github
使用的仓库,代码是vue-cli自动生成的初始化代码.
总结
- ci/cd工具在每次push后能够自动执行一定的脚本,完成构建,部署,测试等功能
- git工具使用的人很多,其中的需求也是很大的,虽然功能很本地跑一个脚本差不多但是能够远程部署便又减少了敲一句命令行的时间
- github actions的显示内容没有gitlab详细