SlideShare une entreprise Scribd logo
1  sur  29
© 2008 绿盟科技www.nsfocus.comnsfocus.com © 2008 绿盟科技www.nsfocus.comnsfocus.com
Python 开发最佳实践
密级:内部使用
—— 基于虚拟机的 Python 开发环境
回顾一下
• 期望达到的目标
– 通过标准化、自动化降低对开发、测试、生产环境的沟通
障碍
• 降低互相理解各自环境的难度
• 降低定位问题难度
– 让每次代码提交都能知道是否能―正常运行‖
• 刚开始―正常运行‖仅仅意味着进程可以正常启动,随着覆盖度越来
越高,除性能、漏报、误报这些,大部分都应该是能被测试到的
– 加快―开发->测试->部署‖的时间,避免反复沟通,反复调
整
• 大致思路 – DevOps
– 基础设施代码化:Infrastructure As Code
– 持续集成(CI): Continuous Integration
– 持续交付(CD): Continuous Delivery
• http://book.douban.com/subject/6862062/
• 持续集成的工作流程(细节可以看 URL)
http://wiki.developerforce.com/page/Bestpractices:Continuous_Integration_Techniques
如果要很好的实现这个需要:
1. 开发人员本地有很方便的本地环境(开
发机,sandbox)
2. 开发人员本地环境、开发环境、测试环
境、生产环境像代码一样管理
好的开发环境意味着什么?
• Python 社区是一个变化非常快的社区
– 知识和工具都需要及时更新,跟进社区的变化
• Python 开发的最佳实践(推荐阅读)
– The Hitchhiker’s Guide to Python!
• 英文版:http://docs.python-guide.org/en/latest/
• Python 自身的包管理工具(推荐阅读)
– Python 套件管理程序简介
• http://t.cn/zYdfQqV
– Python 的虚拟环境及多版本开发
• http://t.cn/zjOzu0y
– Hitchhiker’s Guide:
• Linux:http://t.cn/zYdfQqI
• Windows:http://t.cn/zYdfQqf
• 主要工具(Python 包管理三大利器)
– pip
• Python 的包管理工具,原有 easy_install 不再维护
• http://www.pip-installer.org/en/latest/
– virtualenv
• Python 的环境管理工具,隔离 Python 不同环境的影响
• http://www.virtualenv.org/en/latest/
– virtualenvwrapper
• virutalenv 的增强工具包,实现了很多很方便的工具
• http://virtualenvwrapper.readthedocs.org/en/latest/
要实现
一个功能
搜寻
开源库
验证
是否可用
选定
引入代码库
开发 测试 上线
第三方库引入的示意图
Python 运行时 Sandbox 有了
那操作系统级 Sandbox 呢?
那操作系统级别的 Sandbox?
那不就是虚拟机么?
怎么像代码一样管理虚拟机呢?
有没有简单的框架呢?
vagrant + veewee
自动化的开发环境构建工具,用于
降低开发环境配置时间。
vagrant 的扩展工具,主要用构建
vmware/kvm/virtualbox 的 basebox 的
工具
vagrant + veewee = 构建环境的利器!
目前 veewee 对 vagrant v1.1.x 版本兼容性还有问题
因此我们还在 vagrant v1.0.x 这个版本上
制作
通常是运维人员
使用
通常是开发人员、测试人员
基本概念和基本流程
templates 虚拟机配置模版
basebox 虚拟机模版
box 虚拟机文件vagrant box repackage 'base'
vagrant basebox build 'ESPP-BASE' --nogui –force
vagrant basebox export 'ESPP-BASE'
vagrant basebox define 'ESPP-BASE' 'PA.10.04.4.x64-base'
box 虚拟机实例
vagrant init
vagrant box remove 'base'
vagrant box add 'base' ESPP-BASE.box
vagrant up
vagrant ssh
vagrant status
vagrant halt; vagrant suspend; vagrant resume
vagrant v1.0.x 的官方文档:http://docs-v1.vagrantup.com/v1/docs/index.html
使用者视角
研发人员、测试人员的主要场景
http://gitlab.lab.intra.nsfocus.com/devops-document/tree/master/Python/Python.Best.Practice
• 从―虚拟机文件‖创建―虚拟机实例‖
– cd ~/vagrant(进入 vagrant 的工作目录)
– vagrant init
– vagrant box remove 'base'
– vagrant box add 'base' ESPP-BASE.box
– vagrant up
• 启动并使用―虚拟机实例”
– cd ~/vagrant(进入 vagrant 的工作目录)
– vagrant ssh
– vagrant status
– vagrant halt; vagrant suspend; vagrant resume
使用者视角的演示
• 打包”虚拟机实例”
– cd ~/vagrant(进入 vagrant 的工作目录)
– vi Vagrantfile
– 方法一:vagrant box repackage 'base'
– 方法二(管理员):vagrant package 'base' --base
'ESPP-base' --output base.box
使用者视角的演示
http://docs-v1.vagrantup.com/v1/docs/vagrantfile.html
• 配置”虚拟机实例”的具体方法
– cd ~/vagrant(进入 vagrant 的工作目录)
– vi Vagrantfile
• 如何修改”虚拟机实例”配置
– http://docs-v1.vagrantup.com/v1/docs/vagrantfile.html
• 如何配置多个”虚拟机实例”
– http://docs-v1.vagrantup.com/v1/docs/multivm.html
• 介绍示例 Vagrantfile 的内容
使用者视角的演示
管理员视角
研发人员、测试人员的主要场景
http://gitlab.lab.intra.nsfocus.com/devops-document/tree/master/Infrastructure/Vagrant
• 从―虚拟机配置模版‖创建―虚拟机模版‖
– cd ~/vbox(进入 vagrant 的管理目录)
– vagrant basebox define 'ESPP-BASE' 'PA.10.04.4.x64-base'
– vagrant basebox build 'ESPP-BASE' --nogui --force
– vagrant basebox ssh 'ESPP-BASE'
• 导出―虚拟机模版‖
– vagrant basebox export 'ESPP-BASE'
– ESPP-BASE.box 就是可以给他人使用的虚拟机模版
• 介绍―虚拟机模版文件‖
– definition.rb
– preseed.cfg
– *.sh
管理员视角的演示
开发 -> 测试 -> 生产
如何在不同环境中传递
源代码
workflow
虚拟机配
置模版
Python 运
行时环境
(第三方包清单)
部署脚本
研发
运维
研发
研发/
运维
开发
(开发环境)
源代码
虚拟机配
置模版
Python 运
行时环境
(第三方包清单)
部署脚本
第 x 轮提交
(测试环境)
源代码
虚拟机配
置模版
Python 运
行时环境
(第三方包清单)
部署脚本
源代码
虚拟机配
置模版
Python 运
行时环境
(第三方包清单)
部署脚本
上线前测试
(测试环境)
发布
(生产环境)
自动化测
试代码
自动化测
试代码
自动化测
试代码
如何排错?
• 如何排错?
• 查文档!
– vagrant 的文档写得不错——全面、简单、易懂
– http://docs-v1.vagrantup.com/v1/docs/index.html
– http://docs-v1.vagrantup.com/v1/docs/getting-
started/index.html
• 可能需要 console 登上去才能解决的问题
– 安装过程中、各种限制、需要看进展、……
– export DISPLAY='10.52.32.1:0.0'
– vagrant basebox build 'ESPP-BASE' --force
深入了解
• veewee 的虚拟机配置模版目录
– /var/lib/gems/1.8/gems/veewee-0.3.7/templates/
• 用户目录中的环境
– .vagrant
• 记录虚拟机 UUID 和状态,不用管
– ~/.vagrant.d/
• vagrant 的通用配置,例如 vagrant 这个用户的 ssh_key
– ~/VirtualBox VMs/
• VirtualBox 的虚拟机目录,不用管
– ~/vbox/
• 管理员创建虚拟机模版的工作目录(可以是任意目录)
– ~/vagrant/
• 使用 vagrant 的工作目录(可以是任意目录)
– ~/vagrant/Vagrantfile
• vagrant 的配置文件,最好是每个项目配置一个
• 安装 vagrant + veewee
– http://gitlab.lab.intra.nsfocus.com/devops-
document/tree/master/Infrastructure/Vagrant/Installa
tion.md
课后作业
• 推荐给大家的文档
– Vagrant 快速入门
• http://docs-v1.vagrantup.com/v1/docs/getting-started/index.html
– Vagrant 手册
• http://docs-v1.vagrantup.com/v1/docs/index.html
– Vagrant 教程
• http://gitlab.lab.intra.nsfocus.com/devops-
document/tree/master/Infrastructure/Vagrant
– Python 开发环境最佳实践
• http://gitlab.lab.intra.nsfocus.com/devops-
document/tree/master/Python/Python.Best.Practice
– 持续关注 vagrant 和 veewee 的变化
• 是不是支持 vmware 啦?
• veewee 是不是兼容 vagrant 1.1.x 啦?
• ……
• Python 社区是个发展非常快的社区
谢谢!

