2024-05-29 架构-程序设计-思考

摘要:

最近在抽出时间做一个数据库的driver, 其中有些问题驱动的软件代码的思考,是很值得回味的。

做的系统,所思考的问题,所设计的解决方案,其实都是可以看作是对解决问题方式。而不仅仅是某个类库的API的使用,某个算法的实现复杂度,某个固定的设计模式,或者设计规约。

程序设计的思考:

  1. 对于技术的设计方案来说,某个业务领域的知识是一回事,比如说关系型数据库,时序类型的数据库,所要处理的业务,也就是DDD所谓的领域知识专家。
  2. 站在架构师的角度,是要从技术的角度,确保项目的成功,无论是功能性的需求,还是非功能行动需求,也就是性能需求,稳定性需求,甚至包括部署运维以及升级的需求,在不同的抽象层次的边界上,进行设计。
  3. 软件分成不同的抽象层次,在不同的抽象层次上,处理不同的问题范围。
  4. 而对于所谓的架构,从名词的角度,是一些功能点的组织方式,从动词的角度,是不同的功能的互相交互,达成一个完整的目标。但是无论是名词还是动词,都是与结构有关。
  5. 那么所要面临的是什么问题呢?从宏观的角度,是功能的分解,分解成更小的可以理解的部分,组成最小的功能单元。这个功能单元里,处理好本模块所能考虑到的所有的问题。
  6. 其实从这个角度上来说,比较适合采用思维导图的方式,而且是右向思维导图的方式,将功能层层分解,并且也将问题层层分解。
  7. 所谓的架构师,所谓的解决方案架构师,考验一个软件开发者的能力,便是他能驾驭多大的项目,保证这个项目的功能和非功能的要求。
  8. 结合业务,又从业务中抽离,要站在更高的抽象层次上做思考。抽象出通用的解决问题的思路,解决问题的办法。
相关推荐
熊出没7 小时前
云原生架构落地实践:Kubernetes 生产级配置与 Service Mesh 流量治理
云原生·架构·kubernetes·istio
小坏讲微服务7 小时前
刚发布一个月的JDK 27,为什么我建议你立刻升级?
java·开发语言·spring boot·spring·架构·求职招聘·springboot4
迪康妍妍7 小时前
终端管控实操:封堵网盘与IM外发通道的落地思路
运维·网络·安全·架构·安全性测试
光影少年10 小时前
AI Agent、自动化与未来工作
人工智能·算法·架构
xianyuCcCcCCCcc11 小时前
Ceph 分布式存储:核心架构与集群部署
分布式·ceph·架构
小天源12 小时前
智叟云集系统整体架构解析:多语言 API 接入、异步监控与本地化部署
架构·数据采集·数据中台·ai监测系统·geo数据监测
真上帝的左手12 小时前
10. 软件设计&架构-分布式文件存储系统
分布式·架构·应用架构
弈栈录12 小时前
大模型服务抽象:兼容 OpenAI、通义千问与本地模型
java·后端·架构
CCblandy14 小时前
一致性哈希到底省了多少搬迁?本机实测 3 轮:取模 6→7 搬 85.8%,V=128 只搬 14.3%,虚拟节点太少会被倾斜骗
后端·python·云原生·性能优化·架构
code_slave(码畜)14 小时前
微服务架构落地:OpenFeign 服务远程调用 + 线程池隔离架构实战 —— 超时控制、重试机制、线程池隔离,防雪崩
spring boot·spring cloud·微服务·云原生·架构·openfeign