YYPHP#82「composerのオートーローダーの使い方」「PHPは副業可な在宅ワーク案件が多い？」「就職を見据えてPHPの基礎を固めるタイミング」「設計って何？」「個人プロダクトのすすめかた」

![](https://qiita-image-store.s3.amazonaws.com/0/5354/6d9ce33d-f7df-be3e-66c2-9fd4078524f5.jpeg)

これは2019年4月27日に開催したPHPerイベント[YYPHP#82]のイベントレポートです。

[YYPHP]は一言で「PHPerの部室」です。PHPについて、雑に、ゆるく、ワイワイ話し合う集いです。毎回お題を決めずに雑談を出発点にいろいろなことを突発的にやります。集まった人でコードリーディングをすることもあれば、一緒に開発ツールを触ってみたり、フレームワークについての情報交換をすることもあります。開催はほぼ**毎週**、高田馬場にて。

[YYPHP#82]: https://yyphp.connpass.com/event/122133/
[YYPHP]: https://yyphp.connpass.com/


__今回の配信動画__

<blockquote class="twitter-tweet" data-lang="ja"><p lang="ja" dir="ltr">YYPHP 82回の生配信開始しました！ <a href="https://t.co/vhdMom7wqE">https://t.co/vhdMom7wqE</a></p>&mdash; suin❄️PHPでオブジェクト指向 (@suin) <a href="https://twitter.com/suin/status/1121724026726957056?ref_src=twsrc%5Etfw">2019年4月26日</a></blockquote>
<script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>

__過去回の配信動画__

https://www.youtube.com/playlist?list=PLpOeTEye3Bg6PodrLHHC72jWMJYZz8VbG




## 雑談テーマ

### そもそもPHPの基礎が分かってない感が

* 夏に就職したいと考えてるが、PHPの基礎を固めるタイミングに悩んでいる。
* 基礎をわりをとしっかりしてから応用をやったほうがいいと思う
    * 応用のほうに時間がかかっちゃう
* フレームワークは使わないところもある
* 基礎ってどのへん？
    * if文、for文？
    * PHPの関数をいろいろ知ってるレベル？
* 勉強でツイッターっぽいアプリを作った
* 基礎だけやってても転職には有利にならないので、就職してからキャッチアップするのが最短な気がする。
* WebページやWebアプリなど応用的なものをちゃんと作れるところをやったほうがいい。
* 応用から基礎に戻ったほうが理解しやすかった。
    * それは、人によって合う合わないがあるので、自分にあった方法を選択したほうがいい。
* 13年前の話、アルバイトでプログラミング
    * 本を1冊渡されて勉強した
    * 今ほど複雑じゃなかったので、時代も変わってきてる感がある。
* 独習PHPを1冊やったら十分では？
    * 十分すぎかも。
    * 前半だけでもいいと思う。
* 就職を考えると、勉強するフレームワークはLaravelに切り替えたほうがいい。
* CakePHPとLaravelもWebフレームワークという意味では似てる。
    * 同じような機能をもう一度覚えないといけないので、
    * いちから学ぶなら、Laravelで学んでいったほうが無駄がないと思う。

### composerのオートーローダーってどうやって使うの

オートローダーとは？

* Composerにオートロードの仕組みが入っていて、自分でわざわざオートローダーを作る必要がない。
* 今は自分で書くのは良くない
    * 標準があるので、それを使ったほうがいい
    * オートローダーをメンテナンスをしなくていい
        * PHPのバージョンが上がったときに対応しないといけない
        * 不具合を直すとか

Composer

* [Composerのautoloadの書き方早見表 - Qiita](https://qiita.com/suin/items/b31e3c5bff15c821ccaa)
* [PSR-4 autoloader (日本語訳) - Qiita](https://qiita.com/inouet/items/0208237629496070bbd4)
* FIG、PSRとは？
    * FIG: フレームワークの相互運用性を高めるための企画を話し合うグループ
    * PSR: そこから出てきた規格
    * [PHP-FIG — PHP Framework Interop Group - PHP-FIG](https://www.php-fig.org/)
    * [PSR-0, 1, 2を日本語に翻訳してみました | 株式会社インフィニットループ技術ブログ](https://www.infiniteloop.co.jp/blog/2012/10/psrphp/)

### 設計・アーキテクチャ

* 設計
    * [新装版　マルチパラダイムデザイン | ジェームス・O・コプリン, James O. Coplien, 平鍋 健児, 金沢 典子, 羽生田 栄一 |本 | 通販 | Amazon](https://www.amazon.co.jp/%E6%96%B0%E8%A3%85%E7%89%88-%E3%83%9E%E3%83%AB%E3%83%81%E3%83%91%E3%83%A9%E3%83%80%E3%82%A4%E3%83%A0%E3%83%87%E3%82%B6%E3%82%A4%E3%83%B3-%E3%82%B8%E3%82%A7%E3%83%BC%E3%83%A0%E3%82%B9%E3%83%BB-%E3%83%BB%E3%82%B3%E3%83%97%E3%83%AA%E3%83%B3/dp/4894715287)
    * 設計は言う人によって何を指すかが違う
    * ビジネスのモデルを分析→どういうコードに落としていくか？と考えることだと思う。
* 作る前に何か考えること？
* ソースコードそのものが設計
* データベースだと設計がわかりやすい。
* ソフトウェアだとわかりにくいから、UMLというのを使う。
    * Unified Modeling Language
        * いろんな図を使ってソフトウェアを見れるようにする
        * それを設計という人もいる
* 構造を考えること
* 英語でいうとdesign
* DDD(ドメイン駆動設計)は設計手法のパターン
* コード書きながら考えるんじゃなくて、考えてから書く
* 設計にも粒度がいろいろ
* 設計書がバチッとあるのが設計？
    * そうではない
    * 関数1個とってもどういうふうにするか決めている。それも設計かと。
* ソフトウェアだけかと思っていたが、チームも設計に関係してくる。
* 設計という言葉に難しさを感じてしまい

### 半年後に副業で在宅案件を受けられるようになるには？

* Java案件が少ない、スクリプト言語に興味があって。
* スクリプト言語のほうがPRしやすい？
    * そう思う
    * Javaはエンタープライズ系が多い。
    * セキュリティが厳しいと思う。
    * 仕事を外部に出すってところまでいかない。
* Kotlinでアプリを作れますは、仕事多そう。
    * Androidアプリが多い
* フリーランスはスキルアップの機会が少ない？
    * 自分で勉強できる人に限ってはそんなことはない
    * 孤立して仕事している環境だと、情報が入ってこないこともあるかも。
* フリーランスは買い叩かれる傾向にある。
    * 買い叩かれないくらいのスキルになってからのほうがいい。
    * 無限フリーランス安安地獄: 自己投資できない→スキルが上がらない→売上が伸びない
* 強みがある状態
* アウトバウンドになった時点で安くなっちゃう
    * インバウンドでお願いされるようになってからでも遅くない

### Laravelのルーティング、コントローラの作り方

* RESTならResource

### TerraformとCloudFormationの使い分け

* 使い分ける必要あるの？
    * Terraform一択で良くない？
    * CloudFormationはAWS専用
    * Terraformは汎用性が高い
* CloudFormationは立ち上げるボタンが作れる
    * ボタン？
        * Deploy Herokuみたいなもの
        * クリックでデプロイできるやつ

### 色々よくわからなくなってきたので質問を考える

* 個人開発をスタートした
    * リリースまでのフローどういう感じで進めたらいいか？
    * 個人開発: 自分のプロダクトをWebアプリで作っている。
    * 目的: 作りたいものがあり、アイディアがある、収益も上げたい
    * 本当にみんなが使えるプロダクトなのか検証していったほうがいい。
    * 『running lean』とか『リーンスタートアップ』とか読んで実践してみては？
    * トラクションも大事
        * 週にN時間見そう x N人使う → 収益額が推測可能に
    * 「思い込みは捨てて顧客から学ぼう」
    * 「取りあえず動くとからリリースしよう」
        * Done is better than perfect.
* いままではインターフェイスってなんだ、という分からなさだった。
    * 具体例はわかってきたが、実際にどういうふうに使ったらいいか分からなくなってきた。
    * 勉強していくと、分かっていくと、わかんないことがもっと増える。

### 英語の勉強について

* エンジニアの英語って、読むこと？
    * 4技能によって勉強方法が変わってくる
        * 話す: 話せるけど合ってるのか不安感がある。
        * オンライン英会話。
            * お金に糸目をつけないなら外国人がやってるパーソナルトレーニングとか。
        * ネイティブの彼女を作る。

## YYPHPは毎週やってます

PHPについてワイワイ話したい方は、[YYPHPのイベント情報](https://yyphp.connpass.com/)をチェックしてみて下さい。

以上、YYPHPのレポートでした。次回もワイワイやっていきたいと思います！ では、また来週！