Pull to refresh
0
Андрей @Andrew-Kuread⁠-⁠only

Программист

Send message

GitHub Copilot в JetBrains IDEs в РФ

Level of difficultyEasy
Reading time5 min
Views18K

В 2022 году в публичный доступ вышел GitHub Copilot – довольно удобный современный инструмент для разработчиков. В этой короткой статье поделюсь своим опытом взаимодействия с GitHub Copilot, а главное тем, как его использовать в IDE от JetBrains. Приятного чтения!

Читать далее
Total votes 23: ↑14.5 and ↓8.5+6
Comments44

$2500 в месяц на сервисе с 1 функцией, которая уже была у крупных компаний

Level of difficultyEasy
Reading time5 min
Views50K

Разбираем, как разработчик создал простой продукт с выручкой $2500 в месяц, связав два популярных сервиса. Несмотря на то, что это уже было сделано до него крупными компаниями.

Читать далее
Total votes 95: ↑77 and ↓18+59
Comments39

Паттерн Aggregate Outside

Level of difficultyMedium
Reading time5 min
Views6.5K

Руслан Гнатовский aka @Number55 в свой статье Когда ни туда, ни сюда, или в поисках оптимальной границы Domain слоя описал известную проблему протекания бизнес-логики из агрегата, в случае если эта логика зависит от данных которые находятся вне агрегата, и предложил несколько решений этой проблемы, каждое из которых не лишено недостатков. Многие из этих недостатков были описаны в статье а также в комментариях поэтому я не буду здесь дублировать эту информацию а попытаюсь предложить решение которое этих недостатков лишено.

Читать далее
Total votes 25: ↑25 and ↓0+25
Comments17

Микросервисы и RabbitMQ в Docker

Reading time12 min
Views14K

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

Читать далее
Total votes 17: ↑16 and ↓1+15
Comments15

Миграция микросервисной архитектуры на API Gateway

Level of difficultyEasy
Reading time10 min
Views12K

Микросервисная архитектура Amediateka была спроектирована более 6 лет назад предыдущей командой разработки. С тех пор добавилось много новых микросервисов, но фундаментальная часть архитектуры осталась прежней. В этом году мы решили внедрить несколько глобальных изменений, одно из которых - API Gateway. Статья расскажет о том, что это такое, какие преимущества дает, как просто и безопасно мигрировать функционирующую систему на API Gateway и сделает обзор готовых решений.

Читать далее
Total votes 16: ↑15 and ↓1+14
Comments2

Все про this в JavaScript

Level of difficultyMedium
Reading time18 min
Views11K

В этой статье мы узнаем все о this в JavaScript и научимся его определять.
Разберемся с мифической "потерей контекста", узнаем как API среды влияет на this и многие другие вопросы, которые так не хватало времени разобрать.

Читать далее
Total votes 12: ↑8 and ↓4+4
Comments9

Пишем gRPC сервис на Go — сервис авторизации

Level of difficultyMedium
Reading time63 min
Views36K

Пишем gRPC сервис на Go — сервис авторизации


В этой статье мы научимся писать полноценный gRPC сервис на Go на примере сервера авторизации с полноценной архитектурой, готовой к продакшену. Мы напишем как серверную часть, так и клиентскую. В качестве клиента мы возьмём мой сервис — URL Shortener, о котором у меня также есть статья и видео-гайд на ютубе. Попутно мы познакомимся с базовыми подходами к работе с авторизацией. И в конце настроим автоматический деплой сервиса с помощью GitHub Actions на удалённый сервер.


Видео-версия этого гайда с более подробными объяснениями

Исходный код проекта: https://github.com/GolangLessons/sso


Итого, наш план:


  • Напишем простой, но полноценный gRPC-сервис
  • Разберемся с базовыми принципами работы авторизации — чтобы не было скучно
  • Настроим автоматический деплой в прод — потому что руками деплоить лень
  • Подружим его с уже готовым сервисом URL Shortener — чтобы был практический смысл
  • Напишем полноценные функциональные тесты

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


Кратко обо мне: меня зовут Николай Тузов, я много лет занимаюсь разработкой на Go, очень люблю этот язык. Также веду свой YouTube-канал.

