发表于: 2017-12-20 21:06:25
1 518
今天完成的内容:
(1)看代码生成。
没有看完,目前总结是:在SVN export common,用idea打开,找到common-code-demo,先解决一下报错,比如有jar包遗漏等。在resource中放Excel格式的表文件,表内容改一下端口,表名去中文,写一下mock value,test中改表的路径,直接运行,在common-tag-lib中生成相应的代码。再新建一个项目文件,删除src文件,新建三个模块,分别是core,service,web,对应的包中建好必备的包,如module,service,client等,然后将刚才生成的代码分别拷贝到对应的包中。
(2)准备小课堂,讲分布式——soa——sca。
(3)准备复盘申请评审,
(4)进复盘须知。
1、开发流程规范
页面地址 :二期项目流程
2、使用禅道拆解任务,知道怎么使用禅道,禅道的功能,以及燃尽图是做什么的
禅道使用规范
3、表结构以及接口都要做好注释,修改了哪些字段加了哪些字段,都要补充到excel表中
4、wiki上记录:1、项目端口号 2、项目方案(创建新项目参考金信一期后端方案设计-梁晓进,项目迭代参考技能树的11期-后端方案) 3、开通项目主页、4 接口文档地址:wiki上写好接口文档,具体参看外部项目逗你学项目(逗你学)
端口号页面地址:端口登记
项目方案地址:方案
项目主页地址:项目主页
接口文档地址:外部项目或者内部项目
5、接口文档分为部分:1、环境 (开发、测试、线上,前端工程师需要地址调接口) 2、相关功能账号(用到的第三方账号,比如短信、推送等)
3、后端需要配置的host (service、db等的配置) 4、一些重要更新 5、约定(前后端开发的约定) 6、具体接口文档(每个接口要表明前端负责人,后端负责人,接口是否完成,是否调试完成等)
5.1接口怎么写:
6、学会使用excel自动生成代码,生成代码以后建好项目,并且让项目正常运行起来。
excel表示例:8-11表结构V3.0.xls 表结构经常会有些变动,所以要标上日期,能够看到变动,或者可以直接在common生成代码那里直接上传到Svn,有变动的时候记得更新,传到svn,保证svn上保存的是最新最完整的
项目结构使用maven构建,结构是之前做方案的时候定的,结构目录一般是这样:项目名,项目名下分trunk,target,braches三部分,开发的时候在trunk下,打版本打到target下。
7、项目建好后,测试service能否连上数据库,web能否连上service。可以通过项目中的test下的实现类进行测试。
代码生成的Test下的代码一定要放到项目里,用来做测试。
了解清楚test下的实现类三种测试方法都是用来测试什么的。
7.1 方法一(测试client):ApplicationContext context = new ClassPathXmlApplicationContext("classpath:lottery-home-service/applicationContext-server.xml");
channelService = (ChannelLotStatisticsService) context.getBean("channelLotStatisticsService");
这个方法测试web连接service是否能正常使用,如果测试通过,说明web调用service没有问题
方法二(local servier):
channelService = (ChannelLotStatisticsService) Naming.lookup("//localhost:10410/ChannelLotStatisticsRMIService");
如果方法一测试不通过,说明service有问题,继续查找问题。直接通过rmi的lookup查找绑定的service,如果正常,则能获取到channelService 实现类,并且能运行成功。
这说明service是正确启动了,并且通过原始方法能正常使用。所以如果方法一测试失败,方法二测试通过,说明service本身没问题,是web调用service出错了。
7.2 在浏览器访问资源中心地址测试资源中心是否能访问: 资源中心的地址是 http://地址/resources/{服务名}
8、写代码的时候学会打日志,知道什么地方打日志,能够方便你查错
最基本的:1、入参要打印出来 2、如果是实体类可以打印整个实体(但是不建议,测试的时候可以打印整个实体,但是发布到线上建议只打印id,集合和数组绝不允许打印出来,只打印size或者length就可以了)
9、熟悉开发机目录结构,知道nginx web service scallop在哪,启动和停止脚本在哪,日志怎么查看,日志不同的日志记录的是什么内容。
了解必要的配置文件,例如nginx的conf文件夹下的文件 , web文件夹下的container,service的start.sh等。
文档地址:服务器上代码发布.docx
10、熟悉查看日志命令,学会如何查看日志
开发时候使用1、 查看日志命令tail ,一般使用tail -200f ,查询目前日志的200行。常用的是tail -200f stdout.log
查询错误使用:1、cat -n test.log |grep "地形" 比如你出错的地方打印出来的日志是"地形",那么通过这个命令查找到出错地方日志的行数,比如行数92
2、获取到行数之后,通过命令cat -n test.log |tail -n +92|head -n 20 查看92行日志的前20行日志,还可以cat -n test.log |tail -n +92|head -n 200,后面查询多少行日志可以随意更改
11、如何打tag
如何打tag
12、发布开发环境和测试环境
注:这些命令都是在开发机1执行
1) 发布开发环境,根据不同开发机,SERVER_HOST不同:
1)如service名叫:carjn-home-service,由-分开,放到标红的对应的位置上,
发布的是开发机1,那么是这样
ansible-playbook -e "SERVER_HOST=ptteng_dev project=carjn stage=dev sname=home" -t service /data/ansible/playbook/ptteng_release.yml
发布的是开发机2,那么是这样
ansible-playbook -e "SERVER_HOST=ptteng_dev_2 project=carjn stage=dev sname=home" -t service /data/ansible/playbook/ptteng_release.yml
2)如web名叫:carjn-home-web,由-分开,放到标红的对应的位置上
ansible-playbook -e "SERVER_HOST=ptteng_dev project=carjn stage=dev sname=home" -t web /data/ansible/playbook/ptteng_release.yml
如果core包没有更新,即不需要重新打core包的,可以用:
ansible-playbook -e "SERVER_HOST=ptteng_dev project=carjn stage=dev sname=home" -t web --skip-tags=coreinstall /data/ansible/playbook/ptteng_release.yml
2)发布测试环境:加上版本号
service发布:
ansible-playbook -e "SERVER_HOST=ptteng_test project=carjn stage=test sname=home version=1.0" -t service /data/ansible/playbook/ptteng_release_tag.yml
web发布:
ansible-playbook -e "SERVER_HOST=ptteng_test project=carjn stage=test sname=home version=1.0" -t web /data/ansible/playbook/ptteng_release_tag.yml
3)如果发布的是该项目的新版本发布测试环境,需要把代码的新的sql文件(包括建表,新增字段,*_resource.sql资源中心的SQL文件)传到测试环境,先在数据库外面备份原有的数据库,然后进入到数据库中执行source命令(执行sql文件 ),插入成功后验证
13、复盘项目萝卜多1期,前端代码地址:后台:svn://wx.ptteng.com/ptteng/carrots-admin
前台:svn://wx.ptteng.com/ptteng/carrots-html
14、学员做复盘项目用开发机2,登录到开机1之后,执行ssh ptteng_dev_2,即可连接上开发机2
15、发布前端代码:
进开发机1 或者开发机2,
cd /data/software-server/nginx/nginx/html/{svn代码名}
svn update
明天的计划:复盘申请,将小课堂。
遇到的问题:暂无。
收获:以上。
评论