週末の回顧展の一環として、数十の質問とストーリーを用意しましたので、じっくり考えてみてください。このコーナーでは、私が経験したことのある、さらなる経験を積んだり、物事の考え方を試したりできるような話や質問を紹介しています。正しい解決策は、見かけとは違うかもしれません。
正しい技術を選択することは、上級開発者になるための必須条件です。なぜなら、アプリケーションの現在の技術的な状態、開発上の方向性、現在のチームの知識、求人市場で一般的な知識、各技術のコスト、運用にもたらすリスク、技術の安全性と安定性、そして最後に、例えば5年後に現在のチームの80%が交代したときに、開発者が何に興味を持つかなどを考慮しなければならないからです。 PHPで開発している大企業6社を経験しました。長い目で見て他の技術に乗り換えようとしているのは2人だけで、他の人はそのままです。それはそれ…
あなたは大規模なレガシーアプリケーションの開発者であり、そこにPHPStanを徐々に導入しています。レベル0からスタートするので、かなり難易度が高いですが、最終的にはうまくいきます。次のレベルに進むと、コードの一部が未使用の$lock変数を報告し始め、それを削除する必要があります。 コードは次のようになります。 public function processOrder(int $orderId): void { $lock = Lock::createLock('じゅんじょせい' . $orde…
2016年末、文字通り同僚に助けられた時の話:PHPアプリケーションで、プロキシスクリプトを介して画像をチェックインすることにした。プロキシスクリプトは、とりわけ、送られてくるリクエストに応じて寸法やその他のパラメータを調整することができる。最適化の一環として、生成されたバリアントをディスクに物理的に保存することもできます。 しかし、本番運用では、突然大きな負荷がかかり始め、何千ものリクエストがキューに並ぶことになります。画像は、ユーザーごとに1枚ずつ順次読み込まれます。ページの更新やリンクのク…
外部の監視ツールから、監視対象の5つのURLの平均応答時間が過去30分間で2倍になったことが報告されます。このプロジェクトは、あなたの管理下にない、データセンターのどこかで稼働している1台の物理サーバーで実行されています。SSHで接続してhtopを起動すると、CPU負荷は95%、メモリはとっくにオーバーフローしていることがわかります。 gitによると、1週間ほど前に新しいテーブル構造へのデータベース移行を行ったのですが、同僚がチャットに、列とインデックスの再計算に5時間ほどかかり、その間ほぼ全て…
2017年の話ですが、あなたはある代理店でリードデベロッパーとして働いていて、その間に会社が開発した大小約300のプロジェクトを管理していますね。その多くは、最大10個のテンプレートと数個のフォーム、データベース・テーブルを持つシンプルなネッテ・アプリケーションです。派手さはない。プロジェクトはそれぞれ微妙に違うベンダーが開発し、人も入れ替わり立ち替わりで、なんとかやり遂げたいと思っているわけですから、そんなに詳しいことはわからないですよね。この会社はコストの最適化をよく行うので、一度に1台のサ…
私がこれまでの人生で恐ろしく勘違いしていたことのひとつに、マイクロソフトに対する評価があります。 若い頃は古いデスクトップパソコンでWindows XPを使っていましたが、Windowsがユーザーやパフォーマンスの面で自分に合わなかったので、最初のお金でLinuxのノートパソコン(Ubuntu)を買いました。しかしその後、ADログイン、Office、Outlook、Teamsといったビジネス向けの他のアプリケーションや完全なソリューションを発見し、後にMSはGitHubを買収して大きく改善し、素…
後輩が、一緒に開発しているシステムの既存機能をリファクタリング/改善する方法について、あなたのところにアイデアを持ち込んできました。彼がいろいろ考えようとしていることはとても嬉しいし、絶対に褒めて、その可能性を試してみるんだ。 分析中に、提案されたソリューションが既存のソリューションより優れていないこと、さらには設計上の問題があることが判明します。しかし、残念ながら、これらは直接指摘できないほど厄介な問題で、どちらかというと直感や他のシステムを動かしてきた経験に基づくものなのです。例えば、新しく…
3年後、ホスティングプロバイダーから突然、エネルギーコストの上昇を理由に来月から50%値上げすると告げられる。電話で交渉しても、相手の上司は「新しい条件を受け入れるか、さよならを言うか」と言うだけ。 自分のプロジェクトだけなら、どうにかして作り上げることができるだろう。数年間面倒を見てきたクライアントサーバーで、クライアントと良い関係を築きたい場合は、もっと大変です。 比較的収益性の悪いプロジェクトですが、すでに運営に必要なコストや要求が比較的高いのです。 どのように決めるのですか? クライアン…
あなたと同僚は、FTFP(固定価格、固定時間)の仕事としてカスタムeショップを開発しています。 あなたは、すべてのテンプレートグラフィックス、コード化されたホームページと製品の詳細の準備ができています。後輩はネットとラテしか使えず、コーディングの知識も平均的なレベルです。 しかし、週末にしか遊ばないReactを1ヶ月前に知り、学ぼうとしているのですね。本番環境での動作、ルーティングやサーバーサイドレンダリングの処理方法、必要なサーバーの種類など、まだよく分かっていないのです。 どのように決めるの…