1 ポイント 投稿者 GN⁺ 2024-06-29 | 1件のコメント | WhatsAppで共有
  • 何がそれをそれほど良くしていたのですか?
    • 良いプラクティスを徹底させる人がいた?
    • 優れたエンジニア集団の一員だった?
    • それとも別の何か?

GN⁺の意見

  • この記事は、ソフトウェア開発環境において良いプラクティスがどのように維持されるのかについて、興味深い問いを投げかけている
  • 良いプラクティスを強制することと、自律的な環境における違いを理解する助けになる可能性がある
  • 他の類似機能を持つプロジェクトとしては、GoogleのCode ReviewシステムやGitHubのPull Requestシステムがある
  • 新しい技術やオープンソースを採用する際には、チームの文化や既存のプロセスにどのように統合できるかを考慮する必要がある
  • 良いプラクティスを維持することは、チームの生産性とコード品質を高めるうえで重要な要素である

1件のコメント

 
GN⁺ 2024-06-29
Hacker Newsのコメント
  • Googleのモノレポはツール面で非常に優れている

    • コードベース全体のスナップショットを数秒で生成できる
    • ビルドは完全に再現可能で、ビルドクラスタ上で実行される
    • ビルド設定言語が非常にシンプルで簡潔
    • コード検索が即座にできる
    • ファイル履歴が即座に読み込まれる
    • 行ごとのblameが数秒で読み込まれる
    • ほぼすべてのファイルで即座にシンボル参照ができる
    • 一貫したスタイルが、共有文化、自動リンター、プリサブミットによって強制される
    • ファイル/バージョン/行にディープリンクするショートカットがあり、コード共有が容易
    • 多くのプリサブミットチェックがコード/テスト品質を保証する
    • コードレビューと、コード変更時のテストペアリングが必須
  • AOLのサーバーコードは非常に優れていた

    • Unixプログラミングとイベントループの利用に深い理解を持つ人たちが書いていた
    • C言語で書かれており、数か月間クラッシュなしで動作することが期待されていた
    • 異常終了時には、所有者にメールでコアバックトレースを送信した
    • メモリリークが発生すると運用チームが即座に対応した
    • すべてが再起動なしで稼働中のサーバーに再ロードできた
    • TCP制御ポートとTCLインタプリタを使ってサーバーを管理していた
    • "No Threads Kernel" により、数十台から数百台の物理マシンへスケールした
    • 200人のUnix開発者が共通の理解を持っていた
    • テクニカルライターが開発者にインタビューして、外部開発者に伝えられる本を書いていた
    • ディスクに書かずにネットワークメッセージをやり取りするという原則に従っていた
  • 前職のコードベースは非常に優れていた

    • エンジニアたちは高い技術を持ち、エゴがなかった
    • 4人のシニアと3人のプリンシパルエンジニアでチームを構成していた
    • 新しい要求が出るたびに、理性的なやり方で議論していた
    • ジュニアメンバーでも既存コードを簡単に追うことができた
  • Postgresのコードベースは非常によく整理されている

    • メモリ安全性を心配しなくてよい
    • マクロを慎重に使っており、人間に優しい
    • Postgresのコードベースは開発のゴールドスタンダードと見なされている
    • pgrxチームに感謝を伝える
  • 大規模なPythonサービスの統合テストフレームワークは非常に優れていた

    • 既存の統合テストフレームワークの上に構築されていた
    • テストコンポーネントに明確な意味を定義していた
    • テストコンポーネントを初期セットとして構築していた
    • コードレビューを通じて、新しいコンポーネントがその意味に従うよう保証していた
    • 長期的にはうまく機能しなかった
  • Google3のコードベースは非常に巨大で、うまく機能している

    • 変更のたびに依存関係を再実行する
    • コミットは効率的な不変スナップショットである
    • GitHubよりはるかに優れている
  • 自分で書いたコードベースが最も優れていた

  • Cocotronのコードベースは非常に印象的だった

    • Mac CocoaアプリをWindowsへ移植する方法を探していた
    • たった一人で必要なAPIをすべて実装した
    • 複雑なカスタムGUIアプリで成功裏に使われた
    • 集中が重要だ
  • Facebookのコードベースは継続的なコードアップグレードが可能

    • 言語設計とツールに多くの努力を注いでいる
    • 既存コードを継続的にアップグレードしている
    • 他社のコードベースは大規模な書き直し後の移行が難しかった
  • CouchDBのHTTP APIは1つのファイルにすべて含まれていた

    • データベースとWebプログラミングを学ぶのに良い出発点だった
    • 後にチームによってリファクタリングされた
    • ひらめきから実運用へ移る過程を見るのが興味深かった