Как стать автором
Обновить
-2
0
Алексей Епишев @alexeyepishev

Golang разработчик

Отправить сообщение

Микросервисы на Go: Как заставить систему работать на тебя

Уровень сложностиСредний
Время на прочтение11 мин
Количество просмотров7.2K

Эта статья — это своего рода маленький гайд или роудмап для тех, кто хочет погрузиться в микросервисы, но без лишнего стресса. Я расскажу о том, что действительно работает на практике, какие приемы стоит взять на вооружение, а от каких лучше держаться подальше. Всё это будет основано на реальных примерах и моем опыте, без излишней теории и заумных терминов.

Если ты только начинаешь разбираться в микросервисах или уже погружен в них по уши, но всё ещё чувствуешь, что некоторые моменты не до конца ясны, эта статья как раз для тебя. Она поможет понять, как построить систему, которая будет работать стабильно, масштабируемо и, что самое важное, не заставит тебя хвататься за голову каждый раз, когда что-то идёт не так. Надеюсь, мои советы и наблюдения окажутся полезными, и ты избежишь тех граблей, на которые я сам не раз наступал. Ведь, как говорится, учиться на чужих ошибках всегда приятнее.

Читать далее
Всего голосов 11: ↑9 и ↓2+7
Комментарии7

Как превратить любовь к чтению в стартап?

Уровень сложностиПростой
Время на прочтение9 мин
Количество просмотров6.6K

Привет, хабравчане!

Меня зовут Семён я разработчик мобильных приложений с десятилетним стажем. А еще я очень люблю читать фантастику и фэнтези. Хорошую книгу я читаю за 2 дня. А потом пол года ищу следующую. Последние лет пять я почти ничего не читаю, потому что не могу найти.

Я ощущаю, что в книжной индустрии сейчас существует большой кризис. Позже напишу еще одну статью об этом. Но на тот момент я задался прикладным вопросом: хочу иметь возможность найти интересную для меня книгу, не тратя месяцы на скроллинг сайтов библиотек. Отсюда родилась идея мобильного приложения — рекомендательной системы. Сейчас у нас команда из семи человек, мы готовим к выпуску MVP и запустили краудфандинг.

В этой статье хочу рассказать о нас и о пути, который мы прошли.

Читать далее
Всего голосов 18: ↑16 и ↓2+17
Комментарии25

Топ книг по биохакингу и мозгу

Уровень сложностиПростой
Время на прочтение2 мин
Количество просмотров7.6K


Чтобы лучше разбираться в мире биохакинга, а ещё развивать свою нейропластичность, нужно книжки читать полезные. Сделал подборку книг по биохакингу и мозгу, с краткой аннотацией:

Смотреть подборку самых классных книг
Всего голосов 3: ↑3 и ↓0+4
Комментарии4

Свой VPN за 5 минут (Outline)

Уровень сложностиПростой
Время на прочтение3 мин
Количество просмотров157K

Каждый, кто сталкивался с вопросом обхода блокировок таких сайтов, как Instagram, Facebook, OpenAI и других, к которым закрыт доступ в РФ, знает, что бесплатные VPN не всегда надежны. Платные VPN-сервисы тоже не всегда быстро работают, да и порой стоят не мало.

На мой взгляд, лучшее решение — это свой собственный VPN с возможностью создания неограниченного количества ключей (один ключ — одно устройство) и, как вы догадались, делать такой VPN я сегодня вас научу.

Создавать VPN мы будем через сервис Outline. Я использую его сам. Эта штука очень удобная и легко настраивается даже для новичка. Обо всем подробнее далее.

Читать далее
Всего голосов 25: ↑19 и ↓6+15
Комментарии87

Пайплайны в GitLab для микросервисов

Время на прочтение10 мин
Количество просмотров17K

