Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

[インデックス 13977] ファイルの概要

このコミットは、Go言語の公式ドキュメントである doc/install.html におけるOS X (旧称 Mac OS X) 向けのダウンロードリンクの修正に関するものです。具体的には、ダウンロードリストをフィルタリングするためのURLクエリパラメータが更新され、より正確なリンクが提供されるようになりました。

コミット

commit 020d85152ec25fdf454e02d9a8d1b7a7fc5860ca
Author: Andrew Gerrand <adg@golang.org>
Date:   Thu Sep 27 14:48:33 2012 -0700

    doc: fix OS X download links
    
    R=golang-dev, r
    CC=golang-dev
    https://golang.org/cl/6566064

GitHub上でのコミットページへのリンク

https://github.com/golang/go/commit/020d85152ec25fdf454e02d9a8d1b7a7fc5860ca

元コミット内容

diff --git a/doc/install.html b/doc/install.html
index 5414b94fb8..cc02f12924 100644
--- a/doc/install.html
+++ b/doc/install.html
@@ -115,7 +115,7 @@ rm -r /usr/local/go
 </pre>
 
 <p>
-Extract <a href="http://code.google.com/p/go/downloads/list?q=OpSys-FreeBSD+OR+OpSys-Linux+OR+OpSys-OSX+AND+Type-Archive">the archive</a>
+Extract <a href="http://code.google.com/p/go/downloads/list?q=OpSys-FreeBSD+OR+OpSys-Linux+OR+OpSys-OSX+Type-Archive">the archive</a>
 into <code>/usr/local</code>, creating a Go tree in <code>/usr/local/go</code>:
 </p>
 
@@ -140,7 +140,7 @@ export PATH=$PATH:/usr/local/go/bin
 <h3 id="osx">Mac OS X package installer</h3>
 
 <p>
-Open the <a href="http://code.google.com/p/go/downloads/list?q=OpSys-Darwin+AND+Type-Installer">package file</a>
+Open the <a href="http://code.google.com/p/go/downloads/list?q=OpSys-OSX+Type-Installer">package file</a>
 and follow the prompts to install the Go tools.\n The package installs the Go distribution to <code>/usr/local/go</code>.
 </p>

変更の背景

このコミットが行われた2012年当時、Go言語のダウンロードは主にGoogle Codeのプロジェクトページ(code.google.com/p/go)を通じて提供されていました。このページには、様々なオペレーティングシステムやアーキテクチャ向けのGoバイナリがアーカイブやインストーラーとしてリストされていました。ユーザーは、URLのクエリパラメータを使用して、特定のOSやファイルタイプでダウンロードリストをフィルタリングすることができました。

しかし、既存の doc/install.html に記載されていたOS X向けのダウンロードリンクのクエリパラメータが、意図した通りに機能していなかったか、あるいはGoプロジェクトのダウンロードページのフィルタリングロジックの変更により、正しくOS X向けのファイルが表示されなくなっていた可能性があります。

具体的には、以下の2つの問題が考えられます。

  1. AND 演算子の誤用または不要化: 最初の変更箇所では OpSys-OSX+AND+Type-Archive から AND が削除されています。これは、Google Codeのダウンロードリストのクエリパーサーが +AND+ を正しく解釈していなかったか、あるいは単に OpSys-OSXType-Archive をスペースで区切るだけで暗黙的にAND条件として扱われるようになったため、冗長な AND を削除したと考えられます。
  2. OS名の変更または正規化: 2番目の変更箇所では OpSys-DarwinOpSys-OSX に変更されています。Darwin はmacOS(当時はOS X)の基盤となるUNIX系オペレーティングシステムの名称ですが、ユーザーインターフェースやマーケティング上は OS X が一般的に使用されていました。Google Codeのダウンロードリストのフィルタリングシステムが、より一般的な OS X という表記を正式なオペレーティングシステム名として認識するようになったか、あるいは一貫性を保つために OS X に統一された可能性があります。

これらの問題により、ユーザーがGoのインストールガイドに従ってOS X向けのダウンロードリンクをクリックしても、期待するファイルが見つからない、あるいは不適切なファイルが表示されるというユーザーエクスペリエンスの低下が発生していました。このコミットは、その問題を解決し、ユーザーがGoをスムーズにダウンロードできるようにすることを目的としています。

前提知識の解説

このコミットを理解するためには、以下の前提知識が役立ちます。

  1. URLクエリパラメータ: URLの末尾に ? の後に続く key=value 形式の文字列で、ウェブサーバーに情報を渡すために使用されます。複数のパラメータは & で区切られます。このコミットでは、q= パラメータの値が変更されています。
  2. URLエンコーディング: URLで使用できない文字(スペースなど)を %XX の形式でエンコードする仕組みです。このコミットでは、スペースが + で表現されています(これは application/x-www-form-urlencoded 形式でよく見られます)。
  3. Google Code: 2006年から2015年までGoogleが提供していたオープンソースプロジェクトのホスティングサービスです。Go言語プロジェクトも初期にはここでホストされており、ダウンロードファイルもGoogle Codeのダウンロードセクションで管理されていました。このサービスは2015年に閉鎖され、GoプロジェクトはGitHubに移行しました。
  4. オペレーティングシステムの名称:
    • OS X: Appleが開発したmacOSの旧称(2012年当時はこの名称)。
    • Darwin: OS X/macOSの基盤となるオープンソースのUNIX系オペレーティングシステム。
    • ダウンロードサイトでは、これらの名称がフィルタリングのキーとして使用されることがあります。