Contenu connexe

Tendances

前端工程師一定要知道的 Docker 虛擬化容器技巧
前端工程師一定要知道的 Docker 虛擬化容器技巧前端工程師一定要知道的 Docker 虛擬化容器技巧
前端工程師一定要知道的 Docker 虛擬化容器技巧Chu-Siang Lai
 
[Modern Web 2016] 讓你的 PHP 開發流程再次潮起來
[Modern Web 2016] 讓你的 PHP 開發流程再次潮起來[Modern Web 2016] 讓你的 PHP 開發流程再次潮起來
[Modern Web 2016] 讓你的 PHP 開發流程再次潮起來Shengyou Fan
 
A brief introduction to Vagrant – 原來 VirtualBox 可以這樣玩
A brief introduction to Vagrant – 原來 VirtualBox 可以這樣玩A brief introduction to Vagrant – 原來 VirtualBox 可以這樣玩
A brief introduction to Vagrant – 原來 VirtualBox 可以這樣玩Wen-Tien Chang
 
Continuous Delivery Workshop with Ansible x GitLab CI (3rd)
Continuous Delivery Workshop with Ansible x GitLab CI (3rd)Continuous Delivery Workshop with Ansible x GitLab CI (3rd)
Continuous Delivery Workshop with Ansible x GitLab CI (3rd)Chu-Siang Lai
 
