PHP勉強会に行って、発表までしてきたのでそのレポートなど。
参加者の自己紹介から。Laravel、Zendを使っている人がけっこう多い? 今回の発表がLaravelだからかな。
laravelのいいところ
@fagai さんの発表。
サービスコンテナ
DIコンテナとほぼ同義。 基本的にクラスをnewしない限りはサービスコンテナを必ず通る。 メソッドインジェクション機能(これが非常に強力)。
DI(Dependency Injection)とは?
インターフェースさえ合えばなんでも挿せる。挿す=インジェクション
自分なりに調べてみたDI。
ちょっと難しい……が、まぁなんとなくわかるような。
メソッドインジェクション
サービスコンテナがインスタンスを生成する際に、コンストラクタや呼び出すメソッドのタイプヒンティング(Reflection)をもとにして再帰的に引数を解決する
微妙なところ
「速度よりも書きやすさ、テストしやすさ重視」の志向らしい。
質疑応答
テストが書きやすい。HTTPリクエストのモックとかはある?
PHPStormでクラスを作る時にnewするといい感じにやってくれる。Cakeではアノテーションをつけることになる。
Laravelではメソッドインジェクションとコンストラクタインジェクションがある。
レンタルサーバー上でComposer installはきついが、手元でやってから上げればいい
若手に教える時にDIとかサービスプロバイダの考え方が理解してもらいにくい。おっさんはSPRINGなどで苦労した経験があるから分かるのだが、その経験がない人にどうやって概念を教えたらいいのか。
→最初まったくわからなかった。サービスコンテナも。IoCコンテナの頃からわからない。最終的にはそのDIやってるっぽいところのソース、LaravelだとApplication.php、Container.phpあたりを追いかけた。makeやbindをおいかけて一行ずつ追っていってなんとなく理解し、繰り返し。
Laravelの名前の由来は『ナルニア王国』のパラベルから、らしい。
エンジニアの価値をリセットするブロックチェーン
@nakamurakaikan
ブロックチェーン=信用を組み立てるシステム
Uberとタクシー、AirBnbとホテル。貨幣とBitcoin 地球規模OS
量子コンピュータが暗号を解いてしまう危険性はある。
- 実体経済÷発行数=貨幣の価値。
- 期待÷演算処理=仮想通貨の価値
採掘
2140年に採掘が終わる。前倒しで終わる可能性もある。採掘が終わるとどうなる? 金のような状態。採掘が終わったもの。
設計の失敗もある。通貨はだんだん価値が減るのが適性。しかしビットコインは上限をきっちり設定してしまったために、次第に価値が高まる。その結果、通貨として流通せず保有されてしまう。
CakePHPのCMS baserCMS
Cakeのコア、Baserのコア、自分のコア、3つに分けて開発できる。
テーマ、プラグインもある。
Webサービスを作ると、Cakeなのでカスタマイズが容易 管理画面が使える。
実際に作ったサービス
- モーニングコールセンター
- PRバズーカ:プレスリリース配信サービス
プレスリリースと同時にアドワーズも配信。AI×高火力プレスリリース。 送り先をAIが選別する。 アクセスランキングで広告予算ゲットできるシステム。予算を1位が総取りできる。予算は右のアフィリエイト収入から。
質疑応答
WordPressはブログ特化。Baserは固定ページ管理がメイン。
英語の質問サイトStackOverflowに質問したら15分でベストアンサーが来た話。
自分の発表
OneDriveのPowerPointシェアする機能初めて使って見たけど、はてなブログからプレビューされなくて使いづらいな……。やっぱスライドシェアか。
検索ステルスとは
資料の中の自己紹介で触れている「検索ステルス」というのはちょっとしたジョーク。
何らかの不具合だと思うが、私のTwitterアカウントはハッシュタグ付けて投稿してもフォロー外からだとハッシュタグ検索にヒットしない。謎の「検索八分」状態になってしまっている。この現象をなんとか前向きに捉えようとした結果、「検索ステルス」という単語が生まれた。どんなに書き込んでも検索されないんだぞ! スゲーだろ!
LTスピーカーなのにまとめに載らないという安定の検索ステルス能力…。「第121回 PHP勉強会@東京 #phpstudy」https://t.co/fIV3hpdOTC
— Dもがみたかふみ (@mogami74) 2017年12月26日