设计一个软件技术产品需要考虑到哪些问题?

背景

  1. 站在高维度的角度上,设计一个软件技术产品,需要考虑到什么?
  2. 架构设计
  3. 质量考量的点
  4. 易用性(详细文档,开发方便)

过程

  • 架构,就是分层。把层隔离出来。概念、职责分明。
  1. 模仿Netty,分离出多层来。每一层都做自己的事情。Netty的逻辑架构设计理解

  2. Corda是怎么做分层设计的?

    设计一个软件技术产品需要考虑到哪些问题?
    节点与节点之间通过网络进行交互。

    一个节点中,通过RPC Client或者Web Service获取节点内部数据。

    开发者自定义业务逻辑,实体,写合约。(用户自定义的Corda的DApp)

  3. Fabric是怎么做分层设计的?Fabric系统的运行架构
    设计一个软件技术产品需要考虑到哪些问题?

  1. 高性能
  2. 可靠性
  3. 可定制性
  4. 可扩展性
  5. 安全性
  • 易用性
  1. Netty屏蔽底层JDK的NIO繁琐的细节。使用Reactor理论,提供高层接口,使开发者使用起来十分简单。提供了详细了开发文档,并且源码也有非常详细的注释说明。甚至有些代码出还给出了issue的链接。
  2. Corda底层项目和代码十分繁琐,用到了整个Java生态体系的技术栈。但是,它提供的高层接口,让开发者使用起来非常方便。

小结

  1. 学习Netty架构设计,Corda的架构设计,Fabric的架构设计。
  2. 考量到质量和易用性。
  3. 这些是高维度的东西,有这样的意识,总比没有的好。其他的东西就只能实践过程中去慢慢体会和加深理解。