DiscoverPHPの現場
Claim Ownership
48 Episodes
Reverse
@hidenorigoto さんと、キャリアと開発の力点の変遷、システム開発と人などについて話しました。
後藤さんのキャリア
プレイヤ、プレイングマネージャ期
エンジニアリングマネージャ期
CxO 期
設計への道
設計を学んで上手くいったこと
エンジニアリングマネージャ
マイクロサービス化へのチャレンジ
自分で技術を理解して判断できるようにする
ソフトウェアじゃない問題も大事
俯瞰してみる
CxO
会社全体を考えてエンジニアリングを捉える
ビジネスのモデルを考える
正しさよりも上手くワークするかどうか
正しさを求めたいエンジニアとの対話
ワークすることを重視する原点
システム開発と人
事業で扱われるデータを軸にする
誰のための設計
より事業に効果的なソフトウェア開発
正解の無い世界
ytake さん、@kurikazu さん、@omoon さんと現場での設計論や方法論との向き合い方、技術選定、エンジニア採用の悩みなどについて話しました。
Laravel や PHP バージョンの混在
設計論や方法論との向き合い方
DDD
コンテキストの共有
プロダクトによって設計や開発チームが違う
丁度良いサイズの課題
作って楽しいも大事
ある程度のサイズが無いと活きてこない
マイクロサービス
新しい挑戦への恐れ
自分たちで決める
社内ツールで試す
ベストプラクティスはケーススタディ
第三者視点の活用
技術選定
静的型付け言語
コンテナ時代の選定
書ける人がいるか
Terraform 話
エンジニア採用の悩み
イメージを持つ
リモートワークで失われたもの
@sji_ch さん、 @tadsan さんと PHP Foundation、PHP の静的解析ツールや型システムなどについて話しました。
PHP Foundation
インフィニットループさんのブログ
バス係数
Nikita Popov さんすごい
それぞれできる貢献をしていきましょう
PHP の静的解析
静的解析とは
静的解析ツールを使うきっかけ
Phan
PHPStan
Rector
baseline
Psalm
これからのプロジェクトにどれを採用するか
アノテーションの違い
言語としての型表現と Doc コメントによる型表現
導入してみて
教育
実行時の型検査は不要?
PHP の型システム
入出力で安全なコードが書けてこその型宣言
PHP をより便利に使うための型
将来の可能性を広げるための型付け
PSR-5
静的型付き言語と PHP
@tomzoh さん、 @cakephper さんと 2021 年のオンラインカンファレンス、アフターコロナ、M1 Mac を見据えた開発環境などについて話しました。
PHPerKaigi 2021
PHP カンファレンス2021
オンラインカンファレンス
参加者からのフィードバック
Discord 投稿の扱い
オフラインとのハイブリッド開催
PHPerKaigi 2022
fortee の CakePHP 3 -> 4 バージョンアップ
オンラインカンファレンスでのコミュニケーション
オンラインカンファレンスはどう?
オフラインへの順応
コロナ禍以降の働き方の変化
PHP カンファレンス福岡
アフターコロナのイベント
東京出張
M1 Mac 時代を見据えた開発環境
ちょっとしたスクリプトを何で書くか
小学校のタブレット配布
興味範囲が「PHP○○」に合わなくなってきた
@hanhan1978 さんと転職、既存コードとの向き合い方、Podcast、ランニング、学習とアウトプットなどについて話しました。
Open Developers Conference 2021 Online
受託会社からサービス事業会社への転職
転職先を選ぶ基準
カオナビの現場
既存コードとの向き合い方
Podcast をやってみて
Podcast ホストあるある
四十肩辛い
ランニング
勉強すれば勉強することが増える
ちゃんとしなきゃいけない呪い
問題の捉え方
中途半端なアウトプットを見せ合う会
制約は大事
@n_1215 さんとソーシャルゲーム開発での DDD 実装パターンの活用や RoadRunner、SPA などについて話しました。
最近の開発案件
受けるスタイル
ソーシャルゲーム開発での DDD パターン活用
開発現場で実践してみて
Facade 祭
マスタ管理
DB ファーストからオブジェクトファースト
「DDD」という言葉への期待
IO の無い実装の経験
ガチャのパフォーマンスチューニング
日本語コード
RoadRunner
mod_php や php-fpm とは異なる動作モデル
メリットとデメリットの天秤
SPA しんどくないですか?
MPA もあり
AWS Lambda の使いどころ
ytake さん、@kurikazu さん、@omoon さんと Laravel 本(Laravel Web アプリケーション開発)、Laravel との付き合い方の変化、プログラミング言語、開発という仕事への向き合い方などについて話しました。
Laravel Web アプリケーション開発の執筆
Laravel 8.x 対応
Laravel との付き合い方の変化
適材適所でプログラミング言語を選ぶ
初学者の情報収集
コロナ禍でのコンテンツ消費
ランニング良い
プログラミングを学ぶ動画
Rust と Go
ソフトウェア設計の知見の共有
正解の無い世界
変化することを前提とした開発
成長のための失敗
システムデザインやコンテキストの共有
書籍執筆を助けるツール
健康が大事
雑談は楽しい
@sji_ch さんと PHP 8 について話しました。
PHP カンファレンス 2020
オンライン登壇
ライブ感
PHP 8 の印象
match 式
これまで PHP に無かった書き味
網羅性チェック
Ilija Tovilo さん作
静的解析
get_debug_type()
Constuructor property promotion
コードボリュームが減る
プロパティ宣言との混在
Named argument
仮引数の名前が API の一部になる
継承関係でも仮引数を揃える
needle / haystack
PhpStorm(JetBrains) の貢献がすごい
Attribute
仕組みが入った
静的解析に使うか
Psalm は doc comment 推奨
動作に影響を及ぼすところに使う
Union types
type alias が欲しい
レガシーコードへの適用
現場でどう使わるか
Nullsafe operator
便利は便利
真面目に書く時に使うか
コードレビューで通すか
Saner string to number comparisons
リリース時の反応
覚えるパターンが増えた
挙動が変わるので、PHP 8 対応時は要注意
in_array や sort なども影響
Jit compilation
なぜ JSON パーサが速くならなったか
プロファイルでボトルネックを見つける
CPU bound でも速くならないケース
ファミコンエミュレータ
$x === null or is_null($x)
Weap Map
わくわくするが、どこで使うか
今後の PHP
PHP 8 リリースまでの流れ
誰が今後の旗振り役をするのか
進化しつづける PHP
@tomzoh さん、 @cakephper さんとコロナ禍での生活、仕事、オンラインミーティング、リモートワーク、オンラインカンファレンス、2020 年のコミュニティイベントなどについて話しました。
コロナ禍での日々
コロナ禍での仕事
オンラインミーティング
オンライン化が可逆か不可逆か
リモートでの採用活動
リモートでのオンボーディング
仕事が効率的過ぎて息苦しい
これまでの貯金を切り崩す感覚
コミュニケーション
オンライン勉強会
参加しやすい
平日夜 19:00-21:00 問題
ニコ生が良い
iOSDC 2020
今年はオンラインカンファレンス
事前録画
スピーカーが自分のセッションを一緒に体験できる
オンラインイベントで話すモチベーション
祭り感
ニコ生でカンファレンス配信
fortee に事前録画システムを実装
iOSDC はだいたい PHP で動いている
オフラインでもハイブリッドでやりたいくらいニコ生が良い
トラック数の決め方
セッション配信
オンラインカンファレンスはネガティブじゃない
ノベルティを送る
blog 書いた人が多かった
オンライン懇親会
オンライン飲み会
PHP カンファレンス福岡 2020
中止までの流れ
中止した後のタスク
Fukuoka.php
国内の PHP イベント
PHPerKaigi 2020
代替案ではないオンラインイベント
PHP カンファレンス 2020
PHPerKaigi 2021
10GBps インターネット回線
POST, GET, Cookie, Session を説明できるか
どこまで理解する必要があるのか
Segway Drift
AirPods Pro の Spacial Audio
kurikazu さんとディップの現場、エンジニア採用、エンジニア組織のマネジメントなどについて話しました。
ソフトウェアエンジニアからマネージャへ
マネージャの面白さ
大規模システムの難しさ楽しさ
技術的視点
マネージメントスタイル
バイトル
Laravel と Codeigniter を併用
パートナー企業と開発
社内開発と社外開発のバランス
Web と API
Go の導入
API ゲートウェイ(BFF)を実装
プロトタイプで検証
チームの変化
新しいことへのチャレンジ
事業サイドとの調整
最初のエンジニアをどう確保するか
新しいチャレンジに並走してくれる人
興味の火を付けて回る、付いている人を消さない
忘れずに考え続ける
エンジニア採用
PHPer の採用面接で僕らは何をつたえあるべきか
お互いのミスマッチを避ける
面接で見るポイント
エンジニア組織のマネジメント
課題解決
エンジニアの上位互換ではない
マネージャの考えを開示
岩田聡さん、MIKIKO さん
ytake さんと DDD、マイクロサービス、Hack などについて話しました。
Spotify で「PHPの現場」が聞けるようになりました
データベース作り
DDD
対話、分析が大切
境界づけられたコンテキスト
実装パターンに圧倒される
アプリケーションモデルとインフラストラクチャモデル
CQRS
Design It!
日本語でコードを書く
インフラストラクチャやフレームワークに依存しない話の伝え方
インターフェイスによる分離の伝え方
ドメインエキスパートとの対話の工夫
マイクロサービス
メッセージブローカーに何を使ってるか
マイクロサービスパターン 実践的システムデザインのためのコード解説
Saga パターン
イベントストア
イベントソーシング
マイクロサービス化への道
モノリスからはじめる
Hack
PHP array, SPL が無くなった
<?php は動かない
Visual Studio Code + vscode-hack
Hack の魅力
心にタイプチェッカー
PHP 8
Hack の新機能
HSL
@yakitori009 さんとリモートワーク、ランサーズの現場、CakePHP、SREなどについて話しました。
家からの収録
リモートワーク
コミュニケーション
オフィス
地方採用
ランサーズの現場
PHP は扱いやすい
Rails への置き換えを検討
バージョンアップの過程を発表
既存のユニットテストを捨てる
CakePHP を継続して利用
PHP / CakePHP バージョンアップ時のインフラ対応
インフラエンジニアとして入った理由
コンテナの利用
今は本番でコンテナを利用しない
仕事で大変なところ
チームとの調整
OSS コミュニティとの関わり
他社との合同勉強会
今後の展望
SRE
モニタリングサービス
Mackerel, New Relic, Datadog
迷ったらシンプルな方に寄せる
@tomihisa さんと技術書、技術情報の移り変わり、電子書籍、商業誌と個人出版などについて話しました。
WFH
技術書、技術情報の移り変わり
OSS / コミュニティ
執筆依頼の変化
発売日に合わせてソフトウェアをリリース
付録
モバイル動画
ブログ / SNS / 誰かが発信できる時代
信頼性を担保する
電子書籍
本を使う
世代間ギャップ
仕事の面白いこと、つらいこと
この現状にどう向き合うか
商業出版と個人出版
書き手は見つけやすくなった?
出版社の役割
技術が人を救う
商業誌の書き手になるには
PHPerKaigi 2020 にて @nrslib さんと公開収録を行いました。クリーンアーキテクチャ、DDD、ドメイン駆動設計入門などについて話しました。
クリーンアーキテクチャ
採用の経緯
ツールでサポート
実際に導入してみて
信頼を得る
DDD
ドメイン駆動設計入門を書いた経緯
パターンから入る
軽量 DDD
ユビキタス言語の誤解
アウトプット
デベロッパーエバンジェリスト
アウトプットのきっかけ
OOP 研修
背中を見せる
ボールを拾う
@akiyan さんと S4Ads の現場、兼業、note、ウィルパワーなどについて話しました。
公開収録
PHPerKaigi 2020
S4Ads の現場
入稿処理の開発
BtoC 開発と BtoB 開発の違い
求人
PHP のイメージ
Laravel
AWS Elastic Beanstalk ワーカー
兼業
時間配分
病気リスク
営業の大事さ
note
なぜ note.com に書くか
note のスキ
note を書いた感触
ウィルパワー
選択するコストを削減する
紐のない靴を買う
スタイリストさんへ依頼
ペアプロ、モブプロ
Podcast をやりたい
@tomzoh さん、 @cakephper さんと大改修!PHPレガシーコードビフォーアフター、PHP カンファレンス福岡2020、PHPerKaigi 2020、それぞれのゆく年くる年などについて話しました。
大改修!PHP レガシーコードビフォーアフター
思いがけず大盛況
fortee へのコアレイヤパターン適用
VAddy で脆弱性検査
PHP カンファレンス福岡 2020
企画会議
LT 審査員システム
2 次会問題
PHPerKaigi 2020
PHP の現場 公開収録
PHPer トレカ
PHPer ハウス
PHP コミュニティ
phpusers-ja slack
インターネットのようなコミュニティ
ゆく年
筋トレ
スキルの螺旋階段
読んだ技術書
横より縦の年
40 才になって
低レイヤ
こつこつやり続ける
自作 CPU
頷きながら聴いてるやつキモい
くる年
エッセンシャル思考
自分のアイデア
自分たちのサービスを色々な人に喜んで使ってもらう
0->1 と 1-> 10
VAddy のピポット
キャリア、ロールの悩み、変化
@brtriver さんと技術力評価会、管理画面開発、CSO、仕事との向きあい方などについて話しました。
技術力評価会
外部評価者としての参加
依頼の経緯
複数の評価者
評価レポートを書く
評価会ハック
評価に納得出来ない時のケア
サポータ制度
共有会
@brtriver さんの仕事
管理画面開発
チームメンバーのサポート
インターンのサポート
CSO (Chief Sound Officer)
「営業、運用を支える、気付ける管理画面」の 4 年後
ステージング環境は無い
ブランチデプロイ
戻せないリリースはやらない
issue や PR のコメント
コードを書く仕事と書かない仕事のバランス
時間の使い方
仕事を任せる
初期開発者としての考えの共有
PHP の立ち位置
大改修! PHP レガシーコードビフォーアフターと PHP カンファレンス
@reoring さん、 @suin さんとインフラの自動化、開発中のプロジェクト、DDD、情報のアウトプット、YYPHP などについて話しました。
クラフトマンソフトウェア
BugHunt
レンタル CTO
@reoring さんの仕事
インフラを Terraform / Kubernetes 等で自動化
AWS 障害話
本番環境適用の怖さ
AWS CDK
@suin さんの仕事
Web アプリケーション基盤開発
TypeScript を選んだ理由
EC システムのリライト
PHP + DDD + CakePHP 3 + Kubernetes + Vue.js
言語、フレームワーク、アーキテクチャ
開発チームへの DDD の導入
ドメインエキスパートとの情報共有
ユビキタス言語の言語
Sasage
クラスやメソッド、変数名を日本語で書く
用語の揺れ
情報のアウトプット
アウトプットのコツ
初心者が書いたからこそ価値がある記事
ネガティブな反応への対応
いいねは麻薬
結果として長持ちするコンテンツを書く
アウトプットのメリット
Qiita と blog の棲み分け
YYPHP
少人数での勉強会
YYPHP を始めた理由、休止の理由
YYTypeScript
@hanhan1978 さんと受託開発の現場などについて話しました。
※開始 8 分間ほど、音声が若干聞き取りづらくなっている箇所があります。ご了承下さい。
フルサイクルエンジニア
受託開発の現場
運用も含めた開発
見積もり難しい
請負と準委任
受託の面白いところ、大変なところ
既存案件の Laravel アップグレードと Fargate 化
小規模案件での Kubernetes、Amazon ECS、Docker Swarm
DaaS
顧客のビジネスへ貢献できる
SES
受託現場での人材
受託開発 -> サービス開発 -> 受託開発
謙遜しないキャンペーン
インポスターンシンドローム
ダニング=クルーガー効果
PHPer ですと言えないのか
タガを外すことの大切さ
セーフティゾーンから抜け出す
初めてプロポーザルを送った時
筋トレとランニング
ラストマン・スタンディング戦略
お気に入りの本
トム・デマルコ、G.M.ワインバーグ
DDD も良いけどトム・デマルコも良いよ
人のアウトプットとの触れ方
Web アプリケーションエンジニアというプロフェッショナル
ちゃんとできる人
資格・検定
他の人に認めてもらう
@k1LoW さんと ロリポップ!マネージドクラウド、ダーマの神殿、開発した OSS、受託開発とサービス開発などについて話しました。
ロリポップ!マネージドクラウド
開発と運用を別け隔てなく行うチーム
マネージドクラウドの技術スタック
Haconiwa
ダーマの神殿に行ってみて
低レイヤに下りていく
アプリケーションエンジニアから見た IaC
インフラから学ぶかコードから学ぶか
低レイヤや言語仕様への興味
適度な刺激
不特定多数のアプリケーションを動かす基盤作り
技芸のコード化
OSS
Go と Ruby
awsspec を GO に書き換えるか?
OSSを仕事の時間で書くかプライベートの時間で書くか
作りたいものネタ帳
メールを HTTP で転送するツール
一押しの OSS
受託開発とサービス開発の違い
0 から 1 の経験
変更への強い心
緊急事態宣言