分享一些前沿的开发环境
来源:互联网 发布:微赞 智慧数据商城 编辑:程序博客网 时间:2024/05/29 16:21
最近在搭建和完善公司的开发环境,也参考了其他公司和大牛的做法,在这里把一些认为比较好的分享记录一下:
1、huhulab 开发规范(试行)
git
- 团队所有代码采用 git 进行版本控制
- 开发模型: http://scottchacon.com/2011/08/31/github-flow.html
master
分支的代码要求做到可以直接进行上线部署- 开发新分支时,基于
master
分支新建一个feature-xxxx
的分支 - 修复 bug 时,基于
master
分支新建一个bugfix-xxxx
的分支 - 项目发布后基于 master 分支建立一个发布分支
release-xxxx
, 同时在 master 分支上打上合适的 tagv0.xx
- 发布分支不做 feature ,只做 bugfix ,必要时做一些维护工作
- git commit 规范
- 保证一个 commit 只做一件事情,比如一个 feature/bugfix
- 大型 feature 分解成多个子 feature 做多个 commit ,尽量控制每个 commit 的粒度不要太大。比如有的比较复杂的 feature 可能先会需要对已有的 code 进行重构再开发,那就将重构和开发的代码分 2 个 commit 提交
- 严禁将一件事分成多个 commit 进行提交。提交之前在本地进行
git rebase
- 每个 commit 需要撰写详尽的 commit message 。commit message 格式为:
- summary: 简述 commit 的作用,控制在一行以内,可以关联相应的 github issues
- body: 详细描述 commit 的设计,代码,修复的 bug 来源等
- reference(optional): 给出一些参考链接, blog, stackoverflow 等
- git config
请在本机配置好 git 相关选项:
git config user.name "Your Name"git config user.email "youremail@example.com"git config branch.master.mergeoptions "--no-ff"
coding
- 超过 1000 行的团队协作项目需要遵循以下开发流程
code review:
- 主项目关闭
master
分支的直接 PUSH 权限 - 团队成员通过 fork + pull request 的方式向 github 提交代码
- 每个 commit 要经过至少 2 人的 review
- 视团队项目规模,如果项目协作只有 2 人,代码互相 review ,3 人以上项目指定 1 人赋予 merge 权限, commit 要 2 人 review
continous integration
- 1000 行以上的项目需要加入完整的 unit test ,每次新的 commit 保证不破坏已有的 unit test
style
- 采用合适的工具对代码进行 coding style 检查和静态分析,和 CI 系统集成
- 代码内部和 git commit message 禁止使用中文注释
- 所有代码文件采用 UTF-8 编码
- 项目文档尽量采用英文,以便有利于平滑将代码开源
- github issues 讨论不限语言,方便即可
documentation
- 每个项目有基本的 README 文档,详细说明项目如何安装,部署,依赖关系
- 开源项目加入 license 说明
deployment
- 复杂项目开发采用 vagrant 工具打包成虚拟镜像,上传到公司内部服务器上,尽量简化开发环境部署成本
reference
- Commit message 格式部分参考了 https://wiki.openstack.org/wiki/GitCommitMessages
- 知乎工作开发环境: http://www.zhihu.com/question/19638115
- github boxen: https://boxen.github.com/
- vagrant: https://www.vagrantup.com/
2、知乎工程师开发环境
- 平时的工作系统是 OS X(其实娱乐系统也是⋯⋯),Vim 党居多,但 PyCharm 党近来有崛起之势,此外还有 Sublime Text、IntelliJ IDEA、Atom、Xcode、Android Studio,以及只能仰望的 Emacs 党。
- 版本控制系统是 Git,使用 Jenkins 作为 CI 系统。
- 我们统一使用 Phabricator 来进行 code review,bug tracking,任务管理和知识整理。
- 我们使用 Buildout 作为 Python 后端的构建系统,同时搭建了私有的 PyPI 源,此外还有自己的 APT 源、NPM 源。
0 0
- 分享一些前沿的开发环境
- 对前沿的一些思考
- 分享网站开发的一些经验
- 分享一些国外嵌入式开发的网站
- ios开发-分享一些免费的接口
- 分享Android开发的一些工具
- 分享H5开发的一些经验
- 一些移动开发的前端框架分享
- 数码相机一些知识前沿
- 分享一些开发工具
- 一些iOS开发中一些实用的Demo分享
- 1.android开发前沿
- 关于开发环境的一些思考
- flex开发环境的一些相关配置
- Eclipse开发环境的一些设置
- Eclipse开发环境的一些操作问题
- linux开发环境的一些问题解决
- Android 开发环境一些资源的下载
- 史上最前的互联网词汇汇总
- OpenCV: Equivalent to Matlab’s conv2() function
- 设计模式六大原则(3):依赖倒置原则
- 决定在这里安家了- -
- eclipse 安装Java反编译插件
- 分享一些前沿的开发环境
- 微信切忌跑马圈地:即时通讯2B市场硝烟四起
- Oracle RAC环境下virtual/public/private IP的区别
- Javascript单体模式
- 神经网络编程入门
- 几种P2P流媒体开源项目介绍
- mfc杂记
- C语言基础之指针续
- oracle tnsnames.ora配置小结