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

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

このコミットは、Go言語の公式ドキュメントから古いチュートリアル (go_tutorial.html および go_tutorial.tmpl) と、それに付随する多数のサンプルプログラムを削除するものです。これにより、ユーザーはよりインタラクティブで最新の「A Tour of Go」および「How to Write Go Code (code.html)」に誘導されるようになります。

コミット

commit 7201b0c27c45d06ccb1f2ac4f275200a863bae91
Author: Rob Pike <r@golang.org>
Date:   Tue Feb 28 13:35:58 2012 +1100

    tutorial: delete
    Instead we'll point people at the Tour and beef up code.html.
    
    Fixes #3107.
    
    R=golang-dev, bradfitz, r, adg
    CC=golang-dev
    https://golang.org/cl/5697077

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

https://github.com/golang/go/commit/7201b0c27c45d06ccb1f2ac4f275200a863bae91

元コミット内容

tutorial: delete
Instead we'll point people at the Tour and beef up code.html.

Fixes #3107.

変更の背景

このコミットの主な背景は、Go言語の学習リソースの整理と最新化です。コミットメッセージにあるように、既存の「A Tutorial for the Go Programming Language」が削除され、代わりに「A Tour of Go」と「How to Write Go Code (code.html)」が推奨される学習パスとして強化されました。

初期のGo言語には、C/C++プログラマー向けにGoの基本を解説するチュートリアルが存在しました。しかし、Go言語が進化し、よりインタラクティブで包括的な学習ツールである「A Tour of Go」が登場したことで、古いチュートリアルの存在意義が薄れました。また、「How to Write Go Code」は、Goプロジェクトの構造やビルド、テストといった実践的な側面をカバーしており、チュートリアルとは異なる役割を担っていました。

この変更は、学習体験の一貫性を高め、ユーザーをより効果的な最新のリソースに誘導することを目的としています。古いチュートリアルは、その内容が古くなったり、新しい学習方法と重複したりする可能性があったため、削除が決定されました。

前提知識の解説

  • Go言語 (Golang): Googleによって開発されたオープンソースのプログラミング言語。シンプルさ、効率性、並行処理のサポートを重視しています。
  • A Tour of Go: Go言語の公式インタラクティブチュートリアル。ウェブブラウザ上でコードを実行しながらGoの基本を学ぶことができます。Go言語の主要な概念(変数、関数、型、構造体、インターフェース、並行処理など)を段階的に紹介します。
  • How to Write Go Code (code.html): Go言語のプロジェクト構造、パッケージ管理、ビルド、テスト、外部パッケージの利用方法など、Goでコードを書く上での実践的なガイドラインを提供するドキュメントです。
  • HTML/CSS/Makefile: ウェブドキュメントの構造とスタイルを定義する技術、およびビルドプロセスを自動化するためのツールです。GoのドキュメントはHTML形式で提供されており、Makefileによって生成・管理されていました。
  • Git: バージョン管理システム。このコミットはGitの変更履歴の一部として記録されています。
  • コミットハッシュ: Gitにおける特定のコミットを一意に識別するための文字列。
  • CL (Change List): Goプロジェクトで使われるコードレビューシステムGerritにおける変更の単位。https://golang.org/cl/5697077 はこのコミットに対応するGerritのCLへのリンクです。

技術的詳細

このコミットは、主にGo言語の公式ドキュメントサイトの構造とコンテンツの変更に焦点を当てています。

  1. ドキュメントファイルの削除:

    • doc/go_tutorial.html: 古いチュートリアルのHTML本体。
    • doc/go_tutorial.tmpl: 上記HTMLを生成するためのテンプレートファイル。
    • doc/progs/以下の多数のGoプログラムファイル: これらは古いチュートリアル内で使用されていたサンプルコードであり、チュートリアルの削除に伴い不要となったため、一括して削除されました。これには、cat.go, echo.go, file.go, sieve.go, sortmain.goなどが含まれます。これらのプログラムは、Goの基本的な機能(I/O、並行処理、インターフェースなど)を説明するために使われていました。
  2. ドキュメント内の参照の更新:

    • doc/Makefile: go_tutorial.htmlのビルドターゲットが削除されました。これにより、ドキュメント生成プロセスから古いチュートリアルが除外されます。
    • doc/docs.html: Goのドキュメント一覧ページです。ここから古いチュートリアルへのリンクが削除され、「A Tour of Go」への参照が強調されました。また、一部の記述が「tutorial」から「tour」に修正されています。
    • doc/effective_go.html および doc/effective_go.tmpl: 「Effective Go」はGoのイディオムやベストプラクティスを解説する重要なドキュメントです。このドキュメント内で古いチュートリアルを参照していた箇所が、「A Tour of Go」や「How to Write Go Code」への参照に更新されました。これは、新しい学習パスへの誘導を強化するためです。
    • doc/go_for_cpp_programmers.html: C++プログラマー向けのGo入門ドキュメントでも、古いチュートリアルへの参照が削除され、新しい推奨リソースへのリンクが追加されました。
    • doc/install-source.html, doc/makehtml, doc/talks/go_talk-20100323.html, src/cmd/godoc/main.go: これらのファイルでは、古いチュートリアルの削除に伴う軽微な修正や、関連するリンクの調整が行われています。