Node.js长连接开发实践
Node.js长连接开发实践Node.js长连接开发实践
Node.js长连接开发实践longhao
 
人人网开发一站式体验
人人网开发一站式体验人人网开发一站式体验
人人网开发一站式体验zhen chen
 
Npm 套件管理 & 常用開發工具介紹
Npm 套件管理 & 常用開發工具介紹Npm 套件管理 & 常用開發工具介紹
Npm 套件管理 & 常用開發工具介紹wantingj
 
docker intro
docker introdocker intro
docker introkoji lin
 
twMVC#26 | 淺談 ASP.NET Caching 技術與實踐
twMVC#26 | 淺談 ASP.NET Caching 技術與實踐twMVC#26 | 淺談 ASP.NET Caching 技術與實踐
twMVC#26 | 淺談 ASP.NET Caching 技術與實踐twMVC
 
Automate with Ansible basic (3/e)
Automate with Ansible basic (3/e)Automate with Ansible basic (3/e)
Automate with Ansible basic (3/e)Chu-Siang Lai
 
從軟體開發角度
談 Docker 的應用
從軟體開發角度
談 Docker 的應用從軟體開發角度
談 Docker 的應用
從軟體開發角度
談 Docker 的應用謝 宗穎
 
Koa 正在等一個人
Koa 正在等一個人Koa 正在等一個人
Koa 正在等一個人Fred Chien
 
[OSDC12]相依性管理 - 以Ruby開發為例
[OSDC12]相依性管理 - 以Ruby開發為例[OSDC12]相依性管理 - 以Ruby開發為例
[OSDC12]相依性管理 - 以Ruby開發為例YC Ling
 
Automate with Ansible basic (2/e)
Automate with Ansible basic (2/e)Automate with Ansible basic (2/e)
Automate with Ansible basic (2/e)Chu-Siang Lai
 
