SlideShare ist ein Scribd-Unternehmen logo
1 von 14
Go под капотом
… точнее все что вам нужно знать про Go
Кто я?
Разработчик с опытом работы в различных
сферах IT. Начиная с Web и Mobile заканчивая
серверными приложениями, распределенными БД
и DevOps. Создавал автоматическую систему
диспетчеризации заказов такси, делал сайты,
коробочные web продукты, поднимал
инфраструктуру в AWS (CoreOS stack), настраивал
автоматический deployment и обновление. Сейчас
в команде Dar Ecosystem. Занимаюсь проектом
Dar Play. Docker. Go. NoSQL.
Почему Go?
• Быстрая разработка
• Типо-безопасность
• Быстрая компиляция
• Эффективное использование “железа”
• Многопоточность
Тур по Go
https://tour.golang.org/welcome/1
Результат тура
• С подобный синтаксис
• Компилируемый в статический бинарный файл
• Статическая типизация с неявным указанием типов
• Структурная система типов
• Горутины, каналы
• Сборщик мусора
• Нет неявных преобразований
• Интерфейсы наше все
Инструменты Go
Компилятор
• Создает syntax tree, проверяет его, переписывает
всякий сахар, создает объектные файлы (*.o)
• Статический бинарник, работает даже без go runtime
на любой машине со схожей архитектурой ядра
• Если А.go зависит от B.go который зависит от C.go то
• Скомпилировать С.go, B.go потом A.go
• Чтобы скомпилировать A.go нужен только B.o (в
нем уже есть С.o)
Go Runtime
Сборщик мусора
• Сoncurrent, tri-color, mark-sweep collector
• Scan, mark, sweep stages
• White, grey or black objects
• Heap as a connected graph
• Mutator, write barrier
Scheduler
• Goroutine (G), OS thread (M), logical processor unit
(P)
• Gouroutines multiplexed on GOMAXPROCS
system threads
Что еще есть?
• go fmt - форматирование кода
• go doc - авто документация
• go get - загрузка зависимостей
Я все!

Weitere ähnliche Inhalte

Was ist angesagt?

От репозитория до CI/CD-инфраструктуры в продакшне за неделю / Дмитрий Чумак ...
От репозитория до CI/CD-инфраструктуры в продакшне за неделю / Дмитрий Чумак ...От репозитория до CI/CD-инфраструктуры в продакшне за неделю / Дмитрий Чумак ...
От репозитория до CI/CD-инфраструктуры в продакшне за неделю / Дмитрий Чумак ...
Ontico
 
Разработка кроссплатформенного фреймворка на С++ для мобильных платформ / Вла...
Разработка кроссплатформенного фреймворка на С++ для мобильных платформ / Вла...Разработка кроссплатформенного фреймворка на С++ для мобильных платформ / Вла...
Разработка кроссплатформенного фреймворка на С++ для мобильных платформ / Вла...
Ontico
 
Роман Янковский (Devexperts)
Роман Янковский (Devexperts)Роман Янковский (Devexperts)
Роман Янковский (Devexperts)
Ontico
 

Was ist angesagt? (15)

Networks for beginners
Networks for beginnersNetworks for beginners
Networks for beginners
 
От репозитория до CI/CD-инфраструктуры в продакшне за неделю / Дмитрий Чумак ...
От репозитория до CI/CD-инфраструктуры в продакшне за неделю / Дмитрий Чумак ...От репозитория до CI/CD-инфраструктуры в продакшне за неделю / Дмитрий Чумак ...
От репозитория до CI/CD-инфраструктуры в продакшне за неделю / Дмитрий Чумак ...
 
Обработка геоданных в Go
Обработка геоданных в GoОбработка геоданных в Go
Обработка геоданных в Go
 
Chef, Puppet, Salt, Ansible on SECON 2014
Chef, Puppet, Salt, Ansible on SECON 2014Chef, Puppet, Salt, Ansible on SECON 2014
Chef, Puppet, Salt, Ansible on SECON 2014
 
Владимир Русинов, Алексей Капранов "Яндекс.Диск: архитектура, синхронизация и...
Владимир Русинов, Алексей Капранов "Яндекс.Диск: архитектура, синхронизация и...Владимир Русинов, Алексей Капранов "Яндекс.Диск: архитектура, синхронизация и...
Владимир Русинов, Алексей Капранов "Яндекс.Диск: архитектура, синхронизация и...
 
GDGNSK Работа с геоданными в Go
GDGNSK Работа с геоданными в GoGDGNSK Работа с геоданными в Go
GDGNSK Работа с геоданными в Go
 
Frontend - экосистема и будущее: iforum 2015
Frontend - экосистема и будущее: iforum 2015Frontend - экосистема и будущее: iforum 2015
Frontend - экосистема и будущее: iforum 2015
 
Elasticsearch(java) fluentd(ruby) kibana(javascript)
Elasticsearch(java)fluentd(ruby) kibana(javascript)Elasticsearch(java)fluentd(ruby) kibana(javascript)
Elasticsearch(java) fluentd(ruby) kibana(javascript)
 
Разработка кроссплатформенного фреймворка на С++ для мобильных платформ / Вла...
Разработка кроссплатформенного фреймворка на С++ для мобильных платформ / Вла...Разработка кроссплатформенного фреймворка на С++ для мобильных платформ / Вла...
Разработка кроссплатформенного фреймворка на С++ для мобильных платформ / Вла...
 
Роман Янковский (Devexperts)
Роман Янковский (Devexperts)Роман Янковский (Devexperts)
Роман Янковский (Devexperts)
 
"Обзор Tarantool DB"
"Обзор Tarantool DB""Обзор Tarantool DB"
"Обзор Tarantool DB"
 
My Open Source (Sept 2017)
My Open Source (Sept 2017)My Open Source (Sept 2017)
My Open Source (Sept 2017)
 
Организация надежного резервного копирования веб-проекта. Практика и подводны...
Организация надежного резервного копирования веб-проекта. Практика и подводны...Организация надежного резервного копирования веб-проекта. Практика и подводны...
Организация надежного резервного копирования веб-проекта. Практика и подводны...
 
Фронтенд для миллионов (НН)
Фронтенд для миллионов (НН)Фронтенд для миллионов (НН)
Фронтенд для миллионов (НН)
 
SECON'2016. Парамонов Сергей, Автоматизируй это! Как не погрязнуть в рутине п...
SECON'2016. Парамонов Сергей, Автоматизируй это! Как не погрязнуть в рутине п...SECON'2016. Парамонов Сергей, Автоматизируй это! Как не погрязнуть в рутине п...
SECON'2016. Парамонов Сергей, Автоматизируй это! Как не погрязнуть в рутине п...
 

Andere mochten auch

Analizando Mi Vida
Analizando Mi VidaAnalizando Mi Vida
Analizando Mi Vida
Jess Buretti
 
PC Blindado Antivírus
PC Blindado AntivírusPC Blindado Antivírus
PC Blindado Antivírus
PCBlindado
 
Ch 3.2 invest 2
Ch 3.2 invest 2Ch 3.2 invest 2
Ch 3.2 invest 2
hgraffam
 
การออกแบบสิ่งแวดล้อม การเรียนรู้บนเครือข่าย
การออกแบบสิ่งแวดล้อมการเรียนรู้บนเครือข่ายการออกแบบสิ่งแวดล้อมการเรียนรู้บนเครือข่าย
การออกแบบสิ่งแวดล้อม การเรียนรู้บนเครือข่าย
mutto kung
 
Trabalho Prática de Ensino Maio13
Trabalho Prática de Ensino Maio13Trabalho Prática de Ensino Maio13
Trabalho Prática de Ensino Maio13
Ana Polo
 

Andere mochten auch (17)

Analizando Mi Vida
Analizando Mi VidaAnalizando Mi Vida
Analizando Mi Vida
 
PC Blindado Antivírus
PC Blindado AntivírusPC Blindado Antivírus
PC Blindado Antivírus
 
Ch 3.2 invest 2
Ch 3.2 invest 2Ch 3.2 invest 2
Ch 3.2 invest 2
 
Protocolo
ProtocoloProtocolo
Protocolo
 
Présentation catalogue L&E Cosmétiques 2015
Présentation catalogue L&E Cosmétiques 2015Présentation catalogue L&E Cosmétiques 2015
Présentation catalogue L&E Cosmétiques 2015
 
การออกแบบสิ่งแวดล้อม การเรียนรู้บนเครือข่าย
การออกแบบสิ่งแวดล้อมการเรียนรู้บนเครือข่ายการออกแบบสิ่งแวดล้อมการเรียนรู้บนเครือข่าย
การออกแบบสิ่งแวดล้อม การเรียนรู้บนเครือข่าย
 
ภารกิจที่ 1 ความหมายของการเรียนรู้บนเครือข่าย พัฒนาการ และเทคโนโลยีการเรียนรู...
ภารกิจที่ 1 ความหมายของการเรียนรู้บนเครือข่าย พัฒนาการ และเทคโนโลยีการเรียนรู...ภารกิจที่ 1 ความหมายของการเรียนรู้บนเครือข่าย พัฒนาการ และเทคโนโลยีการเรียนรู...
ภารกิจที่ 1 ความหมายของการเรียนรู้บนเครือข่าย พัฒนาการ และเทคโนโลยีการเรียนรู...
 
Process Storytelling - New York Business Process Professionals Meetup
Process Storytelling - New York Business Process Professionals MeetupProcess Storytelling - New York Business Process Professionals Meetup
Process Storytelling - New York Business Process Professionals Meetup
 
Ch1-Operating System Concept
Ch1-Operating System ConceptCh1-Operating System Concept
Ch1-Operating System Concept
 
Code of conduct for public services
Code of conduct for public servicesCode of conduct for public services
Code of conduct for public services
 
Trabalho Prática de Ensino Maio13
Trabalho Prática de Ensino Maio13Trabalho Prática de Ensino Maio13
Trabalho Prática de Ensino Maio13
 
Existing situation and proposed solutions to improve Cybersecurity in Ukraine
Existing situation and proposed solutions to improve Cybersecurity in UkraineExisting situation and proposed solutions to improve Cybersecurity in Ukraine
Existing situation and proposed solutions to improve Cybersecurity in Ukraine
 
Process Improvement for Operations vs Projects - What's the Difference? (NYBP...
Process Improvement for Operations vs Projects - What's the Difference? (NYBP...Process Improvement for Operations vs Projects - What's the Difference? (NYBP...
Process Improvement for Operations vs Projects - What's the Difference? (NYBP...
 
Informe practicas i de Ingenieria Civil
Informe practicas i de Ingenieria CivilInforme practicas i de Ingenieria Civil
Informe practicas i de Ingenieria Civil
 
Merger and analysis ppt
Merger and analysis pptMerger and analysis ppt
Merger and analysis ppt
 
Você me leva ao deserto ministerio zoe
Você me leva ao deserto ministerio zoeVocê me leva ao deserto ministerio zoe
Você me leva ao deserto ministerio zoe
 
Pagkilala sa sumulat ng Noli Me Tangere
Pagkilala sa sumulat ng Noli Me TangerePagkilala sa sumulat ng Noli Me Tangere
Pagkilala sa sumulat ng Noli Me Tangere
 

Ähnlich wie Go под капотом

DevOps в Agile среде. Как, почему и когда инструменты помогают.
DevOps в Agile среде. Как, почему и когда инструменты помогают.DevOps в Agile среде. Как, почему и когда инструменты помогают.
DevOps в Agile среде. Как, почему и когда инструменты помогают.
Alexander Titov
 
"Девопс - это не только для программистов. Практические примеры из жизни одно...
"Девопс - это не только для программистов. Практические примеры из жизни одно..."Девопс - это не только для программистов. Практические примеры из жизни одно...
"Девопс - это не только для программистов. Практические примеры из жизни одно...
it-people
 
Интуит. Разработка приложений для iOS. Лекция 12. Тестирование, публикация и др.
Интуит. Разработка приложений для iOS. Лекция 12. Тестирование, публикация и др.Интуит. Разработка приложений для iOS. Лекция 12. Тестирование, публикация и др.
Интуит. Разработка приложений для iOS. Лекция 12. Тестирование, публикация и др.
Глеб Тарасов
 
Как делать глобальный проект
Как делать глобальный проектКак делать глобальный проект
Как делать глобальный проект
isdeforum
 
Big switch: жизнь после Microsoft
Big switch: жизнь после MicrosoftBig switch: жизнь после Microsoft
Big switch: жизнь после Microsoft
Alexander Byndyu
 
Видеозвонки и шаринг экрана в мобильном приложении
Видеозвонки и шаринг экрана в мобильном приложенииВидеозвонки и шаринг экрана в мобильном приложении
Видеозвонки и шаринг экрана в мобильном приложении
Voximplant
 
Hl2008 Spy Log Architechture 169
Hl2008 Spy Log Architechture 169Hl2008 Spy Log Architechture 169
Hl2008 Spy Log Architechture 169
Media Gorod
 
Проектирование архитектуры крупных веб-систем
Проектирование архитектуры крупных веб-системПроектирование архитектуры крупных веб-систем
Проектирование архитектуры крупных веб-систем
TKConf
 

Ähnlich wie Go под капотом (20)

DevOps в Agile среде. Как, почему и когда инструменты помогают.
DevOps в Agile среде. Как, почему и когда инструменты помогают.DevOps в Agile среде. Как, почему и когда инструменты помогают.
DevOps в Agile среде. Как, почему и когда инструменты помогают.
 
TК°Conf. Организация разработки Frontend. Виталий Слободин.
TК°Conf. Организация разработки Frontend. Виталий Слободин.TК°Conf. Организация разработки Frontend. Виталий Слободин.
TК°Conf. Организация разработки Frontend. Виталий Слободин.
 
"Девопс - это не только для программистов. Практические примеры из жизни одно...
"Девопс - это не только для программистов. Практические примеры из жизни одно..."Девопс - это не только для программистов. Практические примеры из жизни одно...
"Девопс - это не только для программистов. Практические примеры из жизни одно...
 
Интуит. Разработка приложений для iOS. Лекция 12. Тестирование, публикация и др.
Интуит. Разработка приложений для iOS. Лекция 12. Тестирование, публикация и др.Интуит. Разработка приложений для iOS. Лекция 12. Тестирование, публикация и др.
Интуит. Разработка приложений для iOS. Лекция 12. Тестирование, публикация и др.
 
Как делать глобальный проект
Как делать глобальный проектКак делать глобальный проект
Как делать глобальный проект
 
Микросервисы в .NET Core
Микросервисы в .NET CoreМикросервисы в .NET Core
Микросервисы в .NET Core
 
Big switch: жизнь после Microsoft
Big switch: жизнь после MicrosoftBig switch: жизнь после Microsoft
Big switch: жизнь после Microsoft
 
Видеозвонки и шаринг экрана в мобильном приложении
Видеозвонки и шаринг экрана в мобильном приложенииВидеозвонки и шаринг экрана в мобильном приложении
Видеозвонки и шаринг экрана в мобильном приложении
 
Hl2008 Spy Log Architechture 169
Hl2008 Spy Log Architechture 169Hl2008 Spy Log Architechture 169
Hl2008 Spy Log Architechture 169
 
New SpyLOG architechture (Highload 2008)
New SpyLOG architechture (Highload 2008)New SpyLOG architechture (Highload 2008)
New SpyLOG architechture (Highload 2008)
 
Microsoft , Azure и Drupal
Microsoft , Azure и DrupalMicrosoft , Azure и Drupal
Microsoft , Azure и Drupal
 
игровая логика, проблемы и решения
игровая логика, проблемы и решенияигровая логика, проблемы и решения
игровая логика, проблемы и решения
 
Zabbix: Прошлое, настоящее и будущее (Zabbix: Past, present and the future)
Zabbix: Прошлое, настоящее и будущее (Zabbix: Past, present and the future)Zabbix: Прошлое, настоящее и будущее (Zabbix: Past, present and the future)
Zabbix: Прошлое, настоящее и будущее (Zabbix: Past, present and the future)
 
Фронтенд разработка без боли
Фронтенд разработка без болиФронтенд разработка без боли
Фронтенд разработка без боли
 
Точка кипения: проектирование крупных веб-систем
Точка кипения:  проектирование крупных веб-системТочка кипения:  проектирование крупных веб-систем
Точка кипения: проектирование крупных веб-систем
 
Проектирование архитектуры крупных веб-систем
Проектирование архитектуры крупных веб-системПроектирование архитектуры крупных веб-систем
Проектирование архитектуры крупных веб-систем
 
Локализация - как делать глобальный проект?
Локализация - как делать глобальный проект?Локализация - как делать глобальный проект?
Локализация - как делать глобальный проект?
 
Mobile web apps
Mobile web appsMobile web apps
Mobile web apps
 
Sivko
SivkoSivko
Sivko
 
Xe4 launch мобильная разработка всеволод_леонов
Xe4 launch мобильная разработка всеволод_леоновXe4 launch мобильная разработка всеволод_леонов
Xe4 launch мобильная разработка всеволод_леонов
 

Kürzlich hochgeladen

2023 Q4. The Ransomware report. [RU].pdf
2023 Q4. The Ransomware report. [RU].pdf2023 Q4. The Ransomware report. [RU].pdf
2023 Q4. The Ransomware report. [RU].pdf
Хроники кибер-безопасника
 
Cyber Defense Doctrine Managing the Risk Full Applied Guide to Organizational...
Cyber Defense Doctrine Managing the Risk Full Applied Guide to Organizational...Cyber Defense Doctrine Managing the Risk Full Applied Guide to Organizational...
Cyber Defense Doctrine Managing the Risk Full Applied Guide to Organizational...
Ирония безопасности
 
ИСТОЧНИКИ ИННОВАЦИОННОСТИ КИТАЯ (ПО ВЕРСИИ DGAP) | The Sources of China’s Inn...
ИСТОЧНИКИ ИННОВАЦИОННОСТИ КИТАЯ (ПО ВЕРСИИ DGAP) | The Sources of China’s Inn...ИСТОЧНИКИ ИННОВАЦИОННОСТИ КИТАЯ (ПО ВЕРСИИ DGAP) | The Sources of China’s Inn...
ИСТОЧНИКИ ИННОВАЦИОННОСТИ КИТАЯ (ПО ВЕРСИИ DGAP) | The Sources of China’s Inn...
Ирония безопасности
 
CVE. The Fortra's GoAnywhere MFT [RU].pdf
CVE. The Fortra's GoAnywhere MFT [RU].pdfCVE. The Fortra's GoAnywhere MFT [RU].pdf
CVE. The Fortra's GoAnywhere MFT [RU].pdf
Хроники кибер-безопасника
 
СИСТЕМА ОЦЕНКИ УЯЗВИМОСТЕЙ CVSS 4.0 / CVSS v4.0 [RU].pdf
СИСТЕМА ОЦЕНКИ УЯЗВИМОСТЕЙ CVSS 4.0 / CVSS v4.0 [RU].pdfСИСТЕМА ОЦЕНКИ УЯЗВИМОСТЕЙ CVSS 4.0 / CVSS v4.0 [RU].pdf
СИСТЕМА ОЦЕНКИ УЯЗВИМОСТЕЙ CVSS 4.0 / CVSS v4.0 [RU].pdf
Хроники кибер-безопасника
 
Cyberprint. Dark Pink Apt Group [RU].pdf
Cyberprint. Dark Pink Apt Group [RU].pdfCyberprint. Dark Pink Apt Group [RU].pdf
Cyberprint. Dark Pink Apt Group [RU].pdf
Хроники кибер-безопасника
 

Kürzlich hochgeladen (9)

Malware. DCRAT (DARK CRYSTAL RAT) [RU].pdf
Malware. DCRAT (DARK CRYSTAL RAT) [RU].pdfMalware. DCRAT (DARK CRYSTAL RAT) [RU].pdf
Malware. DCRAT (DARK CRYSTAL RAT) [RU].pdf
 
MS Navigating Incident Response [RU].pdf
MS Navigating Incident Response [RU].pdfMS Navigating Incident Response [RU].pdf
MS Navigating Incident Response [RU].pdf
 
2023 Q4. The Ransomware report. [RU].pdf
2023 Q4. The Ransomware report. [RU].pdf2023 Q4. The Ransomware report. [RU].pdf
2023 Q4. The Ransomware report. [RU].pdf
 
Cyber Defense Doctrine Managing the Risk Full Applied Guide to Organizational...
Cyber Defense Doctrine Managing the Risk Full Applied Guide to Organizational...Cyber Defense Doctrine Managing the Risk Full Applied Guide to Organizational...
Cyber Defense Doctrine Managing the Risk Full Applied Guide to Organizational...
 
ИСТОЧНИКИ ИННОВАЦИОННОСТИ КИТАЯ (ПО ВЕРСИИ DGAP) | The Sources of China’s Inn...
ИСТОЧНИКИ ИННОВАЦИОННОСТИ КИТАЯ (ПО ВЕРСИИ DGAP) | The Sources of China’s Inn...ИСТОЧНИКИ ИННОВАЦИОННОСТИ КИТАЯ (ПО ВЕРСИИ DGAP) | The Sources of China’s Inn...
ИСТОЧНИКИ ИННОВАЦИОННОСТИ КИТАЯ (ПО ВЕРСИИ DGAP) | The Sources of China’s Inn...
 
CVE. The Fortra's GoAnywhere MFT [RU].pdf
CVE. The Fortra's GoAnywhere MFT [RU].pdfCVE. The Fortra's GoAnywhere MFT [RU].pdf
CVE. The Fortra's GoAnywhere MFT [RU].pdf
 
СИСТЕМА ОЦЕНКИ УЯЗВИМОСТЕЙ CVSS 4.0 / CVSS v4.0 [RU].pdf
СИСТЕМА ОЦЕНКИ УЯЗВИМОСТЕЙ CVSS 4.0 / CVSS v4.0 [RU].pdfСИСТЕМА ОЦЕНКИ УЯЗВИМОСТЕЙ CVSS 4.0 / CVSS v4.0 [RU].pdf
СИСТЕМА ОЦЕНКИ УЯЗВИМОСТЕЙ CVSS 4.0 / CVSS v4.0 [RU].pdf
 
Cyberprint. Dark Pink Apt Group [RU].pdf
Cyberprint. Dark Pink Apt Group [RU].pdfCyberprint. Dark Pink Apt Group [RU].pdf
Cyberprint. Dark Pink Apt Group [RU].pdf
 
Ransomware_Q3 2023. The report [RU].pdf
Ransomware_Q3 2023.  The report [RU].pdfRansomware_Q3 2023.  The report [RU].pdf
Ransomware_Q3 2023. The report [RU].pdf
 

Go под капотом

  • 1. Go под капотом … точнее все что вам нужно знать про Go
  • 2. Кто я? Разработчик с опытом работы в различных сферах IT. Начиная с Web и Mobile заканчивая серверными приложениями, распределенными БД и DevOps. Создавал автоматическую систему диспетчеризации заказов такси, делал сайты, коробочные web продукты, поднимал инфраструктуру в AWS (CoreOS stack), настраивал автоматический deployment и обновление. Сейчас в команде Dar Ecosystem. Занимаюсь проектом Dar Play. Docker. Go. NoSQL.
  • 3. Почему Go? • Быстрая разработка • Типо-безопасность • Быстрая компиляция • Эффективное использование “железа” • Многопоточность
  • 5. Результат тура • С подобный синтаксис • Компилируемый в статический бинарный файл • Статическая типизация с неявным указанием типов • Структурная система типов • Горутины, каналы • Сборщик мусора • Нет неявных преобразований • Интерфейсы наше все
  • 7. Компилятор • Создает syntax tree, проверяет его, переписывает всякий сахар, создает объектные файлы (*.o) • Статический бинарник, работает даже без go runtime на любой машине со схожей архитектурой ядра • Если А.go зависит от B.go который зависит от C.go то • Скомпилировать С.go, B.go потом A.go • Чтобы скомпилировать A.go нужен только B.o (в нем уже есть С.o)
  • 9. Сборщик мусора • Сoncurrent, tri-color, mark-sweep collector • Scan, mark, sweep stages • White, grey or black objects • Heap as a connected graph • Mutator, write barrier
  • 10.
  • 11. Scheduler • Goroutine (G), OS thread (M), logical processor unit (P) • Gouroutines multiplexed on GOMAXPROCS system threads
  • 12.
  • 13. Что еще есть? • go fmt - форматирование кода • go doc - авто документация • go get - загрузка зависимостей