この変更は、単なるファイル削除に留まらず、Go言語の公式ドキュメント全体における学習コンテンツのアーキテクチャの見直しと再構築の一環として行われました。これにより、ユーザーは常に最新かつ推奨される学習リソースにアクセスできるようになります。

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

このコミットのコアとなる変更は、以下のファイルの削除と、それらへの参照の更新です。

削除されたファイル:

  • doc/go_tutorial.html (1452行削除)
  • doc/go_tutorial.tmpl (1040行削除)
  • doc/progs/cat.go (47行削除)
  • doc/progs/cat_rot13.go (91行削除)
  • doc/progs/echo.go (32行削除)
  • doc/progs/file.go (77行削除)
  • doc/progs/file_windows.go (77行削除)
  • doc/progs/run (58行削除)
  • doc/progs/sieve.go (38行削除)
  • doc/progs/sieve1.go (51行削除)
  • doc/progs/sortmain.go (68行削除)

変更されたファイル(抜粋):

  • doc/Makefile:
    --- a/doc/Makefile
    +++ b/doc/Makefile
    @@ -8,7 +8,6 @@ HTML=\
     	articles/slices_usage_and_internals.html\
     	effective_go.html\
     	go1.html\
    -	go_tutorial.html\
     
     all: tmpltohtml $(HTML)
    
  • doc/docs.html:
    --- a/doc/docs.html
    +++ b/doc/docs.html
    @@ -32,17 +32,10 @@ learned. You can <a href="http://tour.golang.org/">take the tour online</a> or
     <a href="http://code.google.com/p/go-tour/">install it locally</a>.
     </p>
     
    -<h3 id="orig_tutorial"><a href="go_tutorial.html">A Tutorial for the Go Programming Language</a></h3>
    -<p>
    -The first tutorial. An introductory text that touches upon several core
    -concepts: syntax, types, allocation, constants, I/O, sorting, printing,
    -goroutines, and channels.
    -</p>
    -
     <h3 id="effective_go"><a href="effective_go.html">Effective Go</a></h3>
     <p>
     A document that gives tips for writing clear, idiomatic Go code.
    -A must read for any new Go programmer. It augments the tutorial and
    +A must read for any new Go programmer. It augments the tour and
     the language specification, both of which should be read first.
     </p>
     
    @@ -226,7 +219,7 @@ Go libraries.</p>
     <ul>
     <li><a href="http://go-tour-zh.appspot.com/">A Tour of Go</a></li>
     <li><a href="http://code.google.com/p/golang-china/">golang-china</a> - a broad range of Go documentation.</li>
    -<li><a href="http://code.google.com/p/ac-me/downloads/detail?name=fango.pdf">Effective Go and Tutorial</a></li>
    +<li><a href="http://code.google.com/p/ac-me/downloads/detail?name=fango.pdf">Effective Go and (old) Tutorial</a></li>
     </ul>
     
     <h4 id="docs_cz">Czech &mdash; Čeština</h4>
    @@ -245,7 +238,7 @@ Go libraries.</p>
     <h4 id="docs_de">German &mdash; Deutsch</h4>
     
     <ul>
    -<li><a href="http://bitloeffel.de/DOC/golang/go_tutorial_de.html">Eine Anleitung zum Programmieren in Go</a> - the Go Tutorial.</li>
    +<li><a href="http://bitloeffel.de/DOC/golang/go_tutorial_de.html">Eine Anleitung zum Programmieren in Go</a> - the (old) Go Tutorial.</li>
     <li><a href="http://bitloeffel.de/DOC/golang/effective_go_de.html">Wirkungsvoll Go programmieren</a> - Effective Go.</li>
     <li><a href="http://bitloeffel.de/DOC/golang/code_de.html">Wie man Go-Kode schreibt</a> - How to Write Go Code.</li>
     </ul>
    
  • doc/effective_go.html:
    --- a/doc/effective_go.html
    +++ b/doc/effective_go.html
    @@ -31,8 +31,10 @@ will be easy for other Go programmers to understand.
     
     <p>
     This document gives tips for writing clear, idiomatic Go code.
    -It augments the <a href="go_spec.html">language specification</a>
    -and the <a href="go_tutorial.html">tutorial</a>, both of which you
    +It augments the <a href="go_spec.html">language specification</a>,
    +the <a href="http://tour.golang.org/">Tour of Go</a>,
    +and <a href="/doc/code.html">How to Write Go Code</a>,
    +all of which you
     should read first.
     </p>
     
    @@ -1454,7 +1456,7 @@ fmt.Println(fmt.Sprint("Hello ", 23))
     </pre>
     <p>
     As mentioned in
    -the <a href="go_tutorial.html">tutorial</a>, <code>fmt.Fprint</code>
    +the <a href="http://code.google.com/p/go-tour/">Tour</a>, <code>fmt.Fprint</code>
     and friends take as a first argument any object
     that implements the <code>io.Writer</code> interface; the variables <code>os.Stdout</code>
     and <code>os.Stderr</code> are familiar instances.
    

