今までバッチ処理について雰囲気でやってきていませんか?僕は少なくとも雰囲気でやってきました。
もちろんバッチ処理なしで実装できるに越したことはありませんが、運用としてすでにそうなっているところも多いのではないでしょうか?
実際そんなに困ることねーし・・・!とそう思っていたそのとき!困る時がやってきます・・・。(震え声)
基本的にバッチ処理を避けた方が良いパターンについて言及しつつ、バッチ処理が必要な際にどのようなことを考えれば良いのか?どう見直す道筋を立てるのか?
TechTrainで実装するときに失敗したな・・・。と思った経験を踏まえてお話しします。
対象者
PHPerKaigiでは、タイムゾーンの雰囲気実装を抜け出すための話をしましたが、タイムゾーンは政治的な理由でよく変更されたり、tz databaseの過去の設定が実は間違っているなんてことが実はあります。実際に変更された時に僕たち実装する人がどう対応していかなければならないのか?危ないケースはないのか?について、お伝えします。
どの企業でもPHPerのミドルクラス、テックリードクラスの採用とオンボーディングには苦労されていることと思います。特にオンボーディングにおいては、別言語をメインでやっていた方を採用し、活躍してもらうためにはこのくらいはキャッチアップできるだろうし、大丈夫!というサボりが、認知負荷を高め、活躍までのリードタイムを長くしたり、副業エンジニアの離職を招きます。このトークでは、実際にTechTrainの開発現場で行なっているオンボーディングを出来る限り見せながら、一般的に利用できる形式にしてお伝えします。
対象者
過去のPHP(特に5系まで)では、型システムが未熟であり、型の変換や関数の引数や返り値の型が厳密に管理されなかったため、関数を利用する際に適切な型の値を渡すことが難しかったり、返り値の型を信頼できない場合がありました。現在名前ベースで一致を調べる型システム(nominal type system) を採用していますが、他の言語と比べて、どうなのかを次の観点をベースにお伝えします。