今回は現役のフロントエンドエンジニアが、Web制作案件を行う中でディレクターの方に知っておいて欲しいことをいくつか紹介します。
HTML / CSS / JS(JavaScript)それぞれの役割
ウェブサイトとは切っても切れない関係とも言えるHTML / CSS / JSですが、
実は制作現場のディレクターさんの中には、これらの役割をきちんと理解できていない人も結構います。
実際に筆者が何人かのディレクターさんに聞いた限りでは、概ね以下のような認識でした。
- HTML…文字をブラウザに表示させる
- CSS…見た目を作る
- JS…Webサイトに動きをつける
かなりざっくりですが、一応正解といったところです。
しかし、Web制作に携わる人であればもう少し踏み込んだ理解が欲しいところですね。
- HTML…コンテンツ自体が持つ情報の性質や優先度を決定する
- CSS…Webサイトのレイアウトを全般的に司る。簡単なアニメーションや演出も担当する。
- JS…HTML / CSSでは実現できないクライアントサイド(後述)のその他の処理。
こんな感じでしょうか。ちょっと難しいですね。
いずれもWeb技術として欠かすことのできないものですが、特に重要なのはJavaScriptです。
かつては出来ることが少なく「おもちゃの言語」などと揶揄された過去もありましたが、
Ajaxによる非同期通信、CanvasやWeb GLを用いたリッチな表現、React.jsやAngular.jsといったフレームワークによる開発など、昨今のWebサイト制作には欠かせない要素となっています。
また、node.jsのようにサーバーサイド用の言語として使われている側面もあり、これからの伸びが期待されています。
余談ですが、中にはJSでOSを作ってしまう猛者なんかもいたりします。
「サーバー」と「クライアント」
ウェブサイトは、サーバーと呼ばれるマシン(場合によっては仮想マシン)においてある文字や画像といったデータを、クライアント(閲覧側のマシン)に渡すことで閲覧が可能になっています。
こういった、文字や画像といったリソースの要求をするクライアントと、その要求に応じてデータを提供するサーバーによって通信を行う形態のことを「クライアント–サーバモデル」と呼びます。
制作の現場では毎日のように「サーバーの負荷が~」とか「その処理はクライアントサイドで~」といった言葉が飛び交っています。
一見難しく聞こえますが、とりあえず「ウェブサイトを持っている側」か「ウェブサイトを見ている側か」という認識があれば大丈夫です。
各エンジニアの業務領域
「エンジニア」と一口に言っても、ITの分野では非常に多くの種類のエンジニアが存在しています。
Web制作の世界では、特に以下の3種類のエンジニアが代表的です。
- HTML / CSS / JSを使用してWebサイトの見た目の部分を作るフロントエンドエンジニア
- PHPやJava, Rubyなどを使用してサーバー側の処理を実装するバックエンド(サーバーサイド)エンジニア
- Webサイトが動作するサーバーの構築を行うインフラエンジニア(バックエンドと兼務することもあります)
これらはそれぞれの分野が高度な専門知識を要するため、「エンジニア」という言葉だけで十把一絡げにはできないのです。
まとめ
今回は現役フロントエンジニアが実際のWebディレクターさんに「これだけは知っておいてほしい!」と思っていることを挙げました。
どんな仕事もそうですが、Web制作の世界も「自分の分野だけわかっていれば良い」というものではありません。
Webブラウザという制約の多いメディアの中で行う表現には、技術的に実現不可能なことが多々あります。
プロジェクトに関わるメンバーそれぞれが「やりたいこと」と「できること」を理解し合い、実現可能な範囲で出来得る限りの最適解を見つけていくことが非常に重要です。