Java Web 工作技巧總結 16.10

摘要: 原創出處:www.bysocket.com 泥瓦匠BYSocket 希望轉載,保留摘要,謝謝!

在你成爲領導者以前,成功只同自己的成長有關。
當你成爲領導者以後,成功都同別人的成長有關。

1.聊聊併發插入&代碼

場景:業務中有些ERP第三方調用該接口,導致多組同樣的數據包會調用同一個插入接口。一般都是XXXParamList,一個批量插入的接口。

首先聊聊批量插入的代碼,一般都會這樣搞,僞代碼

for(XXXParam xxx : XXXParamList)
validationXXXParam(xxx);
XXXDao.batchInsert(XXXParamList)

a.前端 – 灰色按鈕
就是提交的時候控制,不能重複條form或者ajax。
b.後端 – 分佈式鎖
分佈式鎖的資料上次分享過:傳送門 ->
http://www.cnblogs.com/PurpleDream/p/5559352.html
c.數據庫 – UK
在數據庫建表中設計時,設置 SQL UNIQUE 約束:傳送門->
http://www.w3school.com.cn/sql/sql_unique.asp

2.繼續說說數據庫字段設計

技巧1 關係表 -> JSON Text字段
場景:比如商品詳情頁面,白色Apple,金色Apple…對應的圖片顯示。這樣針對goods寸一條記錄,記錄着有個字段是 sku_image:
goodsid {[“白色”:“url”],[“金色”:“url”]}

而且Text字段是不對的。應該約定好大小,比如 VARCHAR(1000)
爲啥呢?其實每次get都是流量,轉換成流量方向想,那就是帶寬,大字段如果在高流量高併發的情況下,容易造成查詢量太大,會造成網關超過帶寬。

有時候登錄線上數據庫PM後臺,忘記了某表的字段,但只知道某表。我是這樣幹去取代 DESC table_name 或 SHOW CREATE TABLE table_name,SQL 很簡單
SELECT * FROM XXX WHERE 1 LIMIT 1;
直接可以看到列名,修改下 WHERE 裏面的條件就可以查詢你想的查詢的。

3.grep 命令

一般日誌用過日誌中心查詢,但是更多情況下,單機下都會跑到服務器上直接找到自己想要的日誌相關。
我是這樣的,找到某異常XXXException
cat xxx.log grep ‘XXXException’
然後顯示該行上下幾行內容,使用 -C 參數輸出匹配行的前後各4行
cat xxx.log grep ‘XXXException’ -C 4

grep 小命令 詳解:傳送門
https://linux.cn/article-5453-1.html

4.Maven 骨架工程

來到公司,發現小項目一個接一個地上。說罷就想起前東家的骨架工程。
很簡單的就能生成 HelloWorld 項目,XXXarchetype 是我開發的估計工程依賴。生成骨架項目關鍵代碼:
mvn archetype:generate -DgroupId=com.TT -DartifactId=helloworld -DarchetypeGroupId=com.TT -DarchetypeArtifactId=com.TT.XXXarchetype -DarchetypeVersion=0.0.1-SNAPSHOT -DinteractiveMode=false

詳細教程,傳送門->
http://www.voidcn.com/blog/aosica321/article/p-5764716.html

5.DO BO 互轉工具

一般這種都是代碼生成器,兼Java配置項。作用於兩種業務model的互轉:
mapstruct(效率最高)、orika(最快)、dozer(用的多)
詳細教程,傳送門
http://www.tianshouzhi.com/api/tutorials/mapstruct
http://blog.csdn.net/a258831020/article/details/48247187

如以上文章或鏈接對你有幫助的話,別忘了在文章結尾處評論哈~ 你也可以點擊頁面右邊“分享”懸浮按鈕哦,讓更多的人閱讀這篇文章。

 
 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章