【经验分享】工程开发与Coding规范

图片

 

今天分享分为两部分 :)

PART01 工程开发+代码规范分享/

PART02 关于某易云自动签到听歌分享-

   

 

5Mins  Dev+Coding Rule:

PART 1 

 

了解真实工程开发🏗.....

 

本篇内容分享的宗旨: 学长工作经验之谈仅作分享🏷

 

 

 

Ready,Go

 

 

 

 

代码管理——工具篇

 

•工程上首先需要解决的大事就是代码管理

•工欲善其事,必先利其器

•工具的演进: VSS > CVS > SVN >GIT(+LFS)

•GIT常见指令

 

 

代码管理——分支管理

图片

 

1.确定开发计划后,从稳定分支(master)clone一个开发分支dev_{version}

2.由dev_leader在开发分支上建立初步基线代码,以便整个开发团队进行下一步的模块开发

3.开发团队各特性负责人从开发分支拉出特性开发分支feature_{version}_{name}

4.特性开发完成后,开发者将特性分支合入开发分支。确定满足条件的可合入release分支进入提测环节

5.测试迭代期间,bug修复在release分支上进行,并将代码同步回开发分支

6.重复上述流程4与5,直到所有特性开发完成并测试

7.合入master并打tag

 

代码管理——CodeReview

 

1.master作为工程项目稳定主分支来维护,对master的合入修改必须要经过严格的CodeReview

2.对于gitlab项目,回收master分支修改权限,需要合并入master的代码,可以依托于gitlab提供的Merge Request操作,提交merge request到指定的评审人;

3.对于gerrit项目,保持所有master分支与release分支的修改评审环节,删除其它dev分支与feature分支的评审流程;

4.代码提交者与评审人不能是同一人,必须交插安排。原则上,评审人应该是经验丰富的工程人员,避免评审中的疏忽大意。如果某评审人连续两次因为评审失误导致把关不严问题,短时间内不得再安排评审任务。

5.评审人以2-3人为佳,评审过程保持与提交人沟通顺畅,确保代码理解一致。

🔊以上内容重要的是实操

 

代码管理——静态扫描

Lint工具图片

 

设计——架构

  1. 话题太大,无从入手

  2. 总结了一下目前公司SDK类的研发框架

          sdk依赖 + 基础处理库 + 业务实现 + API封装 + [模型配置定制化] +[多平台编译]

  3. 推荐在线设计工具:processon.com

图片

 

设计——API接口设计原则

 接口三要素:数据结构,错误码,接口定义

•原则一:接口定义少用STL标准模板库,多采用基本类型

•原则二:接口参数控制到5个以内

•原则三:对输入类自定义结构型参数,多以const指针引用为好

•原则四:命名准确,注释清晰无歧义,尤其对返回值或错误码要重点说明

•原则五:尽量减少接口函数数量以降低模块间的耦合

•原则六:接口中涉及的自定义数据结构,最好采用定长类型(char, short, int, int8/16/32/64, float, double)

 

编码——CodingRule

C++Code Style (google)参考

 

图片


后台回复【操作系统】获取上期pdf分享

图片

🔊

看到这里,学长最后再分享一个好消息,就是恭喜学长,终于收到了百度的offer,入职Baidu的时间定在了下月,其实提出离职的时候,Leader我们的架构疯狂挽留我,还说要涨很多很多钱,我似乎快动摇了,但是离职这种东西,说了就说了,覆水难收,至于原因,大家以后就会懂的。而且我认为,一匹得到伯乐的野马,哪里都会是我驰骋的广阔草原🐎

 

其实我很怀念这些共事的朋友,印象中同事们对我评价最深的一句话,是位生过二胎的姐姐开会时候说过一句'我觉得刘旺同学靠得住',正是这句话仿佛烙印在了我的心上,一直让我待人以最真诚,处事以原则。虽有不舍,但还未入职的我正满怀热忱,也同时万分期待着我的新鲜血液融入集体,和新的小伙伴共同前行。

 

最后,希望在百度的我可以做的更好,不辜负几位面试官的赏识,更不负自己那一份野心,也一样做真实的自我🙆‍♂️

图片

 

 

   

 

好了,先到这里了,如果大家在实践中有什么问题,可以给我留言,Bye~

 

