[作品] 搭 Drogon Framework 寫個 Web 小遊戲

作者: qrtt1 (有些事,有時候。。。)   2023-02-28 12:53:46
專案位置:
https://github.com/qtysdk/gaas_cpp
各位版友安安,上一次在這裡發文可能是碩班的時候。
中間再也沒機會寫到 C/C++ 相關的東西。
趁著連假,寫了簡單的作品,
主要是以 C++ 搭 Drogon Framework 實作簡單的猜數字。
配合著近期練習的乾淨架構等概念,
還有 Walking Skeleton 與 ATDD/TDD 來實作。
歷程記錄可以看開發日誌的部分:
https://github.com/qtysdk/gaas_cpp/blob/main/notes/README.md
(請忽略我中二的標題)
這個專案開始的動機是要感受一下,在多年未再接觸過 C/C++ 開發的我
能不能在比較現代化的 Tech Stack 下,產生跟學生時代不同的感受。
並且試著去理解,正在用這樣的 Tech Stack 的人會感受的到經歷。
覺得變得友善的部分是 CMake
已經成為多數 Open Source 專案接受的編譯系統。
少數的情況需要自己寫 Find Package 的檔案。
但我 CMake 的技能還沒辦法把它整理得簡單,目前專案內的 CMakeLists.txt
不少重複的設定,之後再找時間繼續處理。
依然有點麻煩的部分是相依套件的安裝,
目前有 CMake CPM 還有 vcpkg 等相依性管理的方式,
但還是有東西得手動編譯,例如 mongocxx (MongDB 的 C++ Library)
這東西讓我花了超過 4 小時在設定 GitHub Action 上。
(大部分是自己太執著而浪費的時間,
其實裝在 local dir 再設 CMAKE_PREFIX_PATH 就好)
這些手動部分的函式庫,大多依賴 CI 的 Cache 在下回重新 Build 時
透過 Cache Restore 再進行 `make install` 或加搜尋路徑
這回得到較多的收獲是,補充了 Modern C++ 的一些知識。
(中間還包含了犯錯的記錄 https://bit.ly/3mbcJDU )
後續的指標管理,全改成了 smart pointer。
在經歷這個痛苦,才能感受到現代開發工序的美好啊!
======================================================
其他資訊
開發記錄 (偽 release note)
https://github.com/qtysdk/gaas_cpp/blob/main/notes/999-task-list.md
與 ChatGPT 一起寫 Code 的心得
https://medium.com/@qrtt1/pair-with-chatgpt-ba606160608c
https://hackmd.io/@iD40lBm-QAqgh62DVHbjPA/HyuNVgjCs
(內容一樣,只是平台不同,擇一閱讀即可)
作者: flarehunter (Range)   2023-03-01 17:58:00
smart pointer的重點其實是要先想好物件之間的ownership 然後依照ownership決定傳怎樣的指標shorturl.at/GJV49想練習ownership觀念的話推薦學個Rust
作者: closer76 (克樓瑟)   2023-03-01 23:46:00
有道是:學 Rust 能寫出更好的 C++ 程式碼 XD
作者: ReverieKai (ReveErieKai)   2023-03-02 08:15:00
推分享

Links booklink

Contact Us: admin [ a t ] ucptt.com