NIJIBOX

第131回PHP勉強会で、メイン発表枠で発表してきました

更新日 2019.11.13
第131回PHP勉強会で、メイン発表枠で発表してきました

こんにちはみなさん。
@niisan-tokyo です。

PHP勉強会には毎回のように参加しているのですが、久しぶりにメイン発表枠で発表してきましたので、
ここを借りて報告しておきたく思います。

[markdown]
# PHP勉強会

毎月末の水曜日に定期開催されている勉強会で、題名にあるように130回を超える老舗の勉強会です。
今年に入ってから曜日の関係で顔を出せるようになったので、毎回出るようになりました。

今回は弊社ニジボックスから、これまでで最大の4人が参加することとなり、
勉強会の中で、ちょろっとだけ話題になったりしました。

# 発表

で、発表したわけですが、今回は同僚が写真をとってくれたので、しゃべっている最中の私の状態を晒しておきます。

発表のスライドはこちらです。

ざっくりスライドで言っておきたいことだけ、述べておきます。

## 新人さんの課題
業務やプログラム未経験の新人さんは、以下のような問題を抱えています。

– 知識・経験が足りていないので、実装の仕方がわからない
– 冗長で可読性の低いコードを書いてしまい、自身が今何をしようとしているのかわからなくなる
– コードの品質が悪い

## テストで解決

しかし、これらの問題はテストを書くことで、ある程度解決できるし、いろいろ利点もあるよっていうのが今回の話の肝です。

### 知識・経験が足りない -> とりあえずテストは覚えられる
テストコードは基本的には同じようなパターンを繰り返します。
半分コピペでもいいくらいです。
テストの書き方を覚えることで、とりあえず知識がつくし、コードを書くことを経験していくことができます。

※ 本当はテストにもたくさんパターンがありますが、その部分にはあえて触れないようにしておきます。

### 今何をしようとしているのかわからなくなる -> テスト駆動開発
テスト駆動開発は、テストを書くことで、実装の取っ掛かりを掴んでいく手法です。
実装を進めることが困難な新人さんにとっては、常に明確な目標を示しておき、
それを実現するための実装にじっくり取り組みたいものです。
そのため、明確な目標として先にテストをかきあげておくことは、何らおかしなことではありません。

※ 逆に、もう実装に慣れちゃった人からしてみれば、先にテストを書くことが億劫になるように思います。テストを書かなくても実装ができるのであれば、テストを先に書こうが後に書こうがどっちでもいいと思います。

### コードの品質が悪い -> 後でリファクタリング
新人さんの書いたコードの品質が悪いのは当たり前のことです。
大事なのは、品質を改善するための仕組みがあるかどうかです。
テストが書いてあれば、仕様を固定したまま、品質を向上させるためにコードを書き直すことができます。
これがリファクタリングです。

※ テスト無しで行われるコードの書き直しはリファクタリングとは言いません。念の為。

## 大事なこと

新人さんに教えるときは、インプットする情報量に気をつけるべきです。
会場でも触れましたが、新人さんに一気に情報を叩き込もうとすると、情報の洪水に飲まれて混乱してしまい、かえって学習が進みません。
よく、一つ一つ覚えていけばいいなんて言いますが、本当にそのとおりですし、
また、教える側が非常に悩む部分でもあるかと思います。

# まとめ

というわけで、久しぶりにPHP勉強会で発表してきました。
PHP勉強会は、いろんなステージの方がいて、行くだけでも楽しいのですが、
発表すると、それはそれで気合が入るものです。

なお、私の場合、登壇しているときはどうもお腹に力を入れてしゃべっているらしく、
発表後、しばらく腹痛に悩まされていたという何の役にも立たない情報をここに述べておきます。

今回はこんなところです

[/markdown]