LoginSignup
8
1

More than 1 year has passed since last update.

この記事では環境構築の説明はしていません。
ただの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書くのは嫌だという方はやめた方がいいです。

④コンポーネントが見にくい

  • Reactの場合
    緑色のキミがコンポーネントかぁ!とすぐ分かる。
    image.png

  • Laravelの場合
    HTML要素とコンポーネントが同化してます。
    見にくすぎわろた。
    image.png

VSCodeのプラグインで何とかできるかもしれませんが、ワタクシは知りません…

まとめ

一長一短ですね。
メリットデメリットを見た上で、自分に合ってそうと思った方はぜひ「TALL」での開発をしてみましょう。
一回開発してみればドハマりして…飛ぶぞ。

8
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
8
1