开发者工具箱|编程·开发工具·资源
318 subscribers
1.48K photos
785 links
面向开发者的实用工具、库与效率技巧,写代码更快更爽。投稿 @BDHT1
#开发者 #编程工具 #效率 #程序员 · 开源总站 @GitHubTrendingHub
Download Telegram
自建事故管理:3000 行 Go 搞定

一支 40 人工程师团队放弃采购 PagerDuty 等商业工具(年费约 $20k–$40k),自建了 Slack-first 的事故管理系统。核心事实如下:

- 一位工程师用 3 周写了约 3000 行 Go,实现 4 个斜杠命令:/incident start 创建频道并通知值班人员,/incident update 追加时间线用于复盘,/incident severity 按严重级别升级,/incident close 自动生成事后文档。
- 集成已有监控、Jira 和状态页。跳过自定义角色、自动利益相关者更新、运行手册托管等商业工具中较少使用的功能。
- 作者建议:团队规模 50 人以下直接采购;规模更大且有特定工作流需求时自建更划算。

原文链接

#开发者 #工具

📢 频道:@DevToolboxHub
构建 AWS 权限测试设施,CI/CD 自动拦截

作者在部署数据工程师权限集时经历了五次迭代和两周的反复调试,每次失败都会阻塞工程师正常工作。根本问题是部署前无法发现 IAM 权限漏洞。为此他构建了一套自动化测试框架,包含三部分:

- 预验证模板:涵盖区域限定 S3 访问、KMS ViaService 条件、显式拒绝破坏性操作等最佳实践模式。
- Bash 测试库:依赖仅需 AWS CLI,同时测试允许和拒绝场景,包括端到端工作流模拟。
- GitHub Actions 集成:PR 触发 Terraform 目录变更时,在开发/非生产账号中运行测试,结果以评论形式展示。

效果:95% 的权限问题在 PR 阶段即被捕获,零生产影响;新权限集创建时间减少约 70%。

原文链接

#开发者 #工具

📢 频道:@DevToolboxHub
BLE 体重秤数据无线同步工具

BLE Scale Sync 是一款自托管工具,通过始终在线的设备(如 Raspberry Pi)监听蓝牙,自动将体重秤测量数据同步到 Garmin Connect、Strava、Home Assistant、InfluxDB 等平台,无需手机 App 或手动输入。

- 支持 25+ 品牌 BLE 秤(小米、Renpho、Eufy 等),兼容常见体成分指标
- 一键 Docker 部署:docker run ... ghcr.io/kristianp26/ble-scale-sync,或 Home Assistant 插件
- 可选 ESP32 蓝牙代理解决距离问题;支持多用户识别、断线回填历史数据
- 体成分本地计算,数据不出局域网;适配 macOS/Windows/Linux

GitHub: GitHub
文档: 原文链接

#开发者 #工具
📢 频道:@DevToolboxHub
语义层:AI数据分析的基石

AI分析结果总是不对?问题不在模型,而在数据与模型之间缺少语义层。没有语义层,AI会出现:
- 指标幻觉:AI自行定义公式,得到错误数字(如把总收入算错15%)
- 连接混淆:多路径关联时选错关系,导致数据偏差
- 列误解:时间字段含义不清(订单日期vs发货日期)
- 安全绕过:直接查原始表,绕过行级权限
- 结果不一致:同问不同答,因LLM输出概率性

解决:使用语义层定义标准指标、关系、列说明和安全策略,让AI参照业务定义而非猜测。Dremio 将语义层嵌入查询引擎,实现可靠的生产级 AI 分析。

原文链接

#开发者 #工具

📢 频道:@DevToolboxHub
Solana 账户查询 CLI 工具

一个基于 Node.js + @solana/kit 的命令行工具,输入任意 Solana 地址即可输出 lamports(SOL)、owner、executable 状态、data 大小及 hex 预览、rent epoch 等五个标准字段。

- 支持已知程序地址友好名称显示(System Program、Token Program、Jupiter 等)
- 三种账户类型对比:钱包、Token Program、System Program 输出截然不同
- 三个意外发现:System Program 由 NativeLoader 拥有而非自拥有;Token Program 仅 48 字节有效数据(指向升级 BPF Loader);钱包 0 字节数据仍是一个完整账户

安装:npm install @solana/kit,创建 explorer.mjs 复制代码后运行即可。

原文链接

#开发者 #工具

📢 频道:@DevToolboxHub
语义层:将治理规则嵌入查询路径

大多数企业的数据治理政策只存在于文档中,实际查询时无人执行。语义层将治理从 Confluence 页面迁移到查询路径,让每个规则自动应用于每个用户、每个工具。

核心要点:
- 集中定义指标:将治理策略编码为 SQL 视图,统一定义收入等关键指标,避免不同报表使用不同公式
- 查询时强制访问控制:通过细粒度访问控制(FGAC)在视图层过滤行和掩码列,确保即使用户绕过 BI 工具,安全策略依然生效
- 视图血缘可追溯:Bronze→Silver→Gold 分层架构让每个指标都可追踪到原始数据,审计时无需翻找仪表盘和笔记本
- 文档与标签治理:使用 Wiki 描述字段含义,Label 标记 PII、Certified 或 Deprecated,配合 AI 自动生成描述,覆盖率达 70%
- 认证与变更管理:视图标签(Draft→Reviewed→Certified)配合所有者制度,更新后重新审核标签,变更管理可见于语义层内部

👉 原文

#开发者 #工具

📢 频道:@DevToolboxHub
别把DAO当Repository用

很多 PHP 项目(尤其是 Laravel/Symfony)中的 Repository 类,其实只是披着 Repository 外衣的 DAO。典型 DAO 特征:返回 array<int, \stdClass>,方法名是 insert/update/delete,参数用列名作为 $filters key。真正的 Repository 应该返回领域对象,方法名反映业务语言(如 suspend、ofEmail),且与持久化无关。作者给出了快速区分清单(6 条),并建议对 DAO 诚实命名,或通过端口隔离。

🔗 原文

#开发者 #工具

📢 频道:@DevToolboxHub
事务与领域解耦的三种模式

在PHP应用中,事务通常依赖ORM的wrapInTransaction,但这会让应用层引入Doctrine等基础设施依赖,破坏六边形架构。文章提出三种解耦方案:

- 定义UnitOfWork端口接口,应用层只调用wrap,适配器(Doctrine/Laravel/PDO)负责具体实现
- 使用TransactionalDecorator装饰器,在依赖注入层包裹use case,使事务边界与业务逻辑彻底分离,并可叠加日志、重试等装饰
- 实用折中:直接在应用层末尾调用flush,简单但造成框架耦合,适合短期项目

此外强调:避免嵌套事务,每次仅处理一个事务边界;可用反射测试在CI中强制确保无框架泄漏。

原文链接

#开发者 #工具

📢 频道:@DevToolboxHub
PHP 整洁架构四层环落地

本文详细讲解如何将 Clean Architecture 的四层环(Entities、Use Cases、Interface Adapters、Frameworks & Drivers)映射到 PHP 的命名空间和目录结构。核心要点:

- 将四层环简化为三个命名空间:App\Domain、App\Application、App\Infrastructure
- 依赖规则:外层可依赖内层,内层不能依赖外层;用 Deptrac 或 PHPArkitect 在 CI 中自动检查
- 代码示例:Entity(纯 PHP,无框架依赖)、Use Case(单动词类)、Controller(仅做转换)、Repository(实现接口隔离框架)

文末提供完整应用参考书《Decoupled PHP》。

原文链接

#开发者 #工具

📢 频道:@DevToolboxHub
Symfony解耦:六边形架构实践

文章指出许多 Symfony 项目将业务逻辑混入框架,如 Doctrine 生命周期钩子算税、控制器直接处理订单。作者提出将 Symfony 视为适配器,核心代码放在 Domain 和 Application 层,与框架完全解耦。通过纯 PHP 实体、端口定义、基础设施适配器和 DI 别名实现。CI 检查确保 Domain 不引入框架类。重构从移除 PrePersist 开始。作者还介绍了其项目 Hermes IDE(为 AI 编码工具设计的 IDE)。

原文链接

#开发者 #工具

📢 频道:@DevToolboxHub
KMP新结构暗藏陷阱?FLIP来救

JetBrains 为 Kotlin Multiplatform(KMP)发布了新的默认项目结构:sharedLogic + sharedUI + 各平台应用模块。看似简洁,但文章指出其隐患:sharedLogic 缺乏内部边界,业务逻辑、网络、数据库、工具函数混在一起,依赖关系混乱,最终变成难以维护的“垃圾抽屉”。

为解决此问题,FLIP 架构模式被提出——5 个分层,单向依赖,零横向依赖:
- :common:core 基础层,不依赖任何模块
- :service 领域逻辑层,依赖 :common:core
- :feature UI 特性层,依赖 :service 和底层层
- 入口与平台层从上往下依赖

IDE 通过 Gradle 编译规则强制隔离,特性间不可互相导入,避免循环依赖。FLIP 提供模板和 Konsist 测试,适合在 sharedLogic 膨胀前引入结构规则。

🔗 GitHub:github.com/numq/flip
🔗 原文:dev.to/numq/jetbrains-just-changed-kmp-structure-heres-what-they-didnt-tell-you-6kb

#开发者 #工具

📢 频道:@DevToolboxHub