100 ошибок Go и как их избежать
Қосымшада ыңғайлырақҚосымшаны жүктеуге арналған QRRuStore · Samsung Galaxy Store
Huawei AppGallery · Xiaomi GetApps

автордың кітабынан сөз тіркестері  100 ошибок Go и как их избежать

Алексадр Я.
Алексадр Я.дәйексөз келтірді2 жыл бұрын
Не программируйте интерфейсы, открывайте их.
1 Ұнайды
Комментарий жазу
Даня
Данядәйексөз келтірді14 сағат бұрын
Рис. 2.7. Есть зависимость пакета store от пакета client В пакете store мы определяем структуру InMemoryStore, реализующую интерфейс Store. Мы также создаем функцию NewInMemoryStore для возврата интерфейса Store. При таком дизайне есть зависимость пакета реализации от пакета потребителя, и это может показаться странным. Например, пакет client больше не может вызывать функцию NewInMemoryStore, в противном случае возникла бы циклическая зависимость. Возможным решением может быть вызов этой функции из другого пакета и внедрение реализации Store в client. Однако обязанность сделать это означает, что такой дизайн должен быть оспорен.
Комментарий жазу
Даня
Данядәйексөз келтірді1 күн бұрын
Интерфейсы полезны для создания абстракций. И главное предостережение при знакомстве программиста с абстракциями — это помнить, что абстракции нужно открывать, а не создавать. Это означает, что мы не должны начинать создавать абстракции в коде, если для этого нет веской причины. Нужно не конструировать интерфейсы, а ждать возникновения конкретной потребности в них. Иными словами, создавайте интерфейс только тогда, когда он действительно нужен, а не тогда, когда возникает лишь ощущение, что он может понадобиться.
Комментарий жазу
Даня
Данядәйексөз келтірді3 күн бұрын
Мы можем определить несколько функций инициализации init для каждого пакета. В таком случае последовательность выполнения функции инициализации внутри пакета задается алфавитным порядком исходных файлов
Комментарий жазу
Даня
Данядәйексөз келтірді3 күн бұрын
Рис. 2.2. Сначала выполняется функция инициализации init из пакета redis, затем функция инициа
Комментарий жазу
Даня
Данядәйексөз келтірді3 күн бұрын
инициализации. Вот пример инициализации пакета main: package main import "fmt" var a = func() int { fmt.Println("var") Исполняется в первую очередь return 0 }() func init() { fmt.Println("init") Исполняется во вторую очередь } func main() { fmt.Println("main") Исполняется в последнюю очередь } Исполнение кода этого примера выведет следующее: var init main
Комментарий жазу
Софья Мельник
Софья Мельникдәйексөз келтірді1 апта бұрын
Итоги • Go — это современный язык программирования, который позволяет повысить производительность разработчиков, что сегодня крайне важно для большинства компаний. • Go прост в изучении, но нелегок в освоении. Поэтому важно углубить свои знания, чтобы использовать его наиболее эффективно. • Обучение на разборе ошибок и на конкретных примерах — это мощный способ овладеть языком. Книга на примерах разбора 100 распространенных ошибок ускорит путь к профессиональному мастерству
Комментарий жазу
Софья Мельник
Софья Мельникдәйексөз келтірді1 апта бұрын
библиотеки для создания эффективных конкурентных приложений. Наблюдение за тем, насколько важна конкурентность в наши дни, также показывает, почему Go сейчас самый подходящий язык и будет оставаться им в обозримом будущем
Комментарий жазу
Софья Мельник
Софья Мельникдәйексөз келтірді1 апта бұрын
Оценка качества языка программирования на основании количества функций в нем, вероятно, некорректна. По крайней мере для Go эта метрика не главная. При оценке адекватности использования языка в масштабе какой-то организации используют несколько важных характеристик. К ним относятся: • Стабильность. Несмотря на то что в Go вносятся частые изменения (направленные на улучшение самого языка и устранение уязвимостей с точки зрения безопасности), он остается достаточно стабильным языком. Некоторые считают это качество одной из лучших особенностей языка. • Выразительность. Мы можем определить выразительность языка по тому, насколько написание и чтение кода отвечает представлениям о естественности и интуитивной понятности. Уменьшенное количество ключевых слов и ограниченные способы решения общих проблем делают Go выразительным языком для больших кодовых баз. • Компиляция. Что может быть более раздражающим для разработчиков, чем долгое ожидание сборки для тестирования приложения? Стремление к быстрой компиляции всегда было сознательной целью разработчиков языка. А это основа высокой производительности. • Безопасность. Go — надежный язык со статической типизацией. Следовательно, у него есть строгие правила времени компиляции, которые в большинстве случаев обеспечивают безопасность типов
Комментарий жазу
Fwarcis
Fwarcisдәйексөз келтірді1 апта бұрын
Вот двоичное представление максимального значения int32 (math.MaxInt32): 01111111111111111111111111111111
Комментарий жазу