machinelearningmastery.ru

Машинное обучение, нейронные сети, искусственный интеллект
Header decor

Home

Руководство по Javascript для Go

Дата публикации Oct 3, 2019

Облегчите свой путь от динамического языка до статически типизированного

Путешествие по Javascript для Go

Javascript, являющийся функциональным и динамически типизированным языком, предоставляет очень широкое пространство для множества шаблонов проектирования, что делает его очень мощным языком для быстрой разработки, а широкая неослабная поддержка сообщества разработчиков сделала его более мощным. Прототипическое наследование создает основу для противостояния строго типизированному и ориентированному на ООП языку, такому как Java и C ++, но, глядя в более широком масштабе, его динамическое поведение уменьшает возможности обнаружения ошибок и надежность кода разработчика. Typescript входит в картину, чтобы спасти, но также увеличивает накладные расходы на составление типов для высокоуровневых и компонуемых функций, которые могут не соответствовать требуемым стандартам кода.

Go Первоначальный выпуск был в 2009 году похож на год выпуска Node js (среда Javascript). Go, кажется, заполняет все эти пробелы и обеспечивает пространство для расширяемости в крупномасштабных приложениях. При поддержке Google его библиотека довольно богата и полезна для разработчика, поскольку она не полагается ни на какую стороннюю библиотеку.

В конце концов, Райан Дхал, который является первоначальным автором Node js, дал интервью вподкасти поделился своим взглядом на го.

Я думаю, что Node - не самая лучшая система для создания огромной серверной сети. Я бы использовал Go для этого. И, честно говоря, вот почему я покинул Node. Это было осознание того, что: на самом деле, это не самая лучшая серверная система в мире. - Райан Дхал

Это дает вам еще одну причину начать с Go. Go - это язык для повышения производительности и максимального использования многоядерных систем. Для приложения, которое имеет Monorepo и большую кодовую базу, Go кажется идеально подходящим.


Принцип дизайна

Go был разработан из-за разочарования и для обеспечения эффективной компиляции, эффективного выполнения и простоты программирования для разработчиков. Go решил проблемы, которые затрудняют крупномасштабную разработку программного обеспечения. Эти проблемы включают в себя:

  • Медленные сборки
  • Неконтролируемые зависимости
  • Каждый программист использует разные подмножества языка
  • Плохое понимание программы (код плохо читается, плохо документирован и т. Д.)
  • Дублирование усилий
  • Стоимость обновлений
  • Версия перекошена
  • Сложность написания автоматических инструментов
  • Кросс-языковые сборки

Три основных принципа проектирования Go, которые определяли его разработку:

Ортогональность

Ортогональность - это модное слово, оно означает, что фигуры не зависят друг от друга. Изменение одного типа, пакета или программы не повлияет на другую часть. Если вы измените один фрагмент кода, и вы не напутаете, это сила ортогональности. Как только вы начнете вникать в него, вы полюбите и предложите больше ортогонального кода.

Простота

Простота является вторым столпом в философии дизайна Go. Все вращается вокруг интерфейсов, типов и функций. Это дает разработчику возможность создавать сложные системы с простым и читаемым кодом.

читабельность

Читаемость добавлена, уменьшая беспорядок и сложность. Как оператор присваиваниязнак равнодостаточно определить и объявить тип любой переменной. Здесь нет иерархии типов. Типы простоявляютсяим не нужно объявлять о своих отношениях.


Синтаксис Проход

Синтаксис - это продукт для конечного пользователя для любого языка программирования. Это определяет удобочитаемость и четкость любого языка. Go имеет чистый синтаксис по сравнению с другими языками, и его грамматика составляет всего около 25 ключевых слов, его синтаксис объявления похож на Pascal, чем C. Объявление Go читается слева направо, тогда как C читается вспираль!

переменная

Переменная в Go почти похожа на Javascript. Вы можете объявить переменную, используя var, const и оператор объявления / инициализации, то есть: =. Просто у нас нет ключевого слова let для объявления какой-либо переменной в go.

var a int = 10 // Declare a variable "a" of type int
fmt.Prinln(a) // Prints aconst b = 20 // Declare a constant variable "b" and assigned 20
fmt.Println(b)
b = 30 // Error: cannot assign to bc := "this is a string" // Shorthand declaration and assignment
fmt.Println(c) // Prints this is a string

Массивы

Массив - это коллекция элементов. В Go массив может содержать элементы общего типа, тогда как в Javascript он может быть комбинацией разных типов. Массивы в Go имеют определенную длину и емкость, они не растут динамически. Ломтики используются как динамический массив в Go, где элемент может быть добавлен и удален.

// String array of 5 elements
a := [5]string{"a","b","c","d"}
fmt.Printf("Length of Array=%d\n Capacity of Array=%d",len(a),cap(a)) // Prints Length Of Array= 5 Capacity of Array= 5
fmt.Printf("%#v",a) //Prints [5]string{"a","b","c","d"}// String slice
b := []string{"a","b"}
fmt.Printf(append(b,"c")) // Appends "c" in slice
fmt.Printf("%#v",b)c := make([]string, 2, 5)
fmt.Printf("C Length=%d Capacity=%d",len(c),cap(c))

функции

Функции похожи на JavaScript в Go. Каждый параметр функции должен иметь свой тип, а также тип значения, которое будет возвращено функцией. Функция может возвращать несколько значений, таких как ошибка и результаты.Любая функция, которая начинается с символа верхнего регистра, экспортируется из пакета и может быть доступна в другом пакете,

func greet() string{
return "Hello World"
}
fmt.Println(greet()) // Prints Hello worldfunc b() (int,int, int){
return 1,2,3
}
fmt.Println(b()) //Prints 1 2 3

Объекты / Структуры

JSON в JavaScript напоминаетСтруктурына ходу. Он хранит группу значений в виде атрибутов, которые могут быть любого типа. Это шаблон, содержащий имя поля и тип поля

type Person struct {
name string
email string
phoneNo int
age int
}alex := Person{
name: "Alex",
email: "Alex@gmail.com",
phoneNo: "23642900",
age: 24
}

Go рутины - асинхронный путь

Асинхронное выполнение кода в Javascript помогает запускать несколько потоков, блокирующих задачи в одном потоке, и использовать емкость потока. Мы можем использоватьасинхронное ожиданиедля написания красивого куска кода, который требует некоторой операции ввода-вывода. Go рутина - это легкая нить исполнения. Любая часть кода может быть запущена как рутина с помощьюидтиКлючевое слово в начале вызова функции. Процедуры Go используют несколько ядер системы для выполнения кода. Функция, вызываемая с ключевым словом go, запускается различными потоками и не останавливает последовательный поток кода.

Пройти рутинный пример

совпадение

Go предоставляет широкий спектр параллельного программирования для работы с процедурами go. Некоторые сложные темы, чтобы освежить параллельное программирование в go:

  • каналы
  • Буферизация каналов
  • Группа ожидания
  • Рабочий пул
  • атомное

Вы можете легко начать с глубокого погружения в язык программирования Go, клонируя этомерзавец, Он содержит примеры разных тем в Go. Удачи в вашем новом путешествии и оставаться в курсе!

Оригинальная статья

Footer decor

© machinelearningmastery.ru | Ссылки на оригиналы и авторов сохранены. | map