🤔 Остаться или уйти? Оптимальный срок работы на одном месте
Вы любите свою работу, интересные проекты вам гарантированы, зарплата повышается каждый год. Но вот уже 5 лет вы трудитесь в одной и той же компании. Не пора ли что-то изменить, пока мотивация окончательно не улетучилась?
Многие опытные айтишники сталкиваются с такой дилеммой. С одной стороны, текущее место работы устраивает. С другой — хочется разнообразия, новых задач и знаний.
Должен ли современный IT-специалист менять работу чаще, чем раз в 5 лет? Или лучше наращивать экспертизу в рамках одной компании? А может дело совсем не в сроках, а в качестве задач и развитии карьеры?
👉 Расскажите о своём опыте в нашем новом опросе 👈
Вы любите свою работу, интересные проекты вам гарантированы, зарплата повышается каждый год. Но вот уже 5 лет вы трудитесь в одной и той же компании. Не пора ли что-то изменить, пока мотивация окончательно не улетучилась?
Многие опытные айтишники сталкиваются с такой дилеммой. С одной стороны, текущее место работы устраивает. С другой — хочется разнообразия, новых задач и знаний.
Должен ли современный IT-специалист менять работу чаще, чем раз в 5 лет? Или лучше наращивать экспертизу в рамках одной компании? А может дело совсем не в сроках, а в качестве задач и развитии карьеры?
👉 Расскажите о своём опыте в нашем новом опросе 👈
🥱21🌚4👍3❤2👾1
📌 Для базового использования просто укажите интересующий путь к пакету в качестве первого аргумента:
errcheck github.com/kisielk/errcheck/testdata
📌 Проверить все пакеты в текущей директории:
errcheck ./...
📌 Или проверьте все пакеты в вашем $GOPATH и $GOROOT:
errcheck all
👉 GitHub
Please open Telegram to view this post
VIEW IN TELEGRAM
GitHub
Release v.1.7.0 · kisielk/errcheck
What's Changed
Go 1.22 support, plus other fixes.
Correct typos in comments and doc by @alexandear in #225
Fix errcheck issues in tests by @alexandear in #227
Directly specify the needed field...
Go 1.22 support, plus other fixes.
Correct typos in comments and doc by @alexandear in #225
Fix errcheck issues in tests by @alexandear in #227
Directly specify the needed field...
👍21❤2
00:00 — Lock-free структуры данных
00:41 — Реализация стека на связном списке
01:59 — Неправильная реализация lock-free стека
06:17 — Правильная реализация lock-free стека
09:43 — ABA проблема
11:55 — Hazard pointers
12:13 — Tagged pointers
Please open Telegram to view this post
VIEW IN TELEGRAM
❤17👍12🌚3🥱2
🤔 От Go к Rust: два типа читаемого кода
Читаемость кода часто связана с тем, насколько синтаксис и концепции языка знакомы разработчику. Что кажется читаемым одному, может быть непонятным другому.
Автор статьи разделил понятия «читаемость для новичков» (как быстро можно начать читать новый ЯП) и «читаемость для опытных» (как быстро опытный разработчик может понять код).
«При чем тут Go и Rust?» — спросите вы. А при том, что по мнению автора Go выбирает читаемость для новичков, в то время как Rust оптимизируется для опытных разработчиков.
Важно соблюдать баланс между упрощением кода для новичков и предоставлением продвинутых инструментов для опытных разрабов.
💬 Что думаете?
Читаемость кода часто связана с тем, насколько синтаксис и концепции языка знакомы разработчику. Что кажется читаемым одному, может быть непонятным другому.
Автор статьи разделил понятия «читаемость для новичков» (как быстро можно начать читать новый ЯП) и «читаемость для опытных» (как быстро опытный разработчик может понять код).
«При чем тут Go и Rust?» — спросите вы. А при том, что по мнению автора Go выбирает читаемость для новичков, в то время как Rust оптимизируется для опытных разработчиков.
Важно соблюдать баланс между упрощением кода для новичков и предоставлением продвинутых инструментов для опытных разрабов.
💬 Что думаете?
Earthly Blog
From Go to Rust: The Two Types of Readable Code
<p>Ever looked at some code and thought, “Wow, that’s an ugly mess!”? Or maybe you picked up a new programming language and felt right at hom...
👍6🌚4❤2
🤔 Начиная проект, новички часто задают следующие вопросы:
🔸 Какой логгер/веб-фреймворк/... следует использовать?
🔸 Какую ORM лучше использовать?
🤷♂️ Эти вопросы заданы из лучших побуждений, но все они упускают из виду ключевой аспект — Go имеет отличную стандартную библиотеку.
📌 Читайте подробнее, почему иногда действительно следует начать с использования стандартной библиотеки Go.
Please open Telegram to view this post
VIEW IN TELEGRAM
💯15👍5❤1
⚒️ Go 1.22: Rangefunc Experiment
Перевод материала с Go Wiki о простых одноуровневых циклах:
☑️ Что такое range func?
☑️ Нюансы
☑️ Push/Pull - семантика
☑️ Как попробовать
☑️ Пример: перебор слайса в случайном порядке
☑️ Послесловие
Перевод материала с Go Wiki о простых одноуровневых циклах:
☑️ Что такое range func?
☑️ Нюансы
☑️ Push/Pull - семантика
☑️ Как попробовать
☑️ Пример: перебор слайса в случайном порядке
☑️ Послесловие
Хабр
Go 1.22: Rangefunc Experiment
Дисклеймер Данная статья - проба пера. Данная статья - перевод/вольная интерпретация соответствующей страницы с Go Wiki . Если знаете английский язык, то, возможно, стоит зайти в первоисточник, а...
🔥5😁3👍1
Мы стараемся быть лучше для вас. Какие материалы вы хотите больше видеть на канале?
Anonymous Poll
37%
Интересные авторские статьи
19%
Туториалы в видеоформате
70%
Практика и использование Go в реальных проектах
39%
Использование Go-инструментов
60%
Архитектура приложений
22%
Продолжайте в том же духе — всё круто
0%
Свой вариант (напишу в комментариях)
🔥18
Forwarded from Библиотека программиста | программирование, кодинг, разработка
This media is not supported in your browser
VIEW IN TELEGRAM
👍31😁31💯8🔥1👾1
👌 Искусство интеграции Go и C: гайд по работе с cgo
📌 Автор рассматривает ключевые аспекты и лучшие практики взаимодействия с C-библиотеками, акцентируя внимание на:
🔸 Введении в cgo: обзор основных концепций и использования пакета C в Go.
🔸 Работе с массивами и срезами: техники для безопасной и эффективной передачи данных между Go и C.
🔸 Строковых преобразованиях: методы для конвертации строк между Go и C, включая управление памятью.
🔸 Управлении указателями: решения для обработки указателей Go в контексте C, избегая проблем со сборщиком мусора.
🔸 Обработке errno в Go: подходы к обработке ошибок в интегрированных системах Go и C.
🔸 Экспорте Go в C: обсуждение возможностей и ограничений использования Go в качестве shared library.
🔸 Лучших практиках и общих подводных камнях: советы и предостережения для разрабов, использующих cgo.
📌 Автор рассматривает ключевые аспекты и лучшие практики взаимодействия с C-библиотеками, акцентируя внимание на:
🔸 Введении в cgo: обзор основных концепций и использования пакета C в Go.
🔸 Работе с массивами и срезами: техники для безопасной и эффективной передачи данных между Go и C.
🔸 Строковых преобразованиях: методы для конвертации строк между Go и C, включая управление памятью.
🔸 Управлении указателями: решения для обработки указателей Go в контексте C, избегая проблем со сборщиком мусора.
🔸 Обработке errno в Go: подходы к обработке ошибок в интегрированных системах Go и C.
🔸 Экспорте Go в C: обсуждение возможностей и ограничений использования Go в качестве shared library.
🔸 Лучших практиках и общих подводных камнях: советы и предостережения для разрабов, использующих cgo.
👍27
🤔 В чем сила пакета singleflight?
🔸
🔸Если несколько запросов инициируют один и тот же вызов, это может привести к множественным идентичным вызовам к БД или API. Это создает нагрузку на систему, ведет к потерям CPU, памяти и пропускной способности сети.
🔸Matthew Boyle, автор Domain-Driven Design with Golang, приводит пример использования
💡
#tip
🔸
singleflight
предоставляет механизм подавления дублирующихся вызовов функций. Например, наше приложение запрашивает данные из API или базы данных. 🔸Если несколько запросов инициируют один и тот же вызов, это может привести к множественным идентичным вызовам к БД или API. Это создает нагрузку на систему, ведет к потерям CPU, памяти и пропускной способности сети.
🔸Matthew Boyle, автор Domain-Driven Design with Golang, приводит пример использования
singleflight
для устранения дублирующихся вызовов. В примере, несмотря на то, что 5 горутин одновременно запрашивают данные для одного и того же ключа, функция fetchData
будет вызвана только один раз благодаря функции group.Do
из пакета singleflight
.💡
singleflight
также может используется в serverless кейсах. Google App Engine, например, применяет его как часть функции инициализации, поскольку там нет main.go
.#tip
👍20🤔9🥱3❤1🔥1
👉 Подробнее
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥36🥱8
💬 Расскажите в комментариях, какой паттерн проектирования вы использовали в своем последнем проекте и почему выбрали именно его? Были ли какие-то уникальные проблемы, которые решил этот паттерн?
#интерактив
Please open Telegram to view this post
VIEW IN TELEGRAM
❤2
🏃 Самоучитель по Go для начинающих. Часть 8. Строки, руны, байты. Пакет strings. Хеш-таблица (map)
Ранее в уроке про типы данных мы познакомились со строками, рунами и байтами. В этой статье расширим наши знания об этих типах, рассмотрим пакет strings и подробно изучим хеш-таблицы.
👉 Читать статью
📌 Остальные части в серии:
1. Особенности и сфера применения Go, установка, настройка
2. Ресурсы для изучения Go с нуля
3. Организация кода. Пакеты, импорты, модули. Ввод-вывод текста.
4. Переменные. Типы данных и их преобразования. Основные операторы
5. Условные конструкции if-else и switch-case. Цикл for. Вложенные и бесконечные циклы
6. Функции и аргументы. Области видимости. Рекурсия. Defer
7. Массивы и слайсы. Append и сopy. Пакет slices
Ранее в уроке про типы данных мы познакомились со строками, рунами и байтами. В этой статье расширим наши знания об этих типах, рассмотрим пакет strings и подробно изучим хеш-таблицы.
👉 Читать статью
📌 Остальные части в серии:
1. Особенности и сфера применения Go, установка, настройка
2. Ресурсы для изучения Go с нуля
3. Организация кода. Пакеты, импорты, модули. Ввод-вывод текста.
4. Переменные. Типы данных и их преобразования. Основные операторы
5. Условные конструкции if-else и switch-case. Цикл for. Вложенные и бесконечные циклы
6. Функции и аргументы. Области видимости. Рекурсия. Defer
7. Массивы и слайсы. Append и сopy. Пакет slices
👍7❤3🔥1
🔢 The Twelve-Factor App
🤩 Вы наверняка знаете про документ-методологию для создания SaaS-приложений от команды Heroku. В нем обобщается весь опыт использования и наблюдения за самыми разнообразными SaaS-приложениями в дикой природе.
📹 Как можно погрузиться в эту тему? Прочитать оригинал, перевод на русский или посмотреть видеогайд от канала defer panic, в котором разобран каждый из 12-ти пунктов.
⏱️ Таймкоды:
00:00 — Вступление
02:01 — №1. Кодовая база
04:50 — №2. Зависимости
07:04 — №3. Конфигурация
09:26 — №4. Внешние сервисы
10:40 — №5. Сборка, релиз и выполнение
13:02 — №6. Процессы без состояния
14:42 — №7. Привязка портов (port binding)
16:04 — №8. Конкурентность
17:10 — №9. Одноразовые и утилитарные процессы
19:54 — №10. Паритет окружений
23:40 — №11. Логи
25:32 — №12. Инструменты
⏱️ Таймкоды:
00:00 — Вступление
02:01 — №1. Кодовая база
04:50 — №2. Зависимости
07:04 — №3. Конфигурация
09:26 — №4. Внешние сервисы
10:40 — №5. Сборка, релиз и выполнение
13:02 — №6. Процессы без состояния
14:42 — №7. Привязка портов (port binding)
16:04 — №8. Конкурентность
17:10 — №9. Одноразовые и утилитарные процессы
19:54 — №10. Паритет окружений
23:40 — №11. Логи
25:32 — №12. Инструменты
Please open Telegram to view this post
VIEW IN TELEGRAM
❤16👍1
👨💻 Cosplore3D: серия статей для тех, кто хочет разобраться с работой 3D-графики.
Cosplore3D — игра в жанре экшн и исследования космоса на Go + Ebitengine. Будут планеты, космические корабли, инопланетяне и т. д.
🕹 Wolfenstein 3D Raycaster
🕹 Fixing Raycasting
🕹 Creating a Storyline
🕹 Adding Enemies
🕹 Creating A HUD
🕹 Colors, Images, Graphics
🕹 Ankaran, Level 1
🕹 Killing Those Blobs
🕹 Not Walking Through Walls
🕹 You Can't See Through Walls
🕹 Creating A Level Editor
🕹 The Cosplorer, Level 2
🕹 All The Enemies
🕹 Enikoko, Level 3
🕹 Level 4, Schmeltool
🕹 Game -> Playable
🕹 Creating A Menu
🕹 Boss 1, The Beast
🕹 Boss 2, The Champion
🕹 Adding Sound Effects
Cosplore3D — игра в жанре экшн и исследования космоса на Go + Ebitengine. Будут планеты, космические корабли, инопланетяне и т. д.
🕹 Wolfenstein 3D Raycaster
🕹 Fixing Raycasting
🕹 Creating a Storyline
🕹 Adding Enemies
🕹 Creating A HUD
🕹 Colors, Images, Graphics
🕹 Ankaran, Level 1
🕹 Killing Those Blobs
🕹 Not Walking Through Walls
🕹 You Can't See Through Walls
🕹 Creating A Level Editor
🕹 The Cosplorer, Level 2
🕹 All The Enemies
🕹 Enikoko, Level 3
🕹 Level 4, Schmeltool
🕹 Game -> Playable
🕹 Creating A Menu
🕹 Boss 1, The Beast
🕹 Boss 2, The Champion
🕹 Adding Sound Effects
🔥8❤3
С помощью библиотеки вы можете сгенерировать случайные имена, адреса электронной почты, номера телефонов, названия должностей и т. д., или заполнить структуры с использованием аннотированных типов данных.
Недавно выпущенная версия 7.0 интегрирована с
math/rand/v2
из Go 1.22, что может упростить использование в некоторых кейсах.#перечитываястарое
Please open Telegram to view this post
VIEW IN TELEGRAM
👍44🔥5
go run
для запуска Go-кода как скриптов. Это хорошо работало до версии Go 1.22.🤯 Начиная с Go 1.22, вам нужно либо указать опцию командной строки "
-gcflags=-lang=go1.xx
", либо поместить "//go:build go1.xx
" в некоторые исходники, чтобы избежать непреднамеренное поведение.🔗 Источник
Please open Telegram to view this post
VIEW IN TELEGRAM
X (formerly Twitter)
Go 101 - a Golang knowledge base (@go100and1) on X
Many gophers like to use the "go run" command to run Go code as scripts. It works well before Go 1.22.
Since Go 1.22, you need either specify the "-gcflags=-lang=go1.xx" cli option or put "//go:build go1.xx" directive lines in some Go source files to avoid…
Since Go 1.22, you need either specify the "-gcflags=-lang=go1.xx" cli option or put "//go:build go1.xx" directive lines in some Go source files to avoid…
🌚23🥰5🥱5🤔3❤2
🏃 Самоучитель по Go для начинающих. Часть 9. Структуры и методы. Интерфейсы. Указатели. Основы ООП
В этом уроке самоучителя подробно рассмотрим структуры, методы и интерфейсы в Go, уделим особое внимание их особенностям и применению. В заключение познакомимся с конструкциями type assertion и type switch.
👉 Читать гайд
📌 Остальные части в серии:
1. Особенности и сфера применения Go, установка, настройка
2. Ресурсы для изучения Go с нуля
3. Организация кода. Пакеты, импорты, модули. Ввод-вывод текста.
4. Переменные. Типы данных и их преобразования. Основные операторы
5. Условные конструкции if-else и switch-case. Цикл for. Вложенные и бесконечные циклы
6. Функции и аргументы. Области видимости. Рекурсия. Defer
7. Массивы и слайсы. Append и сopy. Пакет slices
8. Строки, руны, байты. Пакет strings. Хеш-таблица (map)
В этом уроке самоучителя подробно рассмотрим структуры, методы и интерфейсы в Go, уделим особое внимание их особенностям и применению. В заключение познакомимся с конструкциями type assertion и type switch.
👉 Читать гайд
📌 Остальные части в серии:
1. Особенности и сфера применения Go, установка, настройка
2. Ресурсы для изучения Go с нуля
3. Организация кода. Пакеты, импорты, модули. Ввод-вывод текста.
4. Переменные. Типы данных и их преобразования. Основные операторы
5. Условные конструкции if-else и switch-case. Цикл for. Вложенные и бесконечные циклы
6. Функции и аргументы. Области видимости. Рекурсия. Defer
7. Массивы и слайсы. Append и сopy. Пакет slices
8. Строки, руны, байты. Пакет strings. Хеш-таблица (map)
👍11
📌 Что вы узнаете из доклада?
☑️ Как работает Go изнутри?
☑️ Чем его принципы отличаются от других популярных языков?
☑️ Что нужно знать о работе компилятора, операционной системы и компьютера, чтобы пользоваться Go эффективно?
☑️ Как устроены горутины, и почему в языке есть несколько способов сделать одно и то же, когда речь идет о конкурентности?
🤷♂️ Да, докладу уже 4 года. Но это, как говорится, база.
Please open Telegram to view this post
VIEW IN TELEGRAM
YouTube
Антон Сергеев, «Go под капотом»
Kolesa Go Meetup:
Доклад о том, как работает go изнутри, и чем его принципы отличаются от других популярных языков. Что нужно знать о работе компилятора, операционной системы и компьютера, чтобы пользоваться go эффективно. Также рассмотрим, как устроены…
Доклад о том, как работает go изнутри, и чем его принципы отличаются от других популярных языков. Что нужно знать о работе компилятора, операционной системы и компьютера, чтобы пользоваться go эффективно. Также рассмотрим, как устроены…
👍25🥱8❤2🤔1
⚡На Хабре появился перевод той самой статьи Мэта Райера о разработке HTTP-сервисов спустя 13 лет работы с Go👇
🔗 Читать
🔗 Читать
Telegram
Библиотека Go разработчика | Golang
🖼️ Разработка HTTP-сервисов спустя 13 лет работы с Go: подход Мэта Райера, техдира Grafana Labs в команде машинного обучения
Почти шесть лет назад Мэт написал пост на такую же тему, который стал вирусным и значительно повлиял на его взгляды относительно…
Почти шесть лет назад Мэт написал пост на такую же тему, который стал вирусным и значительно повлиял на его взгляды относительно…
🔥20👍4❤1😁1
☑️ ObjectBox проста в использовании благодаря интуитивно понятному встроенному API:
id, err := box.Put(&Person{ FirstName: "Joe", LastName: "Green" })
👉 Документация
👉 GitHub
Please open Telegram to view this post
VIEW IN TELEGRAM
GitHub
Release ObjectBox Go Database v1.8.0 · objectbox/objectbox-go
In-memory databases (provide a "directory" option like "memory:" + DB name)
Update objectbox-c to v0.21.0 with many improvements (details)
Fix leaking IDs with Box
Docs and pre...
Update objectbox-c to v0.21.0 with many improvements (details)
Fix leaking IDs with Box
Docs and pre...
👍18❤1🤩1