Читать дальше →
Total votes 70: ↑68 and ↓2+66
Comments44

Нейронные сети для новичков и профи: топ бесплатных курсов по ИИ

Level of difficultyEasy
Reading time6 min
Views52K

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

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

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

Приглашаем к прочтению!

Читать далее
Total votes 10: ↑9 and ↓1+8
Comments9

Добавление WebAuthn в веб-приложение

Level of difficultyMedium
Reading time4 min
Views6.6K

Привет! В этой статье мы научимся добавлять WebAuthn в веб‑приложения со стороны frontend‑разработчика. WebAuthn представляет собой новый метод аутентификации, который обеспечивает более высокий уровень безопасности, заменяя устаревшие пароли и SMS‑подтверждения на аутентификацию на основе публичных ключей.

Читать далее
Total votes 7: ↑7 and ↓0+7
Comments1

Гайд по микрофронтендам на single-spa, или Как уже наконец-то уйти от монолита во фронтенде

Level of difficultyMedium
Reading time9 min
Views14K

Привет, Хабр! Меня зовут Данил, я Frontend-разработчик в Samokat.tech. Недавно мы с командой распилили монолит на Angular и перешли к микрофронтендам на Vue. 

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

Читать далее
Total votes 22: ↑21 and ↓1+20
Comments18

Введение в Чистую архитектуру через 6 кругов рефакторинга

Level of difficultyMedium
Reading time15 min
Views43K

Разделяй и влавствуй, или как провести клининг легаси-кода GoLang.

Этот пост является частью большого цикла статей, в которых мы демонстрируем, как создавать приложения на Go, которые легко разрабатывать, поддерживать и с которыми приятно работать в долгосрочной перспективе. Мы делаем это, делясь проверенными методами, основанными на множестве экспериментов с командами, которыми мы руководили, и научных исследованиях («при съёмках фильма ни одно животное не пострадало»).

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

Что касается подхода к «чистой» архитектуре, описываемого далее, то это симбиоз двух идей: разделение Ports и Adapters, а также контроль за тем, как пакеты ссылаются друг на друга...

Оставь надежду, всяк сюда входящий
Total votes 19: ↑15 and ↓4+11
Comments4

Как можно использовать .NET из Javascript (React) в 2023 году

Level of difficultyMedium
Reading time5 min
Views6.8K

Статья показывает опыт использования .NET из JavaScript (React) с помощью компиляции .NET кода в WebAssembly с помощью новых возможностей .NET 7. Включает инструкцию по созданию проекта для .NET для использования из Javascript, и интеграции его в веб-приложение, написанного с использованием React. Рассматривается также сборка такого проекта с помощью GitHub Actions (CI) и хостинг его на GitHub Pages. Содержатся ссылки репозитории на GitHub тестового и реального проекта, использующие данный подход.

Читать далее
Total votes 10: ↑10 and ↓0+10
Comments12

Поднимаем на OpenWrt клиент прокси VLESS, Shadowsocks, Shadowsocks2022. Настройка sing-box и tun2socks

Level of difficultyMedium
Reading time9 min
Views26K

Практическое руководство описывающее, как поднять на роутере Shadowsocks, VMess, VLESS, Trojan и даже SOCKS5 proxy.

Трафиком на роутере удобно управлять, когда у туннеля есть свой интерфейс. С одной стороны, есть Wireguard и OpenVPN, которые предоставляют сетевые интерфейсы. C другой стороны есть, например, SOCKS5 прокси и вытекший из него Shadowsocks, которые работают на другом уровне. Настраивая их мы получаем порт, а не интерфейс.

Здесь разобраны два инструмента, которые могут предоставить сетевой интерфейс на роутере и пересылать трафик с него во всевозможные прокси и туннели, устойчивые к DPI.

Читать далее
Total votes 16: ↑16 and ↓0+16
Comments10

React + Three.js. Создаём собственный 3D шутер. Часть 1

Level of difficultyMedium
Reading time31 min
Views14K

Привет, дорогие пользователи мира IT!

В эпоху активного развития веб-технологий и интерактивных приложений, 3D-графика становится всё более актуальной и востребованной. Но как создать 3D-приложение, не теряя преимуществ веб-разработки? В этой статье мы рассмотрим, как сочетать мощь Three.js с гибкостью React, чтобы создать собственную игру прямо в браузере.

В статье вы познакомитесь с библиотекой React Three Fiber и научитесь создавать интерактивные 3D-игры.

Читать дальше →
Total votes 14: ↑14 and ↓0+14
Comments13

Event Loop в деталях

Level of difficultyMedium
Reading time7 min
Views46K

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

JS был спроектирован как однопоточный язык программирования. Это значит, что он может выполнять только одну операцию одновременно. Тем не менее у JavaScript есть такой механизм как Event Loop, который как раз и позволяет выполнять "асинхронные" операции. Почему "асинхронные" в кавычках? Да просто потому что JavaScript тоже выполняет их синхронно, асинхронности в самом JavaScript как таковой нет. Вперед под кат, будем разбираться)

Promise.then()
Total votes 25: ↑22 and ↓3+19
Comments13

Нейронные сети, целый зоопарк друзей

Level of difficultyEasy
Reading time13 min
Views6K

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

это моя первая статья, надеюсь не последняя - думаю станет ясно после появления первых комментариев - надеюсь я не как Джерри из "Рик и Морти", впереди есть еще идеи. В этой же статье хочу описать свой путь пройденный для некоторого погружения в изучение и последующего проведения испытаний с нейронными сетями вроде ChatGPT. Явно описывать как из России сейчас подключиться к Канаде с использованием заветных трех букв и тому подобные телодвижения смысла не вижу, так как вероятно следующие за прогрессом уже давно все это перепробовали, и убедились что да, ChatGPT ответит на ваши заветные вопросы ответом типа: я лишь реализация нейронной сети созданная для возможностей развития, и тому подобное, а позже и облегченно выдохнули, мол время еще есть не такой умный уж код она и пишет, за работу можно(или нет?) не переживать... Этой статьей я хотел сократить или перенаправить на большую продуктивность время соискателя знаний в этом направлении.

Читать далее
Total votes 3: ↑2 and ↓1+1
Comments4

Кросс-браузерное тестирование с Cypress в CI с использованием Docker

Reading time11 min
Views3K

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

В статье описан один из возможных вариантов кросс-браузерного запуска автотестов Cypress на платформе GitHub Actions с использованием Docker.

На простом примере показана настройка рабочего процесса, в рамках которого на основе “кастомного” Docker образа выполняется сборка нескольких контейнеров, в которых имеющиеся автотесты Cypress запускаются в конкретном браузере. Для одновременного запуска и параллельного выполнения тестов используется Docker Compose. Также настроена загрузка сгенерированных Cypress видео и снимков экрана из контейнеров в виртуальную среду GitHub Actions в качестве артефактов рабочего процесса.

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

Читать далее
Total votes 4: ↑4 and ↓0+4
Comments9

Пришло время пересмотреть структуру проектов на .NET

Level of difficultyEasy
Reading time11 min
Views16K

C релизом .net 6 у нас появился новый упрощенный подход для быстрого создания сервисов  Minimal APIs. Эта статья появилась потому, что с новым подходом появились новые вопросы, связанные с организацией кода внутри проекта.

Это — немного вольный перевод статьи "Maybe it's time to rethink our project structure with .NET 6" от Tim Deschryver про подход к созданию сервисов с помощью Minimal APIs, который может помочь нам сделать архитектуру приложения более чистой, простой и легкой в поддержке и развитии.

Читать далее
Total votes 16: ↑13 and ↓3+10
Comments24

Как на самом деле работает Async/Await в C# (Часть 3)

Level of difficultyHard
Reading time6 min
Views13K

Несколько недель назад в блоге «.NET Blog» появилась статья «Что такое .NET, и почему вы должны выбрать его?». В нем был представлен высокоуровневый обзор платформы, кратко описаны различные компоненты и архитектурные решения, а также обещаны более подробные посты по затронутым темам. Этот пост является первым таким продолжением, в котором подробно рассматривается история создания, архитектурные решения и детали реализации async/await в C# и .NET.

Читать далее
Total votes 12: ↑12 and ↓0+12
Comments3

Information

Rating
Does not participate
Location
Нижний Новгород, Нижегородская обл., Россия
Date of birth
Registered
Activity