ある日、突然レガシープロジェクトに配属されました。
あなたはカンファレンスで色んな新しい情報を知っていて修正方法もおぼろげにわかるとしましょう。
何でも改善できます。
ただし、運用の中で少しずつ捻出される時間を利用して……ですよ?
・docker
・自動化テスト
・Linterの導入
・ドキュメント化
・DIやDDDの文脈の導入
・新しいツールやSaaSの導入
そういう状況になったときにどこから改善したらいいと思いますか?
もちろん一番大きな力になるのはツールや環境ではなくチームの地力を上げることです。
勉強会だったり、輪読会だったり、技術的な雑談です。
しかし怠惰なプログラマーたちは道具の点検も怠ることはできません。
では最大の効率を上げるため何から始めるべきでしょう?
取れる選択肢が多すぎて逆に選べなくなってしまった。
そんなときの改善ガイドを話すつもりです。
※技術的な話はしませんが具体的なツール名は説明なしにポンポン出ます。
※前提として話の合うチームメンバーが多少手伝ってくれるとします。
※ 初めての登壇になります。
短いWebの歴史の中で、約10年というスパンで運用され、
この先も継続して開発・運用されていく事業を支えるアプリケーションの事例は多くありません。
本プレゼンテーションでは、2019年にCakePHP + jQueryからLaravel + vueにリプレイスしたECサイトが、
その後の1年で開発や運用、デザイナー / ディレクターの意識の変化など、
社内の人等にどのような変化があったのかをお話しさせていただきたいと思います。
昨年、日本PHPカンファレンス版のElePHPantを作りました。
作りたいと思ってから、みなさんの手に届くまで、どのような流れだったのか、振り返ってみたいと思います。
また、時間があれば、めずらしいElePHPantの紹介や、オーナーランキングの紹介もしたいと思います。
Symfonyから『日本語』の入門書が発売されました。翻訳を手伝ったので本の紹介と、時間的に余裕があればどのように翻訳作業したかをすごく簡単にご紹介します。
長年続くサービスになると負の遺産が溜まっていくもの。
いち関数の役割が多く読めたものじゃない、未使用の関数が放置されているなどといったコードが多く混在してしまいます。
私のチームではこれらの負の遺産による可読性の低下によって、生産性が悪化したり開発そのものを見送るという事態が発生しました。
そこで私のチームではPhpStormのInspection機能に注目し、既存コードの可読性を高める取り組みを行いました。
・未使用の変数や関数を検知する
・関数コメントが書かれていない関数を検知する
・引数なし関数を引数ありで呼び出している箇所を検知する
など
本発表では、リファクタリング活動におけるInspection機能の活用事例を時間の許す限りご紹介します!
PHPer なら多くの人が経験するフォームの開発。
バグのないちゃんと動くフォームを目指すのは勿論、折角作るならより多くのユーザーに最後まで使ってもらえるフォームを作りたいですよね。そのフォーム、ちょっとした気遣いでもっと使いやすくなるかもしれません。
ユーザーの入力エラーを減らす、エラーになっても最後まで使いやすいフォームを一緒に目指しましょう。
フォームの開発やデザインを始めたばかりの方に向けて、すぐに取り組めるポイントをお話しします。
テスト駆動開発やビヘイビア駆動開発に代表されるように、PHPUnitなどのテスティングフレームワークを用いて開発時に自動テストを書くことは、今や当然のように行われています。
しかし一方で、長く開発が続けられてきたレガシーシステムにおいては、まだまだテストコードが書かれていないケースも珍しくないことでしょう。
そうしたシステムに一気にテストコードを書くことはできなくても、一部の機能から自動テストの導入を始めてみませんか?
このトークでは、13年続くレガシーシステムの改修案件で、PHPUnitを導入し既存ロジックをリファクタリングしながらテスト駆動で新機能を開発した事例をお話しします。
何とかペイとか何とか口座やらでセキュリティインシデントが改めて重要視される世の中になってきました。
そのための情報収集、アップデートを管理することはエンジニアにとって義務といっても過言ではないでしょう。
しかし、優先順位の問題で手をつけられてなかったり、工数の問題で本格的に着手できてないといったこともあるのではないでしょうか?
そこで今回は我々PHPerが普段使うcomposer.lockからセキュリティインシデントのうちCVEの識別子が付与されたものを見つけてくれるツール及びデータベースを紹介します。
Vim は他のエディタに代えられない素晴らしい開発体験を提供してくれます。
その一方 PhpStorm や VS Code のような IDE が持つ豊富な開発補助機能が Vanilla Vim には存在しないため、実用面では IDE の後塵を拝する状況となっています。
Vim か IDE のどちらかなんて選べない!
そんな私は Vim をいかに IDE の書き味に仕上げることができるか、その可能性を突き詰めてみました。
Neovim と各種 Vim Plugins 、 Language Server の PHP Intelephense を使ってファイラ、自動補完、スニペット、リンタなどの機能を実現する方法を紹介します。
ブレークポイントを制するものがデバッグを制する。
PhpStormのブレークポイントを学び、ブレークポイントの真のチカラを解放しましょう。
PhpStormのブレークポイントには様々なオプションがあります。
「条件」、「ログ出力」、「次のブレークポイントに到達するまで無効にする」など、デバッグを便利にするオプションについて例を挙げながら解説します。
Laravel Artisan コマンドの突然の Segmentation fault。他に出力は無かった。
手がかりが無い中、core dump さえ吐ければセグフォ対応は出来るという情報だけを覚えていた。
core dump といえば gdb。gdb といえばバイナリの再コンパイル。茨の道に決まってる。
実際には再コンパイルしなくても 1. gdb コマンド、2. core dumpファイル、3. Segmentation fault を吐いたバイナリ、の三種のパーツが揃えばデバッグ可能であった。
PHPerとしてはややハードルの高いツールたちを使って問題解決にこぎつけた方法を共有します。
私達は玩具サブスクリプション・レンタルサービスの「トイサブ!」を運営しております。
2015年にサービスを開始し、2020年11月末時点で7,000名以上のお客様に、月間2万点近くのおもちゃをお客様ごとにカスタマイズして選定・お届けをしております。
日頃開発で活用させていただいているPHPに対して、これからを担う子どもたちがPHPに対してどのような考えを持っているのかを語ってもらいました。
Discord Channel: #sl-toysub
コネヒトはこれまでテクノロジーやエンジニアリングの力を使って成長してきました。
しかし、事業を更に成長させるためにはその流れをより速く、より強く、よりクリアにする必要があると考えました。そこでコネヒトのエンジニア組織 / 技術領域において、今後何を大事に何に投資していくか未来の構想や方向性を「Connehito Tech Vision」としてまとめました。
本LTでは、そんなConnehito Tech Visionの概要をお話させていただきます。
Discord Channel: #sl-connehito
ホワイトプラスが展開するネット完結型クリーニング「Lenet」のシステムでは、エンジニアが開発に集中できるように開発環境を整備しています。
本セッションでは、そのための工夫をいくつかお話しします。
Discord Channel: #sl-whiteplus
Fusicは福岡のIT企業です。
弊社ではエンジニアの技術力向上のための制度が積極的に活用されており、その制度が評価され、この度エンジニア・フレンドリーシティ福岡の企業部門で受賞いたしました。
全国各地からの採用を積極強化中なのですが、いかにFusicがPHPerのみなさまにとって働きやすい、成長出来る可能性を秘めた会社なのかを東京から移住した私が徹底的にアピールします。
採用目的です、皆さま積極的に選考へご応募ください!
Discord Channel: #sl-fusic
AWS lambda上でbrefを用いてPHP8を実行するまでを説明いたします。IAMユーザの作成からdeployまで駆け足で伝えます!
Discord Channel: #sl-alleyoop