如果让你做技术负责人,你会怎么设计后端架构?
这事儿我真干过,我不是架构师,就是大头兵。从零开始搭建公司的技术栈其实也没那么难
开发语言
肯定什么火选什么啊。 Java、Python、Node.js、Go 等。
在这里我们选 Java ,因为我只会 Java 。
开发框架
选择一套成熟、活跃的开发框架,以提高开发效率和质量。
对于 Java,可以选择 Spring Boot、Spring Cloud Dubbo 等作为后端开发框架。 微服务的太多了,自己搞就是All in one项目以后扩展吧,给编制拆微服务,拆的越多约好。
前端Vue、React吧 加上 cdn 静态缓存,最近比较火的是 ElementUI 吧,还有就是低代码
(基本前端没啥技术含量,前端啥也不是)。
数据库
看自己业务场景,要是不搞交易或支付,不用的话就是Nosql 比如MongoDB
交易或者电商的首选关系数据库,如关系型数据库(MySQL、PostgreSQL、Oracle 等)
开发工具
Java 可以选择 IntelliJ IDEA、Eclipse 等。推荐IDEA,破解版就行,要是企业大点怕版权,就买个商业的。
Git不用说了,谁不会拉出去砍了。
部署方面给运维就让他来干,不给就是 devops。 CI/CD的。docker容器部署起码要有,k8s我不会,让我搞架构的业务估计也不会那么复杂估计也用不上。docker-compose 够用了。真到了要动态扩容或者容灾级别了,我也该退休了。再不济搞个 jenkins实现自动化构建和部署。
代码规范与审查
整点开房规范还是很有必要的。起码阿里 java 手册插件搞到 idea 里。
要是开发参差不齐,就定时开开 review 会,杀鸡儆猴很有必要。
开发流程
采用Scrum敏捷开发,比较推荐。jira 首推,任务跟踪 sprint迭代和 bug处理。
测试规范和 QA这块儿不太了解,反正测试和开发不干架是不正常的。
监控与日志
找一些免费的 APM 工具(如 SkyWalking、Pinpoint、New Relic 等)实现对系统的性能监控和瓶颈分析。
日志的话免不了自己搭建个ELK,或者日志直接干到 oss 里面也行。
先写这些,待补充。