ブロック ブロック

Special

特別講座

PHP
Laravel
vue.js
React

【対面/3名】PHP新人+経験浅のための、コードレビュー講座 ~Webフルスタックエンジニアが、あなたの成果物をブラッシュアップします!~

コードレビュー講座は、
コードの「正解(最適解)」を理解して、
自分のコードに(できるだけ)自信を持ってもらう講座です!
(スキルアップの自己認識+更なる目標の出現)



「講義(受け身)」や「もくもく会(自習スタイルの勉強会)」、
「ハッカソン」のような学習スタイルではなく、

現役Webエンジニアから、コードレビューが
受けられる「質問会」「社内会議」に似た形式の
コードレビュー講座です。


こんなお悩みございませんか?


・現場(プロジェクト内)で、コードレビューをしてもらえないので、
 自分が書いたソースコードに、イマイチ自信が持てない。。。
 エラーもなく、動いているので、(今は)問題ないと思うが・・・、
 「正解」を教えて欲しい!

・趣味/社内研修で、成果物(ソースコード)を作ったので、
 コードレビュー(リファクタリングを含めたソースコード品質UP)
 して欲しい。第三者(できるエンジニア)の意見が聞きたい!

・とりあえず、モックを作成しましたが、今後、保守性・可読性・
 再利用性・拡張性の高いシステムを開発するために、
 技術的な意見交換(質問/相談/討論)をさせて欲しいです。

・ポートフォリオ(面接用の成果物)が仕上がりました!
 企業偏差値の(少し)高い、Web系企業に入社したいので、
 がっつりコードレビュー(ダメ出し)をお願いします!

・「動くこと」を最優先に、プログラミングしたため、間違いなく、
 「変なコード」だし、「非効率なコード」になっています。
 リファクタリングしていく上で、必要な考え方を教えて欲しい。

※過去、弊社に寄せられた、新人PHPエンジニアさんから
 いただいたコメント(抜粋/一部加工)です。


下記のような、心境の変化(流れ)ではないかと推察しています。


<未経験~1年目>
なんとか、仕様通りに動くものはできたが、これが正解か
分からない。少なくとも、「最適解(正解)ではない」こと
だけは分かる。

<1~2年目>
複雑な仕様でなければ、一人称で開発できるが、
イマイチ、自分のコードに自信がもてない。

<2年目~>
脱未経験者。SPA、API開発など、ある程度の経験は
積めたし、よりレベルの高い環境に身を置き、
スキルアップしていきたい。


そんな、PHP新人および経験浅のための
 コードレビュー講座を開催しています!


【目的】
コードの「正解(最適解)」を理解して、
自分のコードに(できるだけ)自信を持ってもらう。
(スキルアップの自己認識+更なる目標の出現)

・Webフルスタックエンジニアが、あなたのお悩み解決します!
・Webフルスタックエンジニアが、あなたの成果物をブラッシュアップします!

参加者(レビューイ):各回3名限定
持ち物:ノートPC(ソースコード、Win/Macどちらも可)


対象技術


PHP(Laravel/CakePHP)、JavaScript(jQuery/Vue.js/React)、
HTML/CSS、MySQL、AWS、Docker/Kubernetes、Git/GitHub


主な対象領域


フルスクラッチ(生PHP)、フレームワーク(Laravel)、SPA、
API、OOP、ユニットテスト(テストコード実装)など。


参加者の声


・(20代男性) 事細かく、レビュー(指摘)いただきまして、ありがとうございます!全ての改善には、10日間ほど、お時間いただければと思います。
・(20代男性) フロントエンド、バックエンドに分けて、詳細にレビューいただきまして、ありがとうございます。大変有難いことですが、指摘項目が多いため、できるところから、修正して参ります。補講でまた、ご覧いただければと思います。
・(20代女性) 本日は、ありがとうございました。自分のコードの書き方で問題なかったんだと安心した部分と、なぜこんな書き方をするんだろうと疑問に思っていた箇所の理由(背景)が分かって、腹落ちできました。
・(20代女性) 外部キー制約、NULLオブジェクトパターン、N+1問題の解消、悲観的排他ロック、照合順序の検討、バリデーション、コード規約など、数々のご指摘をいただき、ありがとうございます。講師から紹介してもらった、コード整形ツールとXdebugは今後、使っていきたいと思います。


