Введение в Go

Go lang или просто Go — это язык программирования, разработанный Google. Никто не создает язык программирования просто так: «Эй, мне сегодня скучно, так что давай создадим язык программирования» (как я пишу эту статью). Должна быть какая-то причина для создания языка программирования.

И эта причина — растущие потребности в передовой инфраструктуре. Раньше серверы приложений были менее эффективными по сравнению с сегодняшними. Это связано с тем, что сегодняшняя инфраструктура распределена, а процессоры многоядерные и многопоточные. Нам необходимо в полной мере использовать эти расширенные функции, чтобы сделать наши приложения более эффективными.

Что делает распределенная система и многоядерная архитектура?

Они помогают запущенным приложениям работать параллельно. Итак, предположим, что в приложении есть 3 операции, такие как загрузка файла, загрузка файла и удаление файла. В большинстве современных приложений мы можем выполнять эти 3 операции одновременно. Это возможно благодаря распределенной системе и многоядерному процессору.

Распределенная инфраструктура

Давайте посмотрим, как работает такая распределенная система. Распределенная система — это система, в которой различные логические части этой системы расположены на разных машинах, но при этом действуют как одна машина (сервер). В нашем примере одна машина отвечает за загрузку файлов, одна за загрузку файлов, а другая за редактирование файлов.

Многоядерные процессоры

Давайте посмотрим, как работает многоядерный процессор. Предположим, что мы загружаем 10 файлов за раз. В случае одноядерного процессора эти файлы помещаются в очередь. Один файл загружается за один раз и один за другим. В случае многоядерного процессора каждое ядро ​​выполняет один процесс, поэтому при наличии 10 ядер за время загрузки одного файла может быть загружено 10 файлов.

Именно так современные приложения могут использовать существующую инфраструктуру и архитектуру для достижения высокой производительности.

Параллелизм

Но есть одна проблема, с которой можно столкнуться при использовании распределенной архитектуры. Рассмотрим эту ситуацию. Вы поделились файлом в нашем приложении с другим пользователем с правами на запись. Это может быть проблемой, если этот пользователь попытается удалить файл, когда вы пытаетесь редактировать этот файл. Это может быть неоднозначная ситуация. Идеальная ситуация должна заключаться в том, что приложение должно позволять только одному пользователю одновременно удалять или редактировать файл.

Это может быть достигнуто за счет параллелизма. Не все языки программирования поддерживают параллелизм по умолчанию. Но Go поддерживает параллелизм по умолчанию.

Плюсы Go

  • Время сборки и время выполнения (если вы не знаете разницу между временем сборки и временем выполнения, будет объяснено ниже) программ go быстро почти такой же, как C/C++.
  • Простота — на языке go легко писать программы и запускать их.
  • Go использует меньше ресурсов (памяти и процессора), чем большинство других языков программирования.

Характеристики перехода

  • Go используется в серверной части для написания сервисов, которые взаимодействуют с облачными инфраструктурами, базами данных или любыми другими сервисами.
  • Это компилируемый язык, что означает, что каждая программа Go компилируется, и компилятор создает двоичный файл с .exe. сильное> расширение. Время, необходимое для создания двоичного файла (.env) из данной программы, называется временем сборки.
  • Это независимый от платформы язык. Бинарный файл, скомпилированный в одной ОС, может быть запущен и в другой ОС. Этот двоичный файл обеспечивает выполнение программы. Время, необходимое для запуска двоичного файла программы, называется время выполнения.

Хорошо, это для основных вещей. Давайте углубимся в интересные вещи. Для этого нам понадобятся две вещи. Редактор кода и язык Go на нашей машине.

Установка кода VS

Ссылка для установки VScode — Перейдите по этой ссылке, и вы увидите что-то вроде этого.

Выбирайте в соответствии с вашей операционной системой и устанавливайте. Установка должна быть прямой.

Установка Go

Ссылка для установки Go — перейдите по этой ссылке и выберите операционную систему для установки.

Эта установка также довольно проста.

Чтобы проверить успешную установку, откройте терминал / командную строку, введите go и нажмите Enter. Если вы видите что-то подобное, это означает, что Go установлен успешно.

