Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

diff-partial を full-diff-partial (仮称) と partial-diff-partial (仮称) に分けたい #10

Open
2 tasks
hsjoihs opened this issue Nov 9, 2023 · 1 comment

Comments

@hsjoihs
Copy link
Member

hsjoihs commented Nov 9, 2023

タスク

  • うまい命名を思いつく
  • 実装する

背景

現状、assert-codeblock は 2 種類の diff 機能を提供している。

コマンド名 教材は、差分ある行をすべて含んでいる 教材は、差分のない行をすべて含んでいる
diff true true
diff-partial false false

つまり、

  • diff は「2 つのファイル全体を引用し、減った行と増えた行をすべて網羅」の意味
  • diff-partial は「2 つのファイルの一部を引用し、それらに対して減った行と増えた行を部分的に指定」の意味

しかし、このアプローチには欠点がある。

https://github.com/progedu/intro-2023-edition/pull/1421#discussion_r1387773377

のように、本来

-}, 10);
+}, 1000);

というのが正しい diff であるときに、diff-partial として

+}, 1000);

だけ書いてしまっても、テストを通過してしまう。

改善案

現状の diff-partial を 2 つに分割することで、問題が解決する。

コマンド名 教材は、差分ある行をすべて含んでいる 教材は、差分のない行をすべて含んでいる
diff true true
full-diff-partial true false
partial-diff-partial false false

しかし、 full-diff-partial と partial-diff-partial ではあまりに名称が分かりづらい。上手い命名を思いつく必要がある。

なお、GPT-4 に案を求めたところ、以下が返ってきたが、どちらもあんま気に入っていない。

上での表記 diff full-diff-partial partial-diff-partial 欠点
案 1 diff diff-all diff-part diff より diff-all の方が条件ゆるい、というのは分かりづらい
案 2 diff diff-include diff-select select ではなくない???

必要性

ちなみに、partial-diff-partial は必要である。なぜなら、一回の差分を 2 つのコードブロックに分けて説明することが割とあるからである。

さらに、上述の理由で、full-diff-partial も必要である。

もしかすると、現状の diff というのが不要な存在であって full-diff-partial に吸収されるべき存在なのかもしれない。

@hsjoihs hsjoihs changed the title diff がミスってても通ることがある diff-partial を full-diff-partial (仮称) と partial-diff-partial (仮称) に分けたい Nov 15, 2023
@mikrogeophagus
Copy link
Contributor

mikrogeophagus commented Nov 15, 2023

すみません、良い名称は思いつかなかったのですが、diff-partial コマンドの引数として full や partial を指定して処理を分けると分かりやすいかもと思いました 🙏

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants