タグ

diffとgolangに関するdelegateのブックマーク (2)

  • 人生を豊かにする文字列diff入門 | フューチャー技術ブログ

    春の入門祭りの8日目です。 文字列の新旧の違いを表現する時によくdiffをとるとか言いますよね。そこで実行されるのが差分アルゴリズムです。差分のアルゴリズムって結構知れば知るほど難しいやつです。「より良い差分」という基準が、状況によって変わるからです。ヒューリスティックなやつです。例えば、HTMLの説明の文章を書いていたとします。タイトルをテーブルに書き換えてみたとします。 どちらも間違ってはおらず、この差分を元にパッチを当てたりも可能です。ただ、読んだ時の読みやすさが違います。 これはもちろん前者と答える人の方が多いでしょう。だって、タグという意味の塊が維持されていますからね。 これは究極的にはわかりやすいdiffというのは「意味」を理解しないと作れないということを意味します。これがdiffは簡単なようで難しいと書いた理由です。もちろん、ほどほどの工数で、ほどほどの見た目のdiffも作成

    人生を豊かにする文字列diff入門 | フューチャー技術ブログ
  • Golangでファイル差分をわかりやすく表示する - 理系学生日記

    ファイルを出力する機能のユニットテストを書く場合に、期待値としてのファイルと生成したファイルを比較し、差分があれば当該差分をきれいに表示したい場合があります。 これはgo-diffを利用することで可能になります。 例えば、以下のような形です。テストが落ちた時にどこがおかしいのか読みやすいですね。 上記を実現しているテストコードはこんな形です。 import ( "testing" // snip "github.com/sergi/go-diff/diffmatchpatch" ) (略) for _, f := range fileNames { expectedFilePath := filepath.Join(expectedDir, f) expected, err := ioutil.ReadFile(expectedFilePath) if err != nil { t.Err

    Golangでファイル差分をわかりやすく表示する - 理系学生日記
  • 1