Привет, мир в GO

  • Создайте новую папку или используйте существующую папку для хранения нашего файла программы hello world. Я называю папку как hello-world
  • Откройте эту папку в VScode.

  • Всякий раз, когда мы запускаем новый проект Go в папке, первое, что нам нужно сделать, — это инициализировать проект в этой папке. Команда для этого go mod init <project name>. Выполните эту команду в терминале / командной строке или во встроенном терминале VScode. Рекомендуется, и хорошее соглашение состоит в том, чтобы иметь одинаковое имя как для папки, так и для проекта.
  • Приведенная выше команда создает файл с именем go.mod. Если вы знакомы с семейством nodeJS, это что-то похожее на файл package.json. Если вы не знакомы с ним, это просто файл, содержащий сведения о проекте, который содержит имя проекта, зависимости и т. д.

  • Теперь создайте файл и назовите его как хотите, но с расширением .go. Я называю это как hello.go
  • В тот момент, когда вы впервые создаете файл с расширением .go в своем VScode, он порекомендует установить некоторые расширения, как на рисунке выше, а также как на рисунке ниже. Просто установите все расширения. Где бы вы ни нашли install all, делайте это. Если install не будет, сделайте это.

  • Теперь мы полностью готовы написать нашу первую программу на Go. Итак, начнем.

Приступаем к коду

Большинство языков программирования имеют начальную точку, с которой начинается выполнение программы. Точно так же программы go имеют отправную точку, которая является основной функцией.

Проще говоря, функция — это изолированный блок кода, выполняющий определенную задачу. Функция не взаимодействует с другими частями программы, если мы не укажем это.

Есть 3 части функции. Они есть:

  1. Заголовок функции
  2. Аргументы функции
  3. Тело функции
  4. Заголовок функции

Он начинается с ключевого слова func in go. А ключевое слово — это конкретное слово, которое зарезервировано для определенной цели, и мы не можем использовать его для каких-либо других целей. Заголовок функции также содержит имя функции, с которой мы хотим однозначно идентифицировать и вызывать ее. Синтаксис будет похож на func <function name>

2. Аргументы функции

Аргументы функции заключены в пару скобок (). Мы используем аргументы для передачи данных в функцию. Помните из верхней части, где мы обсуждали, что функция изолирована от других частей программы. Итак, мы используем эти аргументы функции в качестве среды для передачи данных для выполнения требуемой задачи. У одной функции может быть любое количество аргументов в зависимости от задачи и требований этой задачи. Допустим, у нас есть функция, которая выполняет сложение двух чисел, которые пользователь вводит во время выполнения. Поскольку они появляются во время выполнения, мы не можем жестко запрограммировать их внутри функции. Единственный способ - получить ввод от пользователя во время работы приложения и передать эти вводы функции, которая выполняет сложение. И мы передаем эти входные данные этой функции, используя ее аргументы. Итак, в этом случае наша функция сложения требует двух аргументов. Синтаксис аргументов выглядит так: (<arg 1>, <arg 2>, ...)

3. Тело функции

Это место, где мы пишем реальную логику задачи, для которой она предназначена. В приведенном выше примере сложения мы хотим, чтобы наша функция складывала два заданных числа. Следовательно, основная логика функции находится внутри тела. Тело функции заключено в фигурные скобки { }.

Давайте объединим все и напишем синтаксис целой функции.

func <function name> (<arg1>, <arg2>, ...) {
    // function body goes here
}

Итак, возвращаясь к исходной точке темы программы. Отправной точкой программы go является специальная функция с именем main. И выполнение программы начинается здесь, независимо от того, сколько строк кода или сколько функций в программе.

Итак, основная функция в программе hello world будет выглядеть так:

package main
import “fmt”
func main() {
 fmt.Print(“Hello world”)
}

Эй, вот две строки, о которых мы не говорили.

Да, знаю.

Строка 1 — это обязательная строка для каждой программы, которая изображает пакет, к которому принадлежит текущая программа. Имя может быть любым. Я только что дал main. Вы можете дать все, что хотите. Имя любого пакета здесь не имеет значения, но когда мы работаем над большими проектами, имена пакетов имеют значение. Просто имейте это в виду.

Строка 2 — говорит об импорте пакета с именем fmt. Потому что мы используем функцию под названием Print для вывода текста на выходной терминал, и эта функция Print принадлежит пакету fmt, подобно тому, как наша основная функция принадлежит основному пакету. Вот почему при использовании функции мы используем fmt., чтобы указать, что она принадлежит этому пакету.

Итак, просто дайте все, что вы хотите напечатать, внутри этой функции Print, обернутой в " ".

После написания программы сохраните ее.

Как мы уже говорили, Go — это компилируемый язык, а это значит, что мы должны скомпилировать его, получив исполняемый файл, а затем запустить его. Мы можем это сделать.

Но мы также можем просто запустить его и посмотреть результат с помощью команды go run <file name>. В нашем случае это go run main.go.

Если вы запустили тот же код, что и выше, вы должны получить такой вывод в своем терминале.

Заключение

Это все для этого. Скоро появится больше информации о Go lang, и подписывайтесь на меня, чтобы увидеть их. Не забудьте поставить лайк и поделиться, если вам было так хорошо.

Также ресурс, на котором я учился: Мир технологий с Наной видео — видео с Мира технологий с Наной.

Подключаемся: Twitter LinkedIn Showcase