代码评审

持续集成、交付、部署

|▌冷眼眸甩不掉的悲伤 提交于 2019-12-01 10:42:00
持续集成(Continuous integrationI) 是一种软件工程流程,是将所有软件工程师对于软件的工作副本持续集成到共享主线(mainline)的一种举措。 目的就是让产品可以快速迭代,同时还能保持高质量。 核心措施是代码集成到主干之前,必须通过自动化测试。只要有一个测试用例失败,就不能集成。 持续交付 (Continuous delivery) 频繁地将软件的新版本,交付给质量团队或者用户,以供评审。如果评审通过,代码就进入生产阶段。 可以看作是持续集成的下一步,它强调的是不管版本怎么更新,软件是随时随地可以交付的。 持续部署(continuous deployment) 是持续交付的下一步,指的是代码通过评审以后,自动部署到生产环境。 目标是代码在任何时刻都是可部署的,可以进入生产阶段。 前提是能自动化完成测试、构建、部署等步骤。 来源: https://www.cnblogs.com/tongyishu/p/11682104.html

20191014——Git的精简用法

雨燕双飞 提交于 2019-12-01 09:08:29
作为一名开发人员,提交代码那是家常便饭,那如何有效地利用Git进行提交代码呢?在这里介绍一些常用、必要的命令,几乎够工作中使用了。 (1)git pull 命令:拉取代码,这条命令没啥说的了,在提交代码之前必须要更新最新的代码库; (2)git stash命令:在git pull后可能会遇到代码冲突的问题,那如何处理比较好呢?首先,输入git stash命令,将自己修改过的代码暂存起来;然后,输入git pull命令更新一下代码;接着,输入git stash apply或者git stash pop命令,它会自动将远程代码和本地代码合并,在该命令后若还是出现代码冲突的话,那么先用git status命令,查看有哪些文件是冲突的,然后通过git diff命令查看冲突的地方,你可以通过vim命令直接修改,也可以通过文件编辑器进行修改,保存修改后的文件,用git add 命令将该文件添加至缓存区;最后输入git stash apply或者git stash pop命令,这样就可以顺利地解决远程代码和本地代码冲突的问题了; (3)git commit --amend命令:该命令是在上一次最近的git commit的基础重新提交,不过需要注意的是不能运行git pull命令进行更新代码哦,这个命令很有用,在CI中若是需要对某个文件修改多次的话,那么该命令就派上用场了

软件工程第二次作业

落爺英雄遲暮 提交于 2019-12-01 07:28:57
第一个问题: 1、首先制定项目计划,最初计划是里程碑性质的。可以先按瀑布模型设置,里程碑点主要为需求评审、设计评审、经过代码开发和单元测试后进行集成测试、部署上线是一个很重要的里程碑,一般用户会期望系统何时能使用进入试运行期(也可以称为用户测试阶段) 2、需求开发阶段:怎么样写好需求很关键,做软件致电一伍扒一一三三泗柒四四。如何学会进行需求开发可以去看下经典的《需求工程》这个翻译的书,不是很厚,但需要能理解为什么那样做更好,这个需要实践经验锻炼自己。如果有项目成员,可以一起做需求,这个阶段对于业务理解、分析、如何开展调研以及文字表述、业务流程图描述还有文档编辑能力都有不少要求。一般分为《用户需求说明书》和《需求规格说明书》,小项目可以写一个《需求分析报告》,《用户需求说明书》是用用户的语言进行描述,让用户和开发团队对于需求的达成一致的理解,《需求规格说明书》,则是对用户需求的分析,形成系统要具有的功能,这个是真正提供用户可交互操作的文档,也就是后期设计和代码开发的重要基线。另外,作为了解需求,拿出用户UI和用户交流也是一项比较重要的需求获取手段,虽然这个属于设计的范畴。 3、系统设计阶段: 系统总体架构,结合用户对系统环境、开发语言以及运行的网络硬件等要求,确定开发工具等,对应用系统关系进行架构性设计,通过需求阶段对用户的分析归类,用图的方式描述出用户和各子系统或模块的全局视图

