Showing
1 changed file
with
136 additions
and
0 deletions
新员工入职培训/技术部-java开发-快速工作.md
0 → 100644
1 | + | ||
2 | +技术部--Java开发--快速工作 | ||
3 | +------------ | ||
4 | + | ||
5 | +## 安装Java | ||
6 | +Java版本选择8 | ||
7 | + | ||
8 | + | ||
9 | +## 安装Maven | ||
10 | +安装完成之后,需要和老同事找setting文件 | ||
11 | + | ||
12 | + | ||
13 | +## 安装Navicat for MySQL: | ||
14 | +安装Mysql数据库客户端软件 | ||
15 | +数据库配置信息:192.168.50.69:9980 yh_test/密码问同事 | ||
16 | + | ||
17 | + | ||
18 | +## 安装Git 和 SourceTree: | ||
19 | +安装`《Git-2.6.2-64-bit.exe》`,公司GIT地址:`git.dev.yoho.cn`,需要根据账号让组长加项目权限 | ||
20 | +安装公司要求的Git客户端软件`《SourceTreeSetup_1.6.21》` | ||
21 | +然后在网页GIT中获得工作相关项目的连接,如:`git@git.dev.yoho.cn:yoho30/yoho-core.git`,在SourceTree中“克隆/新建”对应的项目 | ||
22 | + | ||
23 | + | ||
24 | +## 安装Java IDE | ||
25 | +安装`《ideaIU-14.1.5.exe》`,安装完成之后根据个人情况,一般需要设置如下参数: | ||
26 | +`File-->Setting:Git,Maven(home,setting,repository),KeyMap(快捷键风格同eclipse),file encodings(IDE Encode,Default File Encoding),Show line numbers`等等 | ||
27 | +在idea中导入Maven项目 | ||
28 | +增加Service的配置,配置完成之后再Service中增加web应用 | ||
29 | +公司代码规范见:`http://git.dev.yoho.cn/yoho-documents/api-interfaces/blob/master` | ||
30 | + | ||
31 | + | ||
32 | +## 需求跟踪系统 | ||
33 | +公司需求跟踪系统redmine:`http://redmine.yoho.cn`,需要让组长加各项目需求管理的权限 | ||
34 | + | ||
35 | + | ||
36 | +## 下面以一个需求为例,描述项目搭建调试的过程 | ||
37 | +### 需求描述 | ||
38 | +现有功能:App端—>逛—>搭配:获得这个主题下面的10篇文章。 | ||
39 | +参照此功能,其他都一样,只是将后台返回的文章 换成 星潮教室 主题里面的文章。 | ||
40 | + | ||
41 | +### 找到现有功能App发出的URL地址: | ||
42 | +安装fiddler4setup.exe工具(用于监控手机APP实际请求的URL,报文头,返回结果等信息), | ||
43 | +`注意生产环境YOHOAPP的Android版本是https请求的,看不到URL,需要把手机的yohoApp请app开发人员搞成测试环境的才可以的`安装好之后需要如下设置: | ||
44 | +`Tools-->Fiddle Options-->Connections-->Allow remote computers to connect 并设置Fiddler listens on port:8888 ` | ||
45 | +`手机连接到wifi:YOHO-AP-->并作代理设置-->服务器:本机ID-->端口8888` | ||
46 | +这样在手机yohoApp中的操作,就可以在Fiddler中看到请求的所有信息了. | ||
47 | + | ||
48 | +### 根据App发出的URL地址,找到gateway接口和后台服务接口 | ||
49 | +找到上面Fiddler中记录的请求的URL为:`http://testservice.yoho.cn:28077/guang/api/v2/article/getList?app_version=4.1.0....其他参数`在gateway项目中找到对应的Controller, | ||
50 | +根据需求在此Controller中新建一个接口。 | ||
51 | +根据gateway中Controller中调用服务service.call()的地址CATEGORY_LOAD_URL = "guang.getList"找到服务项目sns中的restapi接口,最终就可以找Service,Dao了: | ||
52 | + | ||
53 | +### 根据需求建立文章标签表article_tags的Dao文件(有可能有的需求不需要) | ||
54 | +利用《mybatis_generator》工具,根据连接的数据库信息,创建对应表的DO,IDAO,Mapper文件,修改工具中《generatorConfig.xml》即可。 | ||
55 | +注意要将最后生成的IDao文件,修改成符合公司编码规范的文件名“IArticleDAO”,并将文件放到对应项目的合适路径中 | ||
56 | +PS:如果要新增加DAO的接口,接口名称中不用带表名,如以ID查询article,直接编写selectById,不用selectArticleById,因为公司要求,一个DAO直接操作一个表。 | ||
57 | +最后根据业务需求编写SNS项目中的Service接口,restApi接口,gateway项目中的编写对外暴露的Controller API. | ||
58 | + | ||
59 | + | ||
60 | +## 调试本机SNS项目 | ||
61 | +### 安装并启动zookeeper | ||
62 | +在本机环境中安装zookeeper,只需要将下载的安装包解压,创建一个默认的配置文件即可(依据.\conf\zoo_sample.cfg,创建一个zoo.cfg即可),启动zookeeper(.\bin\zkServer.cmd) | ||
63 | + | ||
64 | +### 安装PostMan工具 | ||
65 | +Postman是一款功能强大的网页调试与发送网页HTTP请求的Chrome插件,用于模拟我们SNS本机项目的rest请求。 | ||
66 | +在Chrome中的网上应用店中(需要先翻墙)搜索postman,并完成安装。 | ||
67 | +注意这里有一个坑,一定要保证Chrome的版本是比较高的(最好最新),不然postman启动好了之后,不能正常启动。 | ||
68 | + | ||
69 | +### 开始调试SNS项目 | ||
70 | +先保证本机环境的zookeeper已经启动 | ||
71 | +在IDEA中,以调试的方式启动SNS项目,并在合适的地方打断点 | ||
72 | +再打开postman,以post方式请求,请求Body中选择 raw JSON(application/json),并在JSON对象的输入框中输入请求的JSON格式的参数。 | ||
73 | +Rest请求一切准备完毕,就可以点击最左边的Send按钮了。 | ||
74 | +最后就可以看到在IDEA中,已经出现调试界面,做业务方面的代码调试即可。 | ||
75 | +由于这个需求中新编写了IDAO,一般而言项目调试在请求到Dao的时候,会报一个`Table *** 不存在的错误`, | ||
76 | +这个时候需要在`yoho-sns\web\src\main\resources\databases.yml`和`yoho-sns\web\src\main\webapp\META-INF\autoconf\databases.yml`中对应的数据库中增加上对应的IDAO接口,切记都要修改,不然发布到DEV等环境中,就挂了。 | ||
77 | +如果项目能够正常的调试完成,接口返回结果,在postman中是可以看到返回结果的 | ||
78 | +PS:如果自己调试的项目所引用的Maven包有更新,需要新拉取Respository,再IDEA中,项目右键Maven—》Reimport | ||
79 | +PS:可能各个项目的zookeeper的配置不一样,需要保证调用本机的zookeeper的配置文件,都修改正确。 配置一般在`config.properties`文件中。 | ||
80 | + | ||
81 | + | ||
82 | +## 调试本机gateway项目 | ||
83 | +Gateway中的Controller接口编写完成之后,启动gateway项目。 | ||
84 | +启动postman(浏览器直接URL请求也可以),书写正确的请求URL(带参数),以get方式提交请求,并观察返回结果。 | ||
85 | +PS这里有一个坑,可能是由于模拟app发送的请求,并且框架做了拦截,导致请求到不了Controller,后台在拦截器代码中回报[500 数据验证错误],这个需求在请求URL中增加debug标示:&debug=XYZ, | ||
86 | + | ||
87 | + | ||
88 | +## 提交自己编写的代码 | ||
89 | +本机环境接口验证完成之后,千万不要忘记提交代码到Git,注意先提交本地,在推送到服务器。 | ||
90 | +注意提交之前先拉取,避免不可见的冲突。 | ||
91 | +PS:不推荐很长时间一次性提交太多的代码,尽量将自己的代码以完整体量方式多次提交,避免很多天之后一次性提交过多的代码,这样可以尽量小的避免冲突的发生,也可以让领导看到自己的工作量,但是不能提交不完整不能编译的代码。 | ||
92 | + | ||
93 | + | ||
94 | +## 按照规范要求,在yoho_Document中提交接口规范文档,gateway接口 | ||
95 | + | ||
96 | + | ||
97 | +## DEV环境联调 | ||
98 | +### 自己4030代码提交后,合并分支的过程: 0430 和 合并到dev | ||
99 | +1:打开0430分支,拉取一下 | ||
100 | +2:打开dev分支,拉取一下 | ||
101 | +3:确保目前打开的分支是dev分支,右键0430分支,合并到当前分支,OK 完成。 | ||
102 | +4:不要相信DEV分支,不要相信DEV分支,删除重搞!!!!!! | ||
103 | + | ||
104 | +### 将0430合并后的DEV接口发布到205DEV开发环境 | ||
105 | +1:SSH到192.168.102.220机器 dev/密码问组长 | ||
106 | +2:进入目录并运行程序 /home/dev/opps/deploy/ ./run.sh | ||
107 | + 根据不同项目的代号,进行部署更新,如:15/1 | ||
108 | + 有可能会发布不成功,原因是编译失败,一般原因是git自动编译文件问题。发布成功之后,205机器的对应项目.ZIP文件,日期肯定是更新的。 | ||
109 | +3:进入192.168.102.205机器 root/密码问组长,进行接口地址的更新 | ||
110 | + 1)method方式: /home/nginx/conf/redirect.lua 增加新增加的接口 | ||
111 | + 2)URL方式: /home/nginx/conf/nginx.conf 后面没记住,反正guang的接口都是可以的 | ||
112 | +4:加完之后,进入 /home/nginx/sbin/nginx -s reload,这里没太懂 | ||
113 | + | ||
114 | +### 验证205DEV开发环境的接口: DEV | ||
115 | +1:调用gateway:method方式,需要配置redirect.lua | ||
116 | + (如:sns以前可用)http://devapi.yoho.cn:58078/?method=web.favorite.product&app_version=3.8.2&client_type=android&os_version=yohobuy%3Ah5&screen_size=720x1280&v=7&uid=3407014&limit=10&debug=XYZ | ||
117 | +1:调用gateway:非method方式,需要配置nginx | ||
118 | + (如:sns新开发可用)http://devservice.yoho.cn:58077/guang/api/v2/article/getStarClassroomArticleList?app_version=4.1.0&page=1&debug=XYZ | ||
119 | + (如:sns以前可用)http://devservice.yoho.cn:58077/guang/api/v2/article/getList?app_version=4.1.0.1603120001&client_secret=0955a436492e71767d4b9a825a367799&client_type=iphone&gender=2%2C3&limit=20&os_version=9.2.1&page=1&screen_size=320x568&sort_id=0&udid=258e608815a77ba2f9094da936f896ef4fd65721&uid=8039983&v=7&yh_channel=2 | ||
120 | + (如:resource可用)http://devservice.yoho.cn:58077/operations/api/v5/resource/get?content_code=b38b9c4f1c76f89533e9214629b458e4&debug=XYZ | ||
121 | +2:内在地址 | ||
122 | + (Get方式)http://192.168.102.205:8080/gateway/guang/api/v2/article/getList?app_version=4.1.0.1603120001&client_secret=0955a436492e71767d4b9a825a367799&client_type=iphone&gender=2%2C3&limit=20&os_version=9.2.1&page=1&screen_size=320x568&sort_id=0&udid=258e608815a77ba2f9094da936f896ef4fd65721&uid=8039983&v=7&yh_channel=2 | ||
123 | + (Post方式)http://192.168.102.205:8082/sns/ArticleRest/getList | ||
124 | + | ||
125 | +### 如果发现问题,通过如下方式排查 | ||
126 | +1:看JAR包中的文件是否最新的: | ||
127 | + /home/dev/yoho-gateway/yoho-gateway.zip(./deploy是解压之后的目录) 和 /home/dev/yoho-gateway/deploy/gateway-war/WEB-INF/lib/yoho-gateway-service-1.0.0-SNAPSHOT.jar | ||
128 | + 看class文件,是否和实际版本一样的。 | ||
129 | +2:查看日志啊啊啊啊啊 | ||
130 | + /Data/logs/gateway/warn-log.log 和 /Data/logs/sns/debug.log和warn.log | ||
131 | + PS:logger.debug这种不打印日志,logger.info是打印日志的,这种日志在《debug-log.log》文件中,如果有异常错误在《warn.log》文件中。 | ||
132 | + | ||
133 | + | ||
134 | +## 灰度环境中验证接口(还未开始,带完成后继续完善 ) | ||
135 | + | ||
136 | + |
-
Please register or login to post a comment