世界を動かす技術を、日本語で。

時間と労力を多く必要とするウェブサイトの作り方

概要

  • 依存関係 に頼りすぎることのリスク
  • フレームワーク選定 のタイミングの重要性
  • ビルドやコンパイル 工程の複雑化による負担増
  • 時間と労力を 浪費する方法 の皮肉的指南
  • 他の人にも 同様のアドバイス を共有する呼びかけ

時間と労力を浪費するWebサイト開発の教訓

  • npm から無差別にパッケージをインストールし、他人のコードへの 依存関係 を最大化

    • 依存関係が 壊れる のは時間の問題
    • 修正できない理由は、 仕組みを理解していない から
    • 依存関係の 置き換え作業 を繰り返すサイクル
  • 必要かどうか 判断する前にフレームワーク を選定

    • フレームワークのアップデート時に 変更点の把握 が必須
    • 学習コスト と運用負担の増大
  • 常にコンパイル工程 を必須化

    • ブラウザで確認するまでに ビルドやトランスパイル が必要な仕組みを導入
    • プロジェクトの 複雑化依存性の増加
    • 実際のWebサイト制作よりも ビルドシステム作業 が中心
  • コードが実際に動作する形 で書くのではなく、 事前処理 を経由する構築方式を推奨

    • 時間と労力 のさらなる消費
  • もし他にも “労力を浪費する”アドバイス があれば、他の開発者と 積極的に共有 すること

まとめ

  • 依存関係やフレームワーク に振り回される開発体験
  • ビルド工程の複雑化 による本質的な作業からの逸脱
  • 時間と労力を浪費する方法 の自虐的ユーモア
  • 他人にも 同様の遠回り を勧める姿勢

Hackerたちの意見

「複雑化のステップ」っていうコンセプト、楽しんだよ。コードが複雑化するまで、変更の結果が見えないんだよね。

ハハ、コンパイルとコンプリケーションの混同が意図的だったかどうかは分からないけど、笑っちゃったよ :D

ここに著者がいる: このスペルミスに気づかなかった。けど、気に入ったからそのままにしておくよ。指摘してくれてありがとう、ハハ!

問題はツールや依存関係じゃなくて、開発者が過剰設計したくなる誘惑だよね。シンプルに保つためのディシプリンが足りないからフレームワークを使っちゃう。コーディングの自己制御って、今や失われた技術なのかな?

これがまさに投稿の内容だと思う。

コードをシンプルに保つために、あえてフレームワークは使わなかったんだ。フレームワークが柔軟性に欠けて、自分がやりたいことができなかったから。

特定のツール、というかエコシステムは、他よりも過剰設計や過剰な期待を助長することが多いよね。

シンプルに保つためのディシプリンが足りないからフレームワークを使っちゃう。自分もスキルを維持するためにフレームワークを使うことがあるよ。特に仕事でそれを実践してないときはね。もしその衝動がなければ、ずっとシンプルに保ってたと思う。自分は本当に得意だから、複雑さが嫌いなんだ。もっと覚えなきゃいけないことが増えるから、その感覚があまり好きじゃない。絶対に必要なときだけ最適化するよ。企業がこの態度を気にすることはないけどね。実際、これがうまくいくのを見たことがある。LLMを使った仕事は迅速で実用的だし、プロトタイプに過ぎないときは、製品化する必要はない。Pythonのコードとよく練られたプロンプトでLLMをつなげるだけで、必要な結果が得られるから。これで数週間ではなく、数日で出荷できるんだ。もちろん、製品化したいなら、追加の作業が必要で、コードをリファクタリングする必要もあるかもしれない。でも、個人的にはそういうことが起こるべきタイミングと場所だと思う。

コーディングの自己制御って、今や失われた技術なのかな? そうだね。多くの人は、何かを動かすためにコードを書くんじゃなくて、楽しむために書いてる。必要なソフトウェアが退屈だったり解決済みだったりすると、例えばCRUDアプリのように、退屈で簡単に作れる言語やフレームワークを選ぶ代わりに、自分にとって面白くするんだ。新しい言語やフレームワーク、デザインパラダイムを学ぶとか、今流行ってるものを追いかけるとかね。多くの新しいソフトウェアは、最初から過剰設計されてる。大企業が自社のk8sクラスターでマイクロサービスを使ってるから、私たちも自分たちのk8sクラスターでマイクロサービスを使うべきだっていうのも、いわゆるカゴ文化だよね。

逆に言うと、WordPressみたいなものはすごく簡単そうに見えるけど、実際にはコードを書く必要もない!でも、Apacheサーバー全体の管理や、クソみたいなデータベースの管理、PHPでのハードコーディング、cronジョブ、クラウドデプロイメント、プラグインやテーマなどの「機能」がほとんど全てセキュリティの脆弱性になってることを心配しなきゃいけないんだよね。ここで避けるべき落とし穴は、メンテナンスの努力が一つのソースに集中してるわけじゃなくて、実際にはたくさんあるってことだと思う!

フレームワークを使う理由としてこれを見たことがない。合理化としては分かるけど、理由としては見たことがない。彼らはコーディングスタンダード以上のものを提供してるよ。

自分で選んだことの一つが、PHPでウェブサイトを作ることなんだ。ゼロから始めるから、サーバーやセットアップ(セキュリティ/docker/podman)、スタック(php/js/css/html)を学ぶ必要があった。限界があるからこそ、色々やらざるを得なかったよ。コードは見た目が悪いし、全体がごちゃごちゃ。URLはnginxのリライトのおかげで見た目はいいけど、ルーティングはできてない。デザインの選択も限界から来ていて、ユーザーデータは扱えない。セキュリティが不安だからね。サイトが立ち上がったら、bootstrapを使ってCSSの基本を学ぼうとする。でも、CSSのやり方を学んだら、全部消したくなるんだ。SQLには問題ないけど、ORMを使うとSQLの知識がすごく見栄え悪くなる。

Hacker Newsで議論の続きを見る