最近学到的Git知识,大厂的Git机制还是很方便的

风格不统一 提交于 2019-12-01 07:24:50
本文首发于微信公众号:程序员乔戈里 转载请注明: https://blog.csdn.net/WantFlyDaCheng/article/details/102538508 一、两次的 git commit 到不是同一个远程分支 这里由于提交自己的代码第一次提交到A分支,第二次提交B分支,然后报错了, 这里报错以后,会提示一个百度自己内部的链接 ,你点击链接就可以照着提示去修改,可以说还是省了不少事,不用自己去google百度去解决,开发效率也提高不少 上面图片中有6e8713f is CR parent commit 这行提示,划重点,待会要用到。 解决过程 你当前的操作场景如下图,由于一次CR(评审)的多个commits不能push到不同的refs/for/[分支名](可能导致后续评审合入merge failed): 评审是啥意思,这里解释一下。本地开发的流程首先是从自己远程的分支A拉到本地,远程分支是master分支的一个clone,本地完成开发后,需要提交到自己的远程分支,提交以后必须由其它人评审代码(code reviewe),其它同事评审的时候主要找出不合规范和逻辑的地方,你需要修改完成以后,才能合入到你的远程分支A,然后再从你的远程分支A合到master上,这样就完成了代码入库。 本次合并我最终的目的是要合到B分支(第一次提交是A分支,第二次是B分支)

第二次作业:软件开发流程

久未见 提交于 2019-12-01 05:43:06
1、首先制定项目计划,最初计划是里程碑性质的。可以先按瀑布模型设置,里程碑点主要为需求评审、设计评审、经过代码开发和单元测试后进行集成测试、部署上线是一个很重要的里程碑,一般用户会期望系统何时能使用进入试运行期(也可以称为用户测试阶段) 2、需求开发阶段:怎么样写好需求很关键,做软件致电一伍扒一一三三泗柒四四。如何学会进行需求开发可以去看下经典的《需求工程》这个翻译的书,不是很厚,但需要能理解为什么那样做更好,这个需要实践经验锻炼自己。如果有项目成员,可以一起做需求,这个阶段对于业务理解、分析、如何开展调研以及文字表述、业务流程图描述还有文档编辑能力都有不少要求。一般分为《用户需求说明书》和《需求规格说明书》,小项目可以写一个《需求分析报告》,《用户需求说明书》是用用户的语言进行描述,让用户和开发团队对于需求的达成一致的理解,《需求规格说明书》,则是对用户需求的分析,形成系统要具有的功能,这个是真正提供用户可交互操作的文档,也就是后期设计和代码开发的重要基线。 另外,作为了解需求,拿出用户UI和用户交流也是一项比较重要的需求获取手段,虽然这个属于设计的范畴   3、系统设计阶段: 系统总体架构,结合用户对系统环境、开发语言以及运行的网络硬件等要求,确定开发工具等,对应用系统关系进行架构性设计,通过需求阶段对用户的分析归类,用图的方式描述出用户和各子系统或模块的全局视图

徐程第二次作业

