YYPHP#52「ソシャゲのサーバについて、技術書典5の本をレビューしてほしい、駆け出しエンジニアにどうやったらブレイクスルーを起こさせることができるか、オブジェクト指向を実務でどうやって活かしていくか、完全なコードというのはどこまで書いたらクリーンコードなのか、プログラムをずっと書いていて頭がつかれたとき、どうやってリフレッシュするか」

これは2018年09月14日に開催したPHPerイベント[YYPHP#52]のイベントレポートです。

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

[YYPHP#52]:  https://yyphp.connpass.com/event/100184/
[YYPHP]: https://yyphp.connpass.com/
YouTubeでの配信映像はこちら-> [#YYPHP #52【PHPの情報交換・ワイワイ話そう・仲間作り・ゆるめ・にぎやかめ】](https://youtu.be/cbEyjbrIi08)

![](https://qiita-image-store.s3.amazonaws.com/0/889/0051f99f-b555-6064-fcc9-3280e5543a1a.png)

## 参加者

* PHP歴
    * 1年未満: 3名
    * 1年: 1名
    * 6年: 1名
    * 10年以上: 5名
    * 不明: 1名

# 話したいこと/聞きたいこと
## ソシャゲのサーバについて話したい

* 相談込みで皆さんどう思うのかを聞きたい
    * アクションを起こすとしたら何をするか
* ソシャゲのサービスの盛り上がりからイメージを共有すると、
    * ソシャゲってちょっと特殊。普通のサービスだったら右肩上がり。
    * リリースの瞬間がピーク
        * だんだん上がるわけではなく、逆で右肩下がり
    * 出した瞬間が一番価値がある、だんだん落ちていく
        * なのでいち早く出す
    * きれいなコードを書かないのか聞いたら
        * 綺麗さは優先度が低かった
        * スピード優先
        * 動けば良い
        * 運用性の優先度低い
        * リリース時は寿命がどれくらいかわからない、どちらかというと短命
    * 社員の教育にも使えるようなものになっていくと良いのだが…
    * 技術的な面白みはある
* ソシャゲのサーバってどれぐらいの期間運用されるのか
    * 長いと３年以上
    * 短いと１年くらい
* 新たなソシャゲを作るとき、以前の内容はどれくらい再利用されるんでしょう？
    * PHPのFrameworkを流用するということはやってきてる
    * 最近はマイクロサービス化してきてる
        * 共通な機能をマイクロサービス化してる
        * 共通のやつはちゃんと書いておいたほうが良い
* 共通機能だけはメンテナンスしやすくなっている、というイメージでしょうか。。。
    * まだそうではない…
* 皆さんがアクションするならどうしますか？
    * コードの品質でリリースが遅れるなどがあればそこを改善していきたい
    * アクション起こせる余裕があるか？
        * イベント運用があるので、割と忙しい
    * 良くしていこうという空気はあるか？
        * 人によって違うと思われる
        * 新卒だったらこれが当たり前と思うかもしれない
    * コードを綺麗にしていくべき、としか言えない
        * 新卒の人が見てもわかるようにしていくべき
        * 汚いとそれが当たり前になっていってしまう
    * テストしてない
        * テスト書くべき
        * まずテストコードを書いて、リファクタリングかな、という気がしますが人員が用意できないと厳しいかも。。。
    * 自分が最高だと思うコードを書き続けていくしかない
    * 綺麗なコードと汚いコードを書く時間が一緒であれば、綺麗な方が直しやすいのでかける時間を減らせるなどのメリットを感じさせて認めさせていく
    * きれいなコードって何？
        * 読みやすい
            * if文がネストしてない
            * 循環的複雑度が１０以下
            * メソッドのパラメータの数が０個から１個まで
            * 重複がない
            * コピペコードがない
            * １メソッド１０行以内、行っても２０行以内
        * テストがある
            * 自動化された単体テスト
        * 理解しやすい
        * 適切に整理されている
        * いろんなオブジェクト指向の原則を守っている
            * 単一責務の原理とか
            * とか
            * とか
        * 機能を追加しても壊れにくく簡単に機能追加ができる
* 現実的にいま何が苦しいか？
    * 機能の追加に時間がかかる
* デバッガーさんがいる
    * バグを拾いきれない
    * 単体テストを書いていくのが一番
    * 単体テストを書きやすくする設計がある
    * 「単体テスト書こうぜ！」が最初のアクションかも
* ライフサイクルが長いのを綺麗にしていく
* コーディング規約とかがあるといいんですが…なければそれを作るところから、というのも一つかも。

## 技術書典5の本がおおむねできてきたのでレビューしてほしい。リンクは↓です（LaravelMeetupのLT資料）
https://speakerdeck.com/hirotaka_yamazaki/presentation-for-laravelmeetup11-plumsa

* 「頑張りが報われる」とはの定義は何か
* 育つ環境とは
    * 育つ人は勝手に育つ
    * 素養による部分がある
        * 技術が好き
        * 向上心が強い
        * 自分の気持を高める人
    * 環境に左右されてはいけない
    * その人がどんなタイプかで変わってくる
    * モチベーション、やる気スイッチを押し続けること
        * カッコいい先輩がそばにいるか
        * ロールモデル
        * 諦めないで、頑張り続ければ得られるものがある。

## コンテンツの中で迷っている部分の相談
### 駆け出しエンジニアにどうやったらブレイクスルーを起させることができるか

* 基本を一通りやった後の進み方をガイドしてあげるの大事

## オブジェクト指向を実務でどうやって活かしていくか

* 背景
    * オブジェクト指向ちゃんとやってなかったなぁと感じた
    * ちゃんと身につけるならそこそこの規模でやらないと良さがわからない
        * 個人より実務で
* どうするのがうまくやれるのか
    * 改修する部分でオブジェクト指向に書き換えていく

## 完全なコードというのはどこまで書いたらクリーンコードなのか

↑「ソシャゲのサーバについて話したい」で書いた「きれいなコード」と同じ

## プログラムをずっと書いていて頭がつかれたとき、どうやってリフレッシュしてますか？

* 泳ぐ
* 走る
* 筋トレする
* 仕事のコード書いてて疲れる　→　趣味のコードを書いてリフレッシュ
* ぜんぜん違う分野の言語・コードを書く
    * 癒やしコードを書く
* 布団でコーディング
    * 翌朝摩訶不思議なコードが出来上がってました
* YYPHPに来るｗ

## YYPHPは毎週やってます

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

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