1. 创业早期应优先选用熟悉的开源框架,避免自研
- 快速迭代优先
早期人员少、业务简单,首要目标是快速验证业务模型,技术需服务于快速上线和迭代,选用团队熟悉的语言和框架即可,如PHP、Java、MySQL等,避免纠结复杂选型。 - 降低初期风险和成本
自研成本高且人员有限,且早期公司发展方向不确定,应避免大规模投入,选用成熟开源技术快速搭建基础架构。 - 技术栈选型需具备可扩展性
如58早期选用了微软技术栈,随着数据和并发增长,成本和性能问题凸显,后转向Java和开源技术,尽管经历阵痛,但长远看是正确选择。选择云技术及流行开源框架能减少后续大幅调整风险。
2. 业务规模扩大后需加强技术栈统一管理
- 多团队多框架带来的问题
随着团队和业务变多,各团队喜欢使用自己擅长的框架和访问层技术,导致跨部门调用困难,重复开发严重,技术效率急剧下降。 - 管理技术栈统一的重要性
需统一使用同一服务框架,统一数据库访问层,避免因框架多样化带来的重复造轮子问题,降低研发、测试和运维成本。 - 提升效率和降低成本
技术栈管控帮助提升整体研发效率,减少跨团队沟通障碍和技术碎片化,维护系统整体稳定性和统一性。
3. 浅层封装带来的灵活性和可维护性
- 屏蔽底层实现,降低调用方改动成本
通过浅层封装缓存访问接口,如58到家的KV封装memo cache和Redis,实现接口一致性,调用方无需关心底层变化。 - 方便后续升级和功能扩展
当缓存实现替换或新增功能(如访问时间统计、调用链跟踪)时,只需升级封装层,无需所有调用方修改,极大降低维护成本。 - 促进统一功能快速落地
封装层作为统一接入点,能实现全局功能统计、告警和监控,统一升级即可享受新特性,提升系统可观察性与运维效率。
4. 团队和业务进一步发展时适当自研通用组件
- 满足个性化和协同需求
开源库容易功能重复且东拼西凑,不能完全覆盖企业具体需求,特别是账号体系、监控告警、自动化运维等通用需求。 - 降低运维复杂度和成本
统一开发和维护框架组件可避免多系统间的功能重复和集成复杂,方便管理和迭代。 - 提升整体研发效率和团队协作能力
统一的框架和工具提升团队生产力,促进技术沉淀和复用,适应公司规模和业务复杂化发展的需求。

