[作品] 搭 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