{"product_id":"the-go-programming-language-9780134190440","title":"The Go Programming Language","description":"\u003cp\u003e\u003cstrong\u003eThe authoritative resource to writing clear and idiomatic Go to solve real-world problems\u003c\/strong\u003e\u003c\/p\u003e \u003cp\u003eGoogle's Go team member Alan A. A. Donovan and Brian Kernighan, co-author of \u003cem\u003eThe C Programming Language\u003c\/em\u003e, provide hundreds of interesting and practical examples of well-written Go code to help programmers learn this flexible, and fast, language. It is designed to get you started programming with Go right away and then to progress on to more advanced topics.\u003c\/p\u003e \u003cul\u003e \u003cli\u003e\n\u003cstrong\u003eBasic components: \u003c\/strong\u003e an opening tutorial provides information and examples to get you off the ground and doing useful things as quickly as possible. This includes: \u003cul\u003e \u003cli\u003ecommand-line arguments\u003c\/li\u003e \u003cli\u003egifs\u003c\/li\u003e \u003cli\u003eURLs\u003c\/li\u003e \u003cli\u003eweb servers\u003c\/li\u003e \u003c\/ul\u003e\n\u003c\/li\u003e \u003cli\u003e\n\u003cstrong\u003eProgram structure: \u003c\/strong\u003e simple examples cover the basic structural elements of a Go program without getting sidetracked by complicated algorithms or data structures.\u003c\/li\u003e \u003cli\u003e\n\u003cstrong\u003eData types: \u003c\/strong\u003eGo offers a variety of ways to organize data, with a spectrum of data types that at one end match the features of the hardware and at the other end provide what programmers need to conveniently represent complicated data structures.\u003c\/li\u003e \u003cli\u003e\n\u003cstrong\u003eComposite types: \u003c\/strong\u003e \u003cul\u003e \u003cli\u003earrays\u003c\/li\u003e \u003cli\u003eslices\u003c\/li\u003e \u003cli\u003emaps\u003c\/li\u003e \u003cli\u003estructs\u003c\/li\u003e \u003cli\u003eJSON\u003c\/li\u003e \u003cli\u003etest and HTML templates\u003c\/li\u003e \u003c\/ul\u003e\n\u003c\/li\u003e \u003cli\u003e\n\u003cstrong\u003eFunctions: \u003c\/strong\u003e break a big job into smaller pieces that might well be written by different people separated by both time and space.\u003c\/li\u003e \u003cli\u003e\n\u003cstrong\u003eMethods: \u003c\/strong\u003e \u003cul\u003e \u003cli\u003edeclarations\u003c\/li\u003e \u003cli\u003ewith a pointer receiver\u003c\/li\u003e \u003cli\u003estruct embedding\u003c\/li\u003e \u003cli\u003evalues and expressions\u003c\/li\u003e \u003c\/ul\u003e\n\u003c\/li\u003e \u003cli\u003e\n\u003cstrong\u003eInterfaces: \u003c\/strong\u003e write functions that are more flexible and adaptable because they are not tied to the details of one particular implementation.\u003c\/li\u003e \u003cli\u003e\n\u003cstrong\u003eConcurrent programming: \u003c\/strong\u003e Goroutines, channels, and with shared variables.\u003c\/li\u003e \u003cli\u003e\n\u003cstrong\u003ePackages: \u003c\/strong\u003e use existing packages and create new ones.\u003c\/li\u003e \u003cli\u003e\n\u003cstrong\u003eAutomated testing: \u003c\/strong\u003e write small programs that check the code.\u003c\/li\u003e \u003cli\u003e\n\u003cstrong\u003eReflection features: \u003c\/strong\u003e update variables and inspect their values at run time.\u003c\/li\u003e \u003cli\u003e\n\u003cstrong\u003eLow-level programming: \u003c\/strong\u003e step outside the usual rules to achieve the highest possible performance, interoperate with libraries written in other languages, or implement a function that cannot be expressed in pure Go.\u003c\/li\u003e \u003c\/ul\u003e \u003cp\u003eEach chapter has exercises to test your understanding and explore extensions and alternatives. Source code is freely available for download and may be conveniently fetched, built, and installed using the go get command.\u003c\/p\u003e\u003cbr\u003e\u003cbr\u003e\u003cbr\u003e\u003cb\u003eAbout the Author\u003c\/b\u003e\u003cbr\u003e\u003cp\u003e\u003cstrong\u003eAlan A. A. Donovan\u003c\/strong\u003e is a member of Google's Go team in New York. He holds computer science degrees from Cambridge and MIT and has been programming in industry since 1996. Since 2005, he has worked at Google on infrastructure projects and was the co-designer of its proprietary build system, Blaze. He has built many libraries and tools for static analysis of Go programs, including \u003cstrong\u003eoracle\u003c\/strong\u003e, \u003cstrong\u003egodoc -analysis\u003c\/strong\u003e, \u003cstrong\u003eeg\u003c\/strong\u003e, and \u003cstrong\u003egorename\u003c\/strong\u003e.\u003c\/p\u003e \u003cp\u003e\u003cstrong\u003eBrian W. Kernighan\u003c\/strong\u003e is a professor in the Computer Science Department at Princeton University. He was a member of technical staff in the Computing Science Research Center at Bell Labs from 1969 until 2000, where he worked on languages and tools for Unix. He is the co-author of several books, including \u003cem\u003eThe C Programming Language, Second Edition\u003c\/em\u003e (Prentice Hall, 1988), and \u003cem\u003eThe Practice of Programming\u003c\/em\u003e (Addison-Wesley, 1999).\u003c\/p\u003e\u003cbr\u003e","brand":"Addison-Wesley Professional","offers":[{"title":"Default Title","offer_id":50648800330002,"sku":"9780134190440","price":43.99,"currency_code":"USD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0831\/4771\/8930\/files\/img_8a56dbc5-3791-4cfa-a271-207379fa786d.jpg?v=1733249033","url":"https:\/\/surprise-castle.myshopify.com\/products\/the-go-programming-language-9780134190440","provider":"Surprise Castle","version":"1.0","type":"link"}