1
hyyou2010 OP 1, 出于学习目的,从 koa2 和 egg 中选了前者,但直接用 koa2 需要自己去找中间件,找库,找轮子,比较麻烦且难以最优。比如文件上传,日志,session 等等,都找了好几个库来试,也不好把握以后扩展是否可以。所以未来做正式项目还得找比较完善的框架,比如 nestjs 或 eggjs 之类。
2, 第三方的 ui 库,如 materail-ui 或 antd 多少比较重,特别是前者,对程序主体影响比较大,所以最好尽量少用,初中期不使用,在后期可以考虑。这样非常灵活,以后可以根据选择不同的 ui 库。 3, 小项目不要使用大第三方库。比如界面的语言切换,考察过相关的 i18n 库,几乎看不懂,太完善,太庞大,太麻烦了,最后仍然使用 redux.store 简单处理。这点也说明使用完善的框架比使用 koa2 要强太多了。 4, 在项目基本完成之后才把前端代码转换为 typescript 的,所以不全面,且不太地道。从代码查错说效果还是很不错的,以后考虑常用。可能后端才是应该尽量用 typescript,毕竟后端出错的危害要远远大过前端出错。以后尽量一开始就使用,后面再改比较繁琐。 5,有的问题不身临其境就感受不到。比如,更换头像后,头像链接将指向新头像的那个新地址,这个小设计给后续编程造成了极大的麻烦。比如头像链接就无法直接存放在 post 或 comment 信息里面,因为用户更换头像后之前的头像链接失效。临时的处置是,数据库先查询 post 及 comment,然后 aggregate 查询 user 数据表以获取最新头像链接。vote 及 lineup 也一样麻烦。最后采取的方案是,头像链接地址始终不变,新头像替换旧头像时沿用旧头像的文件名。这可能导致客户端头像不刷新,需要加随机数来帮忙刷新,但最后考虑到这不是高频操作,还是 reload 客户端更为干净。 6,有的功能细节意外的多,比如匿名功能,需要考虑:post 与 comment 的匿名,我的匿名与他人匿名的差异,oauth 登录用户的匿名,投票与接龙的匿名,投票人及接龙人的匿名,所有情况下鼠标在头像上悬停时的不同提示,此外匿名时的隐匿信息不应该传递到客户端,必须在服务端就过滤好。如此这样,这工作量是出奇的多。这里说明编码之前的产品需求与设计是很重要的,可以发现工作量意外大的一环。 |
2
hyyou2010 OP 另外,其他的好办,但不知搜索功能怎样做。
看过 elasticsearch,看得头大,比较麻烦,难道数据库每一步操作都要同步到 elastic 数据库?或者不需实时更新,过一定时间更新一次?这点没搞明白,请知情同学介绍一下。 |
3
zgcwkj 2019-09-09 17:09:39 +08:00
支持大佬!既然是初学,为什么不是 express 呢?
|
4
hewelzei 2019-09-09 17:31:46 +08:00
同在学习 Koa2,后端使用 Typescript + Rollup,开发体验确实非常好,最近也在学 Graphql 这方向的技术栈
|
5
hyyou2010 OP |
6
weixiangzhe 2019-09-09 20:59:02 +08:00 via iPhone
也想些一个 但是一直提不起干劲啊 赞👍
|
7
Chaos11 2019-09-10 09:36:30 +08:00
po 主是后端?
|
9
duola 2019-09-10 12:23:31 +08:00
mongodb 实时同步到 elasticsearch。
|
11
galikeoy 2019-09-11 16:35:28 +08:00
不错,我也想琢磨一个。,
|
12
boboyangmoumou 2019-09-16 09:56:50 +08:00
可以,顶一个
|
13
hyyou2010 OP 唉,敏感时节,部署的论坛被墙了,需要翻。
|