diff --git a/cmd/golangorg/regtest_test.go b/cmd/golangorg/regtest_test.go index bedb77b3fc..63f5ab6990 100644 --- a/cmd/golangorg/regtest_test.go +++ b/cmd/golangorg/regtest_test.go @@ -34,6 +34,10 @@ func TestLiveServer(t *testing.T) { PostBody string StatusCode int // if 0, expect 2xx status code. }{ + { + Path: "/doc/", + Substring: "an introduction to using modules in a simple project", + }, { Path: "/doc/faq", Substring: "What is the purpose of the project", diff --git a/content/static/doc/docs.html b/content/static/doc/docs.html index 8f79d3a770..c297f3be67 100644 --- a/content/static/doc/docs.html +++ b/content/static/doc/docs.html @@ -168,6 +168,13 @@

Packages

  • The Go image package - the fundamentals of the image package.
  • The Go image/draw package - the fundamentals of the image/draw package.
  • + +

    Modules

    + {{end}}

    Tools

    diff --git a/content/static/static.go b/content/static/static.go index a135f16195..1b2072a877 100644 --- a/content/static/static.go +++ b/content/static/static.go @@ -47,7 +47,7 @@ var Files = map[string]string{ "doc/copyright.html": "\x0a\x0a

    \x0a\x20\x20Except\x20as\x0a\x20\x20noted,\x20the\x20contents\x20of\x20this\x0a\x20\x20site\x20are\x20licensed\x20under\x20the\x0a\x20\x20Creative\x20Commons\x20Attribution\x203.0\x20License,\x0a\x20\x20and\x20code\x20is\x20licensed\x20under\x20a\x20BSD\x20license.\x0a

    \x0a", - "doc/docs.html": "\x0a\x0a

    \x0aThe\x20Go\x20programming\x20language\x20is\x20an\x20open\x20source\x20project\x20to\x20make\x20programmers\x20more\x0aproductive.\x0a

    \x0a\x0a

    \x0aGo\x20is\x20expressive,\x20concise,\x20clean,\x20and\x20efficient.\x20Its\x20concurrency\x0amechanisms\x20make\x20it\x20easy\x20to\x20write\x20programs\x20that\x20get\x20the\x20most\x20out\x20of\x20multicore\x0aand\x20networked\x20machines,\x20while\x20its\x20novel\x20type\x20system\x20enables\x20flexible\x20and\x0amodular\x20program\x20construction.\x20Go\x20compiles\x20quickly\x20to\x20machine\x20code\x20yet\x20has\x20the\x0aconvenience\x20of\x20garbage\x20collection\x20and\x20the\x20power\x20of\x20run-time\x20reflection.\x20It's\x20a\x0afast,\x20statically\x20typed,\x20compiled\x20language\x20that\x20feels\x20like\x20a\x20dynamically\x20typed,\x0ainterpreted\x20language.\x0a

    \x0a\x0a\x0a\x0a

    Installing\x20Go

    \x0a\x0a

    Getting\x20Started

    \x0a

    \x0aInstructions\x20for\x20downloading\x20and\x20installing\x20the\x20Go\x20compilers,\x20tools,\x20and\x0alibraries.\x0a

    \x0a\x0a\x0aLearning\x20Go\x0a\x0a\x0a\x0a\x0a\x09{{if\x20$.GoogleCN}}\x0a\x09\x20\x20A\x20Tour\x20of\x20Go\x0a\x09{{else}}\x0a\x09\x20\x20A\x20Tour\x20of\x20Go\x0a\x09{{end}}\x0a\x0a

    \x0aAn\x20interactive\x20introduction\x20to\x20Go\x20in\x20three\x20sections.\x0aThe\x20first\x20section\x20covers\x20basic\x20syntax\x20and\x20data\x20structures;\x20the\x20second\x20discusses\x0amethods\x20and\x20interfaces;\x20and\x20the\x20third\x20introduces\x20Go's\x20concurrency\x20primitives.\x0aEach\x20section\x20concludes\x20with\x20a\x20few\x20exercises\x20so\x20you\x20can\x20practice\x20what\x20you've\x0alearned.\x20You\x20can\x20{{if\x20not\x20$.GoogleCN}}take\x20the\x20tour\x0aonline\x20or{{end}}\x20install\x20it\x20locally\x20with:\x0a

    \x0a
    \x0a$\x20go\x20get\x20golang.org/x/tour\x0a
    \x0a

    \x0aThis\x20will\x20place\x20the\x20tour\x20binary\x20in\x20your\x20workspace's\x20bin\x20directory.\x0a

    \x0a\x0aHow\x20to\x20write\x20Go\x20code\x0a

    \x0a{{if\x20not\x20$.GoogleCN}}\x0aAlso\x20available\x20as\x20a\x20screencast,\x20this\x0a{{else}}\x0aThis\x0a{{end}}\x0adoc\x20explains\x20how\x20to\x20use\x20the\x20go\x20command\x0ato\x20fetch,\x20build,\x20and\x20install\x20packages,\x20commands,\x20and\x20run\x20tests.\x0a

    \x0a\x0aEditor\x20plugins\x20and\x20IDEs\x0a

    \x0aA\x20document\x20that\x20summarizes\x20commonly\x20used\x20editor\x20plugins\x20and\x20IDEs\x20with\x0aGo\x20support.\x0a

    \x0a\x0aEffective\x20Go\x0a

    \x0aA\x20document\x20that\x20gives\x20tips\x20for\x20writing\x20clear,\x20idiomatic\x20Go\x20code.\x0aA\x20must\x20read\x20for\x20any\x20new\x20Go\x20programmer.\x20It\x20augments\x20the\x20tour\x20and\x0athe\x20language\x20specification,\x20both\x20of\x20which\x20should\x20be\x20read\x20first.\x0a

    \x0a\x0aDiagnostics\x0a

    \x0aSummarizes\x20tools\x20and\x20methodologies\x20to\x20diagnose\x20problems\x20in\x20Go\x20programs.\x0a

    \x0a\x0aFrequently\x20Asked\x20Questions\x20(FAQ)\x0a

    \x0aAnswers\x20to\x20common\x20questions\x20about\x20Go.\x0a

    \x0a\x0aThe\x20Go\x20Wiki\x0a

    A\x20wiki\x20maintained\x20by\x20the\x20Go\x20community.

    \x0a\x0aMore\x0a

    \x0aSee\x20the\x20Learn\x20page\x20at\x20the\x20Wiki\x0afor\x20more\x20Go\x20learning\x20resources.\x0a

    \x0a\x0a\x0aReferences\x0a\x0aPackage\x20Documentation\x0a

    \x0aThe\x20documentation\x20for\x20the\x20Go\x20standard\x20library.\x0a

    \x0a\x0aCommand\x20Documentation\x0a

    \x0aThe\x20documentation\x20for\x20the\x20Go\x20tools.\x0a

    \x0a\x0aLanguage\x20Specification\x0a

    \x0aThe\x20official\x20Go\x20Language\x20specification.\x0a

    \x0a\x0aThe\x20Go\x20Memory\x20Model\x0a

    \x0aA\x20document\x20that\x20specifies\x20the\x20conditions\x20under\x20which\x20reads\x20of\x20a\x20variable\x20in\x0aone\x20goroutine\x20can\x20be\x20guaranteed\x20to\x20observe\x20values\x20produced\x20by\x20writes\x20to\x20the\x0asame\x20variable\x20in\x20a\x20different\x20goroutine.\x0a

    \x0a\x0aRelease\x20History\x0a

    A\x20summary\x20of\x20the\x20changes\x20between\x20Go\x20releases.

    \x0a\x0a\x0aArticles\x0a\x0a{{if\x20not\x20$.GoogleCN}}\x0aThe\x20Go\x20Blog\x0a

    The\x20official\x20blog\x20of\x20the\x20Go\x20project,\x20featuring\x20news\x20and\x20in-depth\x20articles\x20by\x0athe\x20Go\x20team\x20and\x20guests.

    \x0a{{end}}\x0a\x0a

    Codewalks

    \x0a

    \x0aGuided\x20tours\x20of\x20Go\x20programs.\x0a

    \x0a
      \x0a
    • First-Class\x20Functions\x20in\x20Go
    • \x0a
    • Generating\x20arbitrary\x20text:\x20a\x20Markov\x20chain\x20algorithm
    • \x0a
    • Share\x20Memory\x20by\x20Communicating
    • \x0a
    • Writing\x20Web\x20Applications\x20-\x20building\x20a\x20simple\x20web\x20application.
    • \x0a
    \x0a\x0a{{if\x20not\x20$.GoogleCN}}\x0a

    Language

    \x0a
      \x0a
    • JSON-RPC:\x20a\x20tale\x20of\x20interfaces
    • \x0a
    • Go's\x20Declaration\x20Syntax
    • \x0a
    • Defer,\x20Panic,\x20and\x20Recover
    • \x0a
    • Go\x20Concurrency\x20Patterns:\x20Timing\x20out,\x20moving\x20on
    • \x0a
    • Go\x20Slices:\x20usage\x20and\x20internals
    • \x0a
    • A\x20GIF\x20decoder:\x20an\x20exercise\x20in\x20Go\x20interfaces
    • \x0a
    • Error\x20Handling\x20and\x20Go
    • \x0a
    • Organizing\x20Go\x20code
    • \x0a
    \x0a\x0a

    Packages

    \x0a
      \x0a
    • JSON\x20and\x20Go\x20-\x20using\x20the\x20json\x20package.
    • \x0a
    • Gobs\x20of\x20data\x20-\x20the\x20design\x20and\x20use\x20of\x20the\x20gob\x20package.
    • \x0a
    • The\x20Laws\x20of\x20Reflection\x20-\x20the\x20fundamentals\x20of\x20the\x20reflect\x20package.
    • \x0a
    • The\x20Go\x20image\x20package\x20-\x20the\x20fundamentals\x20of\x20the\x20image\x20package.
    • \x0a
    • The\x20Go\x20image/draw\x20package\x20-\x20the\x20fundamentals\x20of\x20the\x20image/draw\x20package.
    • \x0a
    \x0a{{end}}\x0a\x0a

    Tools

    \x0a
      \x0a
    • About\x20the\x20Go\x20command\x20-\x20why\x20we\x20wrote\x20it,\x20what\x20it\x20is,\x20what\x20it's\x20not,\x20and\x20how\x20to\x20use\x20it.
    • \x0a
    • Debugging\x20Go\x20Code\x20with\x20GDB
    • \x0a
    • Data\x20Race\x20Detector\x20-\x20a\x20manual\x20for\x20the\x20data\x20race\x20detector.
    • \x0a
    • A\x20Quick\x20Guide\x20to\x20Go's\x20Assembler\x20-\x20an\x20introduction\x20to\x20the\x20assembler\x20used\x20by\x20Go.
    • \x0a{{if\x20not\x20$.GoogleCN}}\x0a
    • C?\x20Go?\x20Cgo!\x20-\x20linking\x20against\x20C\x20code\x20with\x20cgo.
    • \x0a
    • Godoc:\x20documenting\x20Go\x20code\x20-\x20writing\x20good\x20documentation\x20for\x20godoc.
    • \x0a
    • Profiling\x20Go\x20Programs
    • \x0a
    • Introducing\x20the\x20Go\x20Race\x20Detector\x20-\x20an\x20introduction\x20to\x20the\x20race\x20detector.
    • \x0a{{end}}\x0a
    \x0a\x0aMore\x0a

    \x0aSee\x20the\x20Articles\x20page\x20at\x20the\x0aWiki\x20for\x20more\x20Go\x20articles.\x0a

    \x0a\x0a{{if\x20not\x20$.GoogleCN}}\x0aTalks\x0a\x0a\x0a\x0aA\x20Video\x20Tour\x20of\x20Go\x0a

    \x0aThree\x20things\x20that\x20make\x20Go\x20fast,\x20fun,\x20and\x20productive:\x0ainterfaces,\x20reflection,\x20and\x20concurrency.\x20Builds\x20a\x20toy\x20web\x20crawler\x20to\x0ademonstrate\x20these.\x0a

    \x0a\x0aCode\x20that\x20grows\x20with\x20grace\x0a

    \x0aOne\x20of\x20Go's\x20key\x20design\x20goals\x20is\x20code\x20adaptability;\x20that\x20it\x20should\x20be\x20easy\x20to\x20take\x20a\x20simple\x20design\x20and\x20build\x20upon\x20it\x20in\x20a\x20clean\x20and\x20natural\x20way.\x20In\x20this\x20talk\x20Andrew\x20Gerrand\x20describes\x20a\x20simple\x20\"chat\x20roulette\"\x20server\x20that\x20matches\x20pairs\x20of\x20incoming\x20TCP\x20connections,\x20and\x20then\x20use\x20Go's\x20concurrency\x20mechanisms,\x20interfaces,\x20and\x20standard\x20library\x20to\x20extend\x20it\x20with\x20a\x20web\x20interface\x20and\x20other\x20features.\x20While\x20the\x20function\x20of\x20the\x20program\x20changes\x20dramatically,\x20Go's\x20flexibility\x20preserves\x20the\x20original\x20design\x20as\x20it\x20grows.\x0a

    \x0a\x0aGo\x20Concurrency\x20Patterns\x0a

    \x0aConcurrency\x20is\x20the\x20key\x20to\x20designing\x20high\x20performance\x20network\x20services.\x20Go's\x20concurrency\x20primitives\x20(goroutines\x20and\x20channels)\x20provide\x20a\x20simple\x20and\x20efficient\x20means\x20of\x20expressing\x20concurrent\x20execution.\x20In\x20this\x20talk\x20we\x20see\x20how\x20tricky\x20concurrency\x20problems\x20can\x20be\x20solved\x20gracefully\x20with\x20simple\x20Go\x20code.\x0a

    \x0a\x0aAdvanced\x20Go\x20Concurrency\x20Patterns\x0a

    \x0aThis\x20talk\x20expands\x20on\x20the\x20Go\x20Concurrency\x20Patterns\x20talk\x20to\x20dive\x20deeper\x20into\x20Go's\x20concurrency\x20primitives.\x0a

    \x0a\x0aMore\x0a

    \x0aSee\x20the\x20Go\x20Talks\x20site\x20and\x20wiki\x20page\x20for\x20more\x20Go\x20talks.\x0a

    \x0a{{end}}\x0a\x0aNon-English\x20Documentation\x0a\x0a

    \x0aSee\x20the\x20NonEnglish\x20page\x0aat\x20the\x20Wiki\x20for\x20localized\x0adocumentation.\x0a

    \x0a", + "doc/docs.html": "\x0a\x0a

    \x0aThe\x20Go\x20programming\x20language\x20is\x20an\x20open\x20source\x20project\x20to\x20make\x20programmers\x20more\x0aproductive.\x0a

    \x0a\x0a

    \x0aGo\x20is\x20expressive,\x20concise,\x20clean,\x20and\x20efficient.\x20Its\x20concurrency\x0amechanisms\x20make\x20it\x20easy\x20to\x20write\x20programs\x20that\x20get\x20the\x20most\x20out\x20of\x20multicore\x0aand\x20networked\x20machines,\x20while\x20its\x20novel\x20type\x20system\x20enables\x20flexible\x20and\x0amodular\x20program\x20construction.\x20Go\x20compiles\x20quickly\x20to\x20machine\x20code\x20yet\x20has\x20the\x0aconvenience\x20of\x20garbage\x20collection\x20and\x20the\x20power\x20of\x20run-time\x20reflection.\x20It's\x20a\x0afast,\x20statically\x20typed,\x20compiled\x20language\x20that\x20feels\x20like\x20a\x20dynamically\x20typed,\x0ainterpreted\x20language.\x0a

    \x0a\x0a\x0a\x0a

    Installing\x20Go

    \x0a\x0a

    Getting\x20Started

    \x0a

    \x0aInstructions\x20for\x20downloading\x20and\x20installing\x20the\x20Go\x20compilers,\x20tools,\x20and\x0alibraries.\x0a

    \x0a\x0a\x0aLearning\x20Go\x0a\x0a\x0a\x0a\x0a\x09{{if\x20$.GoogleCN}}\x0a\x09\x20\x20A\x20Tour\x20of\x20Go\x0a\x09{{else}}\x0a\x09\x20\x20A\x20Tour\x20of\x20Go\x0a\x09{{end}}\x0a\x0a

    \x0aAn\x20interactive\x20introduction\x20to\x20Go\x20in\x20three\x20sections.\x0aThe\x20first\x20section\x20covers\x20basic\x20syntax\x20and\x20data\x20structures;\x20the\x20second\x20discusses\x0amethods\x20and\x20interfaces;\x20and\x20the\x20third\x20introduces\x20Go's\x20concurrency\x20primitives.\x0aEach\x20section\x20concludes\x20with\x20a\x20few\x20exercises\x20so\x20you\x20can\x20practice\x20what\x20you've\x0alearned.\x20You\x20can\x20{{if\x20not\x20$.GoogleCN}}take\x20the\x20tour\x0aonline\x20or{{end}}\x20install\x20it\x20locally\x20with:\x0a

    \x0a
    \x0a$\x20go\x20get\x20golang.org/x/tour\x0a
    \x0a

    \x0aThis\x20will\x20place\x20the\x20tour\x20binary\x20in\x20your\x20workspace's\x20bin\x20directory.\x0a

    \x0a\x0aHow\x20to\x20write\x20Go\x20code\x0a

    \x0a{{if\x20not\x20$.GoogleCN}}\x0aAlso\x20available\x20as\x20a\x20screencast,\x20this\x0a{{else}}\x0aThis\x0a{{end}}\x0adoc\x20explains\x20how\x20to\x20use\x20the\x20go\x20command\x0ato\x20fetch,\x20build,\x20and\x20install\x20packages,\x20commands,\x20and\x20run\x20tests.\x0a

    \x0a\x0aEditor\x20plugins\x20and\x20IDEs\x0a

    \x0aA\x20document\x20that\x20summarizes\x20commonly\x20used\x20editor\x20plugins\x20and\x20IDEs\x20with\x0aGo\x20support.\x0a

    \x0a\x0aEffective\x20Go\x0a

    \x0aA\x20document\x20that\x20gives\x20tips\x20for\x20writing\x20clear,\x20idiomatic\x20Go\x20code.\x0aA\x20must\x20read\x20for\x20any\x20new\x20Go\x20programmer.\x20It\x20augments\x20the\x20tour\x20and\x0athe\x20language\x20specification,\x20both\x20of\x20which\x20should\x20be\x20read\x20first.\x0a

    \x0a\x0aDiagnostics\x0a

    \x0aSummarizes\x20tools\x20and\x20methodologies\x20to\x20diagnose\x20problems\x20in\x20Go\x20programs.\x0a

    \x0a\x0aFrequently\x20Asked\x20Questions\x20(FAQ)\x0a

    \x0aAnswers\x20to\x20common\x20questions\x20about\x20Go.\x0a

    \x0a\x0aThe\x20Go\x20Wiki\x0a

    A\x20wiki\x20maintained\x20by\x20the\x20Go\x20community.

    \x0a\x0aMore\x0a

    \x0aSee\x20the\x20Learn\x20page\x20at\x20the\x20Wiki\x0afor\x20more\x20Go\x20learning\x20resources.\x0a

    \x0a\x0a\x0aReferences\x0a\x0aPackage\x20Documentation\x0a

    \x0aThe\x20documentation\x20for\x20the\x20Go\x20standard\x20library.\x0a

    \x0a\x0aCommand\x20Documentation\x0a

    \x0aThe\x20documentation\x20for\x20the\x20Go\x20tools.\x0a

    \x0a\x0aLanguage\x20Specification\x0a

    \x0aThe\x20official\x20Go\x20Language\x20specification.\x0a

    \x0a\x0aThe\x20Go\x20Memory\x20Model\x0a

    \x0aA\x20document\x20that\x20specifies\x20the\x20conditions\x20under\x20which\x20reads\x20of\x20a\x20variable\x20in\x0aone\x20goroutine\x20can\x20be\x20guaranteed\x20to\x20observe\x20values\x20produced\x20by\x20writes\x20to\x20the\x0asame\x20variable\x20in\x20a\x20different\x20goroutine.\x0a

    \x0a\x0aRelease\x20History\x0a

    A\x20summary\x20of\x20the\x20changes\x20between\x20Go\x20releases.

    \x0a\x0a\x0aArticles\x0a\x0a{{if\x20not\x20$.GoogleCN}}\x0aThe\x20Go\x20Blog\x0a

    The\x20official\x20blog\x20of\x20the\x20Go\x20project,\x20featuring\x20news\x20and\x20in-depth\x20articles\x20by\x0athe\x20Go\x20team\x20and\x20guests.

    \x0a{{end}}\x0a\x0a

    Codewalks

    \x0a

    \x0aGuided\x20tours\x20of\x20Go\x20programs.\x0a

    \x0a
      \x0a
    • First-Class\x20Functions\x20in\x20Go
    • \x0a
    • Generating\x20arbitrary\x20text:\x20a\x20Markov\x20chain\x20algorithm
    • \x0a
    • Share\x20Memory\x20by\x20Communicating
    • \x0a
    • Writing\x20Web\x20Applications\x20-\x20building\x20a\x20simple\x20web\x20application.
    • \x0a
    \x0a\x0a{{if\x20not\x20$.GoogleCN}}\x0a

    Language

    \x0a
      \x0a
    • JSON-RPC:\x20a\x20tale\x20of\x20interfaces
    • \x0a
    • Go's\x20Declaration\x20Syntax
    • \x0a
    • Defer,\x20Panic,\x20and\x20Recover
    • \x0a
    • Go\x20Concurrency\x20Patterns:\x20Timing\x20out,\x20moving\x20on
    • \x0a
    • Go\x20Slices:\x20usage\x20and\x20internals
    • \x0a
    • A\x20GIF\x20decoder:\x20an\x20exercise\x20in\x20Go\x20interfaces
    • \x0a
    • Error\x20Handling\x20and\x20Go
    • \x0a
    • Organizing\x20Go\x20code
    • \x0a
    \x0a\x0a

    Packages

    \x0a
      \x0a
    • JSON\x20and\x20Go\x20-\x20using\x20the\x20json\x20package.
    • \x0a
    • Gobs\x20of\x20data\x20-\x20the\x20design\x20and\x20use\x20of\x20the\x20gob\x20package.
    • \x0a
    • The\x20Laws\x20of\x20Reflection\x20-\x20the\x20fundamentals\x20of\x20the\x20reflect\x20package.
    • \x0a
    • The\x20Go\x20image\x20package\x20-\x20the\x20fundamentals\x20of\x20the\x20image\x20package.
    • \x0a
    • The\x20Go\x20image/draw\x20package\x20-\x20the\x20fundamentals\x20of\x20the\x20image/draw\x20package.
    • \x0a
    \x0a\x0a

    Modules

    \x0a
      \x0a
    • Using\x20Go\x20Modules\x20-\x20an\x20introduction\x20to\x20using\x20modules\x20in\x20a\x20simple\x20project.
    • \x0a
    • Migrating\x20to\x20Go\x20Modules\x20-\x20converting\x20an\x20existing\x20project\x20to\x20use\x20modules.
    • \x0a
    • Publishing\x20Go\x20Modules\x20-\x20how\x20to\x20make\x20new\x20versions\x20of\x20modules\x20available\x20to\x20others.
    • \x0a
    \x0a{{end}}\x0a\x0a

    Tools

    \x0a
      \x0a
    • About\x20the\x20Go\x20command\x20-\x20why\x20we\x20wrote\x20it,\x20what\x20it\x20is,\x20what\x20it's\x20not,\x20and\x20how\x20to\x20use\x20it.
    • \x0a
    • Debugging\x20Go\x20Code\x20with\x20GDB
    • \x0a
    • Data\x20Race\x20Detector\x20-\x20a\x20manual\x20for\x20the\x20data\x20race\x20detector.
    • \x0a
    • A\x20Quick\x20Guide\x20to\x20Go's\x20Assembler\x20-\x20an\x20introduction\x20to\x20the\x20assembler\x20used\x20by\x20Go.
    • \x0a{{if\x20not\x20$.GoogleCN}}\x0a
    • C?\x20Go?\x20Cgo!\x20-\x20linking\x20against\x20C\x20code\x20with\x20cgo.
    • \x0a
    • Godoc:\x20documenting\x20Go\x20code\x20-\x20writing\x20good\x20documentation\x20for\x20godoc.
    • \x0a
    • Profiling\x20Go\x20Programs
    • \x0a
    • Introducing\x20the\x20Go\x20Race\x20Detector\x20-\x20an\x20introduction\x20to\x20the\x20race\x20detector.
    • \x0a{{end}}\x0a
    \x0a\x0aMore\x0a

    \x0aSee\x20the\x20Articles\x20page\x20at\x20the\x0aWiki\x20for\x20more\x20Go\x20articles.\x0a

    \x0a\x0a{{if\x20not\x20$.GoogleCN}}\x0aTalks\x0a\x0a\x0a\x0aA\x20Video\x20Tour\x20of\x20Go\x0a

    \x0aThree\x20things\x20that\x20make\x20Go\x20fast,\x20fun,\x20and\x20productive:\x0ainterfaces,\x20reflection,\x20and\x20concurrency.\x20Builds\x20a\x20toy\x20web\x20crawler\x20to\x0ademonstrate\x20these.\x0a

    \x0a\x0aCode\x20that\x20grows\x20with\x20grace\x0a

    \x0aOne\x20of\x20Go's\x20key\x20design\x20goals\x20is\x20code\x20adaptability;\x20that\x20it\x20should\x20be\x20easy\x20to\x20take\x20a\x20simple\x20design\x20and\x20build\x20upon\x20it\x20in\x20a\x20clean\x20and\x20natural\x20way.\x20In\x20this\x20talk\x20Andrew\x20Gerrand\x20describes\x20a\x20simple\x20\"chat\x20roulette\"\x20server\x20that\x20matches\x20pairs\x20of\x20incoming\x20TCP\x20connections,\x20and\x20then\x20use\x20Go's\x20concurrency\x20mechanisms,\x20interfaces,\x20and\x20standard\x20library\x20to\x20extend\x20it\x20with\x20a\x20web\x20interface\x20and\x20other\x20features.\x20While\x20the\x20function\x20of\x20the\x20program\x20changes\x20dramatically,\x20Go's\x20flexibility\x20preserves\x20the\x20original\x20design\x20as\x20it\x20grows.\x0a

    \x0a\x0aGo\x20Concurrency\x20Patterns\x0a

    \x0aConcurrency\x20is\x20the\x20key\x20to\x20designing\x20high\x20performance\x20network\x20services.\x20Go's\x20concurrency\x20primitives\x20(goroutines\x20and\x20channels)\x20provide\x20a\x20simple\x20and\x20efficient\x20means\x20of\x20expressing\x20concurrent\x20execution.\x20In\x20this\x20talk\x20we\x20see\x20how\x20tricky\x20concurrency\x20problems\x20can\x20be\x20solved\x20gracefully\x20with\x20simple\x20Go\x20code.\x0a

    \x0a\x0aAdvanced\x20Go\x20Concurrency\x20Patterns\x0a

    \x0aThis\x20talk\x20expands\x20on\x20the\x20Go\x20Concurrency\x20Patterns\x20talk\x20to\x20dive\x20deeper\x20into\x20Go's\x20concurrency\x20primitives.\x0a

    \x0a\x0aMore\x0a

    \x0aSee\x20the\x20Go\x20Talks\x20site\x20and\x20wiki\x20page\x20for\x20more\x20Go\x20talks.\x0a

    \x0a{{end}}\x0a\x0aNon-English\x20Documentation\x0a\x0a

    \x0aSee\x20the\x20NonEnglish\x20page\x0aat\x20the\x20Wiki\x20for\x20localized\x0adocumentation.\x0a

    \x0a", "doc/root.html": "\x0a\x0a\x0a\x20\x20\x0a\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20Go\x20is\x20an\x20open\x20source\x20programming\x20language\x20that\x20makes\x20it\x20easy\x20to\x20build\x0a\x20\x20\x20\x20\x20\x20simple,\x20reliable,\x20and\x20efficient\x20software.\x0a\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20Download\x20Go\x0a\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20Binary\x20distributions\x20available\x20for
    \x0a\x20\x20\x20\x20\x20\x20Linux,\x20macOS,\x20Windows,\x20and\x20more.\x0a\x20\x20\x20\x20

    \x0a\x20\x20\x0a\x0a\x20\x20\x0a\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20Try\x20Go\x0a\x20\x20\x20\x20\x20\x20{{if\x20not\x20$.GoogleCN}}\x0a\x20\x20\x20\x20\x20\x20\x20\x20Open\x20in\x20Playground\x0a\x20\x20\x20\x20\x20\x20{{end}}\x0a\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20//\x20You\x20can\x20edit\x20this\x20code!\x0a//\x20Click\x20here\x20and\x20start\x20typing.\x0apackage\x20main\x0a\x0aimport\x20\"fmt\"\x0a\x0afunc\x20main()\x20{\x0a\x20\x20fmt.Println(\"Hello,\x20\xe4\xb8\x96\xe7\x95\x8c\")\x0a}\x0a\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20Hello,\x20World!\x0a\x20\x20\x20\x20\x20\x20\x20\x20Conway's\x20Game\x20of\x20Life\x0a\x20\x20\x20\x20\x20\x20\x20\x20Fibonacci\x20Closure\x0a\x20\x20\x20\x20\x20\x20\x20\x20Peano\x20Integers\x0a\x20\x20\x20\x20\x20\x20\x20\x20Concurrent\x20pi\x0a\x20\x20\x20\x20\x20\x20\x20\x20Concurrent\x20Prime\x20Sieve\x0a\x20\x20\x20\x20\x20\x20\x20\x20Peg\x20Solitaire\x20Solver\x0a\x20\x20\x20\x20\x20\x20\x20\x20Tree\x20Comparison\x0a\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20Run\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20{{if\x20not\x20$.GoogleCN}}\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20Share\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20Tour\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20{{end}}\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x0a\x20\x20\x0a\x0a\x20\x20{{if\x20not\x20$.GoogleCN}}\x0a\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20Featured\x20articles\x0a\x20\x20\x20\x20\x20\x20Read\x20more\x20>\x0a\x20\x20\x20\x20\x0a\x0a\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20Featured\x20video\x0a\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x0a\x20\x20{{end}}\x0a\x0a\x0a",