banner
cos

cos

愿热情永存,愿热爱不灭,愿生活无憾
github
tg_channel
bilibili

浅談フロントエンドの変化と不変

以前の考えが面白いと思ったので、少し手を加えてブログに載せることにしました。このタイトルは一見すると威圧的ですが、実際にはあらゆる業界に適用できます。


最近、誰かが「フロントエンドを体系的に学ぶ方法」について議論しているのを見ました。多くのフロントエンドアーキテクチャの要素は何年も変わっていないため、全体のアーキテクチャ設計やコードの複雑さの管理にもっと注目すべきだと述べていました。

私はこの意見に賛成ですが、いくつか補足したい点があります。フロントエンドは非常に広範な分野であり、細分化すると toC フロントエンド、toB フロントエンド、インフラフロントエンド、WebGL フロントエンドなどがあります。体系的に学ぶためには、まず方向性を明確にする必要があります:ユーザー体験に集中するのか、ビジネスロジックを深掘りするのか、ツールチェーンの開発に取り組むのか?異なる方向性では深掘りすべき内容が全く異なります。

さらに、フロントエンドは一成不変ではありません。ユーザーは企業システムのユーザーだけでなく、創造的表現や視覚的展示に焦点を当てた多くのタイプもいます。ゲームフロントエンドはフロントエンドであり、未来の VR/XR ページもフロントエンドです。ブラウザプラグインや小プログラムの開発もフロントエンドに含まれ、Node 開発もフロントエンドと見なされます —— さらに広義に言えば、クロスエンド開発もフロントエンドの一種の延長といえるでしょう。

toC フロントエンドの視点からアドバイスをするなら、フロントエンドアニメーション、CSS、Three、インタラクション表現、パフォーマンス最適化、SEO…… それぞれの背後には一つの知識体系があり、深く掘り下げることは終わりがありません。そして技術選定は、しばしばビジネスニーズに従って行われるため、万能の「ベストプラクティス」は存在しません。

一方で、フロントエンド技術自体も継続的に「変化」しています。例えば CSS について言えば、これらの年、プリプロセッサーを排除し、より使いやすくするために努力してきました:ネイティブのネスト構文、@if関数、アンカーポイントの位置決め、コンテナクエリ、shape()関数…… かつてはプリプロセッサーやHack方式で実現していた多くのことが、今では徐々に標準化されています。ブラウザの互換性も着実に向上しており、Safari も追いつこうと努力しています —— 例えば、iOS 26 で WebGPU がついにサポートされることになりました(普段は Safari に文句を言っていますが、より多くの機能がサポートされ、漸進的な強化が実現可能になるのは確かに良いことです)。

フロントエンドには今でも多くの歴史的な遺産問題が残っていますが、私たちはそれが改善されていることを認識すべきです。このトピックに興味があるなら、以前読んだ素晴らしい記事をお勧めします:HTML is Dead, Long Live HTML、非常に深い内容です。

私の見解では、フロントエンドの「変化」は、外部の技術形態の迅速なイテレーションにもっと表れています ——CSS 標準は絶えず更新され、ビルドツールは新しいものが登場し、フレームワークのエコシステムは絶えず変動しています。今日の流行は Webpack ですが、明日は Vite に変わるかもしれません;Vue 2 を理解したばかりなのに、Vue 3 の Composition API が主流になっています。このような変化は表面的でツール的であり、まさにフロントエンドが他の人に最も見られ、最も批判される部分です。

「不変」の部分は、根本的な問題とコアデザイン思想です:状態を管理する方法、コンポーネントを分解する方法、レンダリング効率を最適化する方法、メンテナブルなコード構造を実現する方法、ユーザー体験の一貫性を保証する方法。これらの命題は、初期の jQuery 時代から現在の React や Solid.js に至るまで消えることはなく、異なる技術パラダイムの下で異なる構文とアーキテクチャで再現されてきました。

私はフロントエンドの発展は、本質的には「表現方法の進化」であり、「問題の置き換え」ではないと考えています。

したがって、フロントエンドを学ぶことは、盲目的に新しいツールやフレームワークを追いかけることではなく、変化の中で持続的に不変な原則を見極めることです —— それらを理解することで、真に自分自身の、移植可能な技術能力を築くことができます。

最後に言いたいのは、フロントエンドは「熟練度」の競争だけではないということです。それはインターフェースの表層もあれば、エンジニアリングの深さもあります;インタラクションの詳細に対応する必要があり、アーキテクチャの安定性を把握する必要があります。アニメーションを書くことは、単に setInterval を使うこともあれば、レンダリング原理、パフォーマンスレベル、視覚アルゴリズムに深く掘り下げることもあります。「どうやってやるか」を選択すること自体が、技術的な判断とアーキテクチャの思考のプロセスです。

どんな技術も、繰り返しと蓄積が基盤です。しかし、もしあなたがフロントエンドが「ページを切り、スタイルを調整し、インタラクションを書く」ことに過ぎないと考えているなら、この分野を本当に過小評価しています。

「技術的な価値がない」とは、もしかしたら本当に複雑な問題に直面していないからかもしれません。

ここまで書いて、実はどんな方向にも当てはまるような気がします、ハハハ。


時々思うのは、フロントエンドの真の魅力は、まさに「表現」に非常に近いところにあるのかもしれません。

海外の小さくて美しいウェブサイトをたくさん見て、本当に羨ましく思います —— 一枚のアルバム、一人の画家、一つの公益提案、一軒の街角のホテル、さらには一つの地元の食品のために、誰かが独自のスタイルを持った小さなウェブサイトを丁寧に作り上げることを望んでいるのです。それらは必ずしも複雑ではありませんが、個性に満ち、創作者の温かさと思慮が込められています。

Example

「何でも小さなウェブサイトで展示できる」という文化は、ウェブの最初の姿を思い起こさせます。常に批判があり、常に愛されています。フロントエンドは要求を実現するためのツールであるだけでなく、創造的表現のキャンバスにもなり得ます。

おそらくこれこそがフロントエンド技術が常に人々を惹きつける理由です:それは常に人々の美への追求、創造的表現、そしてすべてのアイデアがしっかりと表現される価値があるという信念を担っています。

読み込み中...
文章は、創作者によって署名され、ブロックチェーンに安全に保存されています。