まるっと!Web開発の基礎知識

はじめに。
Web開発に必要な基礎知識のまとめ。

まるっとわかる!Web開発の基礎知識です。

まずは、必要な知識を簡単にまとめましたので、見てみましょう。

覚えることが多くて困りますね。

ですが、すべての知識が必要な訳ではありません。サーバー、プログラミング言語、データベースなどはユーザーの要望に沿ったものを選択すれば大丈夫です。

PHP での開発を例にすると…

例えば、PHPでシステム開発をする場合を考えてみましょう。

必要な知識としては、

クライアント(フロントエンド)

・HTML、JavaScript、CSS

サーバー(バックエンド)

・ Apache、CakePHP ( PHP )、MySQL(SQL)

開発ツール

・テキストエディタ(VSCode など…)

まとめると…

…どうでしょう?最低6つの知識があれば、システムを開発できますね。

では、もう少し簡単に。

WordPress を使った場合は…

CMS(コンテンツマネージメントシステム)を利用して、ホームページを作る場合を想定してみましょう。サーバーはレンタルサーバーを利用することにします。

この場合、クライアントとサーバーの区分けを意識する必要がありません。

WordPressの場合

・HTML、JavaScript、CSS、PHP、(WordPressの基礎知識)

サーバー側をほとんど意識することなくホームページ制作できることがわかります。

実際にフルスタックエンジニアに求められる知識は…

次に、最初の図にある通り、システムエンジニアが覚えておくべき知識を順に説明します。

クライアント(フロントエンド)

HTML、JavaScript、CSSの3つの知識は最低限必要になります。個々の解説はここではしませんが、今は JavaScript をそのまま使うよりも jQuery の方が好まれるようです。

(2024年2月追記)

jQuery は使わない傾向になるようです。

React や VIe が全盛になるかといえば、そうでもなく…

これらの技術は、昔のクラサバ(クライアント:例)VB – サーバー:例)Java)に近いので、通信が繋がらない場合などの対応が大変そうです。

サーバーサイド(バックエンド)

Windows Server か、Linux(RedHat、CentOS、FreeBSD、など)か、 どのOSのサーバーを使うのかを決めなくてはいけません。

Windows Server であればある程度、GUIで直感的にわかるかもしれませんが、Linuxであれば、基本はCUIの動作になりますので、コマンドを覚えないといけませんね。

Webサーバー

使われることが多いのは Apache になりますが、プロジェクトによって、nginxやIISなどを使う場合もあります。

図の一覧には記載しませんでしたが、Node.js を使う場合もありますので、こちらも知っておくとなおよいかもしれません。

Webアプリケーションサーバー

Java や Ruby on Rails を動作させるためには、Webサーバーとは別にWebアプリケーションサーバーを準備する必要があります。

Java の場合、WebSphere、WebLogic は有償、Tomcatはオープンソースです。

Rails の場合は、Unicorn を使うことになるようです。

プログラミング言語

有名なものとしては、Java、VB.net、C#、PHP、Ruby、Perl、などがあげられます。もちろん、これ以外にもプログラミング言語はありますので、必要に応じて覚えるとよいと思います。

私としては、複数のプログラミング言語を使いこなすよりも、1つのプログラミング言語に絞って、狭く深く知識を得ることをお勧めします。

フレームワーク

フレームワークを利用しなくても Webシステムの構築はできます。ですが、開発の工数を削減するため、バグをできるだけ少なくするためにも、プロジェクトが大きくなればなるほど、フレームワークを利用したほうがよいでしょう。

プログラミング言語を覚えることも大切ですが、フレームワークの使い方を覚えることもとても大切です。同じプログラミング言語でもフレームワークによってソースコードの書き方は全くちがうものになります。

プロジェクト(会社)によっては、独自のフレームワークを利用することもあります。その場合、フレームワークの使い方の指導があると思いますので、しっかりと聞くようにしてください。

有名なフレームワークをプログラミング言語別にいくつか例示します。

・Java・・・Spring、Seasar2 (EOL)、Play Framework、Struts、JSF、など

・VB.net / C# ・・・ASP.net

・PHP・・・ Laravel、 CakePHP、Symfony、など

・Ruby・・・Ruby on Rails、など

その他、たくさんありますので気になる方は調べてみてください。

データベース

大きくは、有償のものと無償のものに分かれます。

・有償・・・Oracle、DB2、SQL Server、など

・無償・・・Postgresql、MySQL、など

データベースにアクセスするためにはSQLを利用しますが、データベースによって少しずつちがいがあることを覚えておいてください。

バージョン管理ツール

今で言うところの Git が該当します。

昔であれば、SVN、CVS、VSS …ですね。

開発ツール

開発ツールもプログラミング言語によって多種多様です。また、同じプログラミング言語でもプロジェクトによって開発ツールは異なります。

一般的に使われるものとしては、以下のものがあります。

・Eclipse・・・ Java、PHP、など

・Visual Studio・・・ VB.net、C#

・テキストエディタ・・・VSCode など…(プログラミング言語問わず使えます)

Excel VBAを使って、ソースコードの雛型を出力する場合もあります。

データの保存期間を覚えておきましょう。

データの入出力は主に、Http Request / Http Response、Session、Application と分かれています。

① Http Request / Http Response

ボタンを押されてから次の画面を表示するまで

② Session

ユーザー毎(セッションID毎)にWebサーバーに保存

③ Application

システム内で共通なデータ(データベース管理のエラーメッセージなど…)です。

Web アプリケーションサーバーの再起動が必要になることが多いです。
(使用するプログラミング言語、フレームワークに準ずる)

どの領域にデータを保存するのか意識しないと、サーバーのメモリが足りなくなり、システムが停止する可能性がありますので注意しましょう。

Webシステムの開発には、広く、深い知識が必要です。

すべてをひとりで覚えることは難しいので、クライアント側のデザインはデザイナーに。サーバーの構築はインフラ担当のエンジニアに。コーディングはプログラマーに。データベース管理は、データベースエンジニアに。

エンジニアには、様々な役割がありますね。