℡╲_俬逩灬. 提交于 2019-12-01 01:23:11
采访工业界的软件团队(通过邮件、微博、微信、阅读博客等方式),询问他们的软件开发流程。 通过查阅博客的方式,我知道了软件开发的流程如下: 1、首先制定项目计划,最初计划是里程碑性质的。可以先按瀑布模型设置,里程碑点主要为需求评审、设计评审、经过代码开发和单元测试后进行集成测试、部署上线是一个很重要的里程碑,一般用户会期望系统何时能使用进入试运行期(也可以称为用户测试阶段 2、需求开发阶段:怎么样写好需求很关键,做软件致电一伍扒一一三三泗柒四四。如何学会进行需求开发可以去看下经典的《需求工程》这个翻译的书,不是很厚,但需要能理解为什么那样做更好,这个需要实践经验锻炼自己。如果有项目成员,可以一起做需求,这个阶段对于业务理解、分析、如何开展调研以及文字表述、业务流程图描述还有文档编辑能力都有不少要求。一般分为《用户需求说明书》和《需求规格说明书》,小项目可以写一个《需求分析报告》,《用户需求说明书》是用用户的语言进行描述,让用户和开发团队对于需求的达成一致的理解,《需求规格说明书》,则是对用户需求的分析,形成系统要具有的功能,这个是真正提供用户可交互操作的文档,也就是后期设计和代码开发的重要基线。另外,作为了解需求,拿出用户UI和用户交流也是一项比较重要的需求获取手段,虽然这个属于设计的范畴   3、系统设计阶段:系统总体架构,结合用户对系统环境、开发语言以及运行的网络硬件等要求

(转)解密初、中、高级程序员的进化之路(前端)

安稳与你 提交于 2019-12-01 00:14:54
初级程序员 仅能完成简单模块和项目的开发工作,难以胜任复杂模块的开发。通常是入行不久, 1 年及以下工作经验的同学。 能力要求 熟悉前端基础知识如 HTML、JS、CSS 。 能够使用一门 MVVM 框架进行简单的业务开发。 遇到复杂的组件和模块,会找现有的轮子使用。 会使用百度、google 等检索工具搜索问题。 中级程序员(阿里 p5) 在必要的辅导或标准流程支持下,能独立负责一个子模块或者一个项目的具体任务,对及时性和准确性负责。通常是 2-3 年工作经验的同学。 能力要求 除了前端基础知识外,熟悉计算机、网络等专业基础知识。 熟练掌握工作中使用的技术栈开发业务。(除了 MVVM 框架外,还能了解 webpack 的配置)。 能了解一个需求从开发-上线整个生命周期,并对各个环节负责。 具备基本的逻辑分析、问题分解、归纳总结等能力。 了解基本的数据结构和算法,写代码较熟练。 知道从靠谱的渠道去查找问题,在找不到合适轮子的时候,会造一些简单的轮子辅助业务开发。 高级程序员(阿里 p6) 具有独挡一面的能力,能够高质量完成工作,能把握一个系统/团队的整体实现,在推行过程中能提炼新的方法或方案,或对现有方案提出改进建议并被证明有效。通常是 3 年+ 工作经验的同学。 能力要求 具有独挡一面的能力,能高质量的完成模块级的工作。 熟练掌握工作中使用的技术栈,并能了解它们的实现原理。

(转)解密初、中、高级程序员的进化之路(前端)

怎甘沉沦 提交于 2019-12-01 00:12:46
初级程序员 仅能完成简单模块和项目的开发工作,难以胜任复杂模块的开发。通常是入行不久, 1 年及以下工作经验的同学。 能力要求 熟悉前端基础知识如 HTML、JS、CSS 。 能够使用一门 MVVM 框架进行简单的业务开发。 遇到复杂的组件和模块,会找现有的轮子使用。 会使用百度、google 等检索工具搜索问题。 中级程序员(阿里 p5) 在必要的辅导或标准流程支持下,能独立负责一个子模块或者一个项目的具体任务,对及时性和准确性负责。通常是 2-3 年工作经验的同学。 能力要求 除了前端基础知识外,熟悉计算机、网络等专业基础知识。 熟练掌握工作中使用的技术栈开发业务。(除了 MVVM 框架外,还能了解 webpack 的配置)。 能了解一个需求从开发-上线整个生命周期,并对各个环节负责。 具备基本的逻辑分析、问题分解、归纳总结等能力。 了解基本的数据结构和算法,写代码较熟练。 知道从靠谱的渠道去查找问题,在找不到合适轮子的时候,会造一些简单的轮子辅助业务开发。 高级程序员(阿里 p6) 具有独挡一面的能力,能够高质量完成工作,能把握一个系统/团队的整体实现,在推行过程中能提炼新的方法或方案,或对现有方案提出改进建议并被证明有效。通常是 3 年+ 工作经验的同学。 能力要求 具有独挡一面的能力,能高质量的完成模块级的工作。 熟练掌握工作中使用的技术栈,并能了解它们的实现原理。

(转)解密初、中、高级程序员的进化之路(前端)

半城伤御伤魂 提交于 2019-12-01 00:10:20
初级程序员 仅能完成简单模块和项目的开发工作,难以胜任复杂模块的开发。通常是入行不久, 1 年及以下工作经验的同学。 能力要求 熟悉前端基础知识如 HTML、JS、CSS 。 能够使用一门 MVVM 框架进行简单的业务开发。 遇到复杂的组件和模块,会找现有的轮子使用。 会使用百度、google 等检索工具搜索问题。 中级程序员(阿里 p5) 在必要的辅导或标准流程支持下,能独立负责一个子模块或者一个项目的具体任务,对及时性和准确性负责。通常是 2-3 年工作经验的同学。 能力要求 除了前端基础知识外,熟悉计算机、网络等专业基础知识。 熟练掌握工作中使用的技术栈开发业务。(除了 MVVM 框架外,还能了解 webpack 的配置)。 能了解一个需求从开发-上线整个生命周期,并对各个环节负责。 具备基本的逻辑分析、问题分解、归纳总结等能力。 了解基本的数据结构和算法,写代码较熟练。 知道从靠谱的渠道去查找问题,在找不到合适轮子的时候,会造一些简单的轮子辅助业务开发。 高级程序员(阿里 p6) 具有独挡一面的能力,能够高质量完成工作,能把握一个系统/团队的整体实现,在推行过程中能提炼新的方法或方案,或对现有方案提出改进建议并被证明有效。通常是 3 年+ 工作经验的同学。 能力要求 具有独挡一面的能力,能高质量的完成模块级的工作。 熟练掌握工作中使用的技术栈,并能了解它们的实现原理。

软件工程第二次作业

回眸只為那壹抹淺笑 提交于 2019-11-30 23:31:18
采访工业界的软件团队(通过邮件,微博,微信,阅读博客等方式),询问他们的软件开发流程 分组讨论, 投票选出你们小组成员最喜欢的两个团队类型 辩论你们在这门课程中最应该采取哪种类型 列出优劣 一、软件开发流程 1、 首先制定项目计划,最初计划是里程碑性质的。可以先按瀑布模型设置,里程碑点主要为需求评审、设计评审、经过代码开发和单元测试后进行集成测试、部署上线是一个很重要的里程碑,一般用户会期望系统何时能使用,进入试运行期。 2、需求开发阶段:怎么样写好需求很关键,这个需要实践经验锻炼自己。如果有项目成员,可以一起做需求,这个阶段对于业务理解、分析、如何开展调研以及文字表述、业务流程图描述还有文档编辑能力都有不少要求。一般分为《用户需求说明书》和《需求规格说明书》,小项目可以写一个《需求分析报告》,《用户需求说明书》是用用户的语言进行描述,让用户和开发团队对于需求的达成一致的理解,《需求规格说明书》,则是对用户需求的分析,形成系统要具有的功能,这个是真正提供用户可交互操作的文档,也就是后期设计和代码开发的重要基线。 另外,作为了解需求,拿出用户UI和用户交流也是一项比较重要的需求获取手段,虽然这个属于设计的范畴。 3、系统设计阶段: 系统总体架构,结合用户对系统环境、开发语言以及运行的网络硬件等要求,确定开发工具等,对应用系统关系进行架构性设计,通过需求阶段对用户的分析归类