工程管理与工作流

1 统一开发环境/ 协作工具

你知道开发环境指的是什么吗? 

开发环境:

工程运行环境、开发工具/ 编辑器 、开发依赖环境、 配置文件 

软件环境:

“仿真预演”环境 Staging 

生产环境前最终验证、 这一环境尽可能的仿真了真实的生产环境 、另一个关键是用于性能测试,特别是加载时间 

开发环境 Development 

往往创建在开发者的设备上 、软件环境软件在这个环境下开发 、一个沙盒环境 

生产环境 Production 

也被称为线上环境 、向生产环境部署是最为敏感的步骤 、生产环境出现问题会导致严重的后果工程运行环境 

测试环境 Testing 

允许人类测试者采用自动化或非自动方式进行测试 、如果测试失败,测试环境会将这部分 并通知对应开发者 

你所了解的协作工具有哪些? 

你们之前开发环境都选用过哪些呢? 

为什么要对它们进行统一呢? 

2、工程管理与工作流

在软件项目管理中我们关心什么 

需要关注钱的问题吗? 

需要关注时间吗? 

还需要关注什么呢? 

关心:

在预算之内 、在计划时间之内 、工程质量良好 

W5HH 计划 

这个功能为什么要被开发? 

将要做什么,什么时候完成? 

谁负责来实现? 

他们的机构组织位于何处? 

从技术和管理上这个功能可以怎么被完成? 

有哪些资源应该被需要到?

Umbrella activities :

测量 & 数据矩阵 

预估

风险

排期

追踪与控制 

做好工作的拆解:

将任务拆解为多个部分 :

产品、过程、组织 、自上而下的拆解 、考虑全局的分析与组织 、确保没有遗漏 、考虑现实性 

做好排期 :

问:一个项目是怎么会延期了一年的呢? 

答:每次遇到问题延迟一天就足以导致这个结果

工作流是什么? 

我们做开发是怎么做的呢? 

需要按哪些步骤进行? 

每个步骤之间关系是什么? 

项目级的工作流 :需求 、评审 、设计 、开发、审计与测试 、部署与监控 

有了工作流之后

开发切忌偷工减料 

工作流是提升效率的,而不是降低效率的 

在执行前要有约定好的惩罚性、奖励性措施 

3、需求来自哪里

探索性项目需求 、针对性项目(用户需求不明确 )、针对性项目(用户需求明确)

 

4、Git 

我们面对的问题:

多个人需要共同参与一个软件开发
一个软件可能有多个要支持的版本
一个软件可能会用多种不同的运行环境

版本的基准:

根据质量管理所需确定的阶段性规格说明,这个说明应是被正式评审认可的。 

之后的开发过程都应该要遵循“基准”的要求进行。 

对于基准的修改是要极为慎重的,要通过严格的变更流程。 

例子: 

Baseline A :所有接口应被完备的定义,各方法的内容为空。 

Baseline B :所有的数据访问方法应该被实现并测试。 

Baseline C:GUI 被完成

基准的命名:

基准的命名有一个非常常用的三点命名法。
A.B.C(如9.3.1)
A:从用户(消费者)角度看到的发布出的标记数(Release)
B:从开发者角度看到的关键的版本(Version)号
C:从开发者角度关注的修改版本(Revision)号

术语定义:发布(Release)     版本(Version)     修改(Revision)
版本(Version):最初发布或再发布的“代码及其附属品”的组合,它应该是可被完整编译或被认定为完整可用的。不同的版本表现出不同的功能特性。
修改(Revision):对于一个版本的修改,只做了代码设计的错误修正,对于已经“附属品”中文档所描述的功能特性没有任何改动。
发布(Release):被批准的面向用户进行分发的版本。

本地Gt仓库的三个分区:

01     工作目录(修改/没修过的文件)working directory
02     暂存区(暂存的文件)staging area
03     Gt仓库(提交的文件)repo

基本的Git使用:

配置一个Gt仓库:
Git init创建Git仓库,让当前目录处于Gt管理之下
Git clone将一个已经存在的Git仓库克隆到本地
Git config对Gt的基本配置进行设置(如邮箱、姓名)

 

 

创建仓库
01在当前目录下创建   git init
在指定的目录创建
02git init<指定的目录路径>
03创建一个bare git仓库   git init --bare myrepo.git

 

 

 

 

 

 

 

 

Git 的多人协作 / 远程仓库:
 

分支

01查看现有分支  git branch  创建分支
02  git branch<分支名>
03  切换分支   g it checkout<分支名>    创建并切换到分支
04  git c   checkout-b<分支名>    删除分支
05 git branch-d<分支名> 

合并的默认行为

