YYPHP#93「PHPの勉強何から始めたらいい？」 「一番やらかした失敗談は何？」  「ソースコードが酷すぎる現場で生き抜く術」 「テストコードを書くタイミングって？」 

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

[YYPHP#93]: https://yyphp.connpass.com/event/132257/
[YYPHP]: https://yyphp.connpass.com/

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

__今回の配信動画__

<blockquote class="twitter-tweet"><p lang="ja" dir="ltr">本日のYYPHP主なお題<br>「PHPの勉強何から始めたらいい？」<br>「一番やらかした失敗談は何？」 <br>「ソースコードが酷すぎる現場で生き抜く術」<br>「テストコードを書くタイミングって？」<a href="https://t.co/xeyDRlHre5">https://t.co/xeyDRlHre5</a></p>&mdash; suin❄️AWSできる方募集中です🙏🏻固定ツイートご覧ください (@suin) <a href="https://twitter.com/suin/status/1152169226162987014?ref_src=twsrc%5Etfw">July 19, 2019</a></blockquote> <script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>

__過去回の配信動画__

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

__前回__ → [YYPHP#92「なぜDockerは日本で受け入れられてないのか？」「RiinさんにLTのコツを聞く」「オレオレフレームワークからLaravelに移植する上での悩み」「インターフェースって何？」 - Qiita](https://qiita.com/suin/items/9a97f9216fa4c34afd3e)


## 雑談

### PHPの勉強何から始めたらいい？ (ふるちゃん)

SQLとPythonの経験がある場合。

* 何を目指すのかによるかも
* 目的を作る
* 例えば。。
    * WordPressのカスタマイズができるようになる
* 公開しなくてもいいからサービスを作ってみるのがいい。
    * サービスを作ってみると、よく使うものが何なのか分かる。
    * 自分で使って便利なサービスを作るのもあり。
    * ウェブが考えることが多いので、CLIアプリから作るといいかも。
        * 覚えることが少ないけど、PHPでよく使う機能は使うから勉強になる。
* 参考書を読んで、写経する
    * サービスといっても作りたいものが無かったので。
    * 自分で考えていちから作ったほうが、技術として身につく。
* [Amazon.co.jp： 独習PHP 第3版 eBook: 山田祥寛: Kindleストア](https://www.amazon.co.jp/%E7%8B%AC%E7%BF%92PHP-%E7%AC%AC3%E7%89%88-%E5%B1%B1%E7%94%B0%E7%A5%A5%E5%AF%9B-ebook/dp/B01FH3KVNU)
* [パーフェクトPHP | 小川雄大, 柄沢聡太郎, 橋口誠 | 工学 | Kindleストア | Amazon](https://www.amazon.co.jp/%E3%83%91%E3%83%BC%E3%83%95%E3%82%A7%E3%82%AF%E3%83%88PHP-%E5%B0%8F%E5%B7%9D%E9%9B%84%E5%A4%A7-ebook/dp/B00P0UDWQY/ref=sr_1_1?__mk_ja_JP=%E3%82%AB%E3%82%BF%E3%82%AB%E3%83%8A&keywords=%E3%83%91%E3%83%BC%E3%83%95%E3%82%A7%E3%82%AF%E3%83%88PHP&qid=1563533730&s=digital-text&sr=1-1)

### みんな、どういう勉強のしかたをしてる？ (はたけ)

ひたすら業務(自社サービス)を開発しているが、勉強という概念がわからなくなっている。
ひたすら業務すること=勉強みたいになっている。
聞きたいこととしては:

* どんな勉強している？
* いつ勉強している？

...

* 業務で取り扱っている技術を、業務時間外で深く調べてみる。
* 集中したほうがいい？
    * なにかしら一つ極めたほうが、他に行きやすいと思う。
        * 結果的に効率がいいはず。
* 朝7:30に会社近くのカフェに行って勉強している。
* リファクタリングを読んでいるがJavaなので苦戦している。
    * Java→PHPに書き換えることで結構勉強になると思う。
* 家に帰ってから、興味がある分野(サーバサイド)について調べたり、読書したり。
* Kaggleを使い倒す。
* 疑問点を放置しない。

### エンジニアとして伸びる心構えとは？ (はたけ)

* reoringが意識していること
    * 楽しむ
    * 技術に対する愛情
    * 探究心
* nouphetさん
    * 自分の適性が合っているのを見つけたほうが伸びる
    * いろんなものを触ってみて、チャレンジしてみて、得意を探すのも大事
        * 発散 → 選択 → 集中
* Bulkerさん
    * 自分が愉しむのが一番だと思う

### エンジニアになってから一番やらかした失敗談は何？ (いっとく)

* 本番サーバで誤って `rm -rf /<space>hoge/hoge`
    * `rm -rf $DIR/$VAR` で`$DIR`も`$VAR`も定義されていなかったというミスも。
        * `set -eux` を習慣化しよう
* ターミナルが右クリックしたらクリップボードの中身が貼り付けられる設定だった
    * 大量にコピーされて、どこかのファイルが破損、バッチが起動しなくなり怒られた
* SPAMメッセージ抽出
    * 個人情報を扱うのに、外部環境につないでやっていた
* スイッチを何気なくつないだら社内のネットワークが全部落ちた
    * パケットが循環してしまうネットワークになってしまっていた。
    * パケットストームが発生。
* ファイルの削除を再帰処理
    * バグで下位ディレクトリだけでなく、上位ディレクトリの中身も消えた。

### ソースコードがひどい現場に入ったときでも成長できる方法って何？ (いっとく)

1600行のメソッドがあったり。

* できるだけどうすればもっと保守しやすくなるか？というのを考えながらやってる。
* キレイなコードをさっと出せるようにするには？
    * 何がキレイかは最初はわからないと思う。
        * キレイが分かっている人に見てもらうのが一番いい
    * 綺麗さが大事じゃなくて、いろいろ考えられたため機能美として美しさが生まれる
* 自分が気持ち悪いと思う部分があるから、良くしたいと考えられるし、違和感について深掘りしていったほうがいい。
* ボーイスカウトルール
    * 「来たときよりもキレイに」
* 他の人が書いたソースを見て学ぶ

### テストコード書くときはどのタイミングで書いてる？ (かきうち)

* テスト駆動開発というのをよく耳にするが、
* テストのパターン

...


* 慣れていればテストを先に書き上げることはできるが、
* テストファーストとTDDは厳密には違う
* TDD: Red Green Refactor

### おすすめの技術書、教えて！ (いっとく)

今まで読んだもの:

* パーフェクトPHP
* JavaScript忍者の極意
* リファクタリング

...

PHP以外が弱い
PHPと関連のある分野(DB、サーバー、セキュリティ……)

...

* スッキリわかるMySQL
    * わかりやすかった
* 徳丸本 体系的に学ぶ 安全なWebアプリケーションの作り方
    * PHPer必読、バニラPHPerにはかなり必読
* クリーンコード、クリーンアーキテクチャ、アジャイル開発の奥義
    * キレイなコード、いい設計について
* クリーンコード、コードコンプリート上巻
    * この2冊を理解すれば、良いコードが何か分かる。
* [PHPエンジニアが絶対に読みたい本 - Qiita](https://qiita.com/nimusukeroku/items/f164fd74e846f6a54651)

### IT系特有の疾患を持っていて転職活動中です。企業に属すかフリーランスとして頑張るか迷ってます。(ばるかー)

* どっちにするかは人による
    * フリーランスは負担が大きい
        * 経理や営業、契約締結手続きなども自分でやらないとならない。
    * プレッシャー
* どういう企業に入るかによって違う
* 通勤があるかリモートワークできるかで違う

# YYPHPは毎週やってます

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

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