原创 設計模式 策略模式 業務代碼應用

大家感覺學習設計模式很抽象很難,這裏提供一種學習方法。 對於代碼民工來說大家寫什麼代碼最多?業務代碼。業務代碼什麼寫的最多?Service,其他的dal層或者controller基本都是藉助spring的Copy。業務代碼會有這樣一

原创 架構 實踐 架構迭代過程

一個公司肯定有一個文檔是應該必須從一開始就保留的,這就是公司技術架構迭代文檔。 一.業務架構 二.部署架構 三.技術架構 詳情見附件 鏈接:https://pan.baidu.com/s/1K1z8EdnltZsTehkQSyv

原创 SOA 服務化 非冪等操作 處理方法

SOA 服務化 非冪等操作 處理方法非冪等操作場景添加,刪除操作前端操作按鈕未遮罩造成重複提交HTTP中間件重試機製造成重複提交消息中間件重試機製造成重複提交服務調用服務失敗重試機制解決方法添加,刪除操作後前端操作按鈕遮罩或者跳轉頁面

原创 代碼規範 controller service

swagger爲接口文檔   接口參數必須帶說明   接口命名參考http規範 根據id得到唯一信息建議不用path,用? 查詢多個參數建議封裝對象,使用post 放在body裏面 ,requestBody 接口規則 packag

原创 Open Api規範

很牛的開放api規範,參考一下 https://github.com/OAI/OpenAPI-Specification/blob/master/versions/3.0.0.md

原创 關係數據庫 MySQL 設計

三範式   表設計 1.什麼時候該把數據copy一份到新創建的表?比如採購單派單後變成供應商的生產訂單,那地址是通過關係使用採購單的,還是重新創建一個地址表,從採購表copy一份? 1)通過關係找採購單的地址,採購單地址改了生產訂單也改了

原创 java jvm 編譯期

編譯期過程源代碼-》字節碼-》機器指令優化字節碼轉機器指令時,會做優化機器指令執行時,會做優化

原创 java 代碼 規範 分層模塊

如圖 層 說明 web層 1.Controller裏不可以有業務代碼,可以有簡單參數判斷,返回值轉型2.返回對象儘量爲VO3.PO到VO轉換 函數名爲對應controller 緩存service層 1.緩存每次查詢的

原创 大數據 DTS Canal

1.DTS在整體架構中的位置(數據層) 2.DTS作用 3.Canal僞裝成Mysql的slave,通過讀取整合binlog的日誌,輸出對數據庫的修改內容。 4.安裝服務端 4.1)下載版本目前穩定版本爲1.0.24 4.2)解壓縮。

原创 關係數據庫 MySQL 使用

數據類型 float、double是浮點數,decimal是定點數,浮點數會丟失精度。 事務級別 SELECT @@tx_isolation。(repeatable read:重讀讀取:可以解決髒讀 和 不可重複讀 ---mysql默認的

原创 架構 理論 軟件過程 錯誤認識 總結

架構在軟件過程中的什麼時候出現1.1最常見出現的概要設計之前,偏技術架構。1.2在做需求時候也會寫業務架構。1.3在最前面出方案的時候會出現架構相關內容。架構在軟件中到底作用是什麼?很多人說架構是爲解耦合,擴展性,強壯性,魯棒性,但是其實

原创 Java 併發 線程安全 ThreadLocal

使用 private static ThreadLocal variable = new ThreadLocal() { public String initialValue() { retur

原创 java 代碼 規範 函數體

怎麼寫函數體? 原則 提早返回 分離可靠與不可靠代碼 注意線程安全 縮小異常抓取範圍 儘量使用工具類common,guava 函數要符合單一職責,如果一個函數代碼太多可再抽出一個私有函數 要寫註釋 關鍵點要打日誌 怎麼寫業務代碼 要

原创 大數據 搜索 ES 一

對應關係 Relational DB -> Databases -> Tables -> Rows -> Columns Elasticsearch -> Indices -> Types -> Documents -> Fields 區

原创 java 規範 日誌

什麼時候打印日誌1.檢查出錯誤時,要返回給前端錯誤信息。在返回錯誤信息要打日誌。//參數判斷 if (saveAgentInfoParam == null || saveAgentInfoParam.getAgentInfoDTO() =