npm パッケージの追加は最低限が良いのでは

2020-07-30

現場でフロントエンド開発をしていると思うのですが、ちょっと安易に npm パッケージを追加しすぎじゃないかなぁと。

というのも、npm パッケージって最低限で良いと思っています。

特に感じるのが lodash あたりで、絶対にいらないよなーと。

確かに便利っちゃ便利なんですけど、npm パッケージとして追加するほどか?と考えてみると、そこまででもないよねという印象です。

結構重いパッケージですし、使いこなせる人も少ない印象です。

せめて導入するにしても、必要な関数だけ個別でインストールするほうが賢いのでは?とは思います。

あとは classnames とかも全然好きじゃないです、いらないですよねこれ。

いや、便利なのはよくわかるんですけど、複数の className をつけるケースとかそんなに多くないですし、やっぱりいらないよなーと。

逆に大量に className を付与するプロジェクトとかは、プロジェクト自体に問題がありそうだよなーと思います。

CSS フレームワーク系も必要性がかなり怪しいケースが多いです。

例えば React と組み合わせる場合、そのフレームワークは React に落とし込んであるのか、きちんと判断する必要があるよなーと。

今どき大量のクラス名で切り替える CSS フレームワークとか化石だと思っていますし、ナンセンスですよね。

Frontend Developer では reactstrapMaterial-UIReact Bootstrap が推奨されていますが、個人的には reactstrap が使いやすそうかなーと。

当たり前ですけど、こういったフレームワークを使う場合は、きちんと使い方を把握してから使わなければいけません。

なのになんとなーく導入して、公式が推奨していない使い方をしている現場を山ほど見てきたので、やっぱり個人的には不要だよなーと思いつつです。

加えて Web デザイナーがいる現場とかだと、知識の共有はかなり大変そうですよね。

Immutable.js あたりも、個人的には好きじゃないです。

なんとなくで導入していた現場で働いたこともありますが、結局 toJS して扱っていたので、これ意味あるのか…?と感じる機会は多かったです。

フロント開発の視点から見ると、ちょっと大げさかなーという印象がありますね。

rxjs あたりもちょっと大げさ感があります、そこまで複雑なことしなくて良くね…?と思うことが結構ありました。

Angularredux-observable が下火になってるのが、何よりの証拠かなと。


npm パッケージを追加して使って終わり!みたいに思っている人が多いですが、世の中に公開されている以上バージョンアップは必須だよなーと思います。

過去一度も npm パッケージのアップデートをきちんと行っていた現場に出会ったことがなく、気づいたら breaking change だらけでどうしようもない、みたいなプロジェクトばっかりでした。

確かに npm パッケージのバージョンアップって難しいです、逆に言えば、バージョンアップの難易度を下げるために最低限のみ導入すべきだと思っています。

React を用いて開発を行うのであれば、少なくとも reactreact-dom だけ導入すれば全て実装できるはずです、流石に厳しいとは思いますが。

話がそれましたが、じゃあ導入した npm パッケージのアップデートはどういったフローを取るべきなのか。

色々と考えてきましたが、一番無難で簡単なのは Renovate だと思います。

調べれば情報はいっぱい出てくると思いますが、要するにパッケージのアップデートを定期的にチェックしてくれて、アップデートがあれば PR を上げてくれる、というやつです。

先月このサイトのリポジトリに導入してみましたが、こいつは超有能です、便利すぎてエグい。

GitHub Actions でデプロイをかけているので、パッケージをアップデートしてデプロイに失敗したら、PR 内でエラーを吐いてくれるという、理想的なフローだなーと。

で、当たり前ですけど、導入して終わりじゃ全く意味がないです。

上がった PR を最速で確認し、merge するか close するか、毎日レビューを行うことが何より大切です。

となってくると、PR を放置しがちな現場とかでは、導入は厳しいのかなーと。

で、これまた当たり前ですけど、パッケージを導入すればするほど PR が上がってくる頻度が上がります。

大量に PR が上がってくると結構うんざりしますし、やっぱりシンプルイズベストだなーと。

© 2018 kk-web