只执行g it merge时,如果可以fast-forward,则fast-forward,否则进行non fast-forward merge。
在non fast-forward merge过程中,会尝试合并修改
如果发生不能自动合并的冲突,则需要手动解决冲突。

 

 

 

 Gitlab 工具

任务管理与计划:

在 Group 中建立 Milestone 

在Group / Repo 拆分任务,建立 Issue 关联 Milestone、设置 Deadline,并评估完成时间 在开发过程中关注任务计划 

 

Issue的使用

01Group中的ssue:不具体到某一个部分的开发
02 Repository中的Issue:具体到某一个部分的开发
03无论是哪个部分的Is$ue都应该是可以被完成、关闭的 

 

 

 

 

 

3、代码提交与测试、审计

 写完代码提交有什么要求
01一个分支关联一个1ssue,一次提交只做一件事情
02提交的内容应该与分支目的相关
03提交信息首字母要大写、要关联到Issue

持续集成与Code Review
01发起Merge Request后测试会自动跑
02在自动化检测通过后,我们可以进行人工Review
03人工Review后可以批准修改,之后可以由对MR发起人或项目负责人完成合并

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/102485.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

MinIO线上扩容实战

硬件投入肯定是随着业务的增长而增长&#xff0c;这就要求中间件平台必须提供水平伸缩机制&#xff0c;MinIO对象存储服务也不例外&#xff0c;本文就详细介绍MinIO的扩容。 Minio支持通过增加新的Server Pool来扩容老的集群。每个Server Pool都是一个相对独立的故障域&#x…

SpeedBI数据可视化工具:浏览器上做分析

SpeedBI数据分析云是一种在浏览器上进行数据可视化分析的工具&#xff0c;它能够将数据以可视化的形式呈现出来&#xff0c;并支持多种数据源和图表类型。 所有操作&#xff0c;均在浏览器上进行 在浏览器中打开SpeedBI数据分析云官网&#xff0c;点击【免费使用】进入&#…

SQL Monitor Crack,PostgreSQL监控的传入复制图表

SQL Monitor Crack,PostgreSQL监控的传入复制图表  现在&#xff0c;您可以在从Estate页面导出的Microsoft Excel报告的摘要标题中看到UTC偏移量。 添加了PostgreSQL监控的传入复制图表。 Microsoft PowerShell API现在支持将使用New-SqlMonitorWindowsHost和New-SqlMonitorin…

【脚踢数据结构】图(纯享版)

(꒪ꇴ꒪ )&#xff0c;Hello我是祐言QAQ我的博客主页&#xff1a;C/C语言&#xff0c;Linux基础&#xff0c;ARM开发板&#xff0c;软件配置等领域博主&#x1f30d;快上&#x1f698;&#xff0c;一起学习&#xff0c;让我们成为一个强大的攻城狮&#xff01;送给自己和读者的…

vellum (Discovering Houdini VellumⅡ柔体系统)学习笔记

视频地址&#xff1a; https://www.bilibili.com/video/BV1ve411u7nE?p3&spm_id_frompageDriver&vd_source044ee2998086c02fedb124921a28c963&#xff08;搬运&#xff09; 个人笔记如有错误欢迎指正&#xff1b;希望可以节省你的学习时间 ~享受艺术 干杯&#x1f37b…

STP知识点总结

目录 一.什么是STP协议 二.STP生成树协议产生的原因 三. STP生成树协议涉及的算法 一.802.1D 二.PVST 三.PVST 四. 快速生成树 五.MSTP 一.什么是STP协议 在一个二层交换网络中&#xff0c;生成一棵树型结构&#xff0c;逻辑的阻塞部分接口&#xff0c;使得从根到所有的…

深度学习入门(三):卷积神经网络(CNN)

引入 给定一张图片&#xff0c;计算机需要模型判断图里的东西是什么&#xff1f; &#xff08;car、truck、airplane、ship、horse&#xff09; 一、卷积神经网络整体架构 CONV&#xff1a;卷积计算层&#xff0c;线性乘积求和RELU&#xff1a;激励层&#xff0c;激活函数P…

【欧拉计划】偶数斐波那契数

题目链接&#xff1a;偶数斐波那契数 解法一&#xff1a;暴力枚举 看见题目&#xff0c;第一反应就是先找到小于400万的所有斐波那契数&#xff0c;再从这些斐波那契数中筛选出偶数进行求和。 由于递归方法求斐波那契数的时间复杂度较高&#xff0c;故这里采用迭代的方法。 先…

谈谈对 GMP 的简单认识

