<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Roman Dolgopolov</title>
    <link>https://sefus.ru/</link>
    <description>Recent content on Roman Dolgopolov</description>
    <generator>Hugo -- gohugo.io</generator>
    <language>ru_RU</language>
    <lastBuildDate>Mon, 28 May 2018 11:42:53 +0000</lastBuildDate>
    <atom:link href="https://sefus.ru/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>Создание микросервисного приложения на Go по принципу CQRS</title>
      <link>https://sefus.ru/go-microservices-cqrs-docker/</link>
      <pubDate>Mon, 28 May 2018 11:42:53 +0000</pubDate>
      <guid>https://sefus.ru/go-microservices-cqrs-docker/</guid>
      <description>Перевод статьи Building a Microservices Application in Go Following the CQRS Pattern от Tin Rabzelj.&#xA;Эта статья является пошаговым руководством по разработке упрощенного приложения социальной сети, в которой любой может публиковать анонимные сообщения.&#xA;Исходный код доступен на GitHub&#xA;Архитектура Приложение построено с использованием шаблона Command Query Responsibility Segregation (CQRS). Цель состоит в том, чтобы разделить команды и запросы на отдельные сервисы. Команды должны выполнять запись в базу данных, а запросы считывать конечные данные.</description>
    </item>
    <item>
      <title>Управление зависимостями в Go с помощью dep</title>
      <link>https://sefus.ru/upravlieniie-zavisimostiami-v-go-s-pomoshchiu-dep/</link>
      <pubDate>Wed, 14 Feb 2018 18:45:12 +0000</pubDate>
      <guid>https://sefus.ru/upravlieniie-zavisimostiami-v-go-s-pomoshchiu-dep/</guid>
      <description>Практически в любом проекте рано или поздно возникает необходимость использования сторонних библиотек. Многие современные языки имеют общепринятые пакетные менеджеры для управления зависимостями в приложении. Например npm для Node.js или Composer для PHP.&#xA;В Go существует достаточно много инструментов для управления пакетами от разных разработчиков. Некоторые из них даже не написаны на Go.&#xA;dep Одним из таких инструментов является dep. В отличие от других, он был официальным экспериментом разработчиков команды Go, но пока не включен в официальный набор утилит.</description>
    </item>
    <item>
      <title>Маленькая книга о Go – Заключение</title>
      <link>https://sefus.ru/little-go-book-7/</link>
      <pubDate>Sun, 31 Jan 2016 10:39:58 +0000</pubDate>
      <guid>https://sefus.ru/little-go-book-7/</guid>
      <description>О книге&#xA;Недавно я услышал о том, что Go – это скучный язык. Скучный потому, что его легко изучить, легко на нём писать и, что самое главное, легко читать. Возможно, я оказал вам медвежью услугу. Мы потратили три главы на разговоры о типах и о том, как объявить переменную.&#xA;Если у вас уже был опыт работы со статически типизированным языком, многое из того, что вы видели, в лучшем случае освежило ваши знания.</description>
    </item>
    <item>
      <title>Маленькая книга о Go – Глава 6: Конкурентность</title>
      <link>https://sefus.ru/little-go-book-6/</link>
      <pubDate>Sun, 31 Jan 2016 10:37:54 +0000</pubDate>
      <guid>https://sefus.ru/little-go-book-6/</guid>
      <description>О книге&#xA;Go часто описывают, как дружелюбный к параллельному программированию язык. Причина этому заключается в предоставлении простого синтаксиса для двух мощных механизмов: горутин и каналов.&#xA;Горутины Горутины похожи на потоки, но они управляются самим Go, а не операционной системой. Код, который запускается как горутина, может работать одновременно с другим кодом. Давайте посмотрим на пример:&#xA;package main import ( &amp;quot;fmt&amp;quot; &amp;quot;time&amp;quot; ) func main() { fmt.Println(&amp;quot;старт&amp;quot;) go process() time.Sleep(time.Millisecond * 10) // это плохо, не делайте так!</description>
    </item>
    <item>
      <title>Маленькая книга о Go – Глава 5: Лакомые кусочки</title>
      <link>https://sefus.ru/little-go-book-5/</link>
      <pubDate>Tue, 03 Nov 2015 05:25:00 +0000</pubDate>
      <guid>https://sefus.ru/little-go-book-5/</guid>
      <description>О книге&#xA;В этой главе мы поговорим о возможностях Go, которые не вписываются в остальные разделы.&#xA;Обработка ошибок Предпочтительным способом обработки ошибок в Go является возвращение значений вместо исключений. Взглянем на функцию strconv.Atoi, которая принимает строку и пытается конвертировать её в целое число:&#xA;package main import ( &amp;quot;fmt&amp;quot; &amp;quot;os&amp;quot; &amp;quot;strconv&amp;quot; ) func main() { if len(os.Args) != 2 { os.Exit(1) } n, err := strconv.Atoi(os.Args[1]) if err != nil { fmt.</description>
    </item>
    <item>
      <title>Маленькая книга о Go – Глава 4: Организация кода и интерфейсы</title>
      <link>https://sefus.ru/little-go-book-4/</link>
      <pubDate>Sun, 01 Nov 2015 09:01:52 +0000</pubDate>
      <guid>https://sefus.ru/little-go-book-4/</guid>
      <description>О книге&#xA;Настало время поговорить о том, как организовывать ваш код.&#xA;Пакеты Для того, чтобы хранить сложные системы и библиотеки организованно, нам нужно научиться пользоваться пакетами. В Go имена пакетов следуют структуре директорий в вашем рабочем пространстве. Если мы создаём систему для покупок, вероятно мы начнем с пакета по имени &amp;ldquo;shopping&amp;rdquo; и сохраним его исходные файлы в папке $GOPATH/src/shopping/.&#xA;Однако не хочется хранить все подряд в одной папке. Например, возможно мы захотим вынести логику работы с базой данных в другую директорию.</description>
    </item>
    <item>
      <title>Маленькая книга о Go – Глава 3: Карты, массивы и срезы</title>
      <link>https://sefus.ru/little-go-book-3/</link>
      <pubDate>Tue, 27 Oct 2015 20:26:41 +0000</pubDate>
      <guid>https://sefus.ru/little-go-book-3/</guid>
      <description>О книге&#xA;Ранее мы уже видели несколько простых структур. Настало время познакомиться с массивами, срезами и картами.&#xA;Массивы Если вы уже знакомы с Python, Ruby, Perl, JavaScript или PHP (и т. д.), при программировании вы скорее всего использовали динамические массивы. Это массивы, которые способны изменять свой размер в зависимости от хранимых в них данных. В Go, и как во многих других языках, массивы фиксированы. При объявлении массива необходимо указать его размер, после чего изменить его нельзя:</description>
    </item>
    <item>
      <title>Маленькая книга о Go – Глава 2: Структуры</title>
      <link>https://sefus.ru/little-go-book-2/</link>
      <pubDate>Sun, 04 Oct 2015 08:43:43 +0000</pubDate>
      <guid>https://sefus.ru/little-go-book-2/</guid>
      <description>О книге&#xA;Go не является объектно-ориентированным языком (ОО-языком), таким как C++, Java, Ruby или C#. В нем нет объектов, нет наследования и многих других понятий, свойственных ОО-языкам, полиморфизма или перегрузки.&#xA;В Go есть структуры, которые могут быть связаны с методами. В Go также есть простая, но эффективная форма композиции. В целом, это приводит к более простому коду, но бывают случаи когда вам будет не хватать некоторых возможностей ООП (стоит отметить, что композиция вместо наследования старый лозунг и Go первый язык, который я использовал, занимающий твердую позицию по этому вопросу).</description>
    </item>
    <item>
      <title>Маленькая книга о Go – Глава 1: Основы</title>
      <link>https://sefus.ru/little-go-book-1/</link>
      <pubDate>Thu, 06 Aug 2015 21:07:04 +0000</pubDate>
      <guid>https://sefus.ru/little-go-book-1/</guid>
      <description>О книге&#xA;Go компилируемый язык со статической типизацией. Он имеет C-подобный синтаксис и сборку мусора. Что это означает?&#xA;Компиляция Компиляция это процесс перевода исходного кода, который написали вы, в язык более низкого уровня – либо ассемблер (как в случае с Go), либо в какой-то другой промежуточный язык (как в случае с Java или C#).&#xA;С компилируемыми языками бывает неприятно работать потому, что компиляция может быть медленной. Сложно совершать быстрые итерации, если вы тратите минуты или часы в ожидании компиляции вашего кода.</description>
    </item>
    <item>
      <title>Маленькая книга о Go – Введение</title>
      <link>https://sefus.ru/little-go-book-0/</link>
      <pubDate>Wed, 05 Aug 2015 20:59:50 +0000</pubDate>
      <guid>https://sefus.ru/little-go-book-0/</guid>
      <description>О книге&#xA;У меня всегда было чувство на грани любви и ненависти, когда дело доходило до изучения новых языков. С одной стороны, языки имеют настолько фундаментальное значение для того, что мы делаем, что даже мелкое различие может оказать ощутимое значение. Этот вау эффект когда какой-то клик может оказать настолько сильное влияние на то, как вы программируете, что может предопределить ваши ожидания от других языков. С другой стороны, понимание языка является поэтапным процессом.</description>
    </item>
  </channel>
</rss>
