实习工作记录
#20200722
修改mailPageListExport和exportOrderSubstitute兩個(gè)controller代碼過(guò)長(zhǎng)的問(wèn)題,提取兩者公共代碼(寫(xiě)excel部分),編寫(xiě)exportExcel的通用方法。粗略統(tǒng)計(jì)web管理端大約十余處導(dǎo)出excel的地方,下一步計(jì)劃編寫(xiě)出ExcelUtils類(lèi),實(shí)現(xiàn)導(dǎo)出等涉及excel操作的常用方法。
#20200724
1、集合初始化時(shí),指定集合初始值大小,防止多次擴(kuò)容,提高性能。
2、重新組織Map<String, SysPermissionDataRule> getRuleMap()方法的邏輯
3、SimpleDateFormat 是線程不安全的類(lèi),使用DateTimeFormatter替代,并使用局部變量。
學(xué)習(xí)git的用法,然后改SimpleDataFormat
*****************************
#20200727
編寫(xiě)用戶(hù)登錄相關(guān)Controller的測(cè)試用例,MrdsMngLoginControllerTest
問(wèn)題:是否需要啟動(dòng)spring(測(cè)試controller還是測(cè)試service)
#20200728
編寫(xiě)用戶(hù)管理相關(guān)controller的測(cè)試用例類(lèi)MrdsSysUserControllerTest
編寫(xiě)定時(shí)任務(wù)相關(guān)controller的測(cè)試用例類(lèi)QuartzJobControllerTest
#20200729
threadlocal存在輕微的內(nèi)存泄漏
7月總結(jié):
1、修改mailPageListExport和exportOrderSubstitute兩個(gè)controller代碼過(guò)長(zhǎng)的問(wèn)題,提取兩者公共代碼(寫(xiě)excel部分),編寫(xiě)exportExcel的通用方法。
2、集合初始化時(shí),指定集合初始值大小,防止多次擴(kuò)容,提高性能。
3、SimpleDateFormat 是線程不安全的類(lèi),使用DateTimeFormatter替代,并使用局部變量。
4、 編寫(xiě)用戶(hù)登錄相關(guān)Controller的測(cè)試用例,MrdsMngLoginControllerTest
編寫(xiě)用戶(hù)管理相關(guān)controller的測(cè)試用例類(lèi)MrdsSysUserControllerTest
編寫(xiě)定時(shí)任務(wù)相關(guān)controller的測(cè)試用例類(lèi)QuartzJobControllerTest
5、規(guī)范測(cè)試用例命名
6、對(duì)象名.靜態(tài)成員=>類(lèi)名.靜態(tài)成員,threadlocal存在輕微的內(nèi)存泄漏
7、修改了MrdsMngLoginControllerTest測(cè)試類(lèi)
8、使用JMeter對(duì)用戶(hù)管理查詢(xún)controller進(jìn)行壓力測(cè)試。
*****************************
#20200731?
遷移mock服務(wù)從順豐云到華為云
1、clone順豐云上醫(yī)寄通項(xiàng)目的mock包部分,修改包名后push到華為云;
2、在華為云進(jìn)行編譯構(gòu)建和部署,并配置dockerfile生成SVR鏡像;
3、熟悉使用流水線進(jìn)行編譯和部署,為mock服務(wù)的pod配置Ingress;
4、在confluence上編寫(xiě)Mock服務(wù)的接口說(shuō)明和使用說(shuō)明。
(****要寫(xiě)保障什么完成,支持什么完成)
#20200803-20200807
1、修改canal的dockerflie及啟動(dòng)腳本,使其能夠在華為云的k8s集群中正確部署,并完成部署canal server和canal admin的華為云流水線。
2、為canal sever添加登錄驗(yàn)證碼功能,包括前端及后端代碼的編寫(xiě),滿(mǎn)足登錄安全要求。
3、為canal sever配置apollo,完成代碼與配置分離。
#20200811-20200812
canal項(xiàng)目經(jīng)dependency-check檢測(cè),存在CWE-79 CWE-22 CWE-78 CWE-732 CWE-94 CWE-502等高風(fēng)險(xiǎn)問(wèn)題,原因是部分依賴(lài)包的版本過(guò)低,升級(jí)commons-collections從3.2到3.2.2,,升級(jí)commons-beanutils從1.8.2到1.9.4,統(tǒng)一logback-core版本為1.2.3,問(wèn)題得以解決。
#20200813
修改canal-server對(duì)canal-admin的訪問(wèn),(因?yàn)橹凹恿蓑?yàn)證碼,在攔截器上把server的請(qǐng)求映射到了其他的controller)
基于華為云api(KeystoneCreateUserTokenByPassword listProjectsV3 GetAllRepositoryByProjectId2)獲取所有項(xiàng)目下的所有maven倉(cāng)庫(kù)(300+項(xiàng)目),結(jié)合shell腳本對(duì)代碼倉(cāng)庫(kù)git clone。
#20200814
測(cè)試加密解耦組件豐市中的應(yīng)用
編寫(xiě)shell腳本,遞歸遍歷單項(xiàng)目下的所有目錄,返回所有包含<parent>的 pom.xml文件的全限定名
#20200817-20200818
編寫(xiě)shell腳本遍歷分部項(xiàng)目代碼匯總目錄,實(shí)現(xiàn)對(duì)每個(gè)分部項(xiàng)目代碼進(jìn)行maven依賴(lài)分析,并統(tǒng)計(jì)安全工具與分部項(xiàng)目依賴(lài)沖突情況以及配置中心、加密機(jī)、Jasypt、nacos等依賴(lài)包在分部代碼中的使用情況。
#20200819
1、修改shell腳本,原本是遍歷根目錄,若根目錄不存在則遞歸遍歷所有目錄的pom文件,實(shí)現(xiàn)遍歷存在pom.xml的最淺層目錄的所有pom文件,提高效率。
2、統(tǒng)計(jì)分析分部項(xiàng)目代碼中aes256加密算法依賴(lài)的jar包
#20200820
分部項(xiàng)目50多個(gè)代碼倉(cāng)庫(kù)存在master分支依賴(lài)分析出錯(cuò)的情況,編寫(xiě)shell腳本遍歷出錯(cuò)代碼倉(cāng)庫(kù)的所有分支,記錄能夠正確打包的分支,之后選擇切換到正確分支繼而完成對(duì)出錯(cuò)代碼倉(cāng)庫(kù)進(jìn)行依賴(lài)分析。
加解密很耗時(shí)所以用了加密池
?
?
實(shí)習(xí)工作總結(jié):
?
1、代碼規(guī)范化與漏洞修復(fù)
對(duì)“醫(yī)寄通”存在的漏洞及代碼不規(guī)范問(wèn)題,根據(jù)Sonar和阿里規(guī)范插件檢測(cè)出的結(jié)果,進(jìn)行修改,修改漏洞X處,代碼不規(guī)范問(wèn)題X處。
(1)編寫(xiě)ExcelUtils類(lèi),提取公共代碼,解決6處方法代碼重復(fù)和代碼過(guò)長(zhǎng)的問(wèn)題;
(2)指定集合類(lèi)的初始值大小,防止多次擴(kuò)容,提高性能,共10余處;
(3)對(duì)SimpleDateFormat線程不安全問(wèn)題的幾種解決方案進(jìn)行性能分析,局部變量方案:每次使用都new一個(gè)對(duì)象會(huì)導(dǎo)致在內(nèi)存中駐留大量的對(duì)象造成內(nèi)存浪費(fèi);threadlocal方案:每個(gè)線程持有一個(gè)SimpleDateFormat對(duì)象,remove的使用時(shí)間難以確定,如果使用時(shí)機(jī)不當(dāng)可能會(huì)存在輕微的內(nèi)存泄漏問(wèn)題;DateTimeFormatter:jdk1.8新引入的時(shí)間日期類(lèi),是一個(gè)不可變類(lèi),每次調(diào)用會(huì)生成一個(gè)對(duì)象副本。。。,利用jemeter循環(huán)調(diào)用100次,DateTimeFormatter效果與SimpleDateFormat無(wú)明顯差距,建議使用DateTimeFormatter。
2、編寫(xiě)單元測(cè)試和jmeter壓力測(cè)試用例
(1)利用MockMVC和Mockito編寫(xiě)用戶(hù)登錄、用戶(hù)管理、定時(shí)任務(wù)相關(guān)的單元測(cè)試用例,共20余個(gè);
(2)使用JMeter對(duì)用戶(hù)管理查詢(xún)相關(guān)controller進(jìn)行壓力測(cè)試,共4個(gè);
3、從順豐云遷移Mock服務(wù)到華為云
進(jìn)行壓力測(cè)試時(shí),針對(duì)部分服務(wù)不允許進(jìn)行壓測(cè)或需要付費(fèi)等情況,提供相關(guān)服務(wù)的Mock
(1)編寫(xiě)dockerfile,并在華為云進(jìn)行編譯生成SVR鏡像;
(2)將鏡像部署到華為云k8s集群,并為Mock服務(wù)的pod配置Ingress提供外網(wǎng)訪問(wèn)接口
(3)在confluence上編寫(xiě)Mock服務(wù)的接口說(shuō)明和使用說(shuō)明。
4、實(shí)時(shí)數(shù)據(jù)訂閱框架canal的部署與二次開(kāi)發(fā)
(1)編寫(xiě)及修改canal的dockerfile和啟動(dòng)腳本,并解決部署過(guò)程中遇到的日志文件權(quán)限缺失等問(wèn)題,使其能夠在華為云的k8s集群中正確部署,并完成部署canal server和canal admin的華為云流水線。
(2)為canal admin增加登錄驗(yàn)證碼功能,包括前端和后端代碼的編寫(xiě),滿(mǎn)足登錄安全要求。
(3) 為Canal Admin項(xiàng)目配置Apollo,完成代碼與配置分離;
(4)canal項(xiàng)目經(jīng)dependency-check檢測(cè),存在CWE-79 CWE-22 CWE-78 CWE-732 CWE-94 CWE-502等高風(fēng)險(xiǎn)問(wèn)題,原因是部分依賴(lài)包的版本過(guò)低,升級(jí)commons-collections從3.2到3.2.2,升級(jí)commons-beanutils從1.8.2到1.9.4,統(tǒng)一logback-core版本為1.2.3,問(wèn)題得以解決。
5、Shell腳本工具-分析統(tǒng)計(jì)Maven依賴(lài)沖突
(1)基于華為云api編寫(xiě)java工具類(lèi)獲取所有項(xiàng)目下的所有maven倉(cāng)庫(kù)(300+項(xiàng)目),調(diào)用shell腳本對(duì)分部項(xiàng)目代碼倉(cāng)庫(kù)進(jìn)行clone。
(2)編寫(xiě)shell腳本工具并在confluence上分享,遍歷分部項(xiàng)目代碼匯總目錄,實(shí)現(xiàn)對(duì)每個(gè)分部項(xiàng)目代碼進(jìn)行maven依賴(lài)分析,并統(tǒng)計(jì)加密脫敏工具與分部項(xiàng)目依賴(lài)沖突情況以及配置中心、加密機(jī)、Jasypt、nacos等依賴(lài)包在分部項(xiàng)目代碼中的使用情況。
(3)優(yōu)化依賴(lài)分析的shell腳本工具,原本是遍歷根目錄下所有pom.xml文件,若根目錄不存在則遞歸遍歷所有目錄進(jìn)行,實(shí)現(xiàn)遍歷存在pom.xml的最淺層目錄的所有pom文件,大幅提高腳本執(zhí)行效率。
(4)編寫(xiě)shell腳本工具并在confluence上分享,300+分部項(xiàng)目代碼庫(kù)中有50個(gè)左右代碼倉(cāng)庫(kù)存在master分支依賴(lài)分析出錯(cuò)的情況,編寫(xiě)shell腳本工具遍歷出錯(cuò)代碼倉(cāng)庫(kù)的所有分支,記錄能夠正確進(jìn)行maven compile的分支并之后選擇切換到正確分支繼而完成對(duì)出錯(cuò)代碼倉(cāng)庫(kù)的依賴(lài)分析。
?
?
總結(jié)
- 上一篇: 清华新生C++作业难上热搜!大厂猎头表示
- 下一篇: 新来的大神用策略模式把if else给优