フロントエンドで使ってるものがあまり変わってない
自分のスタックはあまり変わっていない。ほとんど10年のツケを払っていない。学習能力が低いせいでもあり、選んだスタックがバージョンを重ねている成果でもある。
毎回使う
フレームワーク:Vue.js
- 消耗、などの意見が散見されたが、べつに今でも便利に使えている。
- browserifyやwebpackがあれば便利だけど、なくてもいい、ってバランスが好き
- データフローは特に考えない。状態がそこにあるので書き換えれば良い。
- あまり頭を使わなくていいのが助かる
Reactの考え方は好きなのだけど、よっしゃFluxやるぞって気持ちにはならず、Reactのみでよしなにやるソリューションが広まったらいいなと思う。
ビルドシステム: browserify / watchify
- substackの作るものはどれも品質が高いので、もうsubstack製品だけ使っていればいいやという気持ちになりがち。余計な処理が全然無いってのが安心感がある。
- watchifyはそんじょそこらのwatcherのように暴発がなく安定して動く感じがある。安心して100%依存しているし、他のwatcherを併用しないようにしている。
タスクランナー: npm run
gulpやgruntを使わず、npm run-scriptでなんでもやろうっていう方針。
- run-scriptが長くなると破綻するという話もあるが、.babelrcやbrowserify transform fieldでなんとかならない?
- なんとかならないケースはgulpを使う時もあるが、あってもbuildタスク一つだけにする。watchに凝りだすと沼に入る。
UIフレームワーク: 使わない
- Sanitize.cssは必ず適用する。無いとフォーム周りで死んだりする
- とにかくCSSの総量を削減することが大事だと思っているので、可能な限り自分で書く。
- だるい場合は、Semantic UIを使うこともある。マージン設計が適切ですっきり見えるし、アニメーションがシュッとしてるので高級感が漂う
- UIフレームワークを使う場合は、less or sassでコンポーネントのみインクルードしたほうがよい。グローバルにいろいろなものが展開されることになる(そのうち使っているのは10%だけ、とかもありがち)。
- flexboxはおおまかなレイアウトには使うが、使い過ぎない。地雷を把握してればいいんだろうけど。
オプション
TypeScript
- OOPを採用したい時に使う。
- 別言語からの移植を行う場合は必須
- Vue.js公式が使っていないのでオプションにしているだけで、最近は必須にすべきかなぁと思っている。
less
- 以前はstylusを好んでいたが、IDEのサポートが手厚いのでlessに舞い戻った。
- シングルクラス派なので、mixinが存在するだけでかなり違う。
sushipm
https://github.com/sushicorp/sushipm/
package.jsonにrun-scriptを追加したり、index.htmlの雛形を生成したりする自家製ツール。
sushipm create index.html
とかする。sushipm dev
コマンドはwatch
のついたrun-scriptをparallelshellでまとめる機能で、お気に入り。
Babelは使わないのか
最近Babel使わなくていいんじゃないか説が自分の中で生まれている。便利には違いないけど、自分はそれほど賢くないので、レイヤが増えた時ハマりそうと思っている。
開発中に、babel導入ですごい改善しそうな雰囲気が出てきたら使うかもしれないけど、開発初期からは入れない。
- IE11以降であればブラウザネイティブでclassが使える
- arrow functionは使えなくても死なないし、腱鞘炎だけ気をつければよい
- importはTypeScriptと解釈が揃っていないので、requireを使っている。すなわちbrowserifyがあればいい
- (たとえbreakingな変更になったとしても標準とずれてしまったら揃えるべきじゃないのかな…)
- yieldは使えないけど、フロントエンドでさほど出番ないような気がする。サーバサイドではNodeなのでネイティブで使える。
- const / letは使いたいが、今のとこなくてもいいかな。
VSCodeは結構補完が効くので、腱鞘炎はあんまり危惧していない。
自分の賢さに合わせる
RPGでも、力が足らなければ装備できない武器があるわけで、使えなくても悲観することは無いと思う。自分は諦めがいいほうなので、React/Fluxスタックからは早々に退散した。
自分が装備を選ぶ基準は、こんぼうであることである。取っ手がついていて殴れればそれでよく、更に釘が飛び出ていたら最高だけど、こんぼうの先からビームが出るべきではない。たとえ、にくいライバルのあいつが鋼の剣を持っていたとしても、スライムを倒すにはこんぼうがいいのだ。もっといいのは、地面に落ちている石を使うことだ。どこにでもあってすぐ使える。格好をつける必要はない。石にもこんぼうにも設定は必要なく、プラグインも必要ない。