🤔Очередной гайд про использование интерфейсов в Go? А вот и нет!
☑️Цель этого руководства — углубиться в практику и объяснить все доступным языком. Автор создает простой интерфейс для взаимодействия с базой данных и пишет несколько тестов.
🔗 Читать
☑️Цель этого руководства — углубиться в практику и объяснить все доступным языком. Автор создает простой интерфейс для взаимодействия с базой данных и пишет несколько тестов.
🔗 Читать
Dumpster Coding
Using Interfaces in Go
A practical example
👍10🥱2
Подборка лучших статей «Библиотеки программиста» за сентябрь: сохраняй в заметки, чтобы не пропустить #самыйсок
📕 ТОП-9 книг по языку программирования Go в 2023 году: от новичка до профессионала
🎓💼 ТОП-9 не самых очевидных компаний для стажировки в ИТ
🦸⚡ 9 способов настройки градиента цели для поддержания мотивации
⚒️ ТОП-27 плагинов для Visual Studio Code в 2023
🔎💼🗺️ Как программисту искать (и найти) работу за границей в 2023 году
🔝 Приоритизация задач по методу MoSCoW: как за 5 минут научиться грамотно расставлять приоритеты
📊 Как я входил в IT? Результаты опроса «Библиотеки программиста»
📕 ТОП-9 книг по языку программирования Go в 2023 году: от новичка до профессионала
🎓💼 ТОП-9 не самых очевидных компаний для стажировки в ИТ
🦸⚡ 9 способов настройки градиента цели для поддержания мотивации
⚒️ ТОП-27 плагинов для Visual Studio Code в 2023
🔎💼🗺️ Как программисту искать (и найти) работу за границей в 2023 году
🔝 Приоритизация задач по методу MoSCoW: как за 5 минут научиться грамотно расставлять приоритеты
📊 Как я входил в IT? Результаты опроса «Библиотеки программиста»
🔥6
📊JSON Benchmarks — репозиторий, в котором представлены бенчмарки различных реализаций Go JSON (в скобках — количество импортов).
• JSONv1 — encoding/json (1.3M)
• JSONv2 — github.com/go-json-experiment/json (47)
• JSONIterator — github.com/json-iterator/go (17k)
• SegmentJSON — github.com/segmentio/encoding/json (347)
• GoJSON — github.com/goccy/go-json (2k)
• SonicJSON — github.com/bytedance/sonic (517)
🔗 GitHub
• JSONv1 — encoding/json (1.3M)
• JSONv2 — github.com/go-json-experiment/json (47)
• JSONIterator — github.com/json-iterator/go (17k)
• SegmentJSON — github.com/segmentio/encoding/json (347)
• GoJSON — github.com/goccy/go-json (2k)
• SonicJSON — github.com/bytedance/sonic (517)
🔗 GitHub
🔥11
🤷♂️Может стоит попробовать использовать простой календарь?
Валерий Жила в недавнем треде подробно написал про него. Говорит, что это очень простой и действенный метод повышения продуктивности и контроля своего ментального здоровья.
📌Что нужно делать?
👉 Берём свой календарь, заполняем какими-то рамками — например, время отхода ко сну и подъема. Стараемся планировать крупные дела наперёд, а по ходу дня всякую мелочь. Не слишком подробно (блоки от 30 минут с буферами), честно и быстро.
📌Что это даёт?
👉 Помогает концентрироваться на одном деле за раз. Помогает принимать оперативные решения и улучшать work-life balance. Помогает снизить тревожность и разгрузить память — великолепный «второй мозг» для планирования.
❗️Важно
Calendar Blocking подойдёт далеко не всем. Если вы творец, живущий спонтанной ловлей момента на кончиках пальцев, или вы просто любите спонтанные встречи с друзьями скорее всего, метод не зайдёт.
О том, как это работает на практике, как и с помощью каких инструментов всё это сделать, читайте в его треде: в соцсети X или в приложении Threadreader, если бывший Твиттер у вас не открывается.
#холивар
Please open Telegram to view this post
VIEW IN TELEGRAM
🥱5👍4
⚡️Помогите «Библиотеке программиста» начать публиковать сторис
Каналы могут публиковать сторис в телеграм — правда, для этого им нужно набрать достаточно голосов пользователей. А голосовать могут только те, у кого есть премиум.
Что мы будем публиковать в сторис?
🧠Логические задачки — чтобы тренировать мозги
📰Только важные новости — оперативно
👨🏫Истории компаний, инструментов и софта по особым поводам (например, историю Linux в честь его дня создания)
❗Анонсы наших вебинаров и самых интересных статей
Если вы хотите увидеть наши сторисы в «Библиотеке программиста», вот что нужно сделать:
1️⃣ обновить телеграм на телефоне
2️⃣ перейти по ссылке ➡️ https://t.me/proglibrary?boost
3️⃣ нажать кнопку «голосовать»
Каналы могут публиковать сторис в телеграм — правда, для этого им нужно набрать достаточно голосов пользователей. А голосовать могут только те, у кого есть премиум.
Что мы будем публиковать в сторис?
🧠Логические задачки — чтобы тренировать мозги
📰Только важные новости — оперативно
👨🏫Истории компаний, инструментов и софта по особым поводам (например, историю Linux в честь его дня создания)
❗Анонсы наших вебинаров и самых интересных статей
Если вы хотите увидеть наши сторисы в «Библиотеке программиста», вот что нужно сделать:
1️⃣ обновить телеграм на телефоне
2️⃣ перейти по ссылке ➡️ https://t.me/proglibrary?boost
3️⃣ нажать кнопку «голосовать»
🥱23🎉2🌚2🙏1
👍15
Forwarded from Библиотека Go для собеса | вопросы с собеседований
💬Go — язык программирования, который отлично подходит для разработки облачных приложений. Что облачные технологии и облачные приложения из себя представляют теоретически?
📌Так звучат определения по мнению Cloud Native Computing Foundation:
• Облачные технологии позволяют создавать и запускать масштабируемые приложения в современных динамических окружениях — общедоступных, частных и гибридных облаках.
• Облачные технологии делают слабосвязанные системы устойчивыми, управляемыми и наблюдаемыми. В сочетании с надежной автоматизацией они позволяют разработчикам часто и предсказуемо вносить важные изменения с минимальными усилиями.
📝Исходя из этого, облачные приложения — больше, чем просто приложения, которые работают в облаке. Они также должны отвечать некоторым требованиям/атрибутам:
👉Масштабируемость — способность показывать ожидаемое поведение в условиях значительных колебаний спроса вверх и вниз.
👉Слабая связанность — свойство системы и стратегия проектирования, согласно которой компоненты системы знают лишь самый минимум о любых других компонентах.
👉Устойчивость — способность системы восстанавливаться после ошибок и сбоев.
👉Управляемость — простота (или ее отсутствие), с которой можно изменить поведение системы для обеспечения безопасности, бесперебойной работы и соответствия меняющимся требованиям.
👉Наблюдаемость — способность определения внутреннего состояния системы по наблюдаемым результатам.
📌Так звучат определения по мнению Cloud Native Computing Foundation:
• Облачные технологии позволяют создавать и запускать масштабируемые приложения в современных динамических окружениях — общедоступных, частных и гибридных облаках.
• Облачные технологии делают слабосвязанные системы устойчивыми, управляемыми и наблюдаемыми. В сочетании с надежной автоматизацией они позволяют разработчикам часто и предсказуемо вносить важные изменения с минимальными усилиями.
📝Исходя из этого, облачные приложения — больше, чем просто приложения, которые работают в облаке. Они также должны отвечать некоторым требованиям/атрибутам:
👉Масштабируемость — способность показывать ожидаемое поведение в условиях значительных колебаний спроса вверх и вниз.
👉Слабая связанность — свойство системы и стратегия проектирования, согласно которой компоненты системы знают лишь самый минимум о любых других компонентах.
👉Устойчивость — способность системы восстанавливаться после ошибок и сбоев.
👉Управляемость — простота (или ее отсутствие), с которой можно изменить поведение системы для обеспечения безопасности, бесперебойной работы и соответствия меняющимся требованиям.
👉Наблюдаемость — способность определения внутреннего состояния системы по наблюдаемым результатам.
👍10❤1
🧰 Константин Соколов и Сергей Мачульскис, бэкенд-разработки в Positive Technologies, делятся опытом работы с пакетом context в Go
На их взгляд, он идеально выражает философию Go: образцовый интерфейс, постоянное развитие пакета и использование самых распространенных приемов Go.
🔗 Читать
На их взгляд, он идеально выражает философию Go: образцовый интерфейс, постоянное развитие пакета и использование самых распространенных приемов Go.
🔗 Читать
🔥16👍5
Forwarded from Библиотека программиста | программирование, кодинг, разработка
💪👨💻 6 сервисов для подготовки к техническим собеседованиям
Мы не понаслышке знаем, какие глупые вопросы иногда задают на собеседованиях — этими историями с нами поделились вы. А теперь рассказываем, где готовиться к нормальным техническим собеседованиям, на которых вас не попросят заполнить бегемотами комнату. Подборка сервисов ждет вас в нашей статье👇
🔗Читать статью
🔗Зеркало
Мы не понаслышке знаем, какие глупые вопросы иногда задают на собеседованиях — этими историями с нами поделились вы. А теперь рассказываем, где готовиться к нормальным техническим собеседованиям, на которых вас не попросят заполнить бегемотами комнату. Подборка сервисов ждет вас в нашей статье👇
🔗Читать статью
🔗Зеркало
👍9🔥1
С какого языка программирования, по вашему мнению, проще всего перейти на Go? Если хотите, можете выбрать несколько вариантов.
Anonymous Poll
24%
С Go лучше начать свой путь в разработку ПО
22%
Python
13%
PHP
7%
JavaScript
10%
C#
2%
Ruby
32%
C
31%
C++
13%
Java
5%
Другой ЯП (напишу в комментарии)
👍5
🔐Выпуск включают исправления безопасности для cmd/go и директивы "//line" (CVE-2023-39323).
🔈Подробнее
Please open Telegram to view this post
VIEW IN TELEGRAM
👍11
📌Anthony De Meulemeester:
#матчасть
Please open Telegram to view this post
VIEW IN TELEGRAM
👍20🔥2
Forwarded from Библиотека Go для собеса | вопросы с собеседований
💬В Go есть такое понятие, как «затенение» (англ. shadowing) переменной. Что оно из себя представляет?
🔹В Go происходит «затенение», когда переменная, объявленная во внутренней области видимости, имеет то же имя, что и переменная во внешней области видимости.
🔹В результате внутренняя переменная «затеняет» внешнюю, делая её недоступной в своей области видимости.
📌Пример:
🔹«Затенение» может быть особенно запутывающим, когда оно происходит с результатами функций, такими как err. Например, часто в Go вы можете видеть следующий код:
Если вы случайно используете := вместо =, когда присваиваете результат anotherFunction(), вы создадите новую переменную err, которая «затенит» внешнюю переменную err. Это может привести к тому, что ошибки будут проигнорированы или обработаны неправильно.
📌Как обнаружить shadowing в коде? Есть не сколько способов: использовать встроенные инструменты Go или линтеры.
1.
2.
3.
$
$
🔹В Go происходит «затенение», когда переменная, объявленная во внутренней области видимости, имеет то же имя, что и переменная во внешней области видимости.
🔹В результате внутренняя переменная «затеняет» внешнюю, делая её недоступной в своей области видимости.
📌Пример:
package main
import (
"fmt"
)
func main() {
x := 10
if true {
x := 5
// здесь происходит затенение внешней переменной x fmt.Println(x)
// выводит 5, т. к. используется внутренняя переменная x }
fmt.Println(x)
// выводит 10, т. к. используется внешняя переменная x}
🔹«Затенение» может быть особенно запутывающим, когда оно происходит с результатами функций, такими как err. Например, часто в Go вы можете видеть следующий код:
value, err := someFunction()
if err != nil {
// обработка ошибки}
// ...
value2, err := anotherFunction()
// здесь может произойти «затенение», если использовать := вместо =if err != nil {
// обработка ошибки}
Если вы случайно используете := вместо =, когда присваиваете результат anotherFunction(), вы создадите новую переменную err, которая «затенит» внешнюю переменную err. Это может привести к тому, что ошибки будут проигнорированы или обработаны неправильно.
📌Как обнаружить shadowing в коде? Есть не сколько способов: использовать встроенные инструменты Go или линтеры.
1.
go vet -shadow ./...
2.
golangci-lint run --enable shadow
3.
$
go get -u golang.org/x/tools/go/analysis/passes/shadow/cmd/shadow
$
go vet -vettool=$(which shadow)
👍36🌚3