まるっと!Web開発の基礎知識
まるっとわかる!Web開発の基礎知識です。
まずは、必要な知識を簡単にまとめましたので、見てみましょう。

覚えることが多くて困りますね。
ですが、すべての知識が必要な訳ではありません。サーバー、プログラミング言語、データベースなどはユーザーの要望に沿ったものを選択すれば大丈夫です。
例えば、PHPでシステム開発をする場合を考えてみましょう。
必要な知識としては、
<クライアント>
・HTML、JavaScript、CSS
<サーバー>
・ Apache、CakePHP ( PHP )、MySQL(SQL)
<開発ツール>
・テキストエディタ
…どうでしょう?最低6つの知識があれば、システムを開発できますね。
では、もう少し簡単に。
CMS(コンテンツマネージメントシステム)を利用して、ホームページを作る場合を想定してみましょう。サーバーはレンタルサーバーを利用することにします。
この場合、クライアントとサーバーの区分けを意識する必要がありません。
<WordPressの場合>
・HTML、JavaScript、CSS、PHP、(WordPressの基礎知識)
サーバー側をほとんど意識することなくホームページ制作できることがわかります。
主にデザイナー向けですね。

次に、最初の図にある通り、システムエンジニアが覚えておくべき知識を順に説明します。
<クライアント>
HTML、JavaScript、CSSの3つの知識は最低限必要になります。個々の解説はここではしませんが、今は JavaScript をそのまま使うよりも jQuery の方が好まれるようです。
<サーバー>
Windows Server か、Linux(RedHat、CentOS、FreeBSD、など)か、 どのOSのサーバーを使うのかを決めなくてはいけません。
Windows Server であればある程度、GUIで直感的にわかるかもしれませんが、Linuxであれば、基本はCUIの動作になりますので、コマンドを覚えないといけませんね。
<Webサーバー>
使われることが多いのは Apache になりますが、プロジェクトによって、nginxやIISなどを使う場合もあります。
図の一覧には記載しませんでしたが、Node.js を使う場合もありますので、こちらも知っておくとなおよいかもしれません。
<Webアプリケーションサーバー>
Java を動作させるためには、Webサーバーとは別にWebアプリケーションサーバーを準備する必要があります。
WebSphereは有償、Tomcatはオープンソースです。
<プログラミング言語>
有名なものとしては、Java、VB.net、C#、PHP、Ruby、Perl、などがあげられます。もちろん、これ以外にもプログラミング言語はありますので、必要に応じて覚えるとよいと思います。
私としては、複数のプログラミング言語を使いこなすよりも、1つのプログラミング言語に絞って、狭く深く知識を得ることをお勧めします。
<フレームワーク>
フレームワークを利用しなくても Webシステムの構築はできます。ですが、開発の工数を削減するため、バグをできるだけ少なくするためにも、プロジェクトが大きくなればなるほど、フレームワークを利用したほうがよいでしょう。
プログラミング言語を覚えることも大切ですが、フレームワークの使い方を覚えることもとても大切です。同じプログラミング言語でもフレームワークによってソースコードの書き方は全くちがうものになります。
プロジェクト(会社)によっては、独自のフレームワークを利用することもあります。その場合、フレームワークの使い方の指導があると思いますので、しっかりと聞くようにしてください。
有名なフレームワークをプログラミング言語別にいくつか例示します。
・Java・・・Spring、Seasar2、Play Framework、Struts、JSF、など
・VB.net / C# ・・・ASP.net
・PHP・・・ Laravel、 CakePHP、Symfony、など
・Ruby・・・Ruby on Rails、など
その他、たくさんありますので気になる方は調べてみてください。
<データベース>
大きくは、有償のものと無償のものに分かれます。
・有償・・・Oracle、DB2、SQL Server、など
・無償・・・Postgresql、MySQL、など
データベースにアクセスするためにはSQLを利用しますが、データベースによって少しずつちがいがあることを覚えておいてください。
<開発ツール>
開発ツールもプログラミング言語によって多種多様です。また、同じプログラミング言語でもプロジェクトによって開発ツールは異なります。
一般的に使われるものとしては、以下のものがあります。
・Eclipse・・・ Java、PHP、など
・Visual Studio・・・ VB.net、C#
・テキストエディタ・・・プログラミング言語問わず
Excel VBAを使って、ソースコードの雛型を出力する場合もあります。
<データの一時保存>
データの入出力は主に、Http Request、Http Response、Session、Application と分かれています。
・Http Request / Http Response・・・ボタンを押されてから次の画面を表示するまで
・Session・・・ユーザー毎(セッションID毎)にWebサーバーに保存
・Application・・・システムにおけるユニークな値
どの領域にデータを保存するのか意識しないと、サーバーのメモリが足りなくなり、システムが停止する可能性がありますので注意しましょう。
Webシステムの開発には、広く、深い知識が必要です。
すべてをひとりで覚えることは難しいので、クライアント側のデザインはデザイナーに。サーバーの構築はインフラ担当のエンジニアに。コーディングはプログラマーに。データベース管理は、データベースエンジニアに。
エンジニアには、様々な役割がありますね。