技術的詳細

このコミットの技術的詳細は、主にURLのクエリパラメータの構文と、それがウェブアプリケーション(この場合はGoogle Codeのダウンロードリストページ)によってどのように解釈されるかに関連しています。

変更前:

  • http://code.google.com/p/go/downloads/list?q=OpSys-FreeBSD+OR+OpSys-Linux+OR+OpSys-OSX+AND+Type-Archive
  • http://code.google.com/p/go/downloads/list?q=OpSys-Darwin+AND+Type-Installer

変更後:

  • http://code.google.com/p/go/downloads/list?q=OpSys-FreeBSD+OR+OpSys-Linux+OR+OpSys-OSX+Type-Archive
  • http://code.google.com/p/go/downloads/list?q=OpSys-OSX+Type-Installer

変更点1: +AND+ の削除 元のURLでは、OpSys-OSX+AND+Type-Archive のように、明示的に AND 演算子を使用していました。一般的な検索クエリでは ANDOR を使用して条件を組み合わせますが、ウェブアプリケーションによっては、スペース区切りで複数のキーワードを指定するだけで暗黙的にAND条件として扱われることがあります。この場合、+AND+ が冗長であったか、あるいはGoogle Codeの検索エンジンがこの明示的な AND を正しく解釈せず、結果として期待通りのフィルタリングが行われていなかった可能性があります。+AND+ を削除することで、OpSys-OSXType-Archive の両方の条件を満たすファイルを正しく検索できるようになりました。

変更点2: OpSys-Darwin から OpSys-OSX への変更 これは、ダウンロードリストのフィルタリングシステムが認識するオペレーティングシステム名の正規化または変更を示唆しています。Darwin は技術的な名称ですが、ユーザー向けのダウンロードページでは OS X というより一般的な名称が使用されることが多いため、システム側も OS X を正式なキーとして採用したと考えられます。これにより、OpSys-OSX で検索することで、OS X向けの適切なインストーラーが確実に表示されるようになりました。

これらの変更は、ウェブサイトのバックエンドにおける検索ロジックやデータ構造の変更に起因している可能性があり、フロントエンドのドキュメント側でそれに合わせてURLを更新する必要があったことを示しています。

コアとなるコードの変更箇所

変更は doc/install.html ファイルの2箇所です。

  1. 行115: -Extract <a href="http://code.google.com/p/go/downloads/list?q=OpSys-FreeBSD+OR+OpSys-Linux+OR+OpSys-OSX+AND+Type-Archive">the archive</a> +Extract <a href="http://code.google.com/p/go/downloads/list?q=OpSys-FreeBSD+OR+OpSys-Linux+OR+OpSys-OSX+Type-Archive">the archive</a>

  2. 行140: -Open the <a href="http://code.google.com/p/go/downloads/list?q=OpSys-Darwin+AND+Type-Installer">package file</a> +Open the <a href="http://code.google.com/p/go/downloads/list?q=OpSys-OSX+Type-Installer">package file</a>

コアとなるコードの解説

これらの変更は、HTMLのアンカータグ (<a>) の href 属性内のURLを修正しています。

  1. 最初の変更は、Goのアーカイブ(tar.gzなど)をダウンロードするためのリンクです。

    • 変更前: q=OpSys-FreeBSD+OR+OpSys-Linux+OR+OpSys-OSX+AND+Type-Archive
    • 変更後: q=OpSys-FreeBSD+OR+OpSys-Linux+OR+OpSys-OSX+Type-Archive
    • OpSys-OSXType-Archive の間の +AND+ が削除されました。これにより、OS X向けのアーカイブファイルが正しくフィルタリングされるようになりました。
  2. 2番目の変更は、Mac OS X向けのパッケージインストーラー(.pkgファイル)をダウンロードするためのリンクです。

    • 変更前: q=OpSys-Darwin+AND+Type-Installer
    • 変更後: q=OpSys-OSX+Type-Installer
    • OpSys-DarwinOpSys-OSX に変更され、+AND+ が削除されました。これにより、OS X向けのインストーラーファイルが正しくフィルタリングされるようになりました。

これらの修正により、Go言語のインストール手順に従うユーザーが、OS X環境で適切なダウンロードファイルにアクセスできるようになりました。これは、ユーザーエクスペリエンスの向上と、ドキュメントの正確性の維持に貢献しています。

関連リンク

参考にした情報源リンク

  • Google Codeのダウンロード機能に関する一般的な情報 (サービスは終了しているため、アーカイブされた情報源や関連するフォーラムの議論など)
  • URLクエリパラメータの構文に関する一般的なウェブ開発のドキュメント
  • Go言語の過去のリリースノートやドキュメントの変更履歴 (もしあれば)
  • diff コマンドの出力形式に関する情報
  • OS XとDarwinの名称に関する情報
  • Go言語のGitHubリポジトリのコミット履歴
  • golang.org/cl/6566064 (GoのGerritコードレビューシステムへのリンク。ただし、このリンクは現在機能しない可能性が高いです。Google Codeの閉鎖に伴い、GerritのURL構造も変更された可能性があります。)