modulith / modulith-php
用于操作 ModulithPHP 的 CLI 工具。
dev-main
2023-10-21 00:33 UTC
Requires
- php: ^8.2
- hgraca/php-extension: ^v2.3.0
- modulith/arch-check: ^0.1.0
- symfony/config: ^v6.3.2
- symfony/console: ^v6.3.4
- symfony/dependency-injection: ^v6.3.5
- twig/twig: ^v3.7.1
Requires (Dev)
- ergebnis/composer-normalize: ^2.39.0
- friendsofphp/php-cs-fixer: ^v3.35.1
- malukenho/mcbumpface: ^1.2.0
- overtrue/phplint: ^9.0.4
- phpstan/phpstan: ^1.10.38
- phpstan/phpstan-beberlei-assert: ^1.1.2
- phpstan/phpstan-deprecation-rules: ^1.1.4
- phpstan/phpstan-phpunit: ^1.3.15
- phpstan/phpstan-strict-rules: ^1.5.1
- phpunit/phpunit: ^10.4.1
- psalm/plugin-phpunit: ^0.18.4
- rector/rector: ^0.18.5
- roave/security-advisories: dev-master
- vimeo/psalm: ^5.15.0
README
这是操作 ModulithPHP 的 CLI 工具的仓库。
目标
- 强制实施高级架构
- 层
- 依赖必须向内和向下移动
- 核心不得实现或扩展端口(允许有例外,如命令和事件)
- 类只能有合理的依赖
- 切片
- 适配器必须解耦
- 核心组件必须解耦
- 核心组件测试必须解耦
- 代码风格
- 类必须后缀
- 类不得后缀
- 质量
- 异常必须继承自项目异常树
- 类不得依赖反射(有一些例外,如编译器传递)
- 类必须在映射中(即序列化映射,这样我们才能确保它们可以进入消息队列)
- 层
- 为项目生成架构图
- C4 模型(只有 3 个级别)
- 系统上下文图:提供一个起点,展示目标软件系统如何融入周围的世界。
- 容器图:聚焦于目标软件系统,展示高级技术构建块。
- 组件图:聚焦于单个容器,展示其内部的组件。
- 应用程序映射 [1] [2]
- C4 模型(只有 3 个级别)
- 架构法医指标
- 热点检测(复杂度 * 变化率)
- 优先处理重构的代码
- 代码单元时间耦合
- 如果没有理由让它们一起改变(与测试和被测试的代码不同),它们可能需要重构
- 代码单元所有权分析
- 以检测团队知识不足
- 等等...
- 尽量使用 phpmetrics
- 热点检测(复杂度 * 变化率)
- 按组件拆分项目
- 分析单体项目的依赖关系,并为每个组件创建拆分版本,以便它们可以作为微服务独立部署