2025年4月14日 星期一

20250414

才發現上班第一天, 我挑的日期有點猛, 民國114年4月14日第一天上班

超詭異諧音XDD, 今天填一堆表的時候發現

---

總經理是在業界很有經驗的人, 今天他分享一個我覺得很猛

他每天4:30起床, 每天跑10公里

真是一個成功人士的模板

我想稍微學習一下

---

職位-資深技術經理

本職位之工作目標

1 管理多個項目的執行, 確保按時交付高質量的軟體解決方案, 監督項目進度, 風險和資源分配, 以確保項目達到預期結果

2 確保軟體開發的進度達成率, 變更控制率, 缺陷修復率, 客戶滿意度等指標

3 可作為專案owner, 與團隊成員合作, 規劃專案開發與架構, 並統合包含開發人員, 測試人員和產品經理, 確保項目按計畫執行

4 與其他部門的高層管理進行密切合作, 確保技術解決方案滿足跨部門的需求

5 鼓勵團隊探索新的技術領域或市場機會

6 關注技術的最新趨勢, 確保公司技術在行業中保持領先


VFP

確保技術解決方案為組織和客戶帶來實際價值, 關注技術投資的回報, 確保技術決策與業務目標相關聯

確保軟件解決方案具有卓越的性能, 能夠應對高負載和複雜場景, 優化系統性能, 確保項目能夠達到高效率和低延遲


年度重點關鍵KPI(key performance indicators)

1 團隊工作完成度100%(AzureDevops Effort120 per week)

2 分派工作按時完成度:100%

3 負責主導專案數: 3

4 文件完成度: 100%

5 主管交辦事項完成度: 100%

6 公司管理配合事項完成度: 100%

7 出缺勤正常率 100%

(按時上班天數+符合規定請假天數)/ 正常上班日

---

稍微打一下工作要求, 加深一下印象

今天稍微了解作的項目內容

覺得還是很有發揮空間

主要有機會做數據中心, 以及AI應用

這兩方面都是我還算蠻感興趣的主題

目前相關進修資源也找到

再看看什麼時候要進場做學習

---

把讀書會也生出文黨

希望能找到想努力的夥伴

app.thoth.tw/post/bUNjrpOE9w76SU6dVuw9

---


2025年4月12日 星期六

進修6個月後, 找到工作了

這次找工作有一些感想

我是覺得, 邊準備邊找還是有點差勁的方式

這等同我前面幾家會有機會被直接浪費掉

但是面試會問的問題, 真的涵蓋的太廣, 要每個都準備熟悉, 

(突然想到一個靈感, 寫一個網頁來隨機出題, 然後自己考自己, 或許寫成app)

大約準備上, 是可以看黑馬程序員出的java面試, 幾乎都有涵蓋到

這次考的到最後, 我大概還有兩個方向的比較沒準備, 多執行續, 併發,以及JVM底層相關

至於spring boot或spring 的底層沒遇過考到的

leetcode有考簡單的大約兩家, 沒寫出來

另外可能寫一個sprin data JPA的應用專案, 可能還需要再弄一個出來要有多對多處理

------------------------------------------------------------

然後~其實邊準備還是會覺得有兩方面有缺, 一方面是交友生活圈,

另外一方面是伴侶, 我因為剛分手這部分, 除了情感上有需要支持, 生理需求也是一個要解決的部分

特別是年紀上, 其實已經到37, 差不多該成家就是

現在要重新開始找伴侶, 只能說不能all in在工作上了

我心情上還是覺得, 寧可要找到好的合適的, 不要為了年紀硬湊在一起

畢竟在一起, 分開, 都是一種時間上的消耗

但是~~我還是想主力放在工作或進修相關, 我還是比較愛錢

--------------------------------------------------------------

這次從去年借了160萬, 買美債和反指數, 這中間陸續操作到今年整波下來

基準上賺23萬去, 大概把我進修時間生活費都賺回來, 真爽

這下股市歷練算是完整, 漲的時候賺錢, 跌的時候賺錢

還記得找到自己的一套方式後, 我就豪氣地跟我弟說, 我這輩子都不會缺錢

回顧前四年, 每年都賺錢, 特別是後面兩年, 一個十幾萬, 一個二十幾萬, 今年也二十幾萬

這樣連續五年都是正向

抓到跌的時機, 簡單說就是泡沫很多, 要準備破的時候

稍微準的是巴菲特的現金持有水位, 這部分我是看掃地僧utube有的概念

另外美債殖利率升到歷史高點, 也是一個警訊, 表示美國升息來抑制泡沫產生的通膨

這次還有一個情況就是, 如果金融危機發生美債還漲不上去, 就是有問題, 要早點離開

是有可能信用危機, 或是陷入停滯型通膨, 衰退

----------------------------------------------------------------

目前進修, 比較針對工作上, 會練些設計模式, clean code, 補充一些書本知識

然後試著手寫框架來看看, 現在先全力做這部分, 等到三個月穩定下來

再重新開始個人作品的部分

---------------------------------------------------------------

社交上, 目前計畫

1 參加健身房課程-保持一下健康

2 組讀書會

3 周遊列國小排 

4 找一下比較能社交類型的英文團課

5 音樂相關, 可能找唱歌局, 或是揪唱歌之類, 未定

6 拍照, 攝影活動, 外拍活動

前面三個差不多可以同時先做

後面等工作三個月穩定再說

這個到底能不能讓我在找到老婆的路上更順利一點, 可能要三個月評估調整一下

就是說後面興趣的取向可能可以嘗試, 不過主體還是想熬技術這部分

2024年10月31日 星期四

invalid packging for parent POM com.xxxxxx:1.0SNAPSHOT must be "pom" but is "jar"

 出現在專案上面冒紅線, 並有紅字invalid packing......



在本專案的原因是, 這裡有母子專案

有在子專案pom檔中聲明parent

<parent>
<artifactId>heima-leadnews-test</artifactId>
<groupId>com.heima</groupId>
<version>1.0-SNAPSHOT</version>
</parent>

但是母專案pom檔中漏掉

<modules>
<module>freemarker-demo</module>
<module>minio-demo</module>
</modules>

補上後刷新maven就解決了

2024年10月28日 星期一

docker安裝nacos

 使用docker拉取鏡像

        docker pull nacos/nacos-server:1.2.0

創建容器

docker run --env MODE=standalone --name nacos --restart=always -d -p 8848:8848 nacos/nacos-server:1.2.0


MODE=standalone 單機版

--restart=always 開機啟動

-p 8848:8848 映射端口

-d 創建一個守護式容器在後台運行


查看容器
docker images 

查看日誌
docker logs -f 0506d2631165

跳出
ctrl+c



2024年10月25日 星期五

2024年6月26日 星期三

事務優化及一種事務失效的改正

內容來自學成在線的媒資管理事務優化

目前的邏輯是方法uploadFile中包含兩個動作

1 將文件上傳到minio

2 將文件信息存儲到資料庫

原本是整個方法上加@transactional

但是1的這部分, 你並不能保證上傳的時間會有多長

以至於說整個方法如果綁transactional會導致占用資料庫資源

現在有個想法, 打算只在2的步驟上加入transactional

然後在2的程式碼中加入會報錯的程式碼, 看看是否會回滾



部分程式碼



  //將文件上傳到minio
  boolean result = addMediaFilesToMinIO(localFilePath, mimeType, bucket_files, objectName);
  if(!result)XueChengPlusException.cast("上傳文件失敗");
  //文件大小
  uploadFileParamsDto.setFileSize(file.length());
  //將文件信息存儲到數據庫
  MediaFiles mediaFiles = addMediaFilesToDb(companyId, fileMd5, uploadFileParamsDto, bucket_files, objectName);
  if(mediaFiles==null)XueChengPlusException.cast("上傳後保存文件信息失敗");

方法片段



@Transactional
 public MediaFiles addMediaFilesToDb(Long companyId, String fileMd5, UploadFileParamsDto uploadFileParamsDto, String bucket, String objectName) {
  //從數據庫查詢文件
  MediaFiles mediaFiles = mediaFilesMapper.selectById(fileMd5);
  if (mediaFiles == null) {
   mediaFiles = new MediaFiles();
   //拷貝基本信息
   BeanUtils.copyProperties(uploadFileParamsDto, mediaFiles);
   mediaFiles.setId(fileMd5);
   mediaFiles.setFileId(fileMd5);
   mediaFiles.setCompanyId(companyId);
   mediaFiles.setUrl("/" + bucket + "/" + objectName);
   mediaFiles.setBucket(bucket);
   mediaFiles.setFilePath(objectName);
   mediaFiles.setCreateDate(LocalDateTime.now());
   mediaFiles.setAuditStatus("002003");
   mediaFiles.setStatus("1");
   //保存文件信息到文件表
   int insert = mediaFilesMapper.insert(mediaFiles);
   int a=1/0;
   if (insert <=0) {
    log.error("保存文件信息到數據庫失敗,{}", mediaFiles.toString());
    XueChengPlusException.cast("保存文件信息失敗");
   }
   log.debug("保存文件信息到數據庫成功,{}", mediaFiles.toString());

  }
  return mediaFiles;

 }

這時發現雖然會報錯誤, 但是事務沒有回滾, 事務失效




簡單敘述目前狀況

就是controller調用service時, 第一層是調代理對象的方法

但是方法中再調用其他方法, 則會是原對象方法, 如下圖

這裡有個技巧, 可以在方法調service中的方法前加上this.用debug斷點去看this就會發現並非proxy

而這不滿足事務的兩個要求

1 需要是代理對象調方法

2 在調的方法上加@Transactional註解

因為要求沒滿足, 事務沒法生效

課程提供一個解法

就是將當前類再注入進來, 使其變成代理對象

步驟

1 注入本service作為代理對象


@Autowired
MediaFileService currentProxy;

2 將需要事務管理的方法提成接口


public MediaFiles addMediaFilesToDb(Long companyId,String fileMd5,UploadFileParamsDto uploadFileParamsDto,String bucket,String objectName);

3 調用代理對象call方法


//寫入文件表
MediaFiles mediaFiles = currentProxy.addMediaFilesToDb(companyId, fileMd5, uploadFileParamsDto, bucket_files, objectName);



2024年6月7日 星期五

課程了解

尚品甄選

有包含架Harbor操作


udemy上搜尋large scale system可以找到kubernetes架構的專案教學


感覺可以看一下

黑馬頭條

裡面有spring cloud elasticSearch redis docker kafka


瑞吉外賣

有示範數據庫讀寫分離 linux安裝教學


閃聚支付

有示範分庫分表Sharding-JDBC 對交易服務進行分庫分表 分片鍵 插入數據根據商戶id決定要入哪個庫 短信驗證使用騰訊雲 上傳資質證件使用七牛雲


蒼窮外賣

有用到websocket

量身訂做建議(37 歲,6 年 Java 後端工程師)from chatgpt

🎯 量身訂做建議(37 歲,6 年 Java 後端工程師) 1️⃣ 先看你的條件 年齡 37 屬於「中高年資」工程師,履歷上的 深度 / 系統設計能力 會比「語言多寡」更重要。 6 年 Java 後端 代表你在 Spring Boot、資料庫、API 設計...