Home page
17
docs/book.md
|
|
@ -8,7 +8,7 @@ Community space of _100 Go Mistakes and How to Avoid Them_, published by Manning
|
|||
|
||||
If you're a Go developer looking to improve your skills, this book is for you. With a focus on practical examples, _100 Go Mistakes and How to Avoid Them_ covers a wide range of topics from concurrency and error handling to testing and code organization. You'll learn to write more idiomatic, efficient, and maintainable code and become a proficient Go developer.
|
||||
|
||||
## Quotes
|
||||
## Quotes and Ratings
|
||||
|
||||
> This is an exceptional book. Usually, if a book contains either high-quality explanations or is written succinctly, I consider myself lucky to have found it. This one combines these two characteristics, which is super rare. It's another Go book for me and I still had quite a lot of "a-ha!" moments while reading it, and all of that without the unnecessary fluff, just straight to the point.
|
||||
|
||||
|
|
@ -22,14 +22,27 @@ If you're a Go developer looking to improve your skills, this book is for you. W
|
|||
|
||||
– _Anupam Sengupta_
|
||||
|
||||
<figure markdown>
|
||||

|
||||
{width="300"}
|
||||
{width="300"}
|
||||
<figcaption>Manning, Goodreads, and Amazon reviews: 4.7/5 avg rating</figcaption>
|
||||
</figure>
|
||||
|
||||
## Where to Buy?
|
||||
|
||||
<figure markdown>
|
||||
{width="200"}
|
||||
{width="200"}
|
||||
<figcaption>English and Japanese front covers</figcaption>
|
||||
</figure>
|
||||
|
||||
* _100 Go Mistakes and How to Avoid Them_ (🇬🇧 edition: paper, digital, or audiobook)
|
||||
* [Manning](https://www.manning.com/books/100-go-mistakes-and-how-to-avoid-them) (make sure to use my personal discount code for -35%: `au35har`)
|
||||
* [O’Reilly](https://www.oreilly.com/library/view/100-go-mistakes/9781617299599/)
|
||||
* Amazon: [.com](https://www.amazon.com/dp/1617299596), [.co.uk](https://www.amazon.co.uk/dp/B0BBSNJR6B), [.de](https://www.amazon.de/dp/B0BBHQD8BQ), [.fr](https://www.amazon.fr/100-Mistakes-How-Avoid-Them/dp/1617299596), [.in](https://www.amazon.in/dp/B0BBHQD8BQ), [.co.jp](https://www.amazon.co.jp/dp/B0BBHQD8BQ), [.es](https://www.amazon.es/dp/B0BBHQD8BQ), [.it](https://www.amazon.it/dp/B0BBHQD8BQ), [.com.br](https://www.amazon.com.br/dp/B0BBHQD8BQ)
|
||||
|
||||
* _Go言語100Tips 開発者にありがちな間違いへの対処法_ (🇯🇵 edition)
|
||||
* _Go言語100Tips 開発者にありがちな間違いへの対処法_ (🇯🇵 edition: paper or digital)
|
||||
* Amazon: [.co.jp](https://www.amazon.co.jp/exec/obidos/ASIN/4295017531/)
|
||||
|
||||
## About the Author
|
||||
|
|
|
|||
BIN
docs/img/cover-en.jpg
Normal file
|
After Width: | Height: | Size: 138 KiB |
BIN
docs/img/cover-jp.jpg
Normal file
|
After Width: | Height: | Size: 50 KiB |
BIN
docs/img/ratings-amazon.png
Normal file
|
After Width: | Height: | Size: 30 KiB |
BIN
docs/img/ratings-goodreads.png
Normal file
|
After Width: | Height: | Size: 9.5 KiB |
BIN
docs/img/ratings-manning.png
Normal file
|
After Width: | Height: | Size: 16 KiB |
3
docs/stylesheets/extra.css
Normal file
|
|
@ -0,0 +1,3 @@
|
|||
.md-typeset figure img {
|
||||
display: inline;
|
||||
}
|
||||
|
|
@ -52,6 +52,8 @@ extra:
|
|||
link: https://twitter.com/teivah
|
||||
- icon: fontawesome/brands/medium
|
||||
link: http://blog.teivah.io
|
||||
extra_css:
|
||||
- stylesheets/extra.css
|
||||
nav:
|
||||
- Book:
|
||||
- book.md
|
||||
|
|
|
|||
|
|
@ -46,6 +46,8 @@
|
|||
|
||||
|
||||
|
||||
<link rel="stylesheet" href="../stylesheets/extra.css">
|
||||
|
||||
<script>__md_scope=new URL("..",location),__md_hash=e=>[...e].reduce((e,_)=>(e<<5)-e+_.charCodeAt(0),0),__md_get=(e,_=localStorage,t=__md_scope)=>JSON.parse(_.getItem(t.pathname+"."+e)),__md_set=(e,_,t=localStorage,a=__md_scope)=>{try{t.setItem(a.pathname+"."+e,JSON.stringify(_))}catch(e){}}</script>
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -46,6 +46,8 @@
|
|||
|
||||
|
||||
|
||||
<link rel="stylesheet" href="../stylesheets/extra.css">
|
||||
|
||||
<script>__md_scope=new URL("..",location),__md_hash=e=>[...e].reduce((e,_)=>(e<<5)-e+_.charCodeAt(0),0),__md_get=(e,_=localStorage,t=__md_scope)=>JSON.parse(_.getItem(t.pathname+"."+e)),__md_set=(e,_,t=localStorage,a=__md_scope)=>{try{t.setItem(a.pathname+"."+e,JSON.stringify(_))}catch(e){}}</script>
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -40,6 +40,8 @@
|
|||
|
||||
|
||||
|
||||
<link rel="stylesheet" href="/stylesheets/extra.css">
|
||||
|
||||
<script>__md_scope=new URL("/",location),__md_hash=e=>[...e].reduce((e,_)=>(e<<5)-e+_.charCodeAt(0),0),__md_get=(e,_=localStorage,t=__md_scope)=>JSON.parse(_.getItem(t.pathname+"."+e)),__md_set=(e,_,t=localStorage,a=__md_scope)=>{try{t.setItem(a.pathname+"."+e,JSON.stringify(_))}catch(e){}}</script>
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -46,6 +46,8 @@
|
|||
|
||||
|
||||
|
||||
<link rel="stylesheet" href="../stylesheets/extra.css">
|
||||
|
||||
<script>__md_scope=new URL("..",location),__md_hash=e=>[...e].reduce((e,_)=>(e<<5)-e+_.charCodeAt(0),0),__md_get=(e,_=localStorage,t=__md_scope)=>JSON.parse(_.getItem(t.pathname+"."+e)),__md_set=(e,_,t=localStorage,a=__md_scope)=>{try{t.setItem(a.pathname+"."+e,JSON.stringify(_))}catch(e){}}</script>
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -46,6 +46,8 @@
|
|||
|
||||
|
||||
|
||||
<link rel="stylesheet" href="../stylesheets/extra.css">
|
||||
|
||||
<script>__md_scope=new URL("..",location),__md_hash=e=>[...e].reduce((e,_)=>(e<<5)-e+_.charCodeAt(0),0),__md_get=(e,_=localStorage,t=__md_scope)=>JSON.parse(_.getItem(t.pathname+"."+e)),__md_set=(e,_,t=localStorage,a=__md_scope)=>{try{t.setItem(a.pathname+"."+e,JSON.stringify(_))}catch(e){}}</script>
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -46,6 +46,8 @@
|
|||
|
||||
|
||||
|
||||
<link rel="stylesheet" href="../stylesheets/extra.css">
|
||||
|
||||
<script>__md_scope=new URL("..",location),__md_hash=e=>[...e].reduce((e,_)=>(e<<5)-e+_.charCodeAt(0),0),__md_get=(e,_=localStorage,t=__md_scope)=>JSON.parse(_.getItem(t.pathname+"."+e)),__md_set=(e,_,t=localStorage,a=__md_scope)=>{try{t.setItem(a.pathname+"."+e,JSON.stringify(_))}catch(e){}}</script>
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -44,6 +44,8 @@
|
|||
|
||||
|
||||
|
||||
<link rel="stylesheet" href="../stylesheets/extra.css">
|
||||
|
||||
<script>__md_scope=new URL("..",location),__md_hash=e=>[...e].reduce((e,_)=>(e<<5)-e+_.charCodeAt(0),0),__md_get=(e,_=localStorage,t=__md_scope)=>JSON.parse(_.getItem(t.pathname+"."+e)),__md_set=(e,_,t=localStorage,a=__md_scope)=>{try{t.setItem(a.pathname+"."+e,JSON.stringify(_))}catch(e){}}</script>
|
||||
|
||||
|
||||
|
|
@ -482,8 +484,8 @@
|
|||
</li>
|
||||
|
||||
<li class="md-nav__item">
|
||||
<a href="#quotes" class="md-nav__link">
|
||||
Quotes
|
||||
<a href="#quotes-and-ratings" class="md-nav__link">
|
||||
Quotes and Ratings
|
||||
</a>
|
||||
|
||||
</li>
|
||||
|
|
@ -876,8 +878,8 @@
|
|||
</li>
|
||||
|
||||
<li class="md-nav__item">
|
||||
<a href="#quotes" class="md-nav__link">
|
||||
Quotes
|
||||
<a href="#quotes-and-ratings" class="md-nav__link">
|
||||
Quotes and Ratings
|
||||
</a>
|
||||
|
||||
</li>
|
||||
|
|
@ -919,7 +921,7 @@
|
|||
<p><a class="glightbox" href="../img/cover.png" data-type="image" data-width="100%" data-height="auto" data-desc-position="bottom"><img alt="" src="../img/cover.png" /></a></p>
|
||||
<h2 id="description">Description</h2>
|
||||
<p>If you're a Go developer looking to improve your skills, this book is for you. With a focus on practical examples, <em>100 Go Mistakes and How to Avoid Them</em> covers a wide range of topics from concurrency and error handling to testing and code organization. You'll learn to write more idiomatic, efficient, and maintainable code and become a proficient Go developer.</p>
|
||||
<h2 id="quotes">Quotes</h2>
|
||||
<h2 id="quotes-and-ratings">Quotes and Ratings</h2>
|
||||
<blockquote>
|
||||
<p>This is an exceptional book. Usually, if a book contains either high-quality explanations or is written succinctly, I consider myself lucky to have found it. This one combines these two characteristics, which is super rare. It's another Go book for me and I still had quite a lot of "a-ha!" moments while reading it, and all of that without the unnecessary fluff, just straight to the point.</p>
|
||||
</blockquote>
|
||||
|
|
@ -932,7 +934,20 @@
|
|||
<p>Not having this will be the 101st mistake a Go programmer could make.</p>
|
||||
</blockquote>
|
||||
<p>– <em>Anupam Sengupta</em></p>
|
||||
<figure>
|
||||
<p><a class="glightbox" href="../img/ratings-manning.png" data-type="image" data-width="100%" data-height="auto" data-desc-position="bottom"><img alt="" src="../img/ratings-manning.png" /></a>
|
||||
<a class="glightbox" href="../img/ratings-goodreads.png" data-type="image" data-width="100%" data-height="auto" data-desc-position="bottom"><img alt="" src="../img/ratings-goodreads.png" width="300" /></a>
|
||||
<a class="glightbox" href="../img/ratings-amazon.png" data-type="image" data-width="100%" data-height="auto" data-desc-position="bottom"><img alt="" src="../img/ratings-amazon.png" width="300" /></a>
|
||||
</p>
|
||||
<figcaption>Manning, Goodreads, and Amazon reviews: 4.7/5 avg rating</figcaption>
|
||||
</figure>
|
||||
<h2 id="where-to-buy">Where to Buy?</h2>
|
||||
<figure>
|
||||
<p><a class="glightbox" href="../img/cover-en.jpg" data-type="image" data-width="100%" data-height="auto" data-desc-position="bottom"><img alt="" src="../img/cover-en.jpg" width="200" /></a>
|
||||
<a class="glightbox" href="../img/cover-jp.jpg" data-type="image" data-width="100%" data-height="auto" data-desc-position="bottom"><img alt="" src="../img/cover-jp.jpg" width="200" /></a>
|
||||
</p>
|
||||
<figcaption>English and Japanese front covers</figcaption>
|
||||
</figure>
|
||||
<ul>
|
||||
<li>
|
||||
<p><em>100 Go Mistakes and How to Avoid Them</em> (🇬🇧 edition: paper, digital, or audiobook)</p>
|
||||
|
|
@ -943,7 +958,7 @@
|
|||
</ul>
|
||||
</li>
|
||||
<li>
|
||||
<p><em>Go言語100Tips 開発者にありがちな間違いへの対処法</em> (🇯🇵 edition)</p>
|
||||
<p><em>Go言語100Tips 開発者にありがちな間違いへの対処法</em> (🇯🇵 edition: paper or digital)</p>
|
||||
<ul>
|
||||
<li>Amazon: <a href="https://www.amazon.co.jp/exec/obidos/ASIN/4295017531/">.co.jp</a></li>
|
||||
</ul>
|
||||
|
|
|
|||
|
|
@ -46,6 +46,8 @@
|
|||
|
||||
|
||||
|
||||
<link rel="stylesheet" href="../stylesheets/extra.css">
|
||||
|
||||
<script>__md_scope=new URL("..",location),__md_hash=e=>[...e].reduce((e,_)=>(e<<5)-e+_.charCodeAt(0),0),__md_get=(e,_=localStorage,t=__md_scope)=>JSON.parse(_.getItem(t.pathname+"."+e)),__md_set=(e,_,t=localStorage,a=__md_scope)=>{try{t.setItem(a.pathname+"."+e,JSON.stringify(_))}catch(e){}}</script>
|
||||
|
||||
|
||||
|
|
|
|||
2
site/external/index.html
vendored
|
|
@ -46,6 +46,8 @@
|
|||
|
||||
|
||||
|
||||
<link rel="stylesheet" href="../stylesheets/extra.css">
|
||||
|
||||
<script>__md_scope=new URL("..",location),__md_hash=e=>[...e].reduce((e,_)=>(e<<5)-e+_.charCodeAt(0),0),__md_get=(e,_=localStorage,t=__md_scope)=>JSON.parse(_.getItem(t.pathname+"."+e)),__md_set=(e,_,t=localStorage,a=__md_scope)=>{try{t.setItem(a.pathname+"."+e,JSON.stringify(_))}catch(e){}}</script>
|
||||
|
||||
|
||||
|
|
|
|||
BIN
site/img/cover-en.jpg
Normal file
|
After Width: | Height: | Size: 138 KiB |
BIN
site/img/cover-jp.jpg
Normal file
|
After Width: | Height: | Size: 50 KiB |
BIN
site/img/ratings-amazon.png
Normal file
|
After Width: | Height: | Size: 30 KiB |
BIN
site/img/ratings-goodreads.png
Normal file
|
After Width: | Height: | Size: 9.5 KiB |
BIN
site/img/ratings-manning.png
Normal file
|
After Width: | Height: | Size: 16 KiB |
|
|
@ -46,6 +46,8 @@
|
|||
|
||||
|
||||
|
||||
<link rel="stylesheet" href="stylesheets/extra.css">
|
||||
|
||||
<script>__md_scope=new URL(".",location),__md_hash=e=>[...e].reduce((e,_)=>(e<<5)-e+_.charCodeAt(0),0),__md_get=(e,_=localStorage,t=__md_scope)=>JSON.parse(_.getItem(t.pathname+"."+e)),__md_set=(e,_,t=localStorage,a=__md_scope)=>{try{t.setItem(a.pathname+"."+e,JSON.stringify(_))}catch(e){}}</script>
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -44,6 +44,8 @@
|
|||
|
||||
|
||||
|
||||
<link rel="stylesheet" href="../stylesheets/extra.css">
|
||||
|
||||
<script>__md_scope=new URL("..",location),__md_hash=e=>[...e].reduce((e,_)=>(e<<5)-e+_.charCodeAt(0),0),__md_get=(e,_=localStorage,t=__md_scope)=>JSON.parse(_.getItem(t.pathname+"."+e)),__md_set=(e,_,t=localStorage,a=__md_scope)=>{try{t.setItem(a.pathname+"."+e,JSON.stringify(_))}catch(e){}}</script>
|
||||
|
||||
|
||||
|
|
|
|||
3
site/stylesheets/extra.css
Normal file
|
|
@ -0,0 +1,3 @@
|
|||
.md-typeset figure img {
|
||||
display: inline;
|
||||
}
|
||||
|
|
@ -46,6 +46,8 @@
|
|||
|
||||
|
||||
|
||||
<link rel="stylesheet" href="../stylesheets/extra.css">
|
||||
|
||||
<script>__md_scope=new URL("..",location),__md_hash=e=>[...e].reduce((e,_)=>(e<<5)-e+_.charCodeAt(0),0),__md_get=(e,_=localStorage,t=__md_scope)=>JSON.parse(_.getItem(t.pathname+"."+e)),__md_set=(e,_,t=localStorage,a=__md_scope)=>{try{t.setItem(a.pathname+"."+e,JSON.stringify(_))}catch(e){}}</script>
|
||||
|
||||
|
||||
|
|
|
|||