入职帮助手册
来自技术开发小组内部wiki
编写本手册的目的是让新来的同学快速熟悉技术小组的工作模式以及常用开发工具的配置,达到快速熟悉上手的目的, 本手册会随着技术环境的变化在后续会进行相应的升级修改操作!
目录
- 1 欢迎新同学
- 2 上下班时间
- 3 关于请假
- 4 成员联系方式
- 5 关于邮件签名
- 6 phpmyadmin.fumubang.net 平台使用
- 7 常用工具
- 8 GIT版本管理
- 9 如何签出代码
- 10 生产环境机器说明
- 11 code.fumubang.net 平台使用
- 12 pm.linktone.com:3000 平台使用
- 13 bug.fumubang.net 平台使用
- 14 日志查看中心( http://192.168.28.204/login.php )平台使用
- 15 publish.fumubang.net 平台使用
- 16 wiki.fumubang.net 平台使用
- 17 codeigniter框架(CI)
- 18 后台命令行程序执行规范
- 19 测试内容
- 20 CI框架简要介绍
- 21 内部公共测试地址(www.fumubang.net 前台,adimn001.fumubang.net 后台)
- 22 公司内部共享目录
- 23 内部测试机器(192.168.30.225)
- 24 本地host配置(针对本地开发使用务必进行配置否则不能在本地查看效果)
- 25 主要域名说明
- 26 本地开发环境搭建
- 27 GIT操作说明
- 28 开发步骤流程(非常重要,步骤不能搞错搞反)
- 29 代码发布流程
- 30 开发人员固定IP
- 31 小组晨会制度
欢迎新同学
热烈欢迎新同学加入父母邦PHP技术开发小组
上下班时间
公司有两个上下班时间,09:00--18:00,09:30--18:30,中间午饭时间为12:00--13:00,个人选择其中一个模式即可,不要迟到与早退
关于请假
非紧急情况均需要提前通过邮件说明下同时在公司配置的notes中按照要求填写请假单,否则会影响到工资结算
成员联系方式
卢少锦:18614087983- 马杰:18618425967
张素杰:15010579368刘洁:18665590815曹云霄:15810338360丁亚涛:18610256225李想:18801027252- 封燕妍 13810398087
方万冬 13366751300- 龙瑞瑞 13146703125/18511762843
- 赵艳民 18701644809
陈国冰 15910276137孙殿林 13717570688- 卢晓峰 18500187592
- 刘志新 18810595015
- 雷宇 13301098110
关于邮件签名
邮件签名的设置是为了方便相互间的联系方便,在遇到情况的时候可以通过邮件签名中的相关信息来联系,同时也是一种很好的企业形象宣传方式, 在技术内部是要求需要进行设置,具体的格式可以参考我发送的邮件下方的签名信息格式
卢少锦 | PHP开发主管 Fumubang.com | 父母邦:明智消费,快乐分享 Addr : 北京朝阳区东三环北路8号亮马河大厦1座27层 Tel : +86(010)65396939 | Fax : +86(010)65906539 | Mobile : +86 18614087983 E-mail : shaojin.lu@fumubang.com
phpmyadmin.fumubang.net 平台使用
- 直接输入网址登陆即可,只可用来连接测试数据库
- 直接在终端的命令行操作方式
- 一些成熟的第三方客户端工具
- 还有其他的工具,只要是适合自己的就行,但是推荐直接使用命令行的方式
hostname:192.168.30.225 username:fmb password:123456 database:fmb_new
常用工具
- foxmail:用来收发公司日常工作交流邮件,确保要随机启动并设定定时收发邮件的频率(1分钟一次),由于公司的邮箱设定每人的空间很少,要设置成收取邮件后从服务器上删除,防止出现收取不到邮件的情况
- zendStudio:主要用来进行PHP代码编写,喜欢的同学可以使用,如果个人有自己喜好的其他工具也行,以自己最合适的开发工具为首选
- editplus:一个简单高效的文本编辑器,用来快速查看和编辑文本文件很合适
- SecureCRT:一个用来连接linux服务器的强大方便工具,选用集成有SecureFX的版本这样方便下载和上传文件,可以下载注册破解机进行破解处理
- Git&TortoiseGit:流行的版本控制软件,这个必须的安装,公司的版本控制软件就是使用它来管理的,参考安装地址:[如何安装TortoiseGitl]
- QQ:地球人都知道的聊天工具,在内部主要用来交流生活与闲聊,不能用于工作的交待与说明(需要使用邮件进行发送)
GIT版本管理
公司内部源代码的版本管理是通过GIT来进行管理的,如果之前只接触过SVN的话那么需要花上一些时间来了解下git的工作原理与使用方法,具体的话可以参考: [git搭建]
如何签出代码
以TortoiseGit工具为例进行说明
- 需要通过PuttyGen工具生成公钥与私钥对(在TortoiseGit的安装目录中有),然后将生成好的公钥配置到(code.fumubang.net)的ssh-pub-key中,将私钥存放在自己的本地电脑中
- 在需要进行签出代码的文件夹上选择:Git克隆
- 输入代码库的地址,填入个人邮箱地址与对应的私钥文件即可
- 其他的日常操作需要参考TortoiseGit的操作说明
生产环境机器说明
采用了主流的开源软件搭建一套比较易于扩充的系统,nginx,mysql,centos,redis,memcache,sphinx,httpcws等
- 59.151.119.187:前端代理机器
- 59.151.119.188:web前端+redis+memcache+mysql从+后台程序执行
- 59.151.119.189:mysql主
- 59.151.119.190:mysql从+备份+web前端
code.fumubang.net 平台使用
该平台主要是用来进行代码库的管理操作,用户账号配置,每个人的账号会通过系统邮件发出,根据说明登陆完成后进行密码修改和配置上面说到的ssh-pub-key
pm.linktone.com:3000 平台使用
该平台为目前的项目管理平台,主要用来进行具体工作任务的分配,开发功能的上线步骤等信息,个人需要根据每日的开发进度在每日下班前更新完成进度, 该平台的账号会通过邮件的方式进行发送,如果打开慢可以把域名换成192.168.30.228
bug.fumubang.net 平台使用
该平台主要是在功能开发完成之后的测试阶段使用,对于分配到自己名下的bug需要及时进行修复,并更新状态以方便测试人员及时验证检查与关闭, 该平台的账号会通过邮件的方式进行发送
日志查看中心( http://192.168.28.204/login.php )平台使用
该平台主要是跟踪生成环境中程序运行产生的各种日志信息,以便能够快速定位与发现问题,需要做到每日一看! 对应的账号是:admin 密码是:1qazxsw2
publish.fumubang.net 平台使用
该平台主要是用来进行日常的代码发布与回滚操作,方便跟踪发布情况,同时也适用非技术人员进行使用,账号需要开通之后才能使用!
wiki.fumubang.net 平台使用
该平台主要是用来记录开发过程中撰写的文档说明,方便日后的查阅与更新
codeigniter框架(CI)
公司目前的团队内部开发使用的是CI框架,该框架简单易学高效,基本花上1,2天时间就能够很快熟悉上手,对于之前没有了解过的同学,可以参考: [[1]]
后台命令行程序执行规范
- 所有的后台程序统一归属到:fmb.dianping/application/controllers/cmdrun
- 具体执行:cd /home/www/fmb.dianping/public_html && php index.php test[环境代码] cmdrun[固定目录] test[控制器] test2[方法名] xxx[相关方法参数]
测试内容
- 所有的后台程序统一归属到:fmb.dianping/application/controllers/cmdrun
- 具体执行:cd /home/www/fmb.dianping/public_html && php index.php test[环境代码] cmdrun[固定目录] test[控制器] test2[方法名] xxx[相关方法参数]
CI框架简要介绍
application/config 各种公共的配置文件 application/controllers 控制器文件,前端直接访问的URL路径 application/core 扩展的核心目录 application/errors 出错页面配置 application/helpers 各种公共处理的函数 application/hooks 各种钩子脚本 application/libraries 各种功能的类库文件 application/models 各种模型文件 application/views 对应的页面模板文件
内部公共测试地址(www.fumubang.net 前台,adimn001.fumubang.net 后台)
开发完成之后需要通过版本控制工具推送代码到测试机上,这样测试同学才可以进行相应的查看
公司内部共享目录
里面主要是包含一些产品需求文档说明,具体地址是:\\192.168.30.100\rd\fumubang\,用户名:rd 密码:R&D
内部测试机器(192.168.30.225)
该机器的权限会通过邮件的方式发送给使用登陆者,在不十分了解机器上存放的内容情况下,不要任意删除文件或修改配置
- /home/www 下面存放的测试代码文件目录
- /data2/fmb_publish 下面存放的发布脚本
- /home/fumubang/mysql_local.sh 用于快速链接测试数据库
- /home/fumubang/mysql_www.sh 用于快速链接生产环境数据库(修改操作务必谨慎)
本地host配置(针对本地开发使用务必进行配置否则不能在本地查看效果)
所有以dev开头的域名都是用于进行本地开发测试的,如果在测试中间有跳转不正确的情况,需要手动更改下访问地址处理
192.168.30.225 www.fumubang.net 192.168.30.225 passport.fumubang.net 192.168.30.225 img3.fumubang.net 192.168.30.225 piwik.fumubang.net 192.168.30.225 piwik.fumubang.net 192.168.30.176 code.fumubang.net 192.168.30.225 api.fumubang.net 192.168.30.225 t.fumubang.net 192.168.30.225 img0.fumubang.net 192.168.30.225 news-admin.fumubang.net 192.168.30.225 news.fumubang.net 192.168.30.225 rest.fumubang.net 192.168.30.225 sns.fumubang.net 192.168.30.225 admin001.fumubang.net 192.168.30.225 img.fumubang.net 192.168.30.225 img1.fumubang.net 192.168.30.225 img2.fumubang.net 192.168.30.225 dev-admin001.fumubang.net 192.168.30.225 dev-www.fumubang.net 192.168.30.225 sh.fumubang.net 192.168.30.225 dev-passport.fumubang.net 192.168.30.225 dev-sh.fumubang.net 192.168.30.225 bug.fumubang.net 192.168.30.225 dev-bj.fumubang.net 192.168.30.225 bj.fumubang.net 192.168.30.225 dev-m.fumubang.net #测试手机站 192.168.30.225 dev-publish.fumubang.net #内部代码发布系统 192.168.30.225 dev-api.fumubang.net 192.168.30.225 phpmyadmin.fumubang.net 192.168.30.225 dev-mcart.fumubang.net 192.168.30.225 dev-mtrade.fumubang.net 192.168.30.225 dev-mi.fumubang.net 192.168.30.225 mcart.fumubang.net 192.168.30.225 mtrade.fumubang.net 192.168.30.225 mi.fumubang.net 192.168.30.225 dev-majax.fumubang.net 192.168.30.225 majax.fumubang.net
主要域名说明
- www.fumubang.net/com:用户直接访问进入的地址
- bj.fumubang.net/com:北京站的域名
- sh.fumubang.net/com:上海站的域名
- passport.fumubang.net/com:用户中心的域名
- admin001.fumubang.net/com:管理后台的域名
- m.fumubang.net/com:网站手机端的域名
本地开发环境搭建
本地开发环境主要用于在功能开发阶段用最少的配置代价(无需在本地搭建NLMP环境)进行功能的快速开发,所见即所得,不用频繁提交代码,具体的配置步骤如下:
- 在本地电脑磁盘上建立一个文件夹:命令为work_project
- 在work_project文件夹中克隆代码库,名字必须采取如下的:
fmb.dianping : 对应 父母邦的主站 git@code.fumubang.net:root/fumubang.git fmb.admin : 对应 父母邦的后台管理 git@code.fumubang.net:root/admin001.git fmb.group : 对应 父母邦的圈子相关 git@code.fumubang.net:root/group.git fmb.passport : 对应 父母邦的登陆通行证 git@code.fumubang.net:root/passport.git fmb.uc : 对应 父母邦的用户中心 git@code.fumubang.net:root/ucenter.git fmb.jishigou : 对应 父母邦的个人空间 git@code.fumubang.net:root/jishigou.git fmb.photo : 对应 父母邦的图片处理 git@code.fumubang.net:root/photo.git
- 针对work_project文件进行局域网共享
步骤:文件夹右键 ,共享,特定用户,选择一个拥有写与读权限的用户
- 开启文件共享的防火墙设置
步骤:控制面板,系统与安全,windows防火墙,右侧高级设置 入站规则:文件与打印机共享 smb-in 三个规则都是启用,ip选为任何ip,范围为 域,专有 ,公共 都勾选上 出站规则:文件与打印机共享 smb-out,规则设置同上
- 安全设置
步骤:运行cmd打开gpedit.msc 入站规则:安全设置--本地策略--安全选项--网络访问--网络访问:本地账户的共享和安全模型。改为:经典-对本地用户进行身份验证,不改变其本来身份。 确认后即可挂载。
- 固定单位电脑的内网IP地址
此固定IP地址会通过邮件的方式给出,dns可以设置为:8.8.8.8 8.8.4.4
- 进行具体的挂载,需要提供每个人的机器的登陆用户名与密码,以及对应的固定IP地址
mount -o username=abc,password=,rw -t cifs //IP/work_project /data2/local-dev/IP/
- 打开浏览器访问对应的域名
http://dev-www.fumubang.net 然后神奇的事情就发生了,所见即所得,避免频繁提交代码
GIT操作说明
开发步骤流程(非常重要,步骤不能搞错搞反)
一.针对每一个代码库的分支命名 远程分支3个: a.publish 分支:主要用来进行正式代码的发布 (不修改只合并)(名字固定) b.preview 分支:主要用来在net上进行代码提交与测试 (不修改只合并)(名字固定) c.develop 分支:主要用来建立多个开发人员一起开发的分支,以便协同开发,可以有多个 (名字不固定) 本地分支3个: a.local-publish 分支:用来与远程的publish分支对应 (不修改只合并)(名字固定) b.local-preview 分支:用来与远程的preview分支对应 (不修改只合并)(名字固定) c.local-develop 分支:根据开发不同的功能建立多个不同的分支(名字不固定) 二.开发流程整理(多个情景处理) 1.一个人完成开发功能(完全不需要其他人协助完善)的开发过程 1).从publish分支上建立一个分支到本地分支(develop-xxxx) 2).在本地分支(develop-xxx)上完成开发与测试 3).切换到local-preview分支进行拉取,然后从develop-xxx分支进行代码的合并 4).合并过程中如果有冲突,先解决冲突然后再提交,然后在推送local-preview分支到preview分支 5).经过测试有问题之后,再返回develop-xxx分支进行修改修正问题,再重复上述的(2-4)步骤 如下是上线步骤 6).测试没有问题之后,切换到local-publish分支进行拉取代码 7).以本地develop-xxx分支为基础,将local-publish分支代码合并过来 8).然后再以local-publish为基础,将develop-xxx分支代码合并过来 9).合并过程中如果有冲突,先解决冲突然后再提交,然后再推送local-publish分支到publish分支 10).由项目管理人员进行此功能更新的版本发布,随后就可以删除本地的develop-xxx分支 2.多个人完成开发功能(需要其他人参与协助开发)的开发过程 1).从publish分支上建立一个分支到本地分支(develop-xxxx) 2).同时将该分支develop-xxxx推送到远程服务器上 3).其他开发者以此develop-xxxx分支签出代码到本地 4).先拉取此分支代码,然后在本地分支(develop-xxx)上完成开发与测试,然后提交到远程分支代码 5).切换到local-preview分支进行拉取,然后从develop-xxx分支进行代码的合并 6).合并过程中如果有冲突,先解决冲突然后再提交,然后在推送local-preview分支到preview分支 7).经过测试有问题之后,再返回develop-xxx分支进行修改修正问题,再重复上述的(4-6)步骤 如下是上线步骤 6).测试没有问题之后,切换到local-publish分支进行拉取代码 7).以本地develop-xxx分支为基础,将local-publish分支代码合并过来 8).然后再以local-publish为基础,将develop-xxx分支代码合并过来 9).合并过程中如果有冲突,先解决冲突然后再提交,然后再推送local-publish分支到publish分支 10).由项目管理人员进行此功能更新的版本发布,随后就可以删除本地的develop-xxx分支 三、问题修复与修正,参考"一个人完成开发功能"步骤 四、如果开发周期超过3天的功能,需要每天早上以develop-xxx分支为基础将最新的local-publish的代码合并过来,防止出现大范围的代码文件冲突
代码发布流程
发布代码均需要取得测试或产品或技术主管书面邮件同意之后,才能进行发布操作,否则出了问题就会认为是没有遵守发布流程! 务必参考上述上线代码分支处理过程正确准备合并代码分支,不能出错,下面的流程目前只适用紧急状态下适用
- 进入测试机器(上面提到过),进入/data2/fmb_publish目录
- 发布具体的代码:./publish.sh publish_group.xml(对应项目的发布脚本) 本次发布的注释
- 代码发布之后的回滚:
进入到目录:/data2/publish_history,查看对应项目的对应版本(通过时间戳方式命名的),找到最近的上一个正确的发布版本文件夹名, 然后进入到目录:/data2/fmb_publish,执行命令:./rollback.sh fmb.group 2013-04-26-15-59-20(对应版本的文件夹名)
- 代码回滚之后务必要立刻通知其他成员该代码库不能进行发布,需要确定原因修复问题之后才可以再次进行发布操作,切记!
正常状态下使用需要参考代码发布系统[publish.fumubang.net]
开发人员固定IP
可供分配的范围:192.168.27.2 ~ 192.168.27.21
- 192.168.27.2 : 卢少锦
- 192.168.27.3 : 马杰
- 192.168.27.4 : 刘洁
- 192.168.27.5 : 曹云霄
- 192.168.27.6 : 周峰/李想/陈国冰
- 192.168.27.7 : 方万冬/孙殿林
- 192.168.27.8 : 彭明
- 192.168.27.10 : 龙瑞瑞
- 192.168.27.11 : 赵艳民
- 192.168.27.15 : 封燕妍
- 192.168.27.20 : 吴扬进
- 192.168.27.19 : 付佳仪
- 192.168.27.18 : 邢笑英
- 192.168.27.17 : 洪剑锋
- 192.168.27.16 : 苹果台式机
子网掩码统一为:255.255.255.0 网关统一为:192.168.27.1
小组晨会制度
建立工作日晨会制度
每日站立晨会目的:
一、加强团队交流和信息共享,得到一个项目的全局观。让团队成员相互了解彼此都在做什么工作,完成了什么任务。
这样每日的信息传递可以让每个人可以更多的了解整个项目的业务和技术状况。并且如果在工作中遇到障碍或问题, 也可以在这个时候提出来,请求大家的帮助。
二、促使每个人在在早上做好一天的工作计划,并向团队做出承诺。每个人一天的工作就会有明确具体的目标,这会直接提高一天的工作效率
- 晨会时间控制在10-15分钟内
- 晨会时间定在工作日上午10:00
- 参加人数控制在10人以内
- 参加方式必须是站立方式
- 采取轮流主持晨会的方式
- 每个人描述说明三项内容
昨天做了什么事情,完成情况 今天要做哪些事情 遇到什么问题或可以分享事情
- 专人记录会议上提出的问题,但不要在会议上讨论和解决问题,而是要会后再找相关人员进行讨论和解决
- 记录形成会议纪要,发给与会人员
- 参会准时奖惩制度
每人每个正常工作日拥有1分,没有事先说明请假(人不在单位的情况)而缺席,扣减1分 在会议上积极提出问题解决方案并被实际加以采用,增加1分 以两周为单位,进行评比,分数低者需要为成员购买水果,每人一份