个人阅读作业-阅读和调研

作者:19373132-周子颖

项目内容
这个作业属于哪个课程北航 2022 春季敏捷软件工程
这个作业的要求在哪里作业说明链接
我在这个课程的目标是锻炼软件工程思维,增强团队合作,学习软件开发方法
这个作业在哪个具体方面帮助我实现目标了解现代软件工程开发的思维,团队协作的方法

阅读提问

1. 在《代码大全》的《软件隐喻》章节中,作者先列举了伽利略的钟摆隐喻、bachman的日心说隐喻等,来证明他提出的隐喻重要性。但我觉得这并不能很好的证明隐喻的重要性。我认为作者提出的例子只能说明隐喻有助于进行软件开发,可以提供一些思路,但并没有作者提出的“隐喻在帮助人们更好地理解软件开发问题方面所做的贡献,与它帮助人们更好地理解科学问题所做的贡献一样大”。我认为应该再加上一些软件中没有使用隐喻而失败的例子,这样能更好地说服读者。

2. 在《邹欣老师的博客园讲义》的《结对编程和两人合作》中,作者提出了

(1)驾驶员:写设计文档,进行编码和单元测试等XP开发流程。(2)领航员:审阅驾驶员的文档、驾驶员对编码等开发流程的执行;考虑单元测试的覆盖程度;是否需要和如何重构;帮助驾驶员解决具体的技术问题。

这样驾驶员和领航员的结对编程结构,但我觉得这样的结对方式可能会让两个人更注重自己的任务,而错失了对另一个角色的学习。从我以往的二人编程经验来看,可以让两个人分别承担驾驶员负责人和领航员负责人,两人同时都是驾驶员和领航员,但各方面的进度和内容等还是由此方面负责人总体把控,这样可能会更好的让两个人学习到两种角色。

3.  在《邹欣老师的博客园讲义》的《软件工程 软件工程师的誓言》章节的最后,作者提出了软件工程师应遵循的八个原则,

原则1:公众

软件工程师的行为应与公众利益一致。特别地,软件工程师应恰当地做到:

1.01 对自己分内工作负有全部责任

1.02 综合考虑软件工程师,雇主,客户,用户与公众的利益

1.03 软件是安全的,符合规范的,通过适当的测试,不降低生活的质量,不侵犯隐私,不对环境造成伤害;只有当以上条件都能够有充分确认,才认可这个软件。软件的终极效用应该是公益的。

1.04 把任何对用户、公众及与软件和相关文档有联系的外界人员可能造成的危害,告知相关人员或者专家。

1.05 努力合作来解决由软件及其安装、维护、支持和文档 所带来的公众关注的重要问题。

1.06 在所有关系到软件或者相关文件、方法和工具的的声明,尤其是在那些公开声明中,要做到公正并避免欺诈。

1.07 要考虑到由物理缺陷、资源分配、经济劣势和其他一些会降低软件收益的因素所带来的结果。

1.08 鼓励自愿将专业技能用于公益事业,促进公共学科教育的发展。

原则2:客户与雇主

................

但以我个人的实践来看,这些原则往往会有些冲突,而当这些原则发生冲突时,我们应该怎么做呢,我们需要以怎样的原则顺序去关心呢?

4.  在《邹欣老师的博客园讲义》的《创新的时机》章节中,作者在论述群体对马前卒的反作用时,提出了以下观点

但是一个群体如果没有这些马前卒,  它平均值不会向前移动,群体如果没有提供一定的宽容,  那也没有这些马前卒生存的空间。

 这一点我感觉很奇怪,为啥群体如果没有提供一定的宽容,  那也没有这些马前卒生存的空间。我认为当这些马前卒的项目做的足够好就有很大的可能吸引群众的注意,从而自主的打开群众的市场,以求生存乃至发展。

5.    在《邹欣老师的博客园讲义》的《用户调研》章节中,作者提到了人种学研究法

这个听起来非常学术的方法其实可以解释为 - 和目标用户同吃同住同劳动。  例如,与其坐在办公室里想象如何给老年人设计手机, 不如去和老年人生活几天,从生活中得到数据和体会。  这是一个论文例子

    人类学的用户调查听起来很高深, 其实未必 - 也许你一直生活在目标人群中, 只不过你对这些需求不够敏感罢了。 在《the social network》 这部电影中, Mark 的一个同学问他, 你知道某某女生是不是有男朋友?  Mark 沉思一会, 不理会这个同学,径直跑回宿舍,在 “thefacebook.com” 这个网站上实现 “你有朋友了么”这一功能。

我认为这个研究法的实用性并不高,首先与目标用户同吃同住同劳动这个本身就有很大的限制,很难实际操作起来,其次大多数人的生活习惯并不相同,如果是为某个人定制量身的软件,此方法可能会有很大的作用,但如果是面向大众开发的软件,个人的习惯并不能决定大众,相反可能会对软件的定义产生负面影响。

调研源代码版本管理软件

目前被广泛使用的基于源代码版本管理软件Git的项目管理工具为github和gitlab。github和gitlab都是基于git实现的在线代码仓库软件,都提供了分享开源项目的平台。但两者也有一定的区别。github是目前最火的开源项目托管系统,有公共仓库和私有仓库,但是私有仓库是需要付费的。而gitlab弥补了这个问题,它提供了私人的免费仓库,另外有更多的代码仓库控制权限。因此,个人认为,对于开源项目,github是首选;对于私有项目,gitlab是首选。

调研持续集成/部署工具

解决方案一:使用GithubActions自动部署Vue-Demo

项目库链接:https://github.com/github1coder/GithubActions-Vue-demo

 

 

 解决方案二:使用Gitlab-CI在Push时执行Action

 项目库链接:https://github.com/github1coder/GithubActions-Vue-demo

.yml代码

name: GitHub Actions Vue Demo
on:
  push:
    branches:
      - master
jobs:
  main:
    runs-on: ubuntu-latest
    steps:
    - name: Checkout
      uses: actions/checkout@v2
      with:
        persist-credentials: false

    - name: Install and Build
      run: |
        npm install
        npm run build

    - name: Deploy
      uses: JamesIves/github-pages-deploy-action@releases/v3
      with:
        ACCESS_TOKEN: ${{ secrets.ACCESS_TOKEN }}
        BRANCH: gh-pages
        FOLDER: dist

    - name: Run On Push
      run: |
        echo "Run On Push"

 

 对所使用CI/CD工具的特点、特性描述

我所使用的githubActions所对应的yml语法较为简单,只需增加对应的配置文件(.yml文件)即可完成CI/CD的配置,功能强大并且使用简单

CI/CD进一步分析

实用简单的CI/CD工具能使得开发效率进一步的提高。从技术方面来看,简单的操作使得学习难度大大降低,更易上手和使用。从产品方面来看,强大实用的CI/CD工具能保证产品更加高效长期的运行。

各工具的对比

github的actions功能十分简单并且强大,只需简单的配置即可使用,actions库也很丰富,但是github对消除代码更新错误和冲突比gitlab稍差点,我认为,github的CI/CD更适用于个人开发

gitlab的CI功能对项目的私密性保护更加友好,但是所需的操作较为复杂,需要配置gitlab runner,因此我认为,github的CI/CD更适合于公司开发。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值