Статья Введение в язык программирования Golang

Философия языка. План на данный курс.

me_gopher.png


Пролог
Добравшись до работы и заварив кофеек, ваш покорный слуга начинает повествовать о том, что такое GOlang. На самом деле, вступление в курс будет не самым интересным, так как практическая часть будет отсутствовать. :(
Ранее я уже давал приблизительный список того, что планирую рассказать от себя. (жмяк) Надеюсь, Вам всем будет интересно и даже опытные разработчики будут хотя бы улыбаться при чтении данных постов. Итак, я думаю, что после такого вступления, есть смысл начать вещать! 👻👻👻


Введение
Go - компилируемый многопоточный язык программирования, который появился на просторах интернета в ноябре 2009 года. Создавался он внутри компании Google. Изначально go создавался на замену таким языкам программирования, как С++ и С. Но мы все прекрасно понимаем, что такие языки не сместить. Роб Пайк, один из разработчиков языка, говорит:
Целью Go не является проведение исследований в области дизайна языков программирования; она заключается в улучшении рабочей среды его разработчиков и их коллег. Go больше нацелен на разработку программ, нежели на исследования в области языков программирования. Или, другими словами, Go был спроектирован так, чтобы служить в первую очередь целям разработки.
Чем же он, собственно, завоевал своих новых фанатов:
  • Строгая типизация​
  • Полноценная поддержка указателей (для любителей следить за памятью, ага, да)​
  • Автоматический сборщик мусора (чтобы облегчить жизнь любителям следить за памятью)​
  • Динамические массивы, слайсы, мапы ( хеш-карты/таблицы)​
  • Goroutines
  • Обработчики ошибок (об этом я расскажу позже)

Строгая типизация - позволяет понять, что именно делает программа и позволяет избежать ряд ошибок
Полноценная поддержка указателей - удобное взаимодействие с памятью
Автоматический сборщик мусора - не надо активно следить за памятью, сборщик все сделает сам
Динамические массивы - немного удобств
Goroutines - вот тут очень долго рассказывать все плюшки. Поэтому скажу просто - ФАНТАСТИЧЕСКИЕ ПОТОКИ
Обработчики ошибок - не следим за ошибками - дебажим код очень долго :D

Философия языка
Авторы стремились максимально упростить язык и убрать из него сложные и "ненужные" конструкции. ИМХО, но им это удалось. Go - очень сильно похож на С, поэтому все пишут на нем в функциональном стиле, несмотря на то, что некоторые вещи из ООП присутсвуют в нем.
Основная задумка создания Go заключалась в том, чтобы решать высоконагрузочые задачи. Собственно поэтому Go ушел в облачную сферу.
Много можно говорить и философствовать на эту тему, но мне кажется, что данный язык настолько универсальный, что сводить его в определенные рамки не стоит. Основная сила и мощь заключается в его потоках. И конечно же, разработчики на Go всегда приветсвуют микросервисную архитектуру вместо монолитного ядра. В чем плюсы и минусы такой архитектуры мы с вами разберем позже.

План на данный курс
  • Пройдемся по базовым элементам языка (типы, операторы и т.д.)
  • Познакомимся со встроенными утилитами
  • Разберем архитектуры приложений
  • Разберемся со взаимодействием с памятью
  • Углубленно изучим goroutines и race condition
  • Попробуем сами создать сервер с устойчивостью к нагрузкам
  • Познакомимся с тестами и запустим их на наш сервер
P.S. Я всегда готов принимать все ваши замечания в свой адрес. Я не делаю курс, который даст вам знания, на которые можно опираться на совещаниях, но познакомить вас с ЯП, я все таки решил. Будут рассмотрены небольшие кейсы, которые я сам люблю задавать людям на собеседованиях, возможно это вам и пригодится).
P.P.S. Я очень надеюсь, что вам понравится мой цикл статей на тему Go. И надеюсь, что кто то решится уйти на него, как на основной язык.
 

Alekskojem

New member
12.07.2019
2
0
BIT
0
Двигай пальцами, пиши дальше. Я хочу читать продолжение. Спасибо.
 

Pablo Garcia

Green Team
14.04.2018
20
8
BIT
0
Здравы будьте. Почитать не забудьте:

Алан А. А. Донован, Брайан У. Керниган. Язык программирования Go
Докси К. Введение в программирование на Go
Фарина М, Батчер М. Go на практике
подскажите, а если у меня нету навыков програмирование, стоит начанать изучени с языка ГО или стои начать с чего тодругого и потом уже переходить а го?
 

SearcherSlava

Red Team
10.06.2017
943
1 261
BIT
206
подскажите, а если у меня нету навыков програмирование, стоит начанать изучени с языка ГО или стои начать с чего тодругого и потом уже переходить а го?

Здрав будь! Стоит начать с того, чтобы решить, что ты хочешь выразить на каком-то языке, какой продукт получить в результате его освоения, что по душе самому себе, и, исходя из этого, определиться с ЯП. Не совсем прогер, однако, предполагаю, что сначала программа(ы) будут маленькими и смешными, а со временем, с приходом понимания и развитием навыков, - большими и серьёзными.
 
Последнее редактирование:
  • Нравится
Реакции: G0p43R и Pablo Garcia
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!