DTのお約束


我々は、参加者皆様の「成果」にコミットします。
あなたが諦めない限り、我々は決して諦めません!

・プロのWebエンジニアが、あなたのお悩みを解決しつつ、
 あなたの成果物をブラッシュアップさせます!
・何度も何度も繰り返し、「理解」して「できる」までやります。
・エラー解決(自己解決)の道筋をつけるようになっていただきます。

※講座は1日のみですが、ご希望者には、同月内で、
 一人90分×2回のWeb個別コードレビュー有り(無料)。



お申し込みは、今スグ、
受講日程を確認し、「お問い合わせはこちら」を
クリックして下さい。



学べる内容(一例)


<機能>
・ログイン(RecaptureV3導入)/認証/ログアウト(SESSION/ハッシュ化)、サイト管理者用ログイン(basic認証)、パスワード再設定(「PWを忘れしまった方はこちら」)
・ソーシャルログイン(他社SNSとAPI連携)
・会員登録(重複チェック/確認ページ)/編集(パスワード変更含む)/退会機能
・マイページ内に、購入履歴や「いいね」管理
・会員管理一覧画面(新規作成/閲覧/編集/削除)、ページャー(20件毎)、絞り込み(文字)検索、ソート機能
・チェックボックス(全選択含む)でCSVダウンロード(エクスポート)もしくは、CSVインポート、サンクスメール等の自動メール配信(ユーザー+管理者双方に)
・サイト内検索(AND検索、半角スペースで区切ることで複数の検索文字列を検索)
・AND検索/OR検索の切り替え、NOT検索
・ECカート機能(個数変更/確認ページ、リロードしても個数が増えないように、リアクティブ/非同期処理)もしくは、予約機能
・お気に入りリスト機能、いいね登録/解除(ブックマーク登録/解除、欲しいモノリストなど)、メール自動送信(ユーザー+管理者)
・商品管理(登録(カテゴリー分け/画像投稿)/一覧/編集(修正)/削除)、ページャー(20件毎)、絞り込み(文字)検索、ソート機能(価格順/五十音順/人気順(いいね数)/売上順)
・注文(購入)管理機能、CSVダウンロード(エクスポート)、CSVインポート
・掲示板機能(記事作成/編集/削除、画像アップロード、サムネイル作成、カテゴリー追加/編集/削除、検索)
・アーカイブ(月別/カテゴリー別)、スレッド新規作成(件名変更不可/内容のみ編集可)、コメント投稿(投稿者のみ編集/削除)
・JavaScript(jQuery)を使い、画像スライダーやモーダルウインドウ表示、ライブプレビュー機能を実装
・問合せ(登録)フォーム(エラーチェック/入力値の保存などバリデーション)+確認画面(DB登録/自動メール送信)
・お問合せ一覧画面:閲覧/削除

<UI/UX(画面設計)>
・レスポンシブ対応(bootstrap。※Web系企業への転職希望者はSassやgulpを使用します)
・画面遷移図(もしくは画面設計書)作成
・検索結果0件の時に、「検索に一致する商品は見つかりませんでした。」と表示させる。
・ショッピングカート0件の時に、「ショッピングカートには何も入っていません。」と表示させる。
・通信環境が悪い場合に備え、大きく分かりやすく、「Now Loading...」と表示させる。
・ユーザーの残作業を、円グラフや棒グラフなどで、達成率/進捗率を表示させる。
・エラーメッセージを伝えるだけではなく、必要な条件(要件)を表示させ、満たすとリアルタイムで緑(OK)に変わっていく仕様。
・404(Not Found/未検出)エラーと、サーバエラー(500~599)の時に、「システムに問題が起きました。」「ショッピングを続ける」を表示させる。

