多彩编程 多彩编程MZPH · CODE BLOG
ARTICLE DETAIL

文章详情

深耕前端与后端开发技术的一线实战笔记与踩坑复盘。

用 yomiyasu 推敲 AI 生成的代码评审日语:以服务层职责拆分重构建议为例

用 yomiyasu 推敲 AI 生成的代码评审日语:以服务层职责拆分重构建议为例 【免费下载链接】yomiyasuAI生成の日本語を自然な日本語へ推敲するAgent Skill / Agent Skill for Refining AI-Generated Japanese into Natural Japanese项目地址https://gitcode.com/gh_mirrors/yo/yomiyasu点击查看免费下载导读yomiyasuよみやす是一个面向 AI 生成日语的推敲リライトAgent Skill专门修正不自然的比喻、模糊的主谓关系与多余的装饰在保持原意的前提下把文章整理成自然、可读的日语。本文以仓库语料库中的一篇推敲样本 tests/corpus/yomiyasu_rewritten/07_code_review_sonnet_default_bl.md 为核心它是一份针对服务层职责混在一起的代码评审建议展示了 yomiyasu 如何在保留技术主张Repository 拆分、接口抽象、测试可替身化、事务边界管理、增量重构路径的同时把 AI 生成的日语文体整理得自然易读。读完本文你将理解这一推敲样本的前后差异、背后的推敲原则与可验证的工程内容并掌握用同款 Skill 和配套脚本在自己项目中复现、检验这一流程的方法。一、案例定位语料库中的一篇代码评审推敲样本1. 文件命名与语料分组该样本位于tests/corpus/yomiyasu_rewritten/文件名07_code_review_sonnet_default_bl.md中的信息可以这样拆解07_code_review语料主题即代码评审Code Review场景sonnet原始文本由 Claude Sonnet 系列模型生成default语气tone为默认档语料中还有casual与formal两个对照档blblacklist的缩写表示这一篇是在禁用 AI 味表达的提示词约束下生成的基础稿之上再经 yomiyasu 推敲而成的版本不带bl的同名文件07_code_review_sonnet_default.md则是对应基础稿本身。语料库把同一主题的文档分成了三组便于对比分组目录含义tests/corpus/raw_ai/素の LLM 输出不加任何约束的原始 AI 生成文本tests/corpus/blacklist_ai/加了禁用表达提示词后生成的文本tests/corpus/yomiyasu_rewritten/yomiyasu 推敲后的成品blacklist的生成方式可以在 scripts/build_corpus.py 中确认脚本定义了BL_DIRblacklist_ai目录和BLACKLIST_PROMPT_SUFFIX在原始提示词后追加「手触り」「解像度」「地味に効く」「〜側に倒す」「静かに壊れる」「時間を溶かす」などの AI らしい表現は絶対に使わないでください这类约束见 scripts/build_corpus.py。也就是说本文分析的推敲样本其基础稿已经先做了一层禁用词约束yomiyasu 的推敲是在此基础上继续处理句子结构、文末、段落逻辑等更深一层的问题。2. 推敲后的成品全文为便于后续逐段分析这里完整引用该推敲样本的正文このサービス層では、1つのメソッドにDBアクセス、外部API呼び出し、ビジネスルールの判断が混在しています。ロジックを確認するたびにDBとAPIのモックを用意する必要があり、単体テストを書きにくくなっています。外部APIの仕様やテーブル構造が変わると、サービス層も修正しなければなりません。次のように責務を分けることを提案します。DBアクセスはRepositoryに移し、サービス層はインターフェース越しに呼び出します。外部API呼び出しはClientクラスにまとめ、タイムアウトやリトライもそこで扱います。サービス層には、割引の適用条件や状態遷移といったビジネスルールの判断だけを残します。こうすると、サービス層のテストはRepositoryとClientのスタブだけで書けます。トランザクションの境界も、サービス層の1か所で管理できます。一度に全部を直すのが大変であれば、まず外部API呼び出しの切り出しから始めていただければと思います。三段分别承担问题描述 → 重构提案 → 收益与推进路径的完整论述且全程使用敬体です/ます没有任何列表、加粗、emoji 或装饰性冒号。二、逐段解读这篇代码评审在说什么推敲只是把话说得自然前提是技术内容本身要准确。这一段内容本身就是一个经典的服务层职责拆分重构建议可以拆成三个工程问题来读。1. 第一段问题定义——单一方法里的三种职责原文指出一个典型的上帝方法God Method问题一个方法里同时混着三类东西——DB 访问持久化操作外部 API 调用跨进程通信ビジネスルールの判断业务规则判断如折扣适用条件、状态迁移。它带来两个直接后果单测难写每确认一次逻辑都要准备 DB 与 API 的 mock测试前置成本高测试代码往往比被测代码还长变更传导外部 API 的规格或表结构一旦变化服务层也必须跟着改——因为服务层直接依赖了这些易变的外部细节。这个判断与 tests/corpus/blacklist_ai/07_code_review_sonnet_default.md 中的表述一致この状態だと、ロジックの確認に毎回DBとAPIのモックが必要になり、単体テストが書きにくくなります。また、外部APIの仕様変更やテーブル構造の変更が、そのままサービス層の修正につながります。推敲版只是把この状態だとまた这类衔接表达换成了更直接的陈述没有改动问题本身。2. 第二段重构提案——把职责交给各自的容器推敲版用三个排比句给出方案且三个动作都明确DB 访问 → Repository持久化收敛到仓库对象服务层只通过**接口interface**调用它。接口在此的作用是切断服务层对具体存储实现的依赖让用什么存储成为可替换的决策外部 API 调用 → Client 类把 HTTP 细节封装进独立的 Client 类超时timeout与重试retry也归它管。这样重试策略、超时阈值这类与网络相关的横切关注点不会散落在业务代码里服务层只保留业务规则判断例如割引の適用条件折扣适用条件、状態遷移状态迁移这类纯业务判断留在服务层。这套划分对应工程上的关注点分离Separation of Concerns与依赖反转Dependency Inversion稳定的业务规则留在中间不稳定的外部细节存储实现、网络协议退到边界之外并通过接口与客户端类作为端口接入。3. 第三段收益与推进路径推敲版把收益压缩成两点直击可测试性与事务这两个最常被提及的动机可测试性测试服务层只需要 Repository 与 Client 的stub替身不再需要真的 DB 和网络——这正是第一段问题的对症解药事务边界事务トランザクション的边界收敛到服务层一处管理避免事务散落在多个数据访问点导致语义不清。最后给出增量路径一度に全部を直すのが大変であれば、まず外部API呼び出しの切り出しから始めていただければと思います。——如果一次性改造太重先从外部 API 调用入手。这一顺序符合变更影响面小、收益容易验证的重构经验因为外部 API 通常是故障影响最大、最容易用测试覆盖的切入口。三、推敲前后对比yomiyasu 具体改了什么将基础稿 tests/corpus/blacklist_ai/07_code_review_sonnet_default.md 与推敲版并排比较可以看到几类典型改动维度基础稿blacklist_ai推敲版yomiyasu_rewritten提案呈现形式三条-列表DBアクセスはRepositoryに移し…外部API呼び出しはClientクラスにまとめ…サービス層には…だけを残す地の文排比DBアクセスはRepositoryに移し、サービス層はインターフェース越しに呼び出します。外部API呼び出しはClientクラスにまとめ、タイムアウトやリトライもそこで扱います。サービス層には、…だけを残します。测试困难表述この状態だと、ロジックの確認に毎回DBとAPIのモックが必要になりロジックを確認するたびにDBとAPIのモックを用意する必要があり结尾请求语气始めてもらえればと思います始めていただければと思います信息量提出三点测试事务增量路径内容全部保留未增未删具体分析1. 列表转地の文tech 领域的箇条書き 15%目安references/domains/tech.md 明确写道箇条書きは、独立した変更点、手順、担当と結果の対応など、並列関係が明確で読みやすい場合はそのまま残します。全体の15%以下という数値は過剰な箇条書きを見直す目安であり、機械的な上限ではありません。…思考の流れや論理関係が箇条書きによって不自然に分断されている場合は、地の文の段落に統合します。基础稿的三条列表虽然并排关系清晰但整篇仅 3 段列表占全文比例很高推敲版把它转为は…は…は句式的地の文排比三项动作移し→まとめ→残す的主语与对象一目了然且保持了首先 DB、其次外部 API、最后服务层收窄的顺序。这正是逻辑关系不被列表切断时的整合处理同时注意了 tech.md 的约束統合する際は、各項目を文書の立場に合う文末にし、元にない評価や義務〜が大切です、〜する必要があります等を足しません——推敲版没有添加任何基础稿没有的评价或义务性表述。2. 文末与立场助言类文书的请求语气推敲版保留了全文的敬体です/ます并把结尾的始めてもらえればと思います调整为始めていただければと思います。这对应 SKILL.md 中文書の立場と文末的规则代码评审是一份**助言勧め**类文书动作的主体是読み手被评审的开发者结尾的委婉请求属于助言的自然语调因此保留〜していただければと思います而不强行改成〜してください或〜します同时推敲版没有因为使文末更整齐而把提案します扱います残します这些陈述性文末改成号召式语气——说明/提议与请求各司其职。3. 信息不增补没有加戏对比基础稿与推敲版可以发现推敲版没有引入任何新的事实Repository、Client、接口、超时、重试、折扣条件、状态迁移、stub、事务边界、增量路径全部来自基础稿只是换了更自然的表述。这正是 SKILL.md 的情報の不増補足さない原则不得推測补充动作主体、原因、条件、数值、例证或专业术语。同理把 tests/corpus/raw_ai/07_code_review_sonnet_default.md素の LLM 输出也拿出来对照可以看到 raw 版包含第一に/第二に/第三に的三问题枚举、Gateway または Client、以及依存はコンストラクタで注入すれば、テストでスタブに差し替えられます等表述而 blacklist 版与推敲版统一成了Repository Client的方案并保留了核心主张推敲过程没有让这些细节被错误地抹掉或放大。4. 句子结构与衔接推敲版把基础稿的この状態だと、ロジックの確認に毎回…改为ロジックを確認するたびに…必要があり、単体テストを書きにくくなっています用たびに把每次确认都要准备 mock的频率语义保留下来同时以必要があり、…なっています把前提 → 结果的因果衔接得更顺。这与 SKILL.md 中段落と文の論理構造的检查项一致确认连接词、指示词的实际指向保持条件/因果/并列关系的范围不变。四、从推敲结果反推yomiyasu 的关键推敲原则这篇样本可以作为理解 SKILL.md 核心原则的活教材。推敲版之所以读起来自然又不丢信息依赖的是以下几条被严格执行的规则意味の保持四要素主张在说什么、比重什么最重要、断言强度断定/推量/可能、文的功能评价/说明/请求/预定在改写前后必须一致。本文案例中サービス層には…ビジネスルールの判断だけを残します的だけ限定语义被完整保留就是一个典型例证情報の不増補不新增原文没有的主体、条件、数值、例证——推敲版所有事实均可在基础稿中找到出处文書の立場と文末先判断文书是勧め助言还是決まり规则还是説明说明再决定文末。本文是助言类因此保留请求语气同时不把说明性文句强行改成号召段落与文の論理構造一页一段一话题确认连接词与指示词的指向拆分或合并要保证因果、否定、并列、顺序的管辖范围不变tech ドメイン的装饰控制不添加 emoji、装饰性文末冒号、em dash加粗与列表频率有参考上限references/domains/tech.md文長与読点以平均 30〜45 字、每句 0〜2 个読点为目安调整长句与逗号位置但不因句子长而机械拆句。这些原则的完整表述见 SKILL.md 的基本原則一节以及配套的 references/slop-catalog.md不自然词汇与构句的目录如「壊れる」「倒す」「溶かす」等比喻动词的换用建议和 references/domains/tech.md技术文章领域的专项规范。五、在自己的项目里复现推敲 验证流程1. 用 yomiyasu 推敲代码评审类文本把待推敲的文本贴给配置好该 Skill 的 AI 助手Claude Code、Codex、Cursor 等并给出简洁指示この文章を読みやすくして。 ここに修正したい文章を貼り付け需要针对领域细化时可指定 domain代码评审建议一般适合tech或businessREADME.md 对此有说明このコードレビューを技術記事向けに読みやすくして。推敲输出会按 SKILL.md 的出力フォーマット给出正文与変えたところ改动说明書き手に確かめたい点需确认事项等辅助栏便于审阅改动是否越界。2. 用静态检查脚本验证结果仓库附带的脚本可以帮你做客观检查且只依赖 Python 标准库README.md# 检查 Markdown 文件中的 AI 味表达与加粗显示问题 python3 scripts/yomiyasu_lint.py article.md # 严格模式有警告时返回退出码 1适合 CI / Git 钩子 python3 scripts/yomiyasu_lint.py article.md --strict # 输出 JSON 结果 python3 scripts/yomiyasu_lint.py article.md --jsonyomiyasu_lint.py会报告比喻动词、过激加粗/列表、emoji、文末冒号、同一文末连续等AI っぽさ指标以及bold_not_rendered按渲染规则可能不显示的加粗写法候补。需要强调的是脚本的[PASS]只表示按设定规则未发现指摘不证明文章自然或语义等价仍需人工对照详见 README.md 的说明。3. 用差分脚本核对语义增减与文末立场推敲前后各存一个文件用yomiyasu_diff.py对比# 对比原文与改写文并指定文书的立场勧め決まり説明 python3 scripts/yomiyasu_diff.py 元の文.txt 書き直した文.txt --stance勧め # 仅查看文末种类敬体・常体・立场的分布 python3 scripts/yomiyasu_diff.py --endings 対象文.md本文的代码评审样本属于助言勧め类文书因此--stance勧め是合理取值无法确定时省略即可。脚本输出的是供你逐条确认的候选而不是自动判定语义等价的结果——正如 SKILL.md 所强调的要用这些候补反过来检查是否出现了把说明句误改成请求句无端增加评价或义务之类的问题。六、语料库如何支撑质量回归本文案例不是孤立的示例而是 yomiyasu 语料库corpus与自动化检查体系的一部分tests/corpus/benchmark_results.json 记录了语料各组human / raw_ai / blacklist_ai / yomiyasu_rewritten的检查汇总结果scripts/benchmark_corpus.py 负责遍历语料目录并产出汇总 JSON其中把blacklist_ai作为独立分组处理见 scripts/benchmark_corpus.pytests/test_benchmark_categories.py 用回归测试固定了检测器的分类口径例如symbols文末冒号、emoji、括号类装饰记号formatting加粗、列表、否定対比AではなくB类格式metaphor_verbs比喻动词如仕様が壊れます单独计数不与符号、格式混在一起。从 tests/test_benchmark_categories.py 的用例可以看出检测器对 300 字以内的短文会跳过密度类规则避免小样本误报并把符号 / 格式 / 比喻动词三类指摘分开统计——这保证了像本文这样只有 3 段的短样本也能得到口径一致的客观检查结果。七、小结以 tests/corpus/yomiyasu_rewritten/07_code_review_sonnet_default_bl.md 为窗口可以看到 yomiyasu 处理技术类日语文本的完整思路技术主张一字不丢表达层面把列表转成地の文、把文末整理到与文书立场匹配、把句子衔接修到逻辑可追。它不负责替你改架构那仍是评审者自己的工作但它能让服务层职责拆分这样的建议从 AI 味的平铺直叙变成一份可以直接发进 PR 评论或评审文档里的自然日语。配合 scripts/yomiyasu_lint.py、scripts/yomiyasu_diff.py 与 tests/ 中的语料回归体系这一流程可以量化为可检查、可重复的工程实践。如果想深入了解推敲规则本身的细节可以继续阅读 SKILL.md、references/slop-catalog.md 与 references/domains/tech.md如果关注语料生成与检测口径可以查看 scripts/build_corpus.py、scripts/benchmark_corpus.py 以及 tests/test_benchmark_categories.py。赞分享【免费下载链接】yomiyasuAI生成の日本語を自然な日本語へ推敲するAgent Skill / Agent Skill for Refining AI-Generated Japanese into Natural Japanese项目地址https://gitcode.com/gh_mirrors/yo/yomiyasu点击查看免费下载相关推荐yomiyasu 实战把 AI 生成的日语代码评审推敲成自然日语——以服务层职责拆分建议为例yomiyasu 实战把 AI 生成的日语代码评审推敲成自然日语——以服务层职责拆分建议为例 本篇技术指南以仓库评测语料中的一篇真实样例为核心AI 生成的日yomiyasu 推敲实践把 AI 生成的日语代码评审评论改写成自然表达——以「服务层拆分重构」建议为例yomiyasu 推敲实践把 AI 生成的日语代码评审评论改写成自然表达——以「服务层拆分重构」建议为例 导读 本篇文章以开源仓库 yomiyasu 语料库中yomiyasu 实战拆解AI 生成的代码评审建议如何被改写成自然日语——以「服务层职责拆分」样本为例yomiyasu 实战拆解AI 生成的代码评审建议如何被改写成自然日语——以「服务层职责拆分」样本为例 本文以 yomiyasu 仓库语料库中的一篇改写样本—上一篇WarcraftHelper 教程3 步解锁魔兽争霸III高帧率、宽屏与大地图体验下一篇魔兽争霸III优化WarcraftHelper让经典游戏在新电脑上满血复活创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表