【會議心得】Hello World Dev Conference 2024

這次的會議 9/11~9/13 為期三天,主題包含 AI, DevOps, Agile, Modern Web…等,完全可以找到自己有興趣的主題去聽,即使沒有興趣,隨便挑間會議室進去都會有點收穫。

紀錄一下這次我有參與的課程

Day1

【五倍學院聯名推薦工作坊】Python 新手股市探險:從資料到視覺化 – 高見龍

安裝環境前先提到了 Jupyter notebook,表示玩票性質可以,真的要寫專案,身為工程師還是要自己架設環境!!

Jupyter notebook 之前是有聽過,但一直都沒去了解,結果 Day3 喬叔的課用到了
比較直接的感受是,小型的專案或是 Demo 使用挺合適的
Jupyter 降低了很多入門的門檻,非常直觀,但大型的可能不是這麼合適,因為都是一個 block 一個 block 在撰寫,修改起來不是特別方便,如果是大型專案大概會瘋掉XD

回到正題,環境安裝

  • python
  • pip install requests (發送 HTTP 請求的lib)
  • python -m venv .venv (建立虛擬環境,.venv可以是任意的名稱)
  • .venv/Scripts/Activate.ps1 (啟動,mac 指令為 source .venv/bin/activate)
  • deactivate (關閉)

可以將環境依賴寫到文件裡隨時復原

  • pip freeze > requirements.txt(先把這個虛擬環境的依賴都寫到文件裡面)
  • pip install -r requirements.txt(復原)

環境準備完就去證交所下載 csv

接著就是使用 pyhton 解析 csv 並安裝 matplotlib 套件畫出 K 線圖

這堂課非常新手友善,之前沒有做過python隔離環境,覺得非常實用

【AppWorks School聯名推薦工作坊】高效工作流:RPA 與 Coding 的應用策略 – 胡哲愷(抽抽)、許芳慈(Beryl Hsu)、陳宣諭(Hsuan Yu)

介紹 RPA(Robotic Process Automation,機器人流程自動化)應用範圍,可應用在重複行政庶務

課程使用 UiPath,使用情境為去求職平台輸入”Java”搜尋職務,將搜尋結果職務名稱與公司名稱存入資料表

  • 打開 UiPath Studio 開始寫腳本
  • 點擊測試

最後課程有提供情境要大家練習如何拆解成步驟,因為要會拆解成步驟才能夠寫腳本
也有在多補充說明可以跟其他的應用程式結合,例如發送Line、Slack等等

這堂課讓我有更多的思考 PRA 於生活或工作的應用

評估驅動開發: 生成式 AI 軟體不確定性的解決方法 – 張文鈿(ihower)

LLM(大語言模型,Large Language Model-based)與傳統 ML 的差異
傳統 ML 會透過不斷重新訓練模型來提升性能跟準確度,生成式 AI 該如何應對呢?

準備資料,讓 AI 執行,將結果與預期的答案進行打分(code-based打分、人工打分、AI 打分),再根據分數修改 prompt

測試的時候除了給 few-shot examples 以外,也要記得給 Edge cases 協助判斷
給的 few-shot examples 越多越能提升性能

這堂課講述了如何將 AI 產出的結果進行評估,對我來說非常的扎實且詳盡

不只是主管 – 那些年技術管理教會我的事 – 沈宏洲(Kyle Shen)

理解主管的管理風格

  • 獨裁型
  • 官僚型
  • 放任型
  • 顧問型

哪種風格都沒有對錯,因應公司文化,所選擇的風格

建立當責的團隊,避免成為喪師敏捷團隊
做自己,不要複製他人風格
坦承、並肩作戰並持續交付

目標清晰 OKR、善用能力 Metrix 與冰山理論

知易行難,還在持續學習的道路上,共勉之了

NestJS 與 gRPC:快速上手指南 – 謝浩哲(HAO)

介紹 gRPC 運作方式

注意事項

  • 欄位序號不得重複
  • 棄用的欄位使用 reserve 修飾字定義

用 ts-proto 套件根據 Protobuf (.proto) 文件自動生成 TypeScript 類型

OMG!! 打心得的時候才發現是 NestJS,不是 Next.js…到底是什麼搞笑的誤會XD

BenchmarkDotNET 科學化 .NET 應用效能調校 – 鮑承佑(老鮑伯)

Microbenchmark / Macrobenchmark / Profiling 的差異
測試效能時並不會把編譯的時間算進去
會測量多次,把差異過大的值排除算標準差跟中位數

支援多語言且可以跟 CI 整合

我很喜歡當時聽眾問的問題,大概如下
聽者:「請問為何貴司會需要用到 Benchmark?」
講者回:「因為做效能調校的話,總要讓客戶知道有改善多少」
因為他面對的是客戶,有效能報表的需求,有必要使用。
而我們平常的工作是否需要使用到,可以思考看看

Day2

使用 LangServe 快速部署 AI – 柯克(Ko Ko)

介紹 RAG(Retrieval-Augmented Generation) 原理,它是一種將檢索(Retrieval)與生成(Generation)相結合的技術

