--- title: Eatgether 網站分析 tags: Analysis description: Eatgether 網站分析 --- # Eatgether 網站分析 ## 1. 網站想法 * **UI/UX 方面** * 開啟邀約詳細內容是以開新分頁的方式,用戶體驗度較差 * **使用上問題** * Iphone11 版本14.0 Web板登入異常(無法登入) * 聊天室功能無法使用 * **技術部分** * 驗證碼可以一直取得,有鎖定時間內最大次數,取得過的每組都能使用一次 * 個人想法 >> 可以於/v3/members/authenticate 增加已達上限次數的說明及秒數 * login頁面中關於國家的取得採用free source的 ip2c.org * 個人想法 >> 可以將此部分列入後端進行處理,若該網站服務crash,則可以由後端設定另外幾組預備的服務進行使用 ## 2. Golang開發問題情況 * **案例一** * 問題: * 面對同一時間,大量的訂單請求,前公司php版本移植Go的程式,並無法有效處理需求 * 解決方案: * 以grpc建立一套訂單微服務系統,消化前公司遇到的情況 並且將訂單紀錄拆分,資料紀錄改為批次消化處理 * 優勢: * 解決系統使用高峰潮,造成玩家訂單的阻塞情形進行改善 * 而後延伸將訂單紀錄系統進行了佇列設計NSQ(批次消化的改良) * **案例二** * 問題: * Go,撰寫Router路由時(因規則有定coding style),故擁有一致性 想製作一個dependency injection的註冊器 * 解決方案: * 針對gin進行了method of receiver的注入,並保留其彈性設計 而後開發的工程師,只需撰寫新的method 就會根據method名稱將大駝峰改為下底線的路由名稱 * 優勢: * 開發上,由於MethodName具有Coding規範,路由名稱也相對的規範完畢 * github: * https://github.com/z9905080/gin-di-router * **案例三** * 問題: * Websocket服務 * 使用 [olahol/melody](https://github.com/olahol/melody) 框架時,遇到在大量broadcast時,如果自行蒐集玩家連線 有機會造成記憶體洩漏(memory leak),session pointer無法被釋放 * 解決方案: * 將pub/sub模式導入至fork專案 [z9905080/melody](https://github.com/z9905080/melody) 解決了hub大量消息廣播時會阻塞的問題,也不需自行蒐集user session * 優勢: * 確保client在disconnect時,資源會被完全釋放 * github: * https://github.com/z9905080/melody * **案例四** * 問題 * 資料庫想由Mysql轉移至MongoDB * 解決方案: * 設計出Domain Drive Design的api框架 * 保留其MVC的特性,將所有資料層封裝 * 可隨時透過更換instance的方式進行engine替換 * 優勢: * 系統移植方便,不必重造輪子 * github: * https://github.com/z9905080/dddframework
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up