Docker 基礎介紹與實戰
Docker 基礎介紹與實戰Docker 基礎介紹與實戰
Docker 基礎介紹與實戰Bo-Yi Wu
 
课题三:Nginx基础知识
课题三:Nginx基础知识课题三:Nginx基础知识
课题三:Nginx基础知识Liu Allen
 
快速上手 Windows Containers 容器技術 (Docker Taipei)
快速上手 Windows Containers 容器技術 (Docker Taipei)快速上手 Windows Containers 容器技術 (Docker Taipei)
快速上手 Windows Containers 容器技術 (Docker Taipei)Will Huang
 
Docker 淺入淺出
Docker 淺入淺出Docker 淺入淺出
Docker 淺入淺出Miles Chou
 

Tendances (20)

前端工程師一定要知道的 Docker 虛擬化容器技巧
前端工程師一定要知道的 Docker 虛擬化容器技巧前端工程師一定要知道的 Docker 虛擬化容器技巧
前端工程師一定要知道的 Docker 虛擬化容器技巧
 
[Modern Web 2016] 讓你的 PHP 開發流程再次潮起來
[Modern Web 2016] 讓你的 PHP 開發流程再次潮起來[Modern Web 2016] 讓你的 PHP 開發流程再次潮起來
[Modern Web 2016] 讓你的 PHP 開發流程再次潮起來
 
A brief introduction to Vagrant – 原來 VirtualBox 可以這樣玩
A brief introduction to Vagrant – 原來 VirtualBox 可以這樣玩A brief introduction to Vagrant – 原來 VirtualBox 可以這樣玩
A brief introduction to Vagrant – 原來 VirtualBox 可以這樣玩
 
Continuous Delivery Workshop with Ansible x GitLab CI (3rd)
Continuous Delivery Workshop with Ansible x GitLab CI (3rd)Continuous Delivery Workshop with Ansible x GitLab CI (3rd)
Continuous Delivery Workshop with Ansible x GitLab CI (3rd)
 
Node.js长连接开发实践
Node.js长连接开发实践Node.js长连接开发实践
Node.js长连接开发实践
 
人人网开发一站式体验
人人网开发一站式体验人人网开发一站式体验
人人网开发一站式体验
 
Npm 套件管理 & 常用開發工具介紹
Npm 套件管理 & 常用開發工具介紹Npm 套件管理 & 常用開發工具介紹
Npm 套件管理 & 常用開發工具介紹
 
docker intro
docker introdocker intro
docker intro
 
twMVC#26 | 淺談 ASP.NET Caching 技術與實踐
twMVC#26 | 淺談 ASP.NET Caching 技術與實踐twMVC#26 | 淺談 ASP.NET Caching 技術與實踐
twMVC#26 | 淺談 ASP.NET Caching 技術與實踐
 
Automate with Ansible basic (3/e)
Automate with Ansible basic (3/e)Automate with Ansible basic (3/e)
Automate with Ansible basic (3/e)
 
從軟體開發角度
談 Docker 的應用
從軟體開發角度
談 Docker 的應用從軟體開發角度
談 Docker 的應用
從軟體開發角度
談 Docker 的應用
 
Koa 正在等一個人
Koa 正在等一個人Koa 正在等一個人
Koa 正在等一個人
 
Vagrant教學
Vagrant教學Vagrant教學
Vagrant教學
 
[OSDC12]相依性管理 - 以Ruby開發為例
[OSDC12]相依性管理 - 以Ruby開發為例[OSDC12]相依性管理 - 以Ruby開發為例
[OSDC12]相依性管理 - 以Ruby開發為例
 
Docker應用
Docker應用Docker應用
Docker應用
 
Automate with Ansible basic (2/e)
Automate with Ansible basic (2/e)Automate with Ansible basic (2/e)
Automate with Ansible basic (2/e)
 
Docker 基礎介紹與實戰
Docker 基礎介紹與實戰Docker 基礎介紹與實戰
Docker 基礎介紹與實戰
 
课题三:Nginx基础知识
课题三:Nginx基础知识课题三:Nginx基础知识
课题三:Nginx基础知识
 
快速上手 Windows Containers 容器技術 (Docker Taipei)
快速上手 Windows Containers 容器技術 (Docker Taipei)快速上手 Windows Containers 容器技術 (Docker Taipei)
快速上手 Windows Containers 容器技術 (Docker Taipei)
 
Docker 淺入淺出
Docker 淺入淺出Docker 淺入淺出
Docker 淺入淺出
 

Similaire à 02.python.开发最佳实践

Scrum gathering 2012 Shanghai_精益与持续改进分会场演讲话题: 大型企业ci平台建设和实施分享(陈小光)
Scrum gathering 2012 Shanghai_精益与持续改进分会场演讲话题: 大型企业ci平台建设和实施分享(陈小光)Scrum gathering 2012 Shanghai_精益与持续改进分会场演讲话题: 大型企业ci平台建设和实施分享(陈小光)
Scrum gathering 2012 Shanghai_精益与持续改进分会场演讲话题: 大型企业ci平台建设和实施分享(陈小光)JoXuZi
 
广告技术部自动化测试介绍.pdf
广告技术部自动化测试介绍.pdf广告技术部自动化测试介绍.pdf
广告技术部自动化测试介绍.pdfbj_qa
 
美团前端架构简介
美团前端架构简介美团前端架构简介
美团前端架构简介pan weizeng
 
Puppet安装总结
Puppet安装总结Puppet安装总结
Puppet安装总结Yiwei Ma
 
从林书豪到全明星 - 虎扑网技术架构如何化解流量高峰
从林书豪到全明星 - 虎扑网技术架构如何化解流量高峰从林书豪到全明星 - 虎扑网技术架构如何化解流量高峰
从林书豪到全明星 - 虎扑网技术架构如何化解流量高峰Scourgen Hong
 
使用 Pytest 進行單元測試 (PyCon TW 2021)
使用 Pytest 進行單元測試 (PyCon TW 2021)使用 Pytest 進行單元測試 (PyCon TW 2021)
使用 Pytest 進行單元測試 (PyCon TW 2021)Max Lai
 
互联网创业服务器运维工具集
互联网创业服务器运维工具集互联网创业服务器运维工具集
互联网创业服务器运维工具集zhen chen
 
Monitor is all for ops
Monitor is all for opsMonitor is all for ops
Monitor is all for ops琛琳 饶
 
Btrace intro(撒迦)
Btrace intro(撒迦)Btrace intro(撒迦)
Btrace intro(撒迦)ykdsg
 
該怎麼樣(認真的)部署你的 Python Web 應用程式?
該怎麼樣(認真的)部署你的 Python Web 應用程式?該怎麼樣(認真的)部署你的 Python Web 應用程式?
該怎麼樣(認真的)部署你的 Python Web 應用程式?Andy Dai
 
Track2 -刘继伟--openstack in gamewave
Track2 -刘继伟--openstack in gamewaveTrack2 -刘继伟--openstack in gamewave
Track2 -刘继伟--openstack in gamewaveOpenCity Community
 
Python 于 webgame 的应用
Python 于 webgame 的应用Python 于 webgame 的应用
Python 于 webgame 的应用勇浩 赖
 
DevOpsDays Taipei 2018 - Puppet 古早味、新感受:改造老牌企業進入自動化時代
DevOpsDays Taipei 2018 - Puppet 古早味、新感受:改造老牌企業進入自動化時代DevOpsDays Taipei 2018 - Puppet 古早味、新感受:改造老牌企業進入自動化時代
DevOpsDays Taipei 2018 - Puppet 古早味、新感受:改造老牌企業進入自動化時代scott liao
 
探索 ISTIO 新型 DATA PLANE 架構 AMBIENT MESH - GOLANG TAIWAN GATHERING #77 X CNTUG
探索 ISTIO 新型 DATA PLANE 架構 AMBIENT MESH - GOLANG TAIWAN GATHERING #77 X CNTUG探索 ISTIO 新型 DATA PLANE 架構 AMBIENT MESH - GOLANG TAIWAN GATHERING #77 X CNTUG
探索 ISTIO 新型 DATA PLANE 架構 AMBIENT MESH - GOLANG TAIWAN GATHERING #77 X CNTUGYingSiang Geng
 
