最近无聊为个小论坛写个小项目,纯粹用爱发电,算是练手。
论坛是 Discuz,但我不准备碰 php,打打算另写个前后端分离的项目。
项目比较简单,纯粹增删改查,但服务器只有 1g 内存,代码效率还是要尽量高。
但脱离了公司只好用开源的技术,语言选择了 java,一来我熟,二来开源产品多。
依赖注入选的 dagger2,毕竟编译时构建,效率高,我对 dagger2 还比较满意。
http server 用的是 undertow,用得还行,但 nio 是在麻烦,转成 stream 又失去了 nio 的优势。我打算研究下 kotlin 的协程,然后把 nio 的部分尽量用协程。但是一想到数据库还是 block 的操作,感觉意义不大。求更好的选择,或者现在通用做法就是转 stream 再操作?
鉴于论坛用的是 MySQL,以及只有 1g 内存,我打算新的数据用同样的数据库。但一想到非 nosql 的效率和多表 join 还是有点头疼。不过 nosql 研究不多,我还想少写点代码,最好能把 Java object 直接翻译成数据库内容。最后选的 hibernate。有没有写更少代码的方案?
同样是因为用了 MySQL,我打算用 liquibase 做数据库修改,毕竟论坛维护就一个人,降低其负担。不过我也是刚听说这个工具,有没有更好的选择?
最后,与前端通信选的是 protobuf,但我没有引入 grpc,grpc 对端口要求太死,我希望少用点端口,降低性能需求。以及我非常不想用 JSON,太灵活,不宜维护。
项目快写完了,在这发帖的目的一来是看看有没有更好的解决方案,二是看看什么技术比较流行(所在公司用的都是自己的技术)
欢迎斧正,不过不要只提个技术名词,还是要讲讲为什么这样更好~
论坛是 Discuz,但我不准备碰 php,打打算另写个前后端分离的项目。
项目比较简单,纯粹增删改查,但服务器只有 1g 内存,代码效率还是要尽量高。
但脱离了公司只好用开源的技术,语言选择了 java,一来我熟,二来开源产品多。
依赖注入选的 dagger2,毕竟编译时构建,效率高,我对 dagger2 还比较满意。
http server 用的是 undertow,用得还行,但 nio 是在麻烦,转成 stream 又失去了 nio 的优势。我打算研究下 kotlin 的协程,然后把 nio 的部分尽量用协程。但是一想到数据库还是 block 的操作,感觉意义不大。求更好的选择,或者现在通用做法就是转 stream 再操作?
鉴于论坛用的是 MySQL,以及只有 1g 内存,我打算新的数据用同样的数据库。但一想到非 nosql 的效率和多表 join 还是有点头疼。不过 nosql 研究不多,我还想少写点代码,最好能把 Java object 直接翻译成数据库内容。最后选的 hibernate。有没有写更少代码的方案?
同样是因为用了 MySQL,我打算用 liquibase 做数据库修改,毕竟论坛维护就一个人,降低其负担。不过我也是刚听说这个工具,有没有更好的选择?
最后,与前端通信选的是 protobuf,但我没有引入 grpc,grpc 对端口要求太死,我希望少用点端口,降低性能需求。以及我非常不想用 JSON,太灵活,不宜维护。
项目快写完了,在这发帖的目的一来是看看有没有更好的解决方案,二是看看什么技术比较流行(所在公司用的都是自己的技术)
欢迎斧正,不过不要只提个技术名词,还是要讲讲为什么这样更好~