设计一个软件技术产品需要考虑到哪些问题?
背景
- 站在高维度的角度上,设计一个软件技术产品,需要考虑到什么?
- 架构设计
- 质量考量的点
- 易用性(详细文档,开发方便)
过程
- 架构,就是分层。把层隔离出来。概念、职责分明。
-
模仿Netty,分离出多层来。每一层都做自己的事情。Netty的逻辑架构设计理解
-
Corda是怎么做分层设计的?
节点与节点之间通过网络进行交互。一个节点中,通过RPC Client或者Web Service获取节点内部数据。
开发者自定义业务逻辑,实体,写合约。(用户自定义的Corda的DApp)
-
Fabric是怎么做分层设计的?Fabric系统的运行架构
- 质量考量 Netty在质量上考量的点
- 高性能
- 可靠性
- 可定制性
- 可扩展性
- 安全性
- 易用性
- Netty屏蔽底层JDK的NIO繁琐的细节。使用Reactor理论,提供高层接口,使开发者使用起来十分简单。提供了详细了开发文档,并且源码也有非常详细的注释说明。甚至有些代码出还给出了issue的链接。
- Corda底层项目和代码十分繁琐,用到了整个Java生态体系的技术栈。但是,它提供的高层接口,让开发者使用起来非常方便。
小结
- 学习Netty架构设计,Corda的架构设计,Fabric的架构设计。
- 考量到质量和易用性。
- 这些是高维度的东西,有这样的意识,总比没有的好。其他的东西就只能实践过程中去慢慢体会和加深理解。