Какие два самых любимых дела у программистов? Автоматизировать и переписывать на микросервисы. Так сложилось, что в нашу команду выделенных серверов тоже постучались микросервисы. Но в этой статье не будет плюсов и минусов архитектурных подходов. Вместо этого я расскажу про организацию CI для автоматизации сборки, тестирования и деплоя приложений.

Начнем с основ на примере монолитного приложения, а потом усложним их микросервисами и постараемся избавиться от однотипного кода. А еще…
Читать дальше →
Всего голосов 57: ↑57 и ↓0+74
Комментарии4

Книга: «Алгоритмы с нуля»

Время на прочтение20 мин
Количество просмотров17K
image Привет, Хаброжители!

Погрузитесь в мир алгоритмов! Разберитесь в их принципах, особенностях проектирования и практического применения.

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

Каждая глава содержит понятные объяснения, наглядные примеры и задачи, помогающие закрепить изученный материал. Особый акцент сделан на вычислительном мышлении и анализе эффективности алгоритмов — важнейших навыках в области современных технологий.
Читать дальше →
Всего голосов 9: ↑7 и ↓2+10
Комментарии14

Go + Minio: как написать простой сервер для взаимодействия с файлами

Уровень сложностиСредний
Время на прочтение26 мин
Количество просмотров6.7K

Добрейшего! Недавно мой друг решил хранить картинки продуктов на сервере, в отдельной папочке, выдав ей публичный доступ. Что ж, эту статью я пишу чтобы рассказать другу плюсы и минусы, а так же показать как можно делать иначе.

Если вы только изучаете go, начинаете писать сервера, то обязательно посмотрите эту статью - для бекендера уметь работать с s3 хранилищем так же важно, как и уметь работать с реляционной / нереляционной базой данных и с key-value базой - это основа основ.

Читать далее
Всего голосов 11: ↑1 и ↓10-9
Комментарии10

Популярные ошибки в Golang и как их избежать

Уровень сложностиПростой
Время на прочтение15 мин
Количество просмотров11K

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

Читать далее
Всего голосов 24: ↑24 и ↓0+27
Комментарии7

Профессия «белый хакер»: как превратить хобби в работу

Уровень сложностиПростой
Время на прочтение6 мин
Количество просмотров9.4K

На связи Positive Education, и мы продолжаем цикл публикаций о профессиях в сфере кибербезопасности. Потребность в таких экспертах растет с головокружительной скоростью, и сейчас это уже не одна профессия «специалист по информационной безопасности». Внутри отрасли сформировались более узкие специальности (ранее публиковали схему профессий), и мы решили рассказать о 10 самых трендовых профессиях в сфере кибербезопасности (о первых двух можно почитать здесь и здесь). Сегодня хотим познакомить вас с белым хакером — человеком, который последние 15 лет развивает это направление в России.

Привет, Хабр!

Меня зовут Дмитрий Серебрянников, и я хакер. Поправка: белый хакер. Я прежде всего исследователь — проверяю технологии на безопасность. Хорошие специалисты в нашей профессии — на вес золота. Хотите прокачать себя и стать лучшим? Тогда читайте дальше: я расскажу, что нужно сделать, чтобы попасть в мир белых хакеров — этично и без взлома.

Следуй за белым хакером
Всего голосов 10: ↑8 и ↓2+7
Комментарии1

Шардирование баз данных и проектирование систем

Время на прочтение6 мин
Количество просмотров8.4K
image

Шардирование базы данных — это процесс её разделения на несколько машин, что способствует масштабируемости приложения. Механизм шардирования предполагает разбиение данных на два или более мелких фрагмента, называемых логическими шардами. Затем логические блоки распределяются по отдельным узлам базы данных, называемым физическими блоками, каждый из которых может содержать несколько логических блоков.

Такой подход позволяет избежать проблем с производительностью, возникающих, когда одна из машин работает в условиях перегрузки, и обеспечивает более экономичное и грамотное масштабирование. По мере увеличения объема данных и трафика все чаще возникает необходимость горизонтального масштабирования путем добавления новых машин, а не вертикального путем модернизации одного большого сервера.
Читать дальше →
Всего голосов 11: ↑10 и ↓1+15
Комментарии3

Что нужно знать, чтобы успешно пройти System Design Interview

Время на прочтение16 мин
Количество просмотров42K

Для любого разработчика глубокое понимание основных принципов системного проектирования является необходимым условием для создания стабильных и масштабируемых программных систем, способных обеспечивать высокую производительность. Системное проектирование (System Design) включает разработку архитектуры и структуры программной системы, направленную на удовлетворение специфических требований и обеспечение требуемых показателей производительности.

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

Далее мы рассмотрим каждый из принципов более детально, чтобы понять их суть и способы применения в разработке приложений.

Читать далее
Всего голосов 49: ↑47 и ↓2+56
Комментарии26

Применение чистой архитектуры в Go

Уровень сложностиСложный
Время на прочтение13 мин
Количество просмотров14K


Одна из проблем, с которыми мне часто доводится сталкиваться в различных софтверных проектов — это сильная связанность кода, при которой в него так сложно вносить даже простые изменения, не провоцируя нежелательных побочных эффектов. Дело в том, что программисты склонны сосредотачиваться на разработке конкретных фич, не задумываясь о том, как база кода станет развиваться в будущем. Также не все учитывают, что применяемые сегодня библиотеки и фреймворки могут постепенно сойти со сцены спустя несколько месяцев или лет.

На старте проекта приходится принимать множество решений. Большинство инженеров при этом рассматривают область применения проекта и решают, при помощи каких инструментов он будет реализовываться. Речь, в частности, о языках программирования, фреймворках, базах данных, внешних API, вариантах развёртывания. Принимая такие решения на самых ранних этапах, они замыкаются на этих инструментах, пронизывают ими всю базу кода, в результате чего её становится сложно менять и поддерживать.

Большинство этих инструментов – это частности, и выбор большинства из них (кроме языка программирования) можно на некоторое время отложить, пока проект не окрепнет. Поэтому на ранних этапах разработки проекта стоит уделить внимание не тому, при помощи каких инструментов пойдёт реализация. Лучше смоделировать предметную область проекта, а к вышеупомянутым инструментам подходить так, как следует — то есть, как к частностям. Разумеется, чтобы проект был реализован, с такими деталями тоже нужно определиться, но они могут оставаться в некоторой отдельной части кода, не относящейся к предметной области — там, где их будет легко менять, удалять или заменять по нашему усмотрению.

Для решения именно таких проблем с сильной связностью кода многоопытные инженеры создали ряд архитектурных паттернов. Таковы, в частности, чистая архитектура Роберта Мартина («дядюшки Боба»), гексагональная архитектура Алистера Кокбёрна и явная архитектура Герберто Грацы.
Читать дальше →
Всего голосов 24: ↑22 и ↓2+31
Комментарии5

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

Время на прочтение4 мин
Количество просмотров12K

Всем привет! На связи команда Практикума. Недавно мы проводили открытое алгоритмическое собеседование и теперь хотим поделиться записью. Это отличная возможность подсмотреть, каким может быть процесс, научиться на чужих ошибках или взять на примету удачные решения.

Мы попросили Самсонова Ивана рассказать о его критериях оценки кандидатов, а также поделиться советами по подготовке. На видео Иван выступал в роли тимлида, а в обычной жизни он разработчик со степенью в Computer Science и наставник курса «Алгоритмы и структуры данных».

Смотреть и читать
Всего голосов 17: ↑10 и ↓7+5
Комментарии28

Как оценить задачи без Planning Poker и лишних слов

Уровень сложностиПростой
Время на прочтение9 мин
Количество просмотров7.5K

Привет, Хабр!

Меня зовут Александр, я занимаюсь релиз менеджментом в ИТ-компании TAGES. Эта работа требует быстрой поставки бизнес-ценности в условиях меняющегося мира. Однако непрерывность регулярных деплоев невозможна без четкого плана. А правильный план, в свою очередь, требует точной оценки трудозатрат.

В то же время большинство разработчиков на дух не переносят любые активности, связанные с оценкой времени. Даже методика Planning Poker не всегда находит отклик в командах. Это отчасти связано с предпочтением интровертных сотрудников избегать лишних встреч и звонков.

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

Сегодня мы рассмотрим подход, который решает проблему точной оценки задач с минимальным участием разработчиков.

Читать далее
Всего голосов 17: ↑11 и ↓6+7
Комментарии36

Топовые подходы к решению алгоритмических задач

Время на прочтение11 мин
Количество просмотров26K

Привет! Меня зовут Дмитрий Королёв, я бэкенд-разработчик в Авито. В этой статье я расскажу про ключевые аспекты и концепции работы с наиболее популярными алгоритмами и структурами данных. Это поможет и в реальных проектах, и чтобы глубже понять алгоритмические принципы. Статья подойдёт специалистам, которые хотят углубить свои знания в программировании, и укрепить навыки нахождения оптимальных решений алгоритмических задач.

Читать далее
Всего голосов 13: ↑13 и ↓0+16
Комментарии10

Представляем планировщик Go: Вы никогда не смотрели на горутины с этой стороны

Уровень сложностиСредний
Время на прочтение7 мин
Количество просмотров14K

Вероятно, вы слышали о планировщике Go раньше, но насколько хорошо мы знает о том как он работает? Как он связывает горутины с потоками?

Разберем по очереди операции, которые выполняет планировщик.

Читать далее
Всего голосов 30: ↑27 и ↓3+30
Комментарии1

Проектирование эффективной системы кэширования для высоконагруженной системы

Время на прочтение5 мин
Количество просмотров23K

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

Читать далее
Всего голосов 7: ↑7 и ↓0+7
Комментарии3

Лучшие практики для надёжной работы с RabbitMQ

Уровень сложностиПростой
Время на прочтение13 мин
Количество просмотров26K

Привет, Хабр! Я Женя, архитектор интеграционной платформы в Точке, отвечаю за асинхронный обмен сообщениями между внутренними сервисами, за ESB и за брокеры сообщений.

В этой статье я постарался кратко и последовательно изложить основные моменты, о которых полезно помнить при использовании RabbitMQ, если важны стабильность обмена и сохранность данных.

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

Следуй за белым кроликом
Всего голосов 58: ↑58 и ↓0+59
Комментарии16

Структурированное логирование в Go с помощью Slog

Время на прочтение22 мин
Количество просмотров16K

Более 10 лет разработчики на Go жаловались на отсутствие структурированного логирования в ядре Golang. Участники сообщества Golang даже создали несколько собственных пакетов, таких как Logrus, Zap и Zerolog. В 2023 году, команда разработчиков Google Go наконец-то представила Slog — высокопроизводительный пакет для структурированного ведения логов в стандартной библиотеке Go. Мы перевели гайд о возможностях slog.

Читать далее
Всего голосов 15: ↑14 и ↓1+13
Комментарии5

Шпаргалка для собеса по GoLang

Время на прочтение30 мин
Количество просмотров36K

"Правильно заданный вопрос - половина ответа". Осваиваю профессию Prompt Engineering. Это ответы на вопросы. Мопед не мой. Спасибо, Codeium. Не обрабатывал наводящие подвопросы, а надо бы. Но может быть кому-то пригодится и в таком виде.

Читать далее
Всего голосов 19: ↑9 и ↓10+1
Комментарии41
1
23 ...

Информация

В рейтинге
Не участвует
Откуда
Ижевск, Удмуртия, Россия
Дата рождения
Зарегистрирован
Активность