Webシステムの全体像を理解している
クライアント/サーバの関係、HTTPのリクエスト・レスポンス、URL・DNS・ポート番号、Web/AP/DBサーバの3層構成を理解し、Webアプリケーションが動作する仕組みを説明できます。
// COURSE GOALS
本講座の目的、育成する人材像、そして修了時にあなたが到達する状態を示します。
PURPOSE
本講座は、WebシステムやWebサービスを支えるサーバサイドの機能を設計・開発できる、実践的なバックエンドエンジニアを育成することを目的としています。 知識を覚えることにとどまらず、要求された仕様を読み取り、自ら調査し、設計・実装・検証までを行う力を身につけていただくことを目指します。
TARGET ROLE
ROLE
ユーザーの目に見えないサーバサイドの機能を設計・開発する役割です。 データベースの設計、業務ロジックの実装、外部システムとの連携、セキュリティ対策、品質の検証までを担当します。
TARGET LEVEL
要求された作業を
すべて独力で遂行する
レベル
手順書どおりに再現するのではなく、要求仕様から自分で組み立てられる状態を到達点とします。
LEARNING OUTCOMES
本講座の修了時点において、受講者は以下の状態に到達することを目標とします。
クライアント/サーバの関係、HTTPのリクエスト・レスポンス、URL・DNS・ポート番号、Web/AP/DBサーバの3層構成を理解し、Webアプリケーションが動作する仕組みを説明できます。
HTML・CSS・JavaScriptを用いて、セマンティックな文書構造とFlexbox/Grid Layoutによるレイアウト、PC・タブレット・スマートフォンに対応したレスポンシブデザインを実装できます。DOM操作とイベント処理、非同期通信(fetch/async・await)により、APIから取得したデータを画面に反映できます。
PHPを用いて、フォームからのデータ受信、セッションによる状態保持、ファイルの操作とアップロード、メール送信、データベースとの連携を実装できます。
要件からエンティティを抽出し、概念設計・論理設計・物理設計の3段階を経て、正規化・ER図・テーブル定義書を作成できます。CRUD、結合、集計、サブクエリ、トランザクションによる整合性制御を実装し、権限付与やバックアップ等の運用操作を行えます。
LaravelのMVC構成に沿って、認証・認可(Gate/Policy)、バリデーション、Eloquentによるリレーション、REST API、キューによる非同期処理、CSV帳票の出力を実装できます。DI(依存性注入)とインターフェースにより、責務を分離した設計ができます。
SQLインジェクション、XSS、CSRF、セッション固定化攻撃、マスアサインメント脆弱性の原理を理解し、プレースホルダ、エスケープ処理、CSRFトークン、パスワードのハッシュ化、サーバサイドバリデーションによる対策を施した実装ができます。
要件定義から画面設計(画面一覧・画面遷移図)、データベース設計、実装、単体テスト・結合テスト・総合テスト(PHPUnitによる自動テストを含む)までを独力で遂行できます。コーディング規約に沿って第三者のレビューに耐えるコードを記述し、指摘に基づき改善できます。
Dockerによる開発環境の構築、Git/GitHubによるソース管理を行い、nginx・MySQL・オブジェクトストレージ等の各コンテナの構成を理解して、実務と同等の環境で開発を進められます。
OVERALL GOAL
以上により、掲示板(CMS)機能・帳票(CSVインポート/エクスポート)機能・REST APIを備えたWebアプリケーションを、要件定義から設計・実装・テストまで独力で完成させられる状態を、本講座全体の到達目標とします。
TASKS YOU CAN DO
バックエンドエンジニアとして、修了時に以下の作業を独力で遂行できる状態を到達目標とします。
要求された仕様からテーブル構成を設計し、正規化・ER図・テーブル定義書として文書化する
PHPおよびLaravelにより、CRUD、認証・認可、入力値バリデーション、ファイル操作、メール送信、CSV帳票出力、REST APIを実装する
トランザクション制御およびリレーション設計により、データの整合性を担保する
SQLインジェクション、XSS、CSRF等の脆弱性を理解し、対策を組み込んだ実装を行う
PHPUnitによる機能テスト・ユニットテストを作成し、品質を担保する
ログレベル設計と例外処理、キューによる非同期処理を実装し、障害検知が可能な状態で運用に引き渡す
Dockerによる開発環境の構築とGitによるソース管理を行う
COURSE DESIGN
「独力で遂行できる」状態に到達していただくために、本講座は次の設計をとっています。
各言語について「入門編(座学)→ 基礎編(練習問題によるハンズオン)→ 応用編(提出課題によるワークショップ)」の順に学習が進みます。知識の習得、実装の反復、実務相当の課題への適用が段階的に接続されています。
基礎編の練習問題は約40問、応用編および総合課題における提出課題は100本を超えます。いずれも評価基準に基づく確認と、レビューを経て完了します。
40問
基礎編の練習問題(約)
100本超
応用編・総合課題の提出課題
「Webシステム総合課題」では、掲示板(CMS)および帳票(10万件規模のCSVインポート/エクスポート)を、受講者自身が次の工程で構築します。さらにREST APIを導入し、フロントエンドとバックエンドを疎結合にした構成へ作り替える課題まで行います。指示どおりに写経する演習ではなく、要求された作業を独力で完遂する実務そのものの工程です。
現場で標準的に用いられる構成を、教材内で実際に構築・運用します。
提出課題は現役SE/プログラマーがレビューを担当し、命名規則・インデント等のコーディング規約、セキュリティ対策の実施、責務分離の妥当性といった観点で確認します。独力で成果物を完成させ、第三者の評価に耐える品質へ到達したことを確認したうえで、次の段階へ進みます。
基礎文法から、データベース設計、フレームワークによる実務相当の開発、テストまでを網羅する分量であり、実務に必要な習熟時間を確保しています。
本カリキュラムにより、社内外のエンジニア未経験者100名以上をエンジニアとして輩出しています。
COURSE OVERVIEW