この記事では環境構築の説明はしていません。
ただのTALL Stackの推し活するだけの記事です。
推し活記事です。(大事なことなので2回言い申した)
※恵美押勝ではない
なんなんすかそれ?
TALL
- TailwindCSS
- Alpine.js
- Livewire
- Laravel
これらの頭文字を並べて「TALL」と呼んでいます。
よいとこ
①ファイルの数を削減できる
TailwindCSSはHTML要素に直接スタイルを書くので、基本的にCSSファイルは無くてもOKです。
Alpine.jsも同様にHTML要素に直接JSを書くので、JSファイルを別で作らなくてOKです。
この2つを使う時点で、基本的にphpファイルだけで開発できてしまいます。
この二者はトレードオフな関係だと思いますが、TALL Stackでの開発は「長いコード/少ないファイル」の方が好きな方に向いている気がします。
Reactみたいにコンポーネントでファイル分割しまくる開発苦手な方はTALLで開発すると良いかも?
②動的な処理がお茶の子さいさい
PHPはサーバーサイド言語なので、ページを切り替えるたびに毎度毎度のサーバーへの通信が起こりがちですが、Alpine.jsやLivewireを使えばまるでSPAのような挙動が実現できます。
③Laravelが使えれば、他の学習コストがそんなに高くない
-
TailwindCSS
慣れるまでチートシートを見ながら開発すればOKなので、実質学習コストゼロ
-
Alpine.js
文法が分かりやすいので、JavaScriptを書ければすぐ使えます。 -
Livewire
LaravelのコンポーネントとMVCを理解していれば同じような感覚で書けるので、実質学習コストゼロ(に近い) -
Laravel
Laravelを使ったことある前提なので、実質学習コストゼロ
④直感的に書ける
説明難しいんですが、TALLは個人的に直感的に書けるなーと思ってます。
基本的にはLaravelのMVCを理解していればTALLは扱えると思います。
Livewireにはライフサイクルが存在するので、そこだけ注意すればOK。
よくないとこ
良いとこだけ書くポジショントーク的なことはせず、ちゃんと良くないとこも書く聖人ムーブをキメていく。
(そもそもそんなポジション持ってない)
①日本語の情報が少ない
Alpine.jsとLivewireはかなり少ないと思います。
エラーや分からないことは公式ドキュメントを読みこむか、英語の記事を検索するかになってしまうのでしんどい。
Alpine.jsの日本語の情報は私が量産しました。
有益かは分からないですが、気になったらQiitaのアドベントカレンダーを見てください。
②フロントはBladeで書かなければならない
Bladeじゃなくてもいいかもしれませんが、LivewireやAlpine.jsを使うとなればフロントはBladeになると思います。
ReactとかVueを使いたい方にとってはちょっと嫌かもしれないです。
ワタクシはBlade信者です。
③HTMLはゴリゴリ書く
②で述べた通り、bladeテンプレートを使うのでゴリゴリHTMLを書きます。
HTML書くのは嫌だという方はやめた方がいいです。
④コンポーネントが見にくい
VSCodeのプラグインで何とかできるかもしれませんが、ワタクシは知りません…
まとめ
一長一短ですね。
メリットデメリットを見た上で、自分に合ってそうと思った方はぜひ「TALL」での開発をしてみましょう。
一回開発してみればドハマりして…飛ぶぞ。