多年 CRM 开发的心路历程: Java -> Golang -> NodeJS

49 天前
 wenerme

v1

:::tip 总结

非常简单的尝试,很快就失败了,目标并不明确。 对 CRM 并不了解,过于盲目。 堆砌了一些基础前端组件。前端开发能力尚不成熟。

:::

v2

:::tip 总结

后端

后端尝试构建基于 Schema 的 CRM ,但过于动态,过于灵活导致逻辑开发复杂。 对 NodeJS 后端开发并不足够了解,目标更像是一个 low-code 后端,但是支持 CRM 实体。 这个阶段对 CRM 逻辑有了一些了解。

前端

前端选择 Antd ,发现阻力越来越大,实现定制化很难。 这时的前端开发能力还相对欠缺,对生态还不够了解。

:::

v3

:::tip 总结

这个阶段是历时最长的,除了核心的 CRM 还完成了其他的一些附属模块。

后端

后端使用 Golang 开发上进行了一些探索,前期 gorm+restful 方式代码量大且重复。 之后选择 ent+gqlgen+自定义生成代码。

前端

前期基于 Blueprint 快速实现大多功能,但还是因为经验不足,很多东西实现有缺陷。但实现了初期原型,达到了想要的结果。

:::

v4

v5

v6


3450 次点击
所在节点    程序员
27 条回复
wenerme
48 天前
@ixixi

> 我也写过 crm 你们卖的咋样

没有成行的产品,都是内部用,然后我这边是以研发为主,crm 在用,但同时这套逻辑做了另外两个简单系统的后台,都不是 crm 的。
wenerme
48 天前
@horizon

> 你这个仓库挺难看懂的。。。说实话

是的,因为主要是面向自己的,想要 to public ,需要做的事情就太多了,只是分享一些想法和思路。
mark2025
48 天前
@wenerme crm 一般复杂在业务逻辑(包括多表关联查询统计),连接数量和流量我觉得还不需要一定是 rpc 。http 请求开发、调试方便多了。
yrj
47 天前
敢于折腾,并把过程总结出来,值得佩服。
xiaoshan5733
47 天前
佩服,思考总结值得学习。我也经常在技术选型上花费大量时间,有时候确实容易陷入技术思维。OP 在做技术选型时一般会考虑哪些因素呢?
wenerme
46 天前
@xiaoshan5733

> 在做技术选型时一般会考虑哪些因素呢?

先做个方面了解,逐步筛选,锚定一些核心的,再围绕核心的技术去做选择。
一般我们说单有了锤子,看什么都是钉子。
然后再增加不同领域的锤子,逐步叠加就好。

例如数据库,刚开始的时候,数据库都是 mysql ,后来自己能做决定了,开始去了解,了解到 pg ,发现真的很不错。然后需要做分析的时候,也了解了一些例如 clickhouse 之类的等等,但是最终要得到一个 **trade off**,每个技术方向都是有价值的,但是做技术选择是有自己的背景的,多积累这样的 trade off ,会帮助之后做选择。
因此大约在 pg 10 用到了现在 15 、16 ,当需要 OLAP 场景的时候,也尝试通过 pg 解决,当需要搜索,需要做 AI/向量搜索,也是在通过 pg 解决。这里锚定的点就是 pg ,锚定了这个基本点后,可以更加深入的去使用 pg 的一些功能,例如我不会介意直接在 pg 里写 js (用 pg v8 )。

例如 OS ,选择了 alpine ,之后 os 相关的场景 物理机、镜像、容器等 全都是 alpine ,得到的回报值得投入。
前端后端之类的同理,只是这些领域锚定的内容可能还会有变化,例如前端一开始 antd ,然后变为 tw 。后端确定 nodejs 后,一开始 nestjs rest 然后 gql 反复,但最终能 settle down 到一些固定的技术栈。这些也都是自己的技术投资,非常乐意沟通和分享这些内容。

这些核心的点是不会变的,但是围绕这些点的技术是会不断发展的,新的的东西也在不断涌现,保持好奇和兴趣,从 程序员 变为 工程师。搞这些真的好玩 😄。

到现在,原意分享,帮助别人去用 alpine 、pg 这些也是一种乐趣,非常有意思。
hutoer
16 天前
RPC 我倒是觉得 https://github.com/moleculerjs/moleculer 比较简单

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1067291

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX