<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:media="http://search.yahoo.com/mrss/"><channel><title>Golang on Шлакоблог</title><link>https://vodolaz095.ru/tags/golang/</link><description>Recent content in Golang on Шлакоблог</description><generator>Hugo -- 0.162.1</generator><language>ru-RU</language><lastBuildDate>Sun, 23 Feb 2020 08:47:27 +0300</lastBuildDate><atom:link href="https://vodolaz095.ru/tags/golang/index.xml" rel="self" type="application/rss+xml"/><item><title>Как надо программировать на языке Golang</title><link>https://vodolaz095.ru/how-to-program-on-go/</link><pubDate>Sun, 23 Feb 2020 08:47:27 +0300</pubDate><author>Анатолий Остроумов</author><guid>https://vodolaz095.ru/how-to-program-on-go/</guid><description>В глубинах исходных кодов одного из проприентарных продуктов, который я пилю по субботам...</description><enclosure url="https://vodolaz095.ru/images/kurov_go.png" length="" type="image/png"/><media:thumbnail url="https://vodolaz095.ru/images/kurov_go.png" width="1398" height="679"/><media:content url="https://vodolaz095.ru/images/kurov_go.png" medium="image" type="image/png" width="1398" height="679"><media:title type="html">/images/kurov_go.png</media:title></media:content><content type="text/html" mode="escaped"><![CDATA[<p><img src="/images/kurov_go.png" alt="исходный код"></p>
<p>В глубинах исходных кодов одного из проприентарных продуктов, который я пилю по субботам, я нашёл упоминение
Советского бога программирования <a href="/kurov/">А.В. Курова</a>,
который воспитал не одно поколение одарённых (не только в общепринятом смысле) программистов.</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-go" data-lang="go"><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">func</span> <span style="color:#a6e22e">TestWorkspace_WriteFile</span>(<span style="color:#a6e22e">t</span> <span style="color:#f92672">*</span><span style="color:#a6e22e">testing</span>.<span style="color:#a6e22e">T</span>) {
</span></span><span style="display:flex;"><span>	<span style="color:#a6e22e">w</span>, <span style="color:#a6e22e">err</span> <span style="color:#f92672">:=</span> <span style="color:#a6e22e">GetWorkSpaceByID</span>(<span style="color:#a6e22e">workspaceIDForTests</span>)
</span></span><span style="display:flex;"><span>	<span style="color:#66d9ef">if</span> <span style="color:#a6e22e">err</span> <span style="color:#f92672">!=</span> <span style="color:#66d9ef">nil</span> {
</span></span><span style="display:flex;"><span>		<span style="color:#a6e22e">t</span>.<span style="color:#a6e22e">Error</span>(<span style="color:#a6e22e">err</span>)
</span></span><span style="display:flex;"><span>	}
</span></span><span style="display:flex;"><span>	<span style="color:#a6e22e">assert</span>.<span style="color:#a6e22e">Equal</span>(<span style="color:#a6e22e">t</span>, <span style="color:#e6db74">&#34;nobody&#34;</span>, <span style="color:#a6e22e">w</span>.<span style="color:#a6e22e">User</span>, <span style="color:#e6db74">&#34;wrong user&#34;</span>)
</span></span><span style="display:flex;"><span>	<span style="color:#a6e22e">assert</span>.<span style="color:#a6e22e">Equal</span>(<span style="color:#a6e22e">t</span>, <span style="color:#e6db74">&#34;unknown&#34;</span>, <span style="color:#a6e22e">w</span>.<span style="color:#a6e22e">Company</span>, <span style="color:#e6db74">&#34;wrong company&#34;</span>)
</span></span><span style="display:flex;"><span>	<span style="color:#a6e22e">assert</span>.<span style="color:#a6e22e">Equal</span>(<span style="color:#a6e22e">t</span>, <span style="color:#a6e22e">config</span>.<span style="color:#a6e22e">Config</span>.<span style="color:#a6e22e">Hostname</span>, <span style="color:#a6e22e">w</span>.<span style="color:#a6e22e">Server</span>, <span style="color:#e6db74">&#34;wrong server&#34;</span>)
</span></span><span style="display:flex;"><span>	<span style="color:#a6e22e">assert</span>.<span style="color:#a6e22e">Equal</span>(<span style="color:#a6e22e">t</span>, <span style="color:#ae81ff">0</span>, <span style="color:#a6e22e">w</span>.<span style="color:#a6e22e">DiskUsage</span>, <span style="color:#e6db74">&#34;wrong disk usage&#34;</span>)
</span></span><span style="display:flex;"><span>	<span style="color:#a6e22e">assert</span>.<span style="color:#a6e22e">Equal</span>(<span style="color:#a6e22e">t</span>, <span style="color:#ae81ff">0</span>, <span style="color:#a6e22e">w</span>.<span style="color:#a6e22e">NumberOfFiles</span>, <span style="color:#e6db74">&#34;wrong number of files&#34;</span>)
</span></span><span style="display:flex;"><span>	<span style="color:#a6e22e">assert</span>.<span style="color:#a6e22e">Equal</span>(<span style="color:#a6e22e">t</span>, <span style="color:#e6db74">&#34;0 bytes&#34;</span>, <span style="color:#a6e22e">w</span>.<span style="color:#a6e22e">HumanizeDiskUsage</span>(), <span style="color:#e6db74">&#34;wrong disk usage in human readable form&#34;</span>)
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>	<span style="color:#a6e22e">assert</span>.<span style="color:#a6e22e">Equal</span>(<span style="color:#a6e22e">t</span>,
</span></span><span style="display:flex;"><span>		<span style="color:#a6e22e">fmt</span>.<span style="color:#a6e22e">Sprintf</span>(<span style="color:#e6db74">&#34;%s%s&#34;</span>, <span style="color:#a6e22e">config</span>.<span style="color:#a6e22e">Config</span>.<span style="color:#a6e22e">Path</span>.<span style="color:#a6e22e">Workspace</span>, <span style="color:#a6e22e">workspaceIDForTests</span>),
</span></span><span style="display:flex;"><span>		<span style="color:#a6e22e">w</span>.<span style="color:#a6e22e">GetDirectoryPath</span>(),
</span></span><span style="display:flex;"><span>		<span style="color:#e6db74">&#34;wrong directory path&#34;</span>,
</span></span><span style="display:flex;"><span>	)
</span></span><span style="display:flex;"><span>	<span style="color:#a6e22e">assert</span>.<span style="color:#a6e22e">FileExists</span>(<span style="color:#a6e22e">t</span>, <span style="color:#a6e22e">w</span>.<span style="color:#a6e22e">GetMetadataPath</span>(), <span style="color:#e6db74">&#34;metadata file not exists&#34;</span>)
</span></span><span style="display:flex;"><span>	<span style="color:#a6e22e">assert</span>.<span style="color:#a6e22e">True</span>(<span style="color:#a6e22e">t</span>, <span style="color:#a6e22e">w</span>.<span style="color:#a6e22e">DoBelongsToUser</span>(<span style="color:#e6db74">&#34;nobody&#34;</span>, <span style="color:#e6db74">&#34;unknown&#34;</span>), <span style="color:#e6db74">&#34;not belongs to user&#34;</span>)
</span></span><span style="display:flex;"><span>	<span style="color:#a6e22e">assert</span>.<span style="color:#a6e22e">False</span>(<span style="color:#a6e22e">t</span>, <span style="color:#a6e22e">w</span>.<span style="color:#a6e22e">DoBelongsToUser</span>(<span style="color:#e6db74">&#34;somebody&#34;</span>, <span style="color:#e6db74">&#34;unknown&#34;</span>), <span style="color:#e6db74">&#34;belongs to wrong user&#34;</span>)
</span></span><span style="display:flex;"><span>	<span style="color:#a6e22e">assert</span>.<span style="color:#a6e22e">False</span>(<span style="color:#a6e22e">t</span>, <span style="color:#a6e22e">w</span>.<span style="color:#a6e22e">DoBelongsToUser</span>(<span style="color:#e6db74">&#34;nobody&#34;</span>, <span style="color:#e6db74">&#34;Microsoft&#34;</span>), <span style="color:#e6db74">&#34;belongs to wrong user&#34;</span>)
</span></span><span style="display:flex;"><span>	<span style="color:#a6e22e">assert</span>.<span style="color:#a6e22e">False</span>(<span style="color:#a6e22e">t</span>, <span style="color:#a6e22e">w</span>.<span style="color:#a6e22e">DoBelongsToUser</span>(<span style="color:#e6db74">&#34;somebody&#34;</span>, <span style="color:#e6db74">&#34;Microsoft&#34;</span>), <span style="color:#e6db74">&#34;belongs to wrong user&#34;</span>)
</span></span><span style="display:flex;"><span>	<span style="color:#a6e22e">err</span> = <span style="color:#a6e22e">w</span>.<span style="color:#a6e22e">WriteFile</span>(<span style="color:#e6db74">&#34;test.txt&#34;</span>, []byte(<span style="color:#e6db74">&#34;this is test.txt file with some data in it. Как говорил мой преподаватель программирования Андрей Владимирович Куров, писать код надо так, чтобы моча ухом шла!&#34;</span>))
</span></span><span style="display:flex;"><span>	<span style="color:#66d9ef">if</span> <span style="color:#a6e22e">err</span> <span style="color:#f92672">!=</span> <span style="color:#66d9ef">nil</span> {
</span></span><span style="display:flex;"><span>		<span style="color:#a6e22e">t</span>.<span style="color:#a6e22e">Error</span>(<span style="color:#a6e22e">err</span>)
</span></span><span style="display:flex;"><span>	}
</span></span><span style="display:flex;"><span>}
</span></span></code></pre></div><p>В тестовый файл пишется эта строка</p>
<pre tabindex="0"><code>
this is test.txt file with some data in it. 
Как говорил мой преподаватель программирования Андрей Владимирович Куров, 
писать код надо так, чтобы моча ухом шла!
</code></pre><p>В общем:</p>
<pre tabindex="0"><code>НЕПЫА́ЙТЕ АДУ́ЙТЕ!
</code></pre><p>(в переводе на Русский язык - &ldquo;не проверяйте, а думайте&rdquo;).</p>
<p>PS: По <code>git blame</code> этот код написал какой-то итальянец по имени Ricardo.</p>
]]></content></item><item><title>Список ссылок и литературы о языке Go.</title><link>https://vodolaz095.ru/golang-books/</link><pubDate>Sat, 08 Jun 2019 01:43:27 +0300</pubDate><author>Анатолий Остроумов</author><guid>https://vodolaz095.ru/golang-books/</guid><description>Список ссылок и литературы о языке Go</description><enclosure url="https://vodolaz095.ru/images/cars.jpg" length="" type="image/jpeg"/><media:thumbnail url="https://vodolaz095.ru/images/cars.jpg" width="900" height="600"/><media:content url="https://vodolaz095.ru/images/cars.jpg" medium="image" type="image/jpeg" width="900" height="600"><media:title type="html">/images/cars.jpg</media:title></media:content><content type="text/html" mode="escaped"><![CDATA[<p><img src="/images/cars.jpg" alt="cars.jpg"></p>
<p>Автомобили на шоссе - это аллегория вытесняющей многозадачности, реализованная в Go с помощью легковесных горутин.</p>
<h1 id="на-английском-языке">На Английском языке:<a href="#%d0%bd%d0%b0-%d0%b0%d0%bd%d0%b3%d0%bb%d0%b8%d0%b9%d1%81%d0%ba%d0%be%d0%bc-%d1%8f%d0%b7%d1%8b%d0%ba%d0%b5" class="anchor" aria-hidden="true"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"
      stroke-linecap="round" stroke-linejoin="round" class="feather">
      <path d="M15 7h3a5 5 0 0 1 5 5 5 5 0 0 1-5 5h-3m-6 0H6a5 5 0 0 1-5-5 5 5 0 0 1 5-5h3"></path>
      <line x1="8" y1="12" x2="16" y2="12"></line>
   </svg></a></h1>
<ol>
<li><a href="https://golang.org/">https://golang.org/</a> - официальное руководство</li>
<li><a href="https://www.golang-book.com/books/intro">https://www.golang-book.com/books/intro</a> - книга для начинающих от Калеба Доксли.</li>
<li><a href="https://gobyexample.com/">https://gobyexample.com/</a></li>
<li><a href="https://go.dev/">https://go.dev/</a></li>
</ol>
<h1 id="на-русском-языке">На Русском языке:<a href="#%d0%bd%d0%b0-%d1%80%d1%83%d1%81%d1%81%d0%ba%d0%be%d0%bc-%d1%8f%d0%b7%d1%8b%d0%ba%d0%b5" class="anchor" aria-hidden="true"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"
      stroke-linecap="round" stroke-linejoin="round" class="feather">
      <path d="M15 7h3a5 5 0 0 1 5 5 5 5 0 0 1-5 5h-3m-6 0H6a5 5 0 0 1-5-5 5 5 0 0 1 5-5h3"></path>
      <line x1="8" y1="12" x2="16" y2="12"></line>
   </svg></a></h1>
<ol>
<li><a href="http://golang-book.ru/">http://golang-book.ru/</a> - перевод книги Калеба Доксли</li>
<li><a href="https://www.ozon.ru/context/detail/id/148161581/">https://www.ozon.ru/context/detail/id/148161581/</a> - книга &ldquo;Язык программирования&rdquo; Go от Брайана Кернигана и Алана Донована.
Торренты ищите сами, книга стоит того, чтобы её купить.</li>
<li><a href="https://ru.wikipedia.org/wiki/Go">https://ru.wikipedia.org/wiki/Go</a></li>
</ol>
]]></content></item></channel></rss>