<品質>
・PHPとHTMLが(完全に)分離されている
・機能毎にソースが分割されている(最低限MVCモデル)
・関数やクラスは責任を分けてそれぞれを短く、小さくする。
・コントローラー部分をなるべく簡素化/抽象化(肥大化防止。基本、値の受取り+引き渡しのみ)。具体的な処理(DB処理含む)はすべてモデルに書く。取得系処理は、staticなメソッドやサービス層を用いたファサードにして共通化する。
・クラス(もしくはテンプレート)を1つ以上、自作して使う。
・データベース操作はPDOクラスを使う。
・PDOクラスのラッパークラスを自作する。
・namespace(名前空間)が活用されている。
・バリデーション処理を細かくする。
・データベース(MySQL)を使い、リレーションが活用する。
・DBへの商品点数や会員登録人数、注文件数は50点(人)以上、登録する。
・生PHP版を、見た目や挙動を一切変えず、Laravel版でも作成する。
・Vue.jsもしくはReactを使って、SPA化する。

<可読性/保守性>
・ソースのインデントが整っている。
・スペースを適切に空ける。
・ソースに適切なコメント(説明)を残している。
・1つの処理が長すぎない(目安:30~40行以内)。関数は、可能な限り「単一処理」を実行するように切り分ける。一つの大きな処理を一つの大きな関数のみで実行するのは避ける。「小さい関数、適切な命名(優れた設計の一つの指針)」
・インデントが深すぎない(目安:3段以内)

<インフラ>
・GitHubへのアップ(チーム開発を想定し、操作に慣れる)
・AWS(EC2/S3/クラウド9)もしくは、Netlifyへのデプロイ(無料枠でOK)
・Docker+Kubernetes(k8s)環境を構築し、動作検証
・GitHub Actionsもしくは、Jenkinsで、CI/CD環境構築


ご参加者様の成果物例


・CtoC向け、子供用品フリマ(売り/買い)サイト開発
 ⇒ログイン/認証/ログアウト、ユーザー登録/編集/退会(論理削除)、商品管理(CSVダウンロード/インポート/ソート/検索)/出品、売上/購入履歴(CSVダウンロード)/コメント履歴、ECカート(金額表示を非同期処理)/商品レビュー/コメント投稿、サイト内検索(価格検索/カテゴリー)、問合せフォーム(メール自動送信:ユーザーと管理者)、スライダー/レスポンシブ対応
・アウトドア製品販売ECサイト開発(ページネーション/レスポンシブ対応済み)
 ⇒ユーザー:ログイン/認証/ログアウト、新規登録/マイページ(編集/退会)、商品一覧、カテゴリー(居住/寝具/調理)/検索/チャット、カート機能、問合せフォーム
 ⇒管理画面:ユーザー管理(退会/問合せ)、商品管理(登録/編集/削除)、売上管理(日別/週別/月別/売上CSV抽出)
・京都物産品(京野菜/和菓子/漬物)販売ECサイト開発(ページネーション/レスポンシブ対応済み)
 ⇒ユーザー:ログイン/認証/ログアウト/PW再設定、会員登録/編集(PW変更含む)/退会、商品一覧(検索/カテゴリー)、ECカート、商品購入/購入履歴、問合せフォーム
 ⇒管理画面:会員管理(個人情報/問合せ内容、一覧/編集/削除、CSVダウンロード)、商品リスト(登録/編集/削除、CSVダウンロード)、売上管理(当日/今月/先月/合計、CSVダウンロード)
・ネット食品スーパーECサイト開発(レスポンシブ対応済み)
 ⇒ユーザー:ログイン/認証/ログアウト、会員登録(PWハッシュ化)/編集/退会、商品一覧(カテゴリー/文字検索/ページネーション)/商品詳細、ECカート、購入履歴、レビュー投稿(編集/削除)、問合せフォーム
 ⇒管理者:ユーザー一覧(編集/追加/削除)、商品管理(登録/編集/削除、検索(ID/価格))、お知らせ投稿(登校日/タイトル/詳細/画像)
・ヘルスケア(プロテイン/サプリメント)製品販売ECサイト開発
 ⇒ユーザー:ログイン/認証(ハッシュ化)/ログアウト、ユーザー登録/マイページ(編集/退会/PW変更/購入履歴)、商品一覧、カテゴリー(プルダウン)/検索/ブログ、ECカート機能、問合せフォーム
 ⇒管理画面:商品管理(一覧/詳細、登録/変更/削除、商品名/説明文/単価/画像/カテゴリー)、売上管理(日別/週別/月別/売上CSV抽出)、ブログ(作成/一覧)