-以上简单描述希望对你有所帮助。共勉-

以下为之前分享的宝藏内容

希望学长分享的内容对你我都有帮助💪


Pandas系列文章

 

图片

django系列文章

  • 【Django教程】第15天:ORM性能优化和提升

  • 【Django教程】第14天:debugtoolbar开发工具

  • 【Django教程】第13天:Email-邮件发送

  • 【Django教程】第12天:后台管理-admin

  • 【Django教程】第11天:自定义模板过滤

  • 【Django教程】第10天:模板语

  • 【Django教程】第09天:验证码

  • 【Django教程】第08天:会话机制Cookie&Sessio

  • 【Django教程】第07天:上传/显示图

  • 【Django教程】第06天:HttpRequest对象

  • 【Django教程】第05天:ORM模型操作汇

  • 【Django教程】第04天:前后端分离开发

  • 【Django教程】第03天:导出Excel报表

  • 【Django教程】第02天:深入模型

  • 【Django教程】第01天:快速上手

 

 

PS:公号内回复: Python.即可获取最新最全学习资源!

 

 
 
 

觉得内容不错的 欢迎点击「在看」支持

谢谢各位

 

我也希望这个世界会因为分享而更美好!

单纯分享,无任何利益相关!

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

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

相关文章

过滤器与拦截器区别

过滤器与拦截器区别 参考:http://www.cnblogs.com/dreamroute/p/4198087.html?utm_sourcetuicool 过滤器 过滤器是一个程序,它先于与之相关的servlet或JSP页面运行在服务器上。它是随你的web应用启动而启动的,只初始化一次,以后就…

二进制-高效位运算

数独 数独是介绍位运算的好例子,运用位运算和不运用效率差别还是挺大的。我们先看数独需求: 1、当前数字所在行数字均含1-9,不重复 2、当前数字所在列数字均含1-9,不重复 3、当前数字所在宫(即3x3的大格)数字均含1-9&a…

pytorch resnet50_PyTorch终于能用上谷歌云TPU,推理性能提升4倍,我们该如何薅羊毛?...

晓查 发自 凹非寺量子位 报道 | 公众号 QbitAIFacebook在PyTorch开发者大会上正式推出了PyTorch 1.3,并宣布了对谷歌云TPU的全面支持,而且还可以在Colab中调用云TPU。之前机器学习开发者虽然也能在Colab中使用PyTorch,但是支持云TPU还是第一次…

Android Studio主题设置、颜色背景配置

2019独角兽企业重金招聘Python工程师标准>>> color-themes 效果展示 打开http://color-themes.com/有很多样式可供选择 1. Monokai Sublime Text 3(color theme) 2. Solarized Light (color theme) 3. Visual Studio 2015 Dark(color theme) 导入方式 下载主…

Java多线程实现异步调用

