Go

Habr.  Подборка статей про GoLand

[2021-12-15] GoLand 2021.3: полная поддержка WSL, запуск gofmt при сохранении файла, Inline Function, удаленная разработка

Habr. Подборка статей по Go

[2023-01-31] Bittorrent с нуля на Go

Логирование в Go на основе уровней при помощи Uber Zap 

Большинство веб-серверов в технологической отрасли используют ведение журнала. Ведение журнала имеет некоторые преимущества, когда речь идет о веб-приложении.

Эффективный Go. Map (Хэш-таблица)

Хэш-таблицы (maps) — это удобная и мощная встроенная структура данных, которая связывает значения одного типа (ключ) со значениями другого типа (элемент или значение). Ключ может быть любого типа, для которого применим оператор сравнения, например целые числа, числа с плавающей запятой и комплексные числа, строки, указатели, интерфейсы (при условии, что динамический тип поддерживает равенство), структуры и массивы. Срезы нельзя использовать в качестве ключей хэш-таблицы, потому что для них нет возвожности сравнения. Как и срезы, хэш-таблицы содержат именно ссылки на базовую структуру данных. Если вы передаете хэш-таблицу функции, которая изменяет содержимое хэш-таблицы, изменения так же будут видны и в вызывающей программе.

Функциональное программирование в Go

Почему вам стоило бы практиковать функциональное программирование с Go? Если коротко то, функциональное программирование делает ваш код более читаемым, более простым для тестирования и менее сложным из-за отсутствия состояний и изменяемых данных. Если вы обнаружите ошибки, вы можете быстро отладить свое приложение, если конечно не нарушаете правила функционального программирования. Когда функции изолированы, вам не нужно иметь дело со скрытыми изменениями состояния, которые влияют на результат.

Практический Go: практические советы по написанию программ на Go, которые легко поддерживать

Практические рекомендации Дэйва Чейни, по написанию кода на Go. Рекомендации затрагивают различные аспекты разработки на Go, от основных руководящих принципов до рекомендаций по обработке ошибок. Объёмный материал для вдумчивого чтения.

7 Простых методов функционального программирования в Go

Вокруг функционального программирования (ФП) много шумихи, и многие крутые ребята занимаются этим, но это не серебряная пуля. Как и другие парадигмы / стили программирования, функциональное программирование также имеет свои плюсы и минусы, и можно предпочесть одну парадигму другой. Если вы разработчик Go и хотите заняться функциональным программированием, не волнуйтесь, вам не нужно изучать языки, ориентированные на функциональное программирование, такие как Haskell или Clojure (или даже Scala или JavaScript, хотя они не являются чисто функциональными языками программирования), поскольку вы владеете Go то этот пост для вас.

Эффективный GO. Имена

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

GO. Принимай интерфейс, возвращай структуру

Одной из первых вещей, которые я усвоил, когда начал работать с Go, было то, что в нем есть так называемые пословицы (proverbs). Это список правил, которые звучат как умные цитаты, которыми вы должны руководствоваться в своем путешествии. Долгое время я не совсем понимал, почему я должен принимать интерфейсы, но возвращать структуры . Я также хотел возвращать интерфейсы, так как это определяло бы, а не то, что это за тип, а то что делает возвращаемый мной тип. За один полный год работы исключительно с Go, я понял как же я ошибался. Этот пост объясняет ход моих мыслей, я надеюсь, что это может спасти некоторых из вас когда-нибудь, прежде чем у вас наступит момент Ага!