犹记得最开始学习 golang 的时候&#xff0c;大佬们分享 GMP 模型的时候&#xff0c;总感觉云里雾里&#xff0c;听了半天&#xff0c;并没有一个很清晰的概念&#xff0c;不知 xmd 是否会有这样的体会 虽然 golang 入门很简单&#xff0c;但是对于理解 golang 的设计思想和原…

python、numpy、pytorch中的浅拷贝和深拷贝

1、Python中的浅拷贝和深拷贝 import copya [1, 2, 3, 4, [11, 22, 33, [111, 222]]] b a c a.copy() d copy.deepcopy(a)print(before modify\r\n a\r\n, a, \r\n,b a\r\n, b, \r\n,c a.copy()\r\n, c, \r\n,d copy.deepcopy(a)\r\n, d, \r\n)before modify a [1, 2…

从C语言到C++_33(C++11_上)initializer_list+右值引用+完美转发+移动构造/赋值

目录 1. 列表初始化initializer_list 2. 前面提到的一些知识点 2.1 小语法 2.2 STL中的一些变化 3. 右值和右值引用 3.1 右值和右值引用概念 3.2 右值引用类型的左值属性 3.3 左值引用与右值引用比较 3.4 右值引用的使用场景 3.4.1 左值引用的功能和短板 3.4.2 移动…

static相关知识点详解

文章目录 一. 修饰成员变量二. 修饰成员方法三. 修饰代码块四. 修饰类 一. 修饰成员变量 static 修饰的成员变量&#xff0c;称为静态成员变量&#xff0c;该变量不属于某个具体的对象&#xff0c;是所有对象所共享的。 public class Student {private String name;private sta…

【C++杂货铺】探索string的底层实现

文章目录 一、成员变量二、成员函数2.1 默认构造函数2.2 拷贝构造函数2.3 operator2.4 c_str()2.5 size()2.6 operator[ ]2.7 iterator2.8 reserve2.9 resize2.10 push_back2.11 append2.12 operator2.13 insert2.14 erase2.15 find2.16 substr2.17 operator<<2.18 opera…

【路由协议】使用按需路由协议和数据包注入的即时网络模拟传递率(PDR)、总消耗能量和节点消耗能量以及延迟研究(Matlab代码实现)

&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密&#xff0c;逻辑清晰&#xff0c;为了方便读者。 ⛳️座右铭&a…

Windows使用MobaXterm远程访问ubuntu20.04桌面

参考ubuntu 2020.4 安装vnc 一、脚本文件 remote_setup.sh脚本文件内容&#xff1a; #! /bin/bash #参考链接&#xff1a;https://blog.csdn.net/hailangdeyingzi/article/details/124507304 sudo apt update sudo apt install x11vnc -y sudo x11vnc -storepasswd telpo.12…

二、11.系统交互

fork 函数原型是 pid_t fork(void&#xff09;&#xff0c;返回值是数字&#xff0c;该数字有可能是子进程的 pid &#xff0c;有可能是 0&#xff0c;也有可能是-1 。 1个函数有 3 种返回值&#xff0c;这是为什么呢&#xff1f;可能的原因是 Linux 中没有获取子进程 pid 的方…

主程技术分享: 游戏项目帧同步,状态同步如何选

网络游戏开发项目中帧同步,状态同步如何选&#xff1f; 网络游戏的核心技术之一就是玩家的网络同步,主流的网络同步有”帧同步”与”状态同步”。今天我们来分析一下这两种同步模式。同时教大家如何在自己的项目中采用最合适的同步方式。接下来从以下3个方面来阐述: 对啦&…

如何拉取Gitee / GitHub上的Unity项目并成功运行

前言 由于目前大部分人使用的仓库都是Gitee或者是GitHub&#xff0c;包括小编的公司所使用的项目仓库也包括了Gitee&#xff1b;我们需要学习技术栈时都会去百度或者是去GitHub上看看别人的项目观摩学习&#xff0c;可能很多小白在遇到拉取代码时出现各种问题&#xff0c;或者…

外包干了2年,彻底废了...

先说一下自己的情况。大专生&#xff0c;17年通过校招进入湖南某软件公司&#xff0c;干了接近2年的点点点&#xff0c;今年年上旬&#xff0c;感觉自己不能够在这样下去了&#xff0c;长时间呆在一个舒适的环境会让一个人堕落&#xff01;而我已经在一个企业干了五年的功能测试…

mongodb集群

端口192.168.115.3 192.168.115.4 1192.168.115.5 下载MongoDB软件包版本为4.2.14并安装 rpm -ih --force --nodeps *.rpm 2创建文件夹mkdir -p /opt/local/mongo-cluster/conf 3.在目录里创建配置文件cd /opt/local/mongo-cluster/conf …