コアとなるコードの解説

このコミットは、Go言語の公式ドキュメントにおける学習コンテンツの戦略的な変更を反映しています。

  1. 古いチュートリアルの完全削除: doc/go_tutorial.htmldoc/go_tutorial.tmpl は、Go言語の初期に作成されたチュートリアルであり、Goの基本的な概念を説明していました。しかし、よりインタラクティブで最新の「A Tour of Go」の登場により、その役割を終えました。これらのファイルの削除は、重複するコンテンツを排除し、ユーザーをより優れた学習体験に誘導するためのものです。同時に、チュートリアル内で使用されていた多数のサンプルプログラム (doc/progs/以下) も削除されました。これは、チュートリアルとサンプルコードが密接に結びついていたため、チュートリアルが不要になった時点でサンプルコードも不要になったと判断されたためです。

  2. ドキュメント間の参照の更新:

    • doc/Makefileからの削除は、ビルドシステムから古いチュートリアルを完全に切り離すことを意味します。これにより、将来的に誤って古いチュートリアルが再生成されることを防ぎます。
    • doc/docs.htmldoc/effective_go.htmldoc/go_for_cpp_programmers.htmlなどの既存のドキュメントからのリンク更新は非常に重要です。これらの変更により、ユーザーがGoの公式ドキュメントを閲覧する際に、古い情報源ではなく、最新かつ推奨される「A Tour of Go」や「How to Write Go Code」に自然に誘導されるようになります。特に「Effective Go」はGoプログラマーにとって必読のドキュメントであるため、そこからの参照が更新されたことは、新しい学習パスの正当性を強化します。
    • effective_go.htmlの変更では、fmt.Fprintの解説箇所で「tutorial」という単語が「Tour」に置き換えられています。これは、Goの学習における「Tour」の重要性が増したことを示唆しています。

このコミットは、Go言語のドキュメントが常に進化し、ユーザーにとって最適な学習リソースを提供しようとする姿勢を示しています。古いコンテンツを削除し、より優れた新しいコンテンツに置き換えることで、情報の鮮度と品質を維持しています。

関連リンク

参考にした情報源リンク

  • Go言語の公式ドキュメント (コミット内容の理解のため)
  • Gitのコミットログと差分表示 (変更箇所の特定のため)
  • GitHubのコミットページ (追加情報の確認のため)
  • Gerrit Change-Id: I2201b0c27c45d06ccb1f2ac4f275200a863bae91 (GoのCLシステムでの詳細確認のため)
  • Go issue #3107: https://github.com/golang/go/issues/3107 (関連するIssueの確認のため)