在Java平台,实现异步调用的角色有如下三个角色:调用者、 提货单 、真实数据,一个调用者在调用耗时操作,不能立即返回数据时,先返回一个提货单 .然后在过一断时间后凭提货单来获取真正的数据.去蛋糕店买蛋糕,不需要等蛋糕做出来(假设现做要很长…

sql server 2008 r2卸载重装_免费下载:Intouch软件、Windows操作系统、SQL数据库,VB6.0、C#...

为大家整理了常用的Windows操作系统和安装软件,基本上都是经过我们项目测试OK的版本,以后项目调试就齐全了,不用再“东奔西走”,“小鹿乱撞”了。整理不易,若对您有帮助请关注并转发,以便帮助到更多的人。I…

Android ToolBar 使用完全解析

ToolBar简介 ToolBar是Android 5.0推出的一个新的导航控件用于取代之前的ActionBar,由于其高度的可定制性、灵活性、具有Material Design风格等优点,越来越多的应用也用上了ToolBar,比如常用的知乎软件其顶部导航栏正是使用ToolBar。官方考虑…

【零散积累】传输文件(sz/rz/scp命令)

来自wiki迁移页面路径:刘旺的主页 / 个人零散积累 / 01> 传输文件(sz/rz/scp命令) 工作中的传输文件会出现在linux之间,或者linux与windows之间。 一、怎么实现linux与windows之间的文件传输? 1.sz和rz是什么 s…

x264_macroblock_cache_load()

功能:完成将已编码数据参数和待编码数据装入到h->mb.cache中,下图是BUF中存储的数据在以MB为单位的时候的存储顺序 x264_macroblock_cache_load( h, i_mb_x, i_mb_y );//是把当前宏块的up宏块和left宏块的intra4x4_pred_mode,non_zero_count加载进来&#xff0c…

生活中常见物联网实例_物联网网关常见问题解答(一)

1.为什么物联网解决方案需要网关?物联网网关弥合了设备,传感器,设备,系统和云之间的通信鸿沟。通过系统地连接云,物联网网关提供了本地处理和存储,并具有基于传感器输入的数据自主控制现场设备的功能。物联…

【零散积累】shell脚本学习

来自wiki迁移页面路径:刘旺的主页 / 个人零散积累 / 03> shell脚本学习 case Shell case语句(多分支条件判断) $( ) Linux—shell中$(( ))、$( )、与${ }的区别 - chengd - 博客园 在bash中,$( )与 (反引号&…

alsa 测试 linux_Electron 构建步骤 (Linux)

遵循下面的引导,在 Linux 上构建 Electron .PrerequisitesPython 2.7.x. 一些发行版如 CentOS 仍然使用 Python 2.6.x ,所以或许需要 check 你的 Python 版本,使用 python -V.Node.js v0.12.x. 有很多方法来安装 Node. 可以从 Node.js下载原文…

centos7-安装mysql5.6.36

本地安装了mysql5.7, 但和springboot整合jpa时会出现 hibernateException, 不知道为什么, 换个mysql5.6版本的mysql, 源码安装, cmake一直过不去, 后来改成rpm安装 1, 获取mysql5.6 ftp://ftp.mirrorservice.org/sites/ftp.mysql.com/Downloads/MySQL-5.6/ 下载: 解压: 其中…

github设置中文_静态博客托管图片至 GitHub

从 MWeb 切换到静态博客 Jekyll 之后,我就面临一个问题,这在很久之前使用 Hexo 同样遇过的:图片托管在何处。MWeb 的解决方式很棒,直接插入图片,推送到 Github 后亦能正常引用并显示,无需图床或者借助第三方…

SQL注入【sqli靶场第23-28关】(七)

★★免责声明★★ 文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与学习之用,读者将信息做其他用途,由Ta承担全部法律及连带责任,文章作者不承担任何法律及连带责任。 0、总体思路 先确认是否可以SQL注入,使用单…

java linux 调用32位so_Linux上TCP的几个内核参数调优

Linux作为一个强大的操作系统,提供了一系列内核参数供我们进行调优。光TCP的调优参数就有50多个。在和线上问题斗智斗勇的过程中,笔者积累了一些在内网环境应该进行调优的参数。在此分享出来,希望对大家有所帮助。调优清单好了,在…

H.264码率控制机制

H.264标准码率控制算法步骤如下:1.计算当前帧的目标码字,并将其限定到HRD的边界中。2.通过线性模型(式4.5)预测当前帧中基本单元的MAD。 3.为未编码基本单元分配码字。4.通过二次R&a…

指针结构体函数-事实上能够这样具体理解

今天一大早登了下QQ空间,看到本科的一个学弟发表一篇日志。写关于西电微软俱乐部面试题的解答,写的非常不 错。我也一下子起兴了,由于我以前也是被指针困惑非常久。搞不清头绪,本科到研究生。我也笔试面试不下二十次 了。每次面试…

【python毕业设计】Django框架实现学生信息管理系统

Django框架实现学生信息管理系统 演示视频:Django学生信息管理系统_腾讯视频 演示界面内容如下 总体概括 注册流程 首先进行输入用户名(邮箱)、密码以及验证码,输入完之后点击注册按钮。如果输入的不正确,提示错误信…

python中continue只结束本次循环_循环(while,break,continue),转义字符

Apple iPhone 11 (A2223) 128GB 黑色 移动联通电信4G手机 双卡双待 4999元包邮 去购买 >01. 程序的三大流程 在程序开发中,一共有三种流程方式: 顺序 —— 从上向下,顺序执行代码 分支 —— 根据条件判断,决定执行代码的 分支 …