・料理レシピ動画(YouTube)投稿サイト開発(生PHP版+Laravel版)
 ⇒ログイン/認証/ログアウト/パスワード忘れ、アカウント管理(登録/編集/退会)、レシピ投稿(YouTube検索/編集/削除)、レシピ一覧(マイレシピ/新着/評価/人気順/カテゴリー/サイト内文字検索)、ライブラリ(レシピ本/ブック別け、編集/削除)、問合せフォーム、ページネーション、レスポンシブ対応
・介護従事者向け、情報共有(掲示板)サイト開発(レスポンシブ対応済み)
 ⇒ユーザー:ログイン機能(認証/リマインド/ログアウト)、投稿機能(カテゴリー/タイトル/コメント/画像/動画)、お知らせ、my投稿/myお気に入り一覧、カテゴリー/ランキング、キーワード/日付検索、マイページ(変更/退会)、問合せフォーム
 ⇒管理者:会員管理(ID検索/キーワード検索/削除)、問合せ対応(返信/対応履歴)、お知らせ対応(記事作成/キーワード検索)
・ミュージカル/劇団チケット販売ECサイト開発(レスポンシブ対応済み)
 ⇒ユーザー:ログイン/認証/ログアウト、ユーザー登録、公演一覧(スライダー/ページネーション)、カテゴリー(ジャンル/会場)、ECカート機能(日時/数量/購入)、マイページ(編集/購入履歴/検討リスト/退会)
 ⇒管理者:イベント管理(公演一覧/チケット在庫数)、イベント登録(公演名/期間/詳細/カテゴリー/会場/価格/画像)、ユーザー管理(一覧/退会/問合せ対応)、売上管理(日別/月別)、CSVダウンロード/CSVインポート。
・埼玉県銘菓販売ECサイト開発(レスポンシブ対応済み)
 ⇒ユーザー:ログイン/認証/ログアウト、新規登録、マイページ(編集/退会、購入/問合せ履歴)、商品一覧(カテゴリー/文字検索/ページネーション)、商品詳細/販売総数、ECカート(数量変更/削除)、問合せフォーム
 ⇒管理者:会員管理(会員情報一覧/退会フラグ)、商品管理(登録/編集/削除)、問合せ一覧(日時/詳細/対応詳細)、売上CSVダウンロード(日時指定)
・趣味別掲示板サイト開発(ページネーション/レスポンシブ対応済み)
 ⇒ユーザー:ログイン/認証/リキャプチャ/リマインド/ログアウト、マイページ(フォロー/フォロワー/お気に入り/投稿履歴)、ユーザー情報登録(変更/退会)、投稿(トピック/コメント投稿/絵文字/画像/動画/YouTube)、お気に入り投稿リスト、ダイレクトメッセージ送信機能(特定ユーザーとのチャット機能)、タイトル検索、問合せフォーム
 ⇒管理者:ユーザー名簿(フォロー数/投稿数)、カテゴリー/総投稿数管理、TOP10表示(トピック/コメント:お気に入り)
・英単語帳サイト開発(ページネーション/レスポンシブ対応済み)
 ⇒ログイン/認証/ログアウト、ユーザー登録/編集/退会、英単語登録(カテゴリー/画像投稿)、一覧(検索/翻訳機能)、詳細(編集)、カテゴリー(一般英単語/熟語/スラング)、問題出題機能、レコメンド機能(間違った問題を再提示)
・EC機能付き、趣味別掲示板サイト開発
 ⇒ログイン(Recapture導入)/認証/ログアウト、ユーザー登録/編集/退会、画像/動画/コメント投稿、マイページ(投稿記事一覧、投稿数/いいね数)、フォロー登録/いいね機能(ランキング表示)、お気に入り投稿リスト、ダイレクトメッセージ送信機能(特定ユーザーとのチャット機能)、 カテゴリー/ユーザー/タイトル検索、ECカート機能、問合せフォーム、ページネーション/レスポンシブ対応
・アーティストグッズ販売ECサイト開発
 ⇒ログイン/認証/ログアウト、会員登録/編集/退会、ECカート/掲示板/いいね機能、サイト内検索/カテゴリ、問合せフォーム、ページネーション/レスポンシブ対応/placeholder使用
