程序设计之美

前言

世界有各种各样的美,有风景之美;人文之美;文化之美。

那么我们程序开发中的美学是什么呢?

我的理解是规则之美,严谨的程序设计,会使代码结构层次分明,便于开发及维护。

我认为一个业务流程的实现,应该是由多个小功能组装而成。

一个简单的举例:一次下单(商品购买操作)

牵涉的服务有商品中心,订单中心,用户中心,日志中心等,每个服务中心为完成这个业务提供与自己相关的子功能,业务由订单中心发起,由订单中心调用各中心提供的功能接口完成此业务的实现。

原则

  • 单一职责原则
  • 开闭原则
  • 里氏替换原则
  • 迪米特法则
  • 接口隔离原则
  • 依赖倒置原则

关于每个原则的讲解 php常见的设计模式及六大原则

解耦

  • 各服务中心只需专注于自己的业务,不需要关注其他服务中心的业务。
  • 部分业务的实现可采用队列通知;事件 来进行解耦(如删除一个用户时,由用户中心抛出用户删除事件,其它服务中心(订单;日志;其它服务)监听此事件的发生进行后续的业务处理)

规范

  • 服务中心与服务中心之间的依赖应依赖高层模块(接口),接口一旦定义则表达的功能含义不能改变
  • 变量命名设计规范
  • 目录层次设计规范
  • 功能粒度的实现细化,拆的越细后期越好维护

程序设计六大原则

我个人认为,只要深刻理解了程序设计的六大原则,那么设计的架构再怎么都有一个模样。(即是有某种规律可循,遵照这个规则,可以摸透系统的运行模式)

总结

一切的规则设计模式来源于生活,我们要能通过生活发现新的;有效的;可以解决实际问题的设计模式。

我们要抱着严谨的心态去对待每一个需求。对每个需求的实现进行业务拆分,将拆分出的子功能进行归类(哪些属于用户中心实现,哪些属于订单中心实现,哪些属于日志中心实现),然后分配任务到各服务中心,判断这个业务的主要归属服务中心是谁(如下单归属于订单中心,查看某个商品详情归属商品中心),那么就由此服务中心作为业务发起人调用各服务中心提供的功能接口完成业务的实现。

相关推荐
啊阿狸不会拉杆1 小时前
《计算机网络-自顶向下方法》5.7 网络管理、SNMP和NETCONF/YANG 读书笔记
开发语言·计算机网络·php
mjhcsp3 小时前
DeepSeek V4 Flash 0731 (Batch) 深度评测报告
log4j·php·batch
leoZ2314 小时前
第 8 篇:与 AI 协作的工作流 + 完整案例
前端·人工智能·神经网络·自然语言处理·性能优化·c#·php
qetfw5 小时前
Debian 部署 phpMyAdmin:Apache、PHP 与 MariaDB 管理界面配置
linux·debian·php·apache
AC赳赳老秦5 小时前
农产品公开数据应用:OpenClaw 抓取农产品价格、产销公开数据,实现农产品行情动态监测
java·c语言·javascript·python·php·deepseek·openclaw
2401_868534785 小时前
网规备考_2.4 路由协议
c++·设计模式
三8445 小时前
redis三大机制:配置、持久化、主从复制(getshell 原理地基)
开发语言·php
G佳伟6 小时前
宝塔面板打不开且 Bt-Panel 未运行:从 HTTP 502 到 gevent 缺失的完整排查与修复
网络协议·http·php
cpp_learner6 小时前
C++ 实现责任链模式(Chain of Responsibility):从一堆 if-else 到可插拔的处理管道
c++·设计模式
码匠许师傅7 小时前
【设计模式精讲】23.备忘录模式(Memento)
c++·设计模式·软件工程·uml·备忘录模式