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

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

このコミットは、Go言語のバージョン1.2のリリースノートを記述したdoc/go1.2.txtファイルから、go docコマンドに関する記述を削除する変更です。具体的には、cmd/go: delete 'go doc' (CL 12974043).という行が追加され、go docコマンドがGo 1.2で削除されたことが明記されています。

コミット

  • コミットハッシュ: 9c248e3406a1b27f2a8458704a873369fb2b842c
  • Author: Rob Pike r@golang.org
  • Date: Fri Aug 16 10:35:22 2013 +1000

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

https://github.com/golang/go/commit/9c248e3406a1b27f2a8458704a873369fb2b842c

元コミット内容

doc/go1.2.txt: delete 'go doc'
It's nearly useless and for plain 'go doc', 'godoc .' works fine.

R=golang-dev, adg
CC=golang-dev
https://golang.org/cl/13004044

変更の背景

このコミットの背景には、Go言語のツールセットの整理と効率化があります。go docコマンドは、Go 1.2のリリースにおいて削除されました。コミットメッセージにあるように、go docコマンドは「ほとんど役に立たない (nearly useless)」と判断されました。その主な理由は、godocツールが既に同様の、あるいはより柔軟な機能を提供していたためです。特に、go docが提供していた基本的なドキュメント表示機能は、godoc .(現在のディレクトリのパッケージドキュメントを表示)で代替可能でした。

Go開発チームは、重複する機能を持つツールを統合し、ユーザーがより一貫性のある方法でドキュメントにアクセスできるようにすることを目指しました。これにより、ツールの学習コストを削減し、Goエコシステムの全体的なシンプルさを維持することが意図されています。

前提知識の解説

go docコマンド (削除前)

go docコマンドは、Go 1.2以前のバージョンに存在したコマンドラインツールで、Goのパッケージ、関数、型、メソッドなどのドキュメントを表示するために使用されました。例えば、go doc fmtと入力するとfmtパッケージのドキュメントが表示され、go doc fmt.Printlnと入力するとfmtパッケージのPrintln関数のドキュメントが表示されました。

godocツール

godocは、Go言語のソースコードからドキュメントを生成し、表示するためのツールです。godocは、単体で実行可能なWebサーバーとしても機能し、ブラウザを通じてGoの標準ライブラリやローカルのGoプロジェクトのドキュメントを閲覧できます。また、コマンドラインツールとしても使用でき、godoc fmtのように特定のパッケージのドキュメントを表示したり、godoc -src fmt.Printlnのようにソースコードを表示したりする機能も持っています。

godocは、Goのソースコードに記述されたコメント(特にエクスポートされた識別子の直前のコメント)を解析し、それを整形されたHTMLまたはプレーンテキスト形式で表示します。これにより、開発者はコードとドキュメントを密接に連携させることができ、ドキュメントの鮮度を保ちやすくなります。

Go 1.2リリース

Go 1.2は、2013年12月にリリースされたGo言語のメジャーバージョンアップです。このリリースでは、パフォーマンスの向上、新しい言語機能(例: スライスにおける3インデックス表記)、ツールの改善、標準ライブラリの拡張など、多くの変更が加えられました。go docコマンドの削除も、このリリースの一環として行われました。

技術的詳細

go docコマンドの削除は、Go言語のツールチェーンにおける冗長性の排除という設計思想に基づいています。godocツールは、go docが提供する機能のスーパーセットであり、より高度な機能(例: Webインターフェース、ソースコード表示、より詳細な検索オプション)を提供していました。そのため、go docを維持することは、ユーザーに二つの類似したツールを使い分けさせるという不必要な複雑さをもたらすと判断されました。

この変更は、Goのツールセットをよりスリムで効率的なものにするための戦略的な決定でした。開発者は、godocに一本化することで、ドキュメント参照のワークフローを簡素化し、より強力なツールに集中できるようになりました。

コミット自体は、doc/go1.2.txtというGo 1.2のリリースノートを記述したファイルに、go docコマンドが削除されたことを示す一行を追加するものです。これは、ユーザーに対してこの変更を公式に通知するためのドキュメント上の変更であり、実際のgo docコマンドの削除は、別のコミット(CL 12974043)で行われています。

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

--- a/doc/go1.2.txt
+++ b/doc/go1.2.txt
@@ -21,6 +21,7 @@ cmd/gc: three-index slicing to set cap as well as length (CL 10743046).
 cmd/gc: make missing package error fatal (CL 12677043).
 cmd/go: test coverage (CL 10413044).
 cmd/go: add -t flag to 'go get' to download test dependencies (CL 12566046).
+cmd/go: delete 'go doc' (CL 12974043).
 
 archive/zip: add File.DataOffset accessor (CL 12784045).
 bufio: add Reset methods to Reader and Writer (CL 12603049).

この変更は、doc/go1.2.txtファイルの24行目に新しい行を追加しています。

コアとなるコードの解説

追加された行 cmd/go: delete 'go doc' (CL 12974043). は、Go 1.2のリリースノートにおいて、go docコマンドが削除されたことを明示的に記述しています。

  • cmd/go: これは、Goコマンドラインツールに関連する変更であることを示します。
  • delete 'go doc': go docコマンドが削除されたことを直接的に伝えています。
  • (CL 12974043): これは、この変更がGoのコードレビューシステム(Gerrit)におけるチェンジリスト(Change-ID)12974043によって行われたことを示しています。このCLが、実際にgo docコマンドのコードを削除したコミットに対応します。このコミット(9c248e3406a1b27f2a8458704a873369fb2b842c)は、その削除をリリースノートに反映させるためのドキュメント変更です。

この一行の追加により、Go 1.2のユーザーは、go docコマンドがもはや利用できないことをリリースノートを通じて認識できるようになります。

関連リンク

参考にした情報源リンク