对于上述问题的思考和回答,我认为需要从这两个原则来考虑:
- 团队的人员配置,尽量选择大家熟悉的技术
- 考察选择的技术它的生态是不是够完善
这两个原则,在选择编程语言、技术栈、云服务和存储的时候都是适用的。
其实技术选型本身没有好与坏,更多的是选择“合适”的技术。
技术选型
你作为初创公司的CTO,在为电商系统选择技术栈时,以下是一些常见的编程语言和技术栈、第三方框架和云服务,以及存储系统选型的建议。
下面提到的是一些常见和流行的选择,但并不是唯一的解决方案。
编程语言和技术栈
后端开发:
- Java:使用Java作为主要后端语言时,可以选择Spring框架。Spring提供了全面的功能和模块,例如Spring Boot用于快速构建应用程序,Spring MVC用于处理Web请求,Spring Data用于数据库操作,Spring Security用于身份验证和授权等。
- Python:可以选择Django框架。Django是一个高效且功能强大的Python框架,提供了ORM(对象关系映射)和内置的管理后台等特性,适合快速开发和维护。
- Node.js:对于更轻量级和高并发的应用程序,可以选择Express.js框架。Express.js是一个快速且灵活的Node.js框架,适合构建RESTful API和实时应用程序。
前端开发:
- JavaScript:使用JavaScript作为主要前端语言,结合流行的前端框架,如React、Angular或Vue.js,以提高开发效率和用户体验。
关系型数据库:
- 对于传统的关系型数据结构,如用户信息、订单和库存等,可以选择MySQL或PostgreSQL作为主要数据库,它们具有成熟的功能和广泛的社区支持。
非关系型数据库:
- 对于具有更灵活数据结构或需要快速读取和写入的数据,可以考虑使用MongoDB。MongoDB是一个流行的文档数据库,具有强大的横向扩展能力和灵活的数据模型。
第三方框架和云服务
第三方框架
- 网关:springcloud gateway,kong,zuul
- 注册中心:nacos, consul
- 配置中心:nacos, apollo
- 调度中心:elastic-Job, xxl-job
- 日志中心:elk
- 脚手架开发框架:mybatis-plus
- 技术框架标准:springboot,springcloud, springcloud alibaba
- 分库分表组件:sharding-jdbc
- 熔断降级:hystrix
- 负载均衡:ribbon
- 消息中间件:rocketmq, rabbitmq
- 服务监控:springboot admin, pinpoint, supervisor
- 链路追踪:spring cloud sleuth(zipkin)
- 爬虫框架:webmagic
- 分布式事务:seata
- 分布式缓存:redis
- 应用缓存:caffeine, guava, jetcache
- 其他:docker, jenkins, nexus, puppet, k8s, ansible
云服务
- 阿里云
- 腾讯云
- 等等
这里推荐阿里。
- 因为其在电商领域,已深耕多年,电商相关技术的生态圈最早构建出来,且相对成熟完善。
- 它的产品种类比较多,基本能满足电商系统的开发需要。如图片视频等文件存储,可采用对象存储OSS。如商品搜索,可采用开放搜索OpenSearch,它提供了专门针对电商的分词支持。
存储系统选型
文件存储:
- 对于电商系统,你可能需要存储和管理大量的图片和其他媒体文件,可以考虑使用云存储服务,比如阿里oss,腾讯cos,七牛存储等。它们提供了高可用性、可扩展性和持久性的存储解决方案。
数据库存储:
- 根据你的数据模型和需求选择合适的数据库类型。如果你的数据是结构化的,关系型数据库如MySQL或PostgreSQL可能是一个不错的选择。
- 如果你的数据是半结构化或非结构化的,如文档、声音、图像文件等,NoSQL数据库如MongoDB或Elasticsearch可能更适合。
最终的选择:取决于你的业务需求、团队技能和可承受的成本。
重要的是确保你选择的技术能够满足你的功能要求,并且具有可扩展性和可维护性,以支持未来的业务增长。
我的建议
这对小规模的团队,特别是首创团队,这是一个非常务实且合理的选择。
因为创业公司最重要的事是什么?第一个MVP产品版本,需要快速出成品,配套的技术也是同理。
思考题
期待、欢迎你留言或在线联系,与我一起讨论交流,“一起学习,一起成长”。
上一章教程
推荐阅读
- 架构师:不想当架构师的程序员不是好程序员
- 架构师技能修炼图
- 技术破局,业绩狂飙十倍:亿级电商平台重构大揭秘
- 当我们聊高并发时,到底是在聊什么?如何真正地掌握高并发设计能力?
- 【总结】我的十二个架构设计原则
- 微服务架构实战 - 我的经验分享总结2019(系统架构师)架构演进过程-从信息流架构到电商中台架构
系列分享
------------------------------------------------------
------------------------------------------------------
关于我(个人域名,更多我的信息)
期望和大家 一起学习,一起成长,共勉,O(∩_∩)O谢谢
如果你有任何建议,或想学习的知识,可与我一起讨论交流
欢迎交流问题,可加个人QQ 469580884,
或者,加我的群号 751925591,一起探讨交流问题
不讲虚的,只做实干家
Talk is cheap,show me the code