Search
Write a publication
Pull to refresh
14
0
evilbloodydemon @evilbloodydemon

Пользователь

Send message

Go scheduler. Простыми словами

Level of difficultyEasy
Reading time6 min
Views39K

В данной статье расскажу о планировщике Go. Основу материала взял из книги Уильяма Кеннеди Ultimate Go. Вначале поговорим о планировщике OS, после перейдем к планировщику Go и сравним их.

Читать далее

Побег от WSL или Как превратить старый ноутбук в домашний сервер для хранения данных и удаленной работы

Level of difficultyMedium
Reading time10 min
Views31K

Делюсь личным опытом превращения старенького ноутбука ASUS X552CL (Intel i5-5200U, 12 ГБ RAM, SSD + HDD), выпущенный 12 лет назад, в полноценный домашний сервер под Linux Ubuntu Server 24.04.5 LTS.

Получилось что-то вроде мини-датацентра на дому — он хранит файлы на жёстком диске с бэкапом в облаке, Docker-контейнеры крутит для дата-аналитики и даже имеет легковесный интерфейс XFCE, при этом есть потенциал к росту до терминала для управления умным домом. Расскажу, почему было решено отказаться от WSL на рабочем ноутбуке Huawei, как настроить удалённый доступ через xRDP (чтобы не было чёрного экрана), запустить там Docker, сборку Superset и JupyterLab с Anaconda (с разными версиями Python), прикрутить Samba-шару для домашнего использования и организовать бэкап в облачном хранилище. В этой статье будет немного технических деталей, щепотка шуток и парочка мемов с советскими плакатами.

Читать далее

Создаём репозиторий в Go через менеджер транзакций

Reading time12 min
Views21K

Всем привет, я Илья Сергунин, веб-разработчик из продуктовой команды Авито. Мы пишем на Go сервис для трейд-ин мобильных телефонов. На его примере покажу, как устроен наш менеджер транзакций.

Читать далее

Ошибки в Go: Обработка, Обертки и Лучшие Практики

Level of difficultyMedium
Reading time8 min
Views6.2K

Go предлагает уникальный и прямолинейный подход к обработке ошибок, отличающийся от try-catch в других языках. Он основан на явной проверке возвращаемых значений, что требует больших проверок, но ведет к более надежному коду. Рассмотрим основы, современные инструменты пакета errors и лучшие практики.

Читать далее

Пиши простой код

Level of difficultyEasy
Reading time4 min
Views53K

И это решит 95% проблем типичного стартапа. Как-то так повелось, что по всему СНГ и его окрестностям на работу набирают зумеров с колоссальным опытом в три года, и они начинают создавать идеальные архитектуры. Да, каждый из вас, как только получает возможность взять на себя хоть малейшую ответственность, сразу вспоминает все прочитанные и не прочитанные книги и пилит свою уникальную архитектуру, непохожую ни на что.

Читать далее

Как правильно оценивать сроки IT-проектов

Level of difficultyHard
Reading time12 min
Views10K

Меня зовут Александр, я CTO компании AppFox. Мы более 10-ти лет занимаемся заказной разработкой и также имеем собственные продукты. 

Читать далее

5 суперспособностей продуктового разработчика

Level of difficultyEasy
Reading time14 min
Views4.6K

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

Читать далее

Сервис поиска за три недели: как сделать и не пожалеть через год

Level of difficultyMedium
Reading time12 min
Views2.8K

Как запустить поисковый сервис, если у тебя всего три недели, а данные нужно агрегировать с десятков источников, каждый из которых работает по своим правилам? Как обойти жёсткие лимиты партнёров, которые ограничивают запросы в 500 RPM и p99 до 5 секунд, когда для быстрой загрузки первых результатов нужно минимум 1000 RPM? Как справиться с геопоиском, когда традиционные решения вроде Elasticsearch не подходят?

В 2022 году 2ГИС запустил сервис бронирования Отелло, и перед нами стояла амбициозная цель — не просто создать поиск, а сделать его быстрым, надёжным и масштабируемым, чтобы успеть занять место на рынке. Спойлер: мы справились. В этой статье расскажем, как именно.

Материал будет полезен бэкенд-разработчикам и продакт-менеджерам, которые сталкиваются с задачами интеграции сложных данных, высокой нагрузки и оптимизации поисковых алгоритмов. А если тебе понравится наш проект, рассмотри нашу вакансию — мы в поисках Senior Golang Engineer

Читать далее

Дело о несрабатывающем тайм-ауте. Проблемы гистограмм Prometheus

Level of difficultyMedium
Reading time20 min
Views2.7K

Привет! Меня зовут Олег Стрекаловский, я старший разработчик в команде корзины маркетплейса. Сервис корзины Ozon отвечает за хранение корзин покупателей и за отрисовку соответствующего экрана в приложении и на сайте. Слежение за стабильностью сервиса — важная задача. В этой статье я расскажу о нюансах интерпретации данных, которые предоставляет система мониторинга Prometheus. Если вы тоже часто всматриваетесь в графики, чтобы понять, как чувствует себя сервис, эта статья для вас.

Читать далее

Devhands Open Sessions c Владимиром Перепелицей. Очереди в 2025м, что выбрать: Kafka, RabbitMQ, NATS или что-то ещё?

Level of difficultyMedium
Reading time46 min
Views3.9K

Привет, Хабр! На прошлой неделе мы провели стрим по очередям с Владимиром Перепелицей (эксперт по большим проектам, очередям и Tarantool, Solution Architect в Exness, создатель S3 в VK Cloud, регулярный спикер и член ПК конференций Highload). Обсудили выбор брокера или системы очередей 2025м году: что поменялось? NATS, его особенности, перспективы, кого он “подвинет” в первую очередь - Kafka или RabbitMQ? Что нового в свежей Apache Kafka 4? Насколько популярны архитектуры, где, например, Kafka основной storage (IoT, сбор метрик и тд). Под катом - расшифровка стрима.

Читать далее

Почему сложно разработать OLAP-базу данных, если у тебя уже есть OLTP

Reading time14 min
Views5.4K

Это адаптированная для Хабра расшифровка доклада Алексея Дмитриева, директора аналитической платформы YDB DWH, которую создаёт команда Yandex Cloud, — компонента нашей гибридной базы данных YDB для обработки аналитических нагрузок. Когда проект только начинался, у нас было много наработок, которые мы успешно переиспользовали в других проектах. Но оказалось, что OLAP‑нагрузка так сильно отличается от OLTP, что за три года пришлось практически написать по ещё одной реализации многих частей системы. Под катом история о том, почему на рынке так мало гибридных баз данных класса Hybrid Transactional and Analytical Processing (HTAP) и какие сложности стоят на пути их разработки.

Читать далее

Соссюр и революция в лингвистике

Reading time7 min
Views14K

«Гипотетические частицы, которых никто никогда не видел, но с введением которых в расчёты наблюдаемая хаотичная реальность начинает выглядеть строго логичной системой? Да не, ерунда какая-то!» – так решили учёные и на полвека забыли о гипотезе Фердинанда де Соссюра, французского студента-лингвиста. Спустя полвека эти частицы (которым он дал название «ларингалы») были обнаружены в одном из новонайденных древних языков, и теория Соссюра перевернула всю лингвистику. Но он об этом уже не узнал. «Трактат о первоначальной системе гласных в индоевропейских языках» так и остался единственной его книгой, изданной при жизни. А сам он умер неизвестным, непризнанным скромным профессором Женевского университета даже без какого-то значимого числа публикаций. Но давайте по порядку.

Читать далее

Как понять своего разработчика: мы не тираны, мы просто своеобразные

Reading time4 min
Views511

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

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

Читать далее

Гореть, но не сгорать: практические советы по борьбе с burnout’ом

Level of difficultyEasy
Reading time7 min
Views1.8K

Битый час подряд переписываете код, а внутри нарастает тревожное ощущение, будто все вокруг разбираются в теме лучше вас, и в любой момент может выясниться, что вы здесь вообще случайно. Или так. Открываете IDE, а внутри пустота. Никакого драйва, лишь сплошное раздражение на таски. Бывало такое? 

Что ж, вы не одиноки. Согласно исследованиям, 58% IT-специалистов регулярно сталкиваются с двумя проблемами: синдромом самозванца и профессиональным выгоранием. 

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

В общем, если чувствуете себя, как этот песик, — советуем заглянуть под кат.

Читать далее

Каждый бэкенд-инженер должен знать, как обрабатывать платежи. Краткое руководство по повторным попыткам платежа

Reading time4 min
Views37K
Любая система, работающая с платежами, должна быть надежной и отказоустойчивой.

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

Сейчас покажу, как это сделать.
Читать дальше →

Принцип каскадного снижения связанности

Reading time9 min
Views6.8K

Часто ли вы слышите о новом принципе проектирования IT-архитектуры? А об обновлении классических принципов? Попробую вас удивить и привнести что-то новое. 😎

У вас никогда не вызывало недоумения, что связанность и прочность (или связность) — это про примерно одно и то же (и то, и другое — это некая связь), но одно — хорошо, а другое — почему-то плохо? 🙂
Но давайте по порядку.

Читать далее

CORS, CORP, COEP, COOP. Разбираемся со всеми CO* и смотрим на нюансы

Level of difficultyEasy
Reading time16 min
Views5.2K

В сети интернет достаточно информации на русском языке по поводу SOP и CORS, но введение в такие технологии как CORP, COEP и COOP показалось недостаточным (а кто-то может видеть эти аббревиатуры впервые). Поэтому решил написать статью по знакомству с cross-origin политиками.

Читать далее

Почему мы построили монолит на чистой архитектуре. И почему это взбесило системных аналитиков

Level of difficultyMedium
Reading time12 min
Views19K

Привет! Меня зовут Павел Лукьянов, я заместитель CTO в AGIMA. На одной из прошлых работ мы с ребятами попробовали внедрить так называемую чистую архитектуру на монолитном проекте. И это был интригующий опыт. Во-первых, мы начали намного рациональнее подходить к оценке задач. Во-вторых, заметно сократили time-to-market. А в-третьих, сильно разозлили наших аналитиков. Считаю, такими впечатляющими результатами стоит делиться.

Читать далее

Психология разработки: как когнитивные искажения влияют на архитектурные решения и качество кода (часть 2)

Level of difficultyEasy
Reading time11 min
Views3.3K

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

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

Читать далее

Information

Rating
Does not participate
Location
Санкт-Петербург, Санкт-Петербург и область, Россия
Registered
Activity