从解决域问题开始,然后可以过滤出解决方案的要求。为了迎合这些需求,请选择软件堆栈。在那里,您必须考虑所获得的约束(成本/时间)和资源(团队能力)。这个过程将导致您最终的解决方案体系结构。
例如:
->需求->合适的解决方案->情况->框架
- 财务系统->数据库(MySQL,oracle)/框架(NHibernate,Hibernate)->客户需要oracle认证和具有Java能力的团队-> Spring with Hibernate
- 旧版Java系统升级,减少重复性,请使用原始SQL,例如ORM-> MyBatis
- 社交网络->图DB(neo4j,AWS-neptune)->用户将来自全球-> AWS-neptune
- CMS->数据库(MySQL,PostgreSQL)/框架(Flask-SqlAlchemy,Rails-ActiveRecord,Laravel-Eloquent,Wordpress)->等不及了,让我们使用现有的-> Wordpress
- 存储非结构化数据-> MongoDB,DynamoDB->我们有很多ruby开发人员,数据像嵌套的JSON一样多-> Mongoid ORM
- Android应用-> sqlite,firebase->需要实时同步-> firebase
- 商店缓存-> Redis,Memcached->我们进行golang微服务-> go-redis
- 做分析工作-> PostgreSQL,spark,hive-> ...
希望你有模式