はじめに
この資料は静岡プログラミングキャンプ サーバサイドプログラミングコースの資料になります。
課題の進め方について
進め方大きく分けて、2つのステップに分かれています。
- ハンズオンでオブジェクト指向のエッセンスを学びながら実装していく。
- 与えられた課題(仕様)についてハンズオンで学んだことを実践しながら自分なりに設計し、実装する。
この2つのステップで学ぶことによってより良いコードを書くためスキルアップに繋がります。
各種環境について
使う言語、ソリューションについては下記のとおりになります。
ソリューション | バージョン |
---|---|
php | 7.4系 |
nodejs | 12系 |
MySQL | 8系 |
Docker | 19系 |
Git | どのバージョンでも(多分) |
Laravel | 8系 |
使うPCについて
今回は基本的にMacで操作することを前提に記述しています。
Windowsの場合は適切に読み替えてください。
Dockerについて
今回は実行環境用のDockerを用意しています。
必要に応じて使ってください。
正確にはdocker-composeを利用するのでマシンにdocker for mac or docker for Windowsを入れてください。
MacへのDockerのインストール方法
https://docs.docker.jp/docker-for-mac/install.html
WindowsへのDockerのインストール方法 https://docs.docker.jp/docker-for-windows/install.html
Laravelの学習について
Laravelは書籍・ネットの記事が多く学びやすいフレームワークです。 Laravel入門 - 使い方チュートリアルは網羅的に記述されており、わかりやすいです。
なぜnodejsが必要なのか?
昨今のアプリケーションはJavaScriptのビルドやSCSSからCSSへの変換などに対応するためにwebpackなどを利用することが多いです。 Laravelでもフロントエンド関連に関してはwebpack(Laravel mix)を使っているのでnodejsが必要になってしまいます。
進め方について
基本的にハンズオン形式をとっていきたいと考えています。 一緒に手を動かしながら学んで行きましょう。
途中で質問がある場合はどんどん発言してください。 可能な限り頑張って答えます。
書籍について
オブジェクト指向は難しいです。
インターネットに載っている記事を鵜呑みにしていると誤解してしまいます。
しっかりとした書籍を読んで正しい知識を身に着けましょう。
おすすめ書籍は下記のとおりです。
- アジャイルソフトウェア開発の奥義
- オブジェクト指向のこころ
- エンタープライズアプリケーションアーキテクチャパターン
- マルチパラダイムデザイン
- ジェネレーティブプログラミング
- テスト駆動開発