・CtoC向け、スキル/ノウハウ販売ECサイト開発(生PHP版+Laravel版の2種類)
 ⇒ログイン機能、会員登録/編集/退会、マイページ/お気に入り、商品登録/編集/削除、ECカート、カテゴリー/サイト内検索、問合せ、スライドショー/ページネーション/レスポンシブ対応
・革靴販売ECサイト開発(PHP/Laravel、ワイヤー制作/情報設計/DB設計/開発/テスト/デプロイ)
 ⇒ログイン(Recapture導入)/認証/ログアウト、会員登録/編集/退会、ECカート/購入履歴/商品レビュー/お気に入り一覧、サイト内検索/価格検索/カテゴリー、問合せフォーム、スライダー/レスポンシブ対応
・アクセサリー販売ECサイト開発(スライダー/ページネーション/レスポンシブ対応)
 ⇒ログイン/認証/ログアウト、新規登録/編集/退会、マイページ/購入履歴/お気に入り、ECカート、管理者ログイン(basic認証付き)、売上管理/商品管理、サイト内検索、問合せフォーム
・食物アレルギー対応商品販売ECサイト開発(画面遷移図/画面設計書/開発)
 ⇒ログイン/ログアウト/会員登録/退会、会員管理(一覧/編集)/商品管理、カテゴリー/サイト内検索、ECカート/ランキング表示/購入履歴/商品レビュー、問合せフォーム、レスポンシブ対応
・ネット食品スーパーECサイト開発
 ⇒ユーザー:ログイン/認証/ログアウト、会員登録(PWハッシュ化)/編集/退会、商品一覧(カテゴリー/文字検索/ページネーション)/商品詳細、ECカート、購入履歴、レビュー投稿(編集/削除)、問合せフォーム
 ⇒管理者:ユーザー一覧(編集/追加/削除)、商品管理(登録/編集/削除、検索(ID/価格))、お知らせ投稿(登校日/タイトル/詳細/画像)
・介護従事者向け、情報共有(掲示板)サイト開発
 ⇒ユーザー:ログイン機能(認証/リマインド/ログアウト)、投稿機能(カテゴリー/タイトル/コメント/画像/動画)、お知らせ、my投稿/myお気に入り一覧、カテゴリー/ランキング、キーワード/日付検索、マイページ(変更/退会)、問合せフォーム
 ⇒管理者:会員管理(ID検索/キーワード検索/削除)、問合せ対応(返信/対応履歴)、お知らせ対応(記事作成/キーワード検索)



当日の流れ(タイムスケジュール)


1.カンタンに自己紹介(各自1分)
→名前、出身、経歴、趣味・特技など

2.自作Webアプリのプレゼン(各自5分/LT)
→まずは、「誰が使う、どんなWebサービスなのか?」
 「盛り込んだ機能は何か?」からスタートして下さい。

3.コードレビュー(各自40分)+ハンズオン
→プロのエンジニアが、あなたのお悩みを解決しつつ、
 あなたの成果物をブラッシュアップさせます!

講師(レビュアー)からのアドバイスは、
もちろんのこと、あなたがアウトプット(プレゼン)
することで得られる、気づきや学びがあります。

また、他の参加者のアウトプットを「見る」「聞く」ことで、
学べることが多くあります。

(何より刺激になり、モチベUPに繋がりますよね。)

当日はお会いできますことを、楽しみにしております。


※当日、Webサイト用(メディア/ブログ等)に撮影が入ります。
※当日、アンケート記入(10分程度)を、お願いさせていただいております。
※個人情報は一切開示致しませんが、ご質問への回答を、弊社ブログやSNS、
 セミナー(駆け出しエンジニアのコードあるある~コードレビューして感じたこと)、
 他の受講生への情報共有に使わせて頂く場合があります。



お申し込みは、今スグ、
受講日程を確認し、「お問い合わせはこちら」を
クリックして下さい。
「PHPアドバンススクール」 / 「就職対策セミナー」に関しては
こちらよりお気軽にお問い合わせください!
「無料PHPスクール」をご希望の方は、こちら