技术选型怎么做?

做技术选型时要考虑的因素
业务需求匹配:能否满足当前核心业务场景,是否支持未来扩展。
架构与兼容性:与现有系统、硬件、数据接口的兼容程度。
成本结构:一次性投入、运维成本、扩展成本、人员培训成本。
性能与可扩展性:响应速度、并发承载量、未来用户或数据增长的可扩展能力。
安全与合规:数据安全、访问控制、加密机制,符合本地法律法规。
技术生态:社区活跃度、文档成熟度、第三方插件或工具支持。
供应商与服务保障:厂商稳定性、市场地位、技术支持、SLA保障。
团队能力匹配:内部团队是否具备相关技术栈能力,学习曲线高低。
可维护性:调试、监控、升级、迁移的便利性。
风险与锁定:供应商锁定风险、技术淘汰风险、替换成本。
十个因素是全面考虑,前三个为核心因素,占比应该放到最大。
市面常见技术及优缺点
这里我们考虑几个维度:
成本结构的角度来看:PHP做后端VUE前端,比较适用于一次性投入型的项目,php维护、扩展和人员培训成本较低,但需要少量长期稳定的员工,如果企业没有充足的资金来保证最少两个开发人员长期在职的话,建议不要上这套架构。
性能和扩展:此出分为多种性能,是访问并发量大,还是IO流操作较大,还是其他,这里给出两个方案,如果是高并发首先要考虑go和JAVA,如果是IO操作较高要考虑NodeJS(直播平台常用),go的语言本身性能比较好适用于高并发,JAVA在高并发和IO操作都不占优势,但是JAVA生态很好,可以通过多服务器来分摊流量,NodeJS对IO操作极为友好,非常适合直播类业务。
安全性考量:这个其实是一个非常看开发者能力的因素,但如果从用人成本与安全做性价比排序的话,应该是C# > Java > PHP,其他语言不锐评,解释型语言都有这个弊端,但如果请得起安全顾问的情况下选什么语言都无所谓。
团队能力匹配:如果想用最快的时间培养一批程序员的话,PHP是不二之选,该语言学习难度非常低,如果企业内已经有一部分程序员的话就要根据情况而定了。
可维护性:这种又分为三种情况,我大概分为10人以下团队,10~30人团队,30人以上团队,如果团队在10人以下,PHP首选,可维护性极高;30人以内团队,如果使用PHP作为后端,最高可以分到10成10条生产线,作为项目管理者而言非常的累,也非常考验项目管理者的并行项目管理能力;通常来讲10人以上团队建议用JAVA来做后端。
市面常见企业类型
根据团队人数和技术支出预算来拆分
| 10开发以下 | 10-30开发预算不足 | 10-30开发预算充足 | 30开发以上 |
| PHP | PHP | JAVA | JAVA |
怎样做到极致效率?
为了便于维护强制语言统一化是很不合理的,每种语言都各有优势,比如你的项目中遇到一些本地AI模型的处理,java当然是支持的,但是要考虑使用便捷性、业务服务器拆分、项目解耦、运行效率、开发速度等各种因素,无疑使用Python是最合适的。
下面我例举一些常见场景:
超大型项目海量数据BI:JAVA
定时任务脚本驱动与管理:Nodejs、PM2
个别接口超高get并发且少有修改(比如直播间实时人数):Nodejs
超大型项目临时出一个ToB功能:PHP
IM聊天:MQTT+持久化钩子
结合中国市场,项目初期应该怎样选型?
根据国情来看,中国的自由经济竞争是十分激烈的,无论一开始投入多少我认为都以PHP+VUE作为起步语言最为合适,即使预算相对充足的情况下,也不要去选择贻误战机的技术,技术永远都不重要,市场才是最重要的,我上面有提到30人以上不建议选PHP,其实也是有解决方案的,加入我们团队有100个开发,我们可以通过良好的业务拆分,把一个大项目分成5条线,每20人一个团队,去掉产品、测试、设计等岗位基本有15个开发,使用3-3分组设立组长和队长做管理即可,先得到市场赚到钱,再考虑怎么把团队正规化,这是中国市场上的最优技术选择。
还有一个特殊情况就是G端内部项目,这种属于计划经济中的企业就直接选最长远优势的即可。


