カテゴリー
サインイン 新規登録

間違いや改善の指摘

内容の技術的な誤り・誤字脱字やミスのご報告・解説やトピックの追記/改善のご要望は教材をさらに良くしていく上でとても貴重なご意見になります。

少しでも気になった点があれば、ご遠慮なく投稿いただけると幸いです🙏

実際には誤りではなく勘違いであっても、ご報告いただけることで教材のブラッシュアップにつながります。

質問ポリシー①

教材受講者みなさんのスムーズな問題解決のために、心がけていただきたいことがあります。

教材の内容に関する質問を投稿しましょう

教材の内容に関係のない質問や教材とは異なる環境・バージョンで進めている場合のエラーなど、教材に関係しない質問は推奨していないため回答できない場合がございます。

その場合、teratailなどの外部サイトを利用して質問することをおすすめします。教材の誤字脱字や追記・改善の要望は「文章の間違いや改善点の指摘」からお願いします。

0-1

この教材でやること

本教材は PHP でオブジェクト指向の基本を学びつつファイナルファンタジー風の CLI アプリケーションを作成していきます。

CLI とはキャラクタユーザーインタフェースのことです。つまり文字のやり取りをするアプリケーションになります。

本教材では、Laravel などのフレームワークは使用せず、生の PHP のみを使って実装します。

アプリケーションを作成しながらオブジェクト指向について解説していきます。

オブジェクト指向はイメージが大事です。理解の手助けになるように随所に説明画像を挟んでいます。

オブジェクト指向の基本となる、3大要素や、それらに関連するものを説明しています。

また、プログラミングをする上で重要な設計の部分の考え方も掲載しています。

現場でよく使われるテクニックやリファクタリングのやり方も載せていますのでぜひ参考にしてみてください。

この教材を読み終わった後、確実にあなたはエンジニアとして1段高いところにいるはずです。

現場で活躍できるエンジニアになっていくためにも頑張って身につけていきましょう!

オブジェクト指向について

そもそもなぜオブジェクト指向を学ぶ必要があるのでしょうか?

現在、プログラミングスクールや、ビデオ教材が流行したことにより、自分が学びたい部分のみ取捨選択し、ピックアップして学ぶことができるようになりました。

しかし、それはある弊害を生んでいます。
それは、必要な知識が足りていない状態で 次のステップ に進んでしまうことです。(就職やフリーランスになるなど)

そのうちの1つが 「オブジェクト指向」 です。

オブジェクト指向はプログラミングと深く結びついており切っても切れない存在です。

世の中にあるプログラムのほとんどがオブジェクト指向に基づいており、

みなさんが使われている Laravel を始めとするフレームワークもオブジェクト指向を使用しています。

オブジェクト指向を学ばずにLaravel等のフレームワークを学習しても、動いてはいるけど何をやっているかわからない状態になってしまいがちです。

そういった状態で学習を続けることはかなり不安に駆られるのではないかと思います。(実際私がメンターをしている生徒さんたちもそういった不安を抱えるかたがほとんどです)

そのような不安も、オブジェクト指向を学ぶことでフレームワーク等を使ったプログラミングの理解が深まり、これまで読めなかったコードが読めるようになります。

これまで不安だった気持ちもクリアになり、学習意欲も湧いてきます。

プログラミングをする上でオブジェクト指向を学ぶことは必須というのが現状です。

また、本教材では、考え方・設計の仕方も身につくためプログラミングのみならず、今後のエンジニア人生に役立つでしょう。

ぜひ、本教材を足がかりにしてオブジェクト指向の理解を深めていきましょう!

学習内容

  • 生の PHP でのプログラミング
  • オブジェクト指向
    • カプセル化
    • 継承
    • ポリモーフィズム
    • オーバーライド
    • デザインパターン
  • 現場で役立つプラスアルファのテクニック
    • リファクタリング
    • オートロード
    • ユーティリティファイル
    • 定数ファイル

受講における必要条件

  • PHP の基本構文を理解している
  • ls」や「cd」など簡単なコマンドラインの知識

PHP を一度も触ったことがない方は、まずは Progate 等で学習することをおすすめします。

この教材の対象者

  • オブジェクト指向について調べてみたが実装したことがない方
  • アプリケーションを作る際の設計方法が分からない方
  • Laravel などのフレームワークを使用しているが、コードで何をやっているかわからない・イメージがつかない方
  • 現場でよく使われるテクニックを知りたい方

※本教材は Mac 向けに作成していますが、Windows の方でも改行コードを読み替えることで対応可能です。

本教材の対応バージョン

  • PHP5 系 以上

本教材で実装すること

  • モンスターと主人公たちが戦う
  • 人間は役割(ジョブ)を持っている
  • ジョブごとにスキルを持ち一定確率で発生する
  • どちらかのパーティが全滅するまで戦う

本教材の特徴

  • 自分で考える力をつけるために随所に問題を設けています
  • 書き写すのみではなく、自分流にアレンジしてみましょう!

本教材の学習時間目安

約 20 時間程度

目次

0 章 はじめに

本教材を進める上での環境を整えたり、全体設計を解説していきます。

1 章 人間・敵クラスの作成

人間・敵クラスを作成しながら、オブジェクト指向の基本部分に触れていきます。
メイン処理も少しだけ書いて、とりあえず簡単な戦闘ができるまで実装します。

2 章 ジョブの実装

ファイナルファンタジー を代表するシステム「ジョブ」を実装します。

これらのジョブを作る過程でオブジェクト指向の3大原則である、

  • 「継承」
  • 「ポリモーフィズム」
  • 「カプセル化」

についても解説します。

3 章 アプリケーションの完成

アプリケーションの総仕上げをします。

また、コードの読みやすさを向上するためのリファクタリングも実施します。

リファクタリングの項目には、オブジェクト指向におけるオブジェクトの切り出し方など
設計にもかかる部分が多く重要な項目です。

4 章 プラスアルファの実装

現場で役立つプラスアルファのテクニックを実装します。

また、オブジェクト指向の基本から1歩踏み込んだデザインパターンにも触れていきます。

以上で今回のパートは終了です。

次のパートは完成イメージを掲載します。