實作使用 LangChain 和 LangServe ,快速打造生成式 AI 的 web API
從將資料丟給 Embedding Model,資料會到向量資料庫,當使用者詢問問題時,也使用同樣的 Embedding Model 將產生的向量與資料庫的做計算(餘弦相似度),再透過另一個資料模型產生回應

課程步調超級無敵快,因為除了概念講解,上機實作,一路到佈署都完成了!!!!
我整個卡在 Python 的 Poetry 套件一直抓不到的狀態課程就結束了XD
感謝隔壁桌的同學 David 試圖拯救我

從 DevOps 到 SRE,從 IaC 到 GitOps – 王偉任 (Weithenn)

Terraform 對公有雲支援比較好
Ansible 對地端支援比較好

課程使用 Red-Had ansible 體驗使用程式概念管理 infra 架構

對 Infra 平常如何作業其實不甚了解,體驗之後覺得原來管理多台 server 可以有如此系統化的方式,算是打開新視野了

Pact 合約測試 – 確保微服務架構溝通的可靠性 – 劉奕為(John Liu)

json 格式,適用任何語言
合約由工具產生,可以整進 CI 做單元測試

模擬外部系統或服務,可以使用 imposter Mocks

感覺用在對外部客戶上比較能體現價值
以公司內部來說,除非大家常改壞談好的介面,才感覺比較有加合約測試的價值,不過常改壞的話可能還是要先究其根本原因了XD

AI模型的理想化和實用性妥協 – 賴志銘(Vincent)

  • Python 負責 AI 模型開發
    • 重構、解決依賴、改非同步
  • C# 應用
    • 資料處理(清洗、過濾、整合)、改非同步

使用 Netron 直觀的展示神經網路的結構,用來調整分析模型

Netron 對我來說是新東西,這堂課知道這個就值了

Shadcn ui ~不再從零開始刻前端元件的生活~ – 王耀輝(Wind Wang)

Headless UI 這些 UI 組件不提供外觀樣式,單純只提供功能
這樣就可以將功能跟樣式完全分開來,增加重複利用性
沒有分開的話,會需要覆蓋樣式的方式來達到同樣的效果

Radix UIShadcn 都是 React 的 Headless UI 組件庫

  • 已包含狀態邏輯
  • Tailwind 添加樣式
  • 所有組件皆有預設樣式
  • 不用安裝整包,複製程式碼貼上就能用

各堂課受益良多,因為講者也有提到MUI,也會有要覆蓋樣式的痛點,因為目前部門是使用MUI
覺得有很多可以跟這位講者請益的地方

Hello Rust, 與AI/Python完美的結合 – 陳昭明(I code so i am)

效能接近 C,保留 Address、Pointer
避免區段錯誤、記憶體洩漏(強大的編譯時期檢查)
跨平台
沒有 GC
Pyo3 crate 可讓 Python 跟 Rust 互相呼叫
Maturin 可以將 Rust 編譯的二進制模組打包成 Python 懂的 wheel 檔案

Day3

走一遭『 寫程式 』以外的軟體開發 – 大型軟體公司的工作日誌 – 劉奕為(John Liu)

coding style 用套件自動化檢查
Sonarqube 可以檢查測試覆蓋率、style check 或是否有 duplicate code 等

code review 看什麼

  • 正確性
  • 安全性
  • 效能
  • 強固
  • 可讀
  • 風格一致

文件何時寫

  • on call SOP
  • 系統架構
  • on boarding guide
  • feature high level design

Scaling The E-Commerce Recommendations System – 黃耀慶(Arthur Huang)

如何找出客戶最有興趣的商品

雙塔模型(User Tower、Item Tower)
將兩個分開來有多種好處
包含如果要尋找女生購買頻率最高的商品,就可以從 User Tower 挑出女性跟商品交互產生 matrix
或是要尋找父親節商品就可以直接從 Item Tower 查找並調整商品權重
另外,還可以將 User Tower 分為線上、Item Tower 分為線下,這樣就可以即時透過用戶的行為改變產出的結果

客戶分析這塊挺有趣的,像是沒點擊不代表沒興趣,可能只是同頁商品中有更感興趣的
也不能都只依照客戶過往資料推客戶感興趣的,還需要對客戶做興趣探索

規模化敏捷的實戰:從六人 Scrum 到五十人跨部門 LeSS – 黃相文(Sam Huang)

講了挺多講者公司從6人到50人的組織調整的心路歷程
包含什麼階段做什麼調整,而調整是因為發現什麼問題
跟書上的 LeSS 不太一樣,重點是找到適合團隊的方式

當 Elasticsearch 搜尋引擎遇上 AI – 吳楨文(喬叔)

這堂課基本上 100% 吻合課程的描述,就是實作將 Elasticsearch 轉成向量資料庫,與 LLM 進行結合使用

難易適中,也是多了一些啟發思考能應用在哪裡

【五倍學院聯名推薦工作坊】Rust 從零開始網頁爬蟲 – 朱章祺(Bucky Chu)

課程內容是使用 Rust 去爬取網站資料,並將資料轉出 JSON

因為前一天第一次認識 Rust,聽起來是效能很好又好入手,就選了這堂課體驗看看
不過我也不知道跟用 C# 寫效能會差異多少就是了,需要再找時間實驗了

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *