- SAP 监控
- CDN下载加速
- 全球数据传输加速
- 高可用网站架构云化
- 核心数据库上云
- 应用容器化上云
- Linux服务器迁移上云
- 域名转入华为云解析
- 第三方云集群迁移至华为云CCE
- 使用自定义域名托管静态网站
- 通过VPN构建跨境网络
- 云上敏捷开发DevOps实践
- 基于Discuz快速搭建论坛
- 基于Tomcat快速构建Java web环境
- 基于WordPress搭建个人网站
- 快速构建FTP站点
- 快速构建高可用四层负载均衡
- 无服务器告警推送
- 基于Jenkins快速部署源码编译环境
- 快速部署高可用MongoDB
- 基于开源Odoo快速部署ERP系统
- 快速部署高可用七层负载均衡
- SAP Backint安装指南
- 华为云SAP on DB2安装
- 华为云基于SIOS的SAP高可用配置
- 快速部署战斧跨境电商管理系统
- 基于MetaTown构建数字资产平台
- 数字资产秒杀场景解决方案
- 基于开源wangmarketCMS快速建站
- 快速部署高可用MHA-MySQL集群
- 快速部署高可用的RabbitMQ集群
- 数据库上云
- 语音识别解决方案
- 游戏批量开服数据库解决方案
- 基于Zpan快速构建私有网盘
- 等保三级解决方案
- 基于迅响快速构建响应式网站
- 快速部署高可用Redis集群
- 快速部署赛瀚德MES系统
- 基于Ploto构建自动驾驶平台
- 无服务器日志实时分析
- 快速创建云数据库RDS 克隆实例
- 无服务器图片生成缩略图
- 快速构建Node.js运行环境
- 快速部署高可用Docker Swarm集群
- 云和恩墨数据库统一管理平台
- 基于万户快速建站
- 防勒索病毒安全解决方案
- 基于SNAT公网访问解决方案
- 基于CCE快速部署Volcano批量调度系统
- 无服务器文件解压
- 定时开关机解决方案
- 运维平台数据库解决方案
- CDN日志定时转储解决方案
- 基于VPCEP实现跨VPC连接ELB
- 基于Nginx Ingress实现灰度发布
- 基于蓝凌MK-PaaS快速构建OA系统
- 快速部署SAP S4HANA云上环境
- 快速部署高可用PostgreSQL
- 快速部署宝塔面板
- 通过Nginx反向代理访问OBS最佳实践
- 快速部署永洪BI平台
- 基于SmartBI快速构建商业智能分析平台
- 基于CCE容器快速建站
- 快速搭建OpenVPN
- 云上跨VPC添加实例到ELB最佳实践
- 企业云上办公桌面解决方案
- CDN自动刷新缓存解决方案
- CDN自动预热解决方案
- 快速部署TongWeb应用服务器
- 基于GitLab快速部署仓库管理系统
- 无服务器视频转码解决方案
- 快速部署SAP B1云上环境
- 无服务器日志文件上传LTS
- 基于云手机搭建安卓测试集群
- 基于Hexo快速搭建博客
- 基于Zabbix搭建运维监控平台
- 快速搭建WDCP管理系统
- 游戏服务托管解决方案
- 快速构建基于事件网格的运维审计环境
- 快速构建高可用Pulsar集群
- 快速构建高可用Solr集群
- 基于JumpServer快速搭建远程安全运维环境
- 快速搭建高可用Elasticsearch集群
- 基于DataGuard实现Oracle数据库快速迁移上云
- 快速搭建高可用InfluxDB集群
- 基于DBSyncer快速实现数据库迁移
- 基于WGCLOUD搭建运维监控平台
- 快速搭建DataX数据库迁移环境
- 基于辅助弹性网卡实现ECS绑定多IP
- 定时批量创建/删除ECS实例
- 公网IP不变业务迁移最佳实践
- 文档下载
- 通用参考
链接复制成功!
步骤三:开发代码
代码托管服务提供基于Git的在线代码管理服务,包括代码克隆/提交、分支管理等功能。
由于门店网络查询功能为高优先级Story,本章节将以此功能为例进行介绍如何进行源代码管理与开发。
本样例项目中采用分支来进行代码的开发。首先由开发人员Chris在代码仓库中创建分支,并进行代码开发;然后开发人员Chris在代码仓库中提交分支合并请求,项目经理Maggie评审通过后合并分支至主干。
使用分支管理代码
分支是用来将特性开发并行独立出来的工具。使用分支意味着把工作从开发主线上分离开来,以免影响开发主线。
在创建代码仓库时,会有一个默认分支“master”,即主线。为了保证凤凰商城的稳定运行,需要有一个稳定的持续可用master。因此,项目经理建议:不直接在master分支上进行代码开发,而是统一采用功能分支+合并请求的方式,并且每一个功能分支的代码,必须经过团队的其他成员评审后,才可以进行合并。
- 将master分支设置为受保护分支(本文档中由项目经理Maggie操作)。
- 进入“凤凰商城”项目,单击导航“代码 > 代码托管”,找到代码仓库“phoenix-sample”。
- 单击仓库名称进入代码仓库,选择“设置”页签。在导航中单击“策略设置 > 保护分支”。
- 单击“新建保护分支”,参照下表在弹框中完成配置,单击“确定”。
说明:
如果页面中已存在保护分支“master”,可单击
,根据需要修改保护分支配置。
表1 新建保护分支配置 配置项
配置建议
选择需要保护的分支
选择“master”。
能推送
保持默认配置。
能合并
保持默认配置。
成员
保持默认配置。
- 创建功能分支(本文档中由开发者Chris操作)。
- 进入“凤凰商城”项目,在代码托管页面中找到仓库“phoenix-sample”。
- 单击仓库名称进入代码仓库,在“代码”页签中单击“分支”。
- 单击“新建分支”,参照表2输入分支信息,单击“确定”。
修改、提交代码
在迭代规划时将门店查询功能分解为前端展示与后台管理两个task,本节以Task“前端展示 - 添加门店网络菜单”介绍如何使用修改与提交代码。
- 单击导航“工作 > 需求管理”,选择“迭代”页签。
在迭代4中找到Task“前端展示 - 添加门店网络菜单”,将Task的状态修改为“进行中”。
- 单击导航“代码 > 代码托管”,找到仓库“phoenix-sample”。
- 单击仓库名称进入代码仓库,选择“代码”页签。
- 单击文件列表上方的“master”,在下拉列表中选择分支“Feature-Store”。
- 在文件列表中找到“vote/templates/store-network.html”并打开。
- 单击
,根据Story添加门店地址,并在页面底部文本框中输入备注信息“添加门店列表”,单击“确定”。
<ul> <li>A分店:E机场1号航站楼出发层靠右直行123米右侧</li> <li>B分店:F区G路456号</li> <li>C分店:H区J街789号</li> <li>D分店:K区L大道K大楼西侧</li> </ul>
- 以同样方法打开并编辑“/vote/templates/index.html”。
在179行添加菜单“门店网络”,输入提交信息“fix #xxxxxx 前端展示 - 添加门店网络菜单”,单击“确定”。
其中“#xxxxxx”是Task“前端展示 - 添加门店网络菜单”的编号,在工作项列表中获取,实践中修改为实际Task的编号。<li class="nav-item"> <a href="store-network" class="nav-link">门店网络</a> </li>
- 单击导航“工作 > 需求管理”,选择“迭代”页签。
在迭代4中找到Task“前端展示 - 添加门店网络菜单”。
- 单击Task名称,在详情页中可看到状态自动变为“已解决”。
- 选择“关联”页签,在“代码提交记录”下可看到一条记录,记录的描述与上一步中输入的提交信息相同。
图1 代码提交记录
检视代码、合并分支
- 开发人员发起合并请求。
开发人员Chris完成代码开发,确认无误后,即可发起合并请求,将功能分支合并到master中。
- 进入代码仓库,选择“合并请求”页签,单击“新建合并请求”。
- 源分支选择“Feature-Store”,目标分支选择“master”,单击“下一步”。
- 参照表3编辑合并请求详情。
- 单击“新建合并请求”完成合并请求的创建。
- 项目经理评审并完成代码合入。
本文档中,合并请求的评审人与合并人均是项目经理Maggie。因此Maggie可评审合并请求内容,并在评审通过后完成分支合入。
- 进入代码仓库后,选择“合并请求”页签,可找到由开发人员Chris创建的合并请求。
- 单击该请求,查看合并请求详情。
- 可在页面中留下评审意见。单击审核门禁中“通过”完成审核。
- 单击“合入”,将分支合入“master”。
说明:
如果发起分支合并请求时勾选了“合并后删除源分支”,分支“Feature-Store”将在分支合并完成后被删除。