Movatterモバイル変換


[0]ホーム

URL:


▼サーバー運営を助ける支援をお願いします
▼サーバー運営を助ける支援をお願いします
900円(うち手数料33円)

私たちは過去最高の大ヒットを記録しているのと裏腹に価格高騰などの影響でサーバー運営が非常に苦しい状態です。打てる手は全て打ちましたが、それでもまだ危機的状況にあります。なので、GIGAZINEの物理的なサーバーたちを、たった1円でも良いので読者の皆さまに支援してもらえればとっても助かります!今すぐ1回払いの寄付は上のボタンから、毎月寄付はこちらのリンク先から!

これまでGIGAZINEを支援してくれたメンバーのリスト

GIGAZINE ホーム
login
GIGAZINEにログイン
メンバー登録はココをクリック


-パスワードの再発行

ソフトウェア

「Goの父」ロブ・パイクの「プログラミング5カ条」、ネット上で話題に


UNIXはただ死んだだけでなく、本当にひどい臭いを放ち始めている」「キャッシュはアーキテクチャではない。単なる最適化だ」などの語録を生んだ「Goの父」とも呼ばれるロブ・パイク氏の「プログラミング5カ条」について、ネット上で話題となっています

users.ece.utexas.edu/~adnan/pike.html
http://users.ece.utexas.edu/~adnan/pike.html

Rob Pike's Rules of Programming (1989) | Hacker News
https://news.ycombinator.com/item?id=24135189

パイク氏の「プログラミング5カ条」は以下。


ルール1:プログラムのどこで処理時間がかかるかはわからない。ボトルネックは意外な場所で発生するので、ボトルネックがどこにあるかを証明するまでは、臆測で速度の改善に取り組まないこと。

ルール2:処理速度を測定すること。測定して、コードのある部分が他の部分を圧倒しない限り、速度の調整をしてはいけない。

ルール3:派手なアルゴリズムは、入力値のnが小さいと処理が遅い。そして通常、nは小さい。派手なアルゴリズムは大きな定数を持っている。nが頻繁に大きくなることがないなら、派手なアルゴリズムは使わないようにすること。(nが大きくなっても、まずルール2を適用すること)

ルール4:派手なアルゴリズムは単純なアルゴリズムに比べてバグが多く、実装も大変なので、シンプルなアルゴリズムとシンプルなデータ構造を使うようにすること。

ルール5:データが支配する。正しいデータ構造を選択し、うまく整理していれば、アルゴリズムはほとんどの場合、自明のものになる。プログラミングの中心はアルゴリズムではなくデータ構造。

5カ条のうちルール1と2は、トニー・ホーアの有名な格言「早すぎる最適化は諸悪の根源である」を再掲しており、ルール3と4はKISSの原則の実例、ルール5はフレデリック・ブルックスが自身の著書「人月の神話」の中で述べていたとのこと。また、ケン・トンプソンはルール3と4を「疑わしいときは、ブルートフォースを使え」と言い換えており、ルール5はしばしば「スマートオブジェクトを使った愚かなコードを書け」と短縮されると説明されています。

この5カ条に対し、ソーシャルニュースサイトのHacker Newsのコメント欄にはさまざまな意見が投稿されています。特に、memcachedRedisで極端なキャッシュを実装している事例に遭遇している人は多い模様。ルール1を取り上げて「人々がこのルールに従って、物事がうまくいくようにしてほしいと思います」というコメントが見られます。


「memcachedをオフにするだけでシステムの高速化に成功した」事例もあるとのこと。


また、ルール5で重要視されているデータ構造について「長年稼働するシステムでは、時代に応じて『適切なデータ構造』を選択することはほとんど不可能です。データ構造も、データ自体と同じくらい長くは続きません」というコメントも。確かに、年表示を2桁に絞っていた場合に「2000年」をコンピューターが誤認識してしまう2000年問題などは、当時は妥当と思われていたデータ構造が年月を経て妥当性を失った好事例です。


「ほとんどのビジネスが抱えている問題は、コーディングスキルの欠如やアルゴリズムを構築できないことではなく、そもそもどのようにしてデータを構造化し、良識的な方法でモデル化するかにある」といったコメントも投稿されています。

この記事のタイトルとURLをコピーする

・関連記事
プログラミングを勉強するには「言語能力」と「問題解決能力」も重要 - GIGAZINE

プログラミングを上達するには量と質のどちらがより大切なのか? - GIGAZINE

ソフトウェアエンジニアがハードウェアのプログラミングをする時に注意すべきこと - GIGAZINE

プログラマーを30年間やってきた経験から学んだことまとめ - GIGAZINE

バージョン管理システム「Git」の使い方はどのように教えるのが良いのか? - GIGAZINE

・関連コンテンツ

inソフトウェア, Posted by darkhorse_log

You can read the machine translated English article'Go's Father' Rob Pike's '5 Prog….

最新ニュース40件

記事検索
カテゴリ
メモ
ヘッドライン
レビュー
取材
インタビュー
試食
モバイル
ソフトウェア
ネットサービス
ウェブアプリ
ハードウェア
乗り物
サイエンス
生き物
動画
映画
マンガ
アニメ
ゲーム
デザイン
アート
セキュリティ
お知らせ
ピックアップ
コラム
メンバー限定
広告
無料メンバー
過去の記事

人気記事ランキング

直近24時間(1時間ごとに更新。5分ごとはこちら

  1. Google Geminiが40年以上前のゲーム機とのチェス対決を放棄して不戦敗、ChatGPTの敗北を知ったため
  2. Discordが仮想報酬システム「Orbs」を正式リリース、広告を見たりゲームをプレイしたりしてクエストをクリアすればバッジや有料プラン利用権をゲット可能
  3. Microsoftは国防総省のシステム保守に中国人エンジニアを投入しており機密性の高いデータがハッキングの危機にさらされている
  4. 実在の人物の同意なしで性的コンテンツを生成できるためCivitaiから禁止された5000種類のAIモデルがHugging Faceに再アップロードされていることが判明
  5. 2025年7月16日のヘッドラインニュース
  6. Intel第8~11世代CPU&GIGABYTE製マザーボードの組み合わせに不具合発生の可能性あり、修正パッチが配布される
  7. 2025年7月15日のヘッドラインニュース
  8. Fallout 5は「全面的にゴーサインが出ている状態」か
  9. 無料で使えるGoogleのAI情報収集アプリ「NotebookLM」にシェイクスピア全集や大企業の決算報告などオススメ情報源をまとめた「Featured notebooks」が追加&ノートブック公開機能も登場
  10. 禁酒すると1日後・1週間後・1カ月後・半年後・1年後の体になにが起こるのか?

お邪魔して申し訳ないです。読者のための記事を掲載し続けるため、どうかサーバー代として300円をご寄付いただけないでしょうか。

喜んでメールでリマインドさせていただきます。 引き続き記事をお読みください。


[8]ページ先頭

©2009-2025 Movatter.jp