Scrum gathering 2012 shanghai 精益与持续改进分会场演讲话题: 大型企业ci平台建设和实施分享(陈小光)
Scrum gathering 2012 shanghai  精益与持续改进分会场演讲话题: 大型企业ci平台建设和实施分享(陈小光)Scrum gathering 2012 shanghai  精益与持续改进分会场演讲话题: 大型企业ci平台建设和实施分享(陈小光)
Scrum gathering 2012 shanghai 精益与持续改进分会场演讲话题: 大型企业ci平台建设和实施分享(陈小光)LetAgileFly
 
Software Engineer Talk
Software Engineer TalkSoftware Engineer Talk
Software Engineer TalkLarry Cai
 
Maven初级培训
Maven初级培训Maven初级培训
Maven初级培训Cody Zhang
 
合久必分,分久必合
合久必分,分久必合合久必分,分久必合
合久必分,分久必合Qiangning Hong
 
Maven初级培训
Maven初级培训Maven初级培训
Maven初级培训ytsolar
 

Similaire à 02.python.开发最佳实践 (20)

Scrum gathering 2012 Shanghai_精益与持续改进分会场演讲话题: 大型企业ci平台建设和实施分享(陈小光)
Scrum gathering 2012 Shanghai_精益与持续改进分会场演讲话题: 大型企业ci平台建设和实施分享(陈小光)Scrum gathering 2012 Shanghai_精益与持续改进分会场演讲话题: 大型企业ci平台建设和实施分享(陈小光)
Scrum gathering 2012 Shanghai_精益与持续改进分会场演讲话题: 大型企业ci平台建设和实施分享(陈小光)
 
广告技术部自动化测试介绍.pdf
广告技术部自动化测试介绍.pdf广告技术部自动化测试介绍.pdf
广告技术部自动化测试介绍.pdf
 
美团前端架构简介
美团前端架构简介美团前端架构简介
美团前端架构简介
 
Puppet安装总结
Puppet安装总结Puppet安装总结
Puppet安装总结
 
从林书豪到全明星 - 虎扑网技术架构如何化解流量高峰
从林书豪到全明星 - 虎扑网技术架构如何化解流量高峰从林书豪到全明星 - 虎扑网技术架构如何化解流量高峰
从林书豪到全明星 - 虎扑网技术架构如何化解流量高峰
 
使用 Pytest 進行單元測試 (PyCon TW 2021)
使用 Pytest 進行單元測試 (PyCon TW 2021)使用 Pytest 進行單元測試 (PyCon TW 2021)
使用 Pytest 進行單元測試 (PyCon TW 2021)
 
互联网创业服务器运维工具集
互联网创业服务器运维工具集互联网创业服务器运维工具集
互联网创业服务器运维工具集
 
Monitor is all for ops
Monitor is all for opsMonitor is all for ops
Monitor is all for ops
 
Btrace intro(撒迦)
Btrace intro(撒迦)Btrace intro(撒迦)
Btrace intro(撒迦)
 
該怎麼樣(認真的)部署你的 Python Web 應用程式?
該怎麼樣(認真的)部署你的 Python Web 應用程式?該怎麼樣(認真的)部署你的 Python Web 應用程式?
該怎麼樣(認真的)部署你的 Python Web 應用程式?
 
Track2 -刘继伟--openstack in gamewave
Track2 -刘继伟--openstack in gamewaveTrack2 -刘继伟--openstack in gamewave
Track2 -刘继伟--openstack in gamewave
 
Python 于 webgame 的应用
Python 于 webgame 的应用Python 于 webgame 的应用
Python 于 webgame 的应用
 
DevOpsDays Taipei 2018 - Puppet 古早味、新感受:改造老牌企業進入自動化時代
DevOpsDays Taipei 2018 - Puppet 古早味、新感受:改造老牌企業進入自動化時代DevOpsDays Taipei 2018 - Puppet 古早味、新感受:改造老牌企業進入自動化時代
DevOpsDays Taipei 2018 - Puppet 古早味、新感受:改造老牌企業進入自動化時代
 
Ansible 101
Ansible 101Ansible 101
Ansible 101
 
探索 ISTIO 新型 DATA PLANE 架構 AMBIENT MESH - GOLANG TAIWAN GATHERING #77 X CNTUG
探索 ISTIO 新型 DATA PLANE 架構 AMBIENT MESH - GOLANG TAIWAN GATHERING #77 X CNTUG探索 ISTIO 新型 DATA PLANE 架構 AMBIENT MESH - GOLANG TAIWAN GATHERING #77 X CNTUG
探索 ISTIO 新型 DATA PLANE 架構 AMBIENT MESH - GOLANG TAIWAN GATHERING #77 X CNTUG
 
Scrum gathering 2012 shanghai 精益与持续改进分会场演讲话题: 大型企业ci平台建设和实施分享(陈小光)
Scrum gathering 2012 shanghai  精益与持续改进分会场演讲话题: 大型企业ci平台建设和实施分享(陈小光)Scrum gathering 2012 shanghai  精益与持续改进分会场演讲话题: 大型企业ci平台建设和实施分享(陈小光)
Scrum gathering 2012 shanghai 精益与持续改进分会场演讲话题: 大型企业ci平台建设和实施分享(陈小光)
 
Software Engineer Talk
Software Engineer TalkSoftware Engineer Talk
Software Engineer Talk
 
Maven初级培训
Maven初级培训Maven初级培训
Maven初级培训
 
合久必分,分久必合
合久必分,分久必合合久必分,分久必合
合久必分,分久必合
 
Maven初级培训
Maven初级培训Maven初级培训
Maven初级培训
 

Plus de Na Lee

Aruba-MESH-解决方案.pdf
Aruba-MESH-解决方案.pdfAruba-MESH-解决方案.pdf
Aruba-MESH-解决方案.pdfNa Lee
 
火山引擎-飞连产品介绍.pdf
火山引擎-飞连产品介绍.pdf火山引擎-飞连产品介绍.pdf
火山引擎-飞连产品介绍.pdfNa Lee
 
2007 - 应用系统脆弱性概论
2007 - 应用系统脆弱性概论 2007 - 应用系统脆弱性概论
2007 - 应用系统脆弱性概论 Na Lee
 
2007 年互联网基础设施安全的想法
2007 年互联网基础设施安全的想法2007 年互联网基础设施安全的想法
2007 年互联网基础设施安全的想法Na Lee
 
01.python.开发最佳实践
01.python.开发最佳实践01.python.开发最佳实践
01.python.开发最佳实践Na Lee
 
手机网络游戏平台
手机网络游戏平台手机网络游戏平台
手机网络游戏平台Na Lee
 
淘宝连锁店
淘宝连锁店淘宝连锁店
淘宝连锁店Na Lee
 

Plus de Na Lee (7)

Aruba-MESH-解决方案.pdf
Aruba-MESH-解决方案.pdfAruba-MESH-解决方案.pdf
Aruba-MESH-解决方案.pdf
 
火山引擎-飞连产品介绍.pdf
火山引擎-飞连产品介绍.pdf火山引擎-飞连产品介绍.pdf
火山引擎-飞连产品介绍.pdf
 
2007 - 应用系统脆弱性概论
2007 - 应用系统脆弱性概论 2007 - 应用系统脆弱性概论
2007 - 应用系统脆弱性概论
 
2007 年互联网基础设施安全的想法
2007 年互联网基础设施安全的想法2007 年互联网基础设施安全的想法
2007 年互联网基础设施安全的想法
 
01.python.开发最佳实践
01.python.开发最佳实践01.python.开发最佳实践
01.python.开发最佳实践
 
手机网络游戏平台
手机网络游戏平台手机网络游戏平台
手机网络游戏平台
 
淘宝连锁店
淘宝连锁店淘宝连锁店
淘宝连锁店
 

02.python.开发最佳实践