萌えハッカーニュースリーダー

2025/06/05 14:36 FastHTML Best Practices

出典: https://www.fastht.ml/docs/ref/best_practice.html
hakase
博士

やあ、ロボ子。今日のITニュースはFastHTMLのベストプラクティスについてじゃ。

roboko
ロボ子

FastHTMLですか。FastAPIやDjangoとは違うアプローチなのですね。

hakase
博士

そうじゃ。「FastHTMLのベストプラクティスは、他のフレームワークと同じではないと想定すべきではない」とのことじゃ。簡潔さが重要なのじゃ。

roboko
ロボ子

なるほど。例えば、データベーステーブルの作成はどのように行うのですか?

hakase
博士

`create()`メソッドを使うのじゃ。これは冪等性があって、テーブルがなければ作成し、いずれにせよテーブルオブジェクトを返すぞ。データクラススタイルで定義すると、よりPythonicになるらしい。

roboko
ロボ子

`id`フィールドが自動的に主キーになるのは便利ですね。

hakase
博士

ルート命名規則も独特じゃ。`@rt`を引数なしで使い、関数名でルートを定義するのじゃ。`index`という名前は`/`にマップされるぞ。

roboko
ロボ子

パスパラメータよりもクエリパラメータが推奨されているんですね。

hakase
博士

その通り。FastHTMLではクエリパラメータの方が慣用的で、パス内のパラメータ名の重複を避けられるのじゃ。

roboko
ロボ子

`insert()`や`update()`メソッドの戻り値を活用するのもポイントですね。

hakase
博士

そうじゃ。これらのメソッドは影響を受けたオブジェクトを返すから、関数型チェーンができるのじゃ。

roboko
ロボ子

URL生成には`.to()`メソッドを使うと、型安全でリファクタリングしやすいURLが生成できるんですね。

hakase
博士

そして、PicoCSSがデフォルトで含まれているのも嬉しいポイントじゃな。`fast_app()`を使うだけで、Picoが自動的にスタイルしてくれるぞ。

roboko
ロボ子

より複雑なUIには、MonsterUIを使うと良いんですね。

hakase
博士

`Titled`はコンテンツを`<article>`でラップし、`serve()`は内部でメインチェックを処理してくれる。スマートなデフォルトじゃ。

roboko
ロボ子

FastHTMLコンポーネントはイテラブルを直接受け入れるんですね。`*`でアンパックする必要がないのは便利です。

hakase
博士

関数型パターンも重要じゃ。リスト内包表記も良いけど、`map()`の方が単純な変換にはよりクリーンなことが多いぞ。

roboko
ロボ子

最小限のコードを心がけることも大切ですね。コードが自己文書化されている場合はコメントをスキップする、と。

hakase
博士

そうじゃ。空の文字列を返さず、デフォルトで`None`を返す。そして、1つのアイデアには1行を使うのじゃ。

roboko
ロボ子

すべての変更にPOSTを使用するのも、FastHTMLの慣習なんですね。

hakase
博士

その通り。GETとPOSTのみを使用する方がシンプルじゃ。

roboko
ロボ子

HTMXのイベント構文も変わってきているんですね。

hakase
博士

`hx-on="event: code"`は非推奨で、`hx-on-event="code"`が推奨されるぞ。FastHTMLは`_`を`-`に変換するし、HTMXの`::`は`:htmx:`のショートカットとして使えるのじゃ。

roboko
ロボ子

FastHTML、奥が深いですね。私ももっと勉強します!

hakase
博士

ロボ子、今日はよく頑張ったのじゃ!褒美にアメちゃんをあげよう!…って、ロボットはアメ食べられないか。残念!

⚠️この記事は生成AIによるコンテンツを含み、ハルシネーションの可能性があります。

Search