فهرست منبع

Загрузить файлы 'Лекции/Go'

u21-25rofeenko 3 ماه پیش
والد
کامیت
9f0d3900b3
2فایلهای تغییر یافته به همراه90 افزوده شده و 0 حذف شده
  1. 76 0
      Лекции/Go/Go(golang).md
  2. 14 0
      Лекции/Go/Go_вопросы.txt

+ 76 - 0
Лекции/Go/Go(golang).md

@@ -0,0 +1,76 @@
+
+# Язык программирования Go
+
+## Введение
+Go (Golang) — это язык программирования с открытым исходным кодом, разработанный компанией Google. Он был создан, чтобы сочетать простоту и удобство написания кода с высокой производительностью и масштабируемостью. Go особенно подходит для разработки современных распределённых систем.
+
+## История
+Go был представлен в 2009 году, разработчиками стали:
+- Роберт Грисмер,
+- Роб Пайк,
+- Кен Томпсон.
+
+Разработка началась в 2007 году, а официальная версия была выпущена в 2012 году. Основная цель Go заключалась в том, чтобы создать язык, который сочетал бы производительность C++ с простотой и удобством скриптовых языков. Go стал ответом на растущие сложности разработки масштабируемых систем, характерные для крупных проектов Google.
+
+## Особенности Go
+1. **Простота синтаксиса**:
+   - Лаконичность кода.
+   - Удобство для начинающих.
+   - Минимальный набор ключевых слов, что снижает порог входа.
+
+3. **Параллелизм**:
+   - Использование горутин для выполнения задач одновременно. Горутин — это легковесные потоки, которые создаются и выполняются очень быстро.
+   - Простая работа с каналами для обмена данными между горутинами. Это обеспечивает безопасность и синхронизацию без явной блокировки.
+
+4. **Встроенный garbage collector**:
+   - Упрощённое управление памятью благодаря автоматической очистке ненужных объектов.
+
+5. **Кроссплатформенность**:
+   - Поддержка Windows, macOS, Linux.
+   - Компиляция исполняемых файлов для различных операционных систем из одной кодовой базы.
+
+6. **Модульность и масштабируемость**:
+   - Встроенная поддержка модулей (с Go 1.11).
+   - Простота интеграции и работы с внешними библиотеками через `go mod`.
+
+## Применение
+Go используется в следующих областях:
+- **Веб-разработка**: создание серверов и API (например, в проектах Docker и Kubernetes).
+- **Сетевые приложения**: высоконагруженные системы, работающие в реальном времени.
+- **Обработка данных**: системы реального времени и распределённые вычисления.
+- **Инфраструктурные проекты**: утилиты, связанные с облачными технологиями, оркестрацией контейнеров.
+
+Популярные проекты, написанные на Go:
+- **Docker** — контейнеризация приложений.
+- **Kubernetes** — управление контейнерами.
+- **Etcd** — распределённое хранилище ключ-значение.
+- **Terraform** — инструмент для управления инфраструктурой как кодом.
+
+## Пример кода на Go
+Простейший пример программы "Hello, World!":
+```go
+package main
+
+import "fmt"
+
+func main() {
+    fmt.Println("Hello, World!")
+}
+```
+
+## Преимущества и недостатки
+### Преимущества:
+- Код на Go легко читать и писать, что снижает порог входа для новых разработчиков.
+- Быстрая компиляция и исполнение программ.
+- Go поддерживается Google и активно используется в крупных компаниях (например, Docker).
+-   Обширная документация и множество открытых библиотек.
+
+### Недостатки:
+- Ограниченное количество библиотек по сравнению с Java или Python.
+- Go не поддерживает классы и наследование в привычном для ООП смысле. Вместо этого используется композиция и интерфейсы. Для некоторых разработчиков это может быть непривычно и неудобно.
+- Go больше подходит для низкоуровневого программирования (серверы, микросервисы). Написание высокоуровневой бизнес-логики может быть сложнее и менее выразительно, чем в языках вроде Python
+
+## Заключение
+Go — это мощный инструмент для разработки производительных и масштабируемых приложений. Благодаря своей простоте и современному подходу, он продолжает завоёвывать популярность среди разработчиков по всему миру. Его использование в проектах, таких как Docker и Kubernetes, доказывает его актуальность и эффективность. Go идеально подходит для создания веб-сервисов, сетевых приложений и работы с облачными инфраструктурами, делая его универсальным выбором для разработчиков.
+
+

+ 14 - 0
Лекции/Go/Go_вопросы.txt

@@ -0,0 +1,14 @@
+Зачем был создан язык Go?
+Основная цель Go заключалась в том, чтобы создать простой и удобный язык, с производительностю C++.
+
+Кто разработал язык Go?
+Компания google.
+
+Для чего используется Go и какие известные проекты созданы на нем?
+Для веб разработки, распределенных вычислений. Известные проекты: Docker, Kubernetes.
+
+Какие преимущества у языка Go?
+Простота и читаемость кода, быстрая компиляция и исполнение программ, поддержка Google и активное использование в крупных компаниях.
+
+Какие недостатки у языка Go?
+Ограниченное количество библиотек по сравнению с Java или Python, отсутствие классов и привычного наследования для ООП.