nikkie-ftnextの日記

イベントレポートや読書メモを発信

Lint Night #2に向けた#1の復習その2。azuさんの「textlint - Linterの作り方」、自分用インデックスを作るのです #dena_lint_night

はじめに

チューニングOK? nikkieです。

いよいよ明日は4年ぶりのユーフォ新作
そしてLint Night #2もあります!
引き続き#1を復習して#2に備えるのです。

目次

2023/08/04(金) Lint Night #2!!

Lintに興味のあるすべての方のための勉強会 待望の第2回目

とってもよかった#1🤗

Kuniwakさん「LintオタクによるLint解説」を復習しました。

azuさん「textlint - Linterの作り方」

パースができない自然言語に対するLinterのアプローチ (#1のconnpassより)

アーカイブは58:10過ぎから

Linterを作る人向けの発表。
スライドからはリンクが直接辿れ、情報量がすごいです。
アクセスして気づいたのですが、「余り」も必見感👀

「textlint - Linterの作り方」自分用インデックス

再視聴ではありますが、濃密な情報量で、全然消化しきれていない感覚です。
気になった箇所のメモにとどめます。

20分の発表なので、textlintの実装(コードだけでなくOrganizationの切り方なども)を覗いた上でもう何回か見てもいいかもと思っています

なぜ作ったか

  • 書籍の執筆で自分が使うために
  • 自分が使うから、モチベーションが保たれ、開発が進む

対象は自然言語、ゆえにプラガブルへ

スライド中には以下の例があります

  • Input -> ASTと変換
  • Ruleの実装(例:TODOを見つける)
  • MessageのJSONをOutputに変換

(このあたり、教養トークで聞いた処理の流れではないか)

textlintはASTとMessageのフォーマットだけを決めている

3種のプラグイン

  • Parse
    • 入力をASTに変換
    • Parseを追加すれば新しいマークアップ言語に対応できる
  • Rule
    • 検出するルール
    • 新しい自然言語はルール内で扱う
  • Formatter
    • 新しい出力形式もサポートできる

ここまでプラグインにし、ビルトインは一切持たないというある種極端な設計は興味深いです。
メリットだけでなくデメリット(一例:メンテナンス性)も共有されています。
印象的だった言葉は「時間の最適化」

「作る」と「使う」

開発を続けるコツ

  • 使うものを作ろう
  • 作るために使おう

azuさん、作ると使うを徹底されているなと思いました。
自作したSecretlintは自分が使うどのリポジトリにも入れる!
そうするとこういう機能がほしいというのが出てくるとのこと。

作ると使うはフィードバックループですよね。
使って気づいた点を作るにつなげて、どんどんクオリティが上がる!

終わりに

明日に控えたLint Night #2に向けて、#1の「textlint - Linterの作り方」を復習しました。
再視聴ではありましたが、情報量に圧倒されています。azuさん本当にすごい...
自分の文脈で気になるところにインデックスを用意したので、宿題として追いたいなと思っています。

#2ではどんなお話が聞けるのか、当日が非常に楽しみです!