
Ниже небольшой список книг, которые лично я могу рекомендовать для чтения всем программистам, в том числе начинающим. Как это обычно бывает, что купил, то и продаю.
Software Engineer, Solution Architect
Ниже небольшой список книг, которые лично я могу рекомендовать для чтения всем программистам, в том числе начинающим. Как это обычно бывает, что купил, то и продаю.
В современном мире данных нагрузка на базы данных стремительно растёт. Когда один сервер перестаёт справляться с объёмом запросов, встаёт вопрос о масштабировании: как эффективно распределить нагрузку, сохранив высокую производительность и доступность?
Существует множество стратегий решения указанной проблемы. Сегодня мы разберем самые популярные из них — репликацию, партициривание и шардирование. Рассмотрим их принципы, плюсы и минусы, а также лучшие практики применения. Понимание этих техник поможет разработчикам и архитекторам строить отказоустойчивые, масштабируемые и высокопроизводительные системы хранения данных.
Я недавно решила углубленно разобраться, какие архитектуры бывают в разработке ПО, и написать об этом простую статью. Это моя первая попытка поделиться своими мыслями и объяснить сложные вещи на понятном языке, поэтому буду рада вашей обратной связи
Здесь я рассказываю про монолиты, микросервисы и микрофронтенды без сложных терминов и технических деталей, чтобы те, кто только начинает разбираться в теме, могли понять, что к чему. Надеюсь, вам будет полезно и интересно. Поехали! 🚀
Привет, постоянные и не очень читатели :)
Это снова я — с четвёртой статьей из цикла про архитектуры, процессоры и всё такое. Напомню, как всё было:
Part I: Скандальное разоблачение x86: ARM врывается с двух ног
Part II: Этой индустрии нужен новый герой: ARM врывается с двух ног
Part III: Китайский киднеппинг: похищение дочки
Part IV: RISC-V — звезда родилась: x86 не у дел, ARM сломала две ноги← ВЫ ЗДЕСЬ
Как по мне, сейчас идеальное время для четвёртой статьи из цикла — в процессорах и архитектурах всё скучно (со времён M1 ничего удивительного не было) + вашему покорному слуге нужно было убедиться, что сабж не помрёт, а расцветёт, как стронгилодон крупнокистевой.
Привет, Хабр! Меня зовут Толя, я лидер компетенции Java в Цифровом СИБУРе. Наш прошлый материал о Docker собрал классный фидбэк, поэтому мы решили развить тему и подготовить ещё несколько статей, двигаясь от простого к сложному.
В этом материале речь пойдёт о том, что помогает избежать конфликтов зависимостей и проблем с изоляцией, возникающих при запуске нескольких приложений на одном сервере. Для решения этих задач используются технологии контейнеризации, которые позволяют создавать изолированные окружения для приложений, устраняя проблемы совместимости и упрощая процесс развёртывания. Рассмотрим, как работает контейнеризация и какие инструменты помогают сделать её максимально эффективной.
Как-то мы лежали в кровати с нашим малышом и жена сказала, что фотографий и видео с ним стало больше и она не хочет использовать платное приложение. Примерно так начинается рассказ создателя Immich – бесплатного open-source решения для хранения фотографий и видео.
Надо сказать, в последние годы я тоже регулярно пытался найти бесплатную self-hosted альтернативу Google Photos и iCloud, однако до сегодняшнего дня функциональных и вместе с тем простых в настройке решений я не встречал. Тот же Nextcloud всегда казался чересчур громоздким. Immich же, напротив, сразу завоевал моё сердце, и вот, после нескольких недель его использования, с радостью делюсь своим рабочим примером.
Привет, Хабр! Это Саша Бардаш, главный архитектор интеграционных платформ в МТС Диджитал. В прошлый раз я рассказывал о пяти книгах, которые стоит почитать начинающему ИТ-архитектору. Большое спасибо всем, кто читал. Были интересные комментарии на тему, какие еще книги почитать — кое-что из этого я добавил в свою новую подборку. Итак, под катом пять книг, которые будут интересны уже более опытным ИТ-архитекторам. Что ж, поехали!
Всем привет! На связи Максим Чудновский и Александр Козлов, мы занимаемся развитием интеграционной платформы Synapse. Это сloud-native децентрализованная платформа для интеграции и оркестрации микросервисов, которая разрабатывается в СберТехе.
Сегодня есть множество протоколов, обеспечивающих эффективную коммуникацию между различными компонентами приложений и систем. Два ярких представителя таких технологий — Dubbo и gRPC, которые, по мнению некоторых экспертов, имеют поразительное сходство. Но действительно ли они так уж похожи?
Мы подготовили два материала на тему интеграционных фреймворков. В этой статье познакомим вас с Dubbo, вспомним про базовое устройство Service Mesh и покажем, как мы на Java обычно решаем вопросы интеграции в наших системах. Во второй статье соберём демоприложение на базе фреймворка Dubbo.
TL;DR
Игры от Zachtronics:
TIS-100, EXAPUNKS, SHENZHEN I/O
Про создание процессора от логических элементов и до написания кода на ассемблере: браузерная бесплатная nandgame.com, более продвинутая Turing complete.
Если Вам нравится какая-то игра из перечисленных - наверно, и остальные тоже подойдут. В каждую из них я наиграл по 30+ часов, получил кучу удовольствия и научился чему-то новому.
Создание собственного облачного хранилища с автоматическим менеджером фотографий.
Изучение опенсорс софта, нацеленного на автоматический менеджинг фотографий, сравнение софта между собой, установка на тестовый сервер, просмотр с разных устройств.
Недавно я задался вопросом, могу ли я оптимизировать процесс поиска чего-либо в документации любого языка/библиотеки/фреймворка. Прыгать с сайта на сайт – не самая лучшая идея, ибо интерфейсы документацией отличаются, а я хотел унификации.
Сначала мне пришла мысль взглянуть на уже существующие решения, среди которых есть мною любимый Zeal, однако, он доступен только для Windows и Linux, я же крепко сижу в заложниках на MacOS из-за специфики работы и удобства.
На сайте Zeal предлагают перейти на сайт Dash, который по сути является прародителем Zeal, однако, он платный и за него невозможно заплатить в пределах РФ, поэтому я продолжил дальше искать аналоги.
Среди альтернатив также есть DevDocs, который может работать оффлайн в браузере (благодаря PWA), однако, я заметил, что все время держать открытой лишнюю вкладку для поиска в доках было не лучшей идеей (ибо вкладку все равно нужно было бы искать, среди тонны вкладок со StackOverflow и прочим).
Решение с быстрым поиском
В Firefox и Google Chrome есть возможность добавить собственную поисковую систему (или же поиск по сайту), чем собственно я и воспользовался. При поиске в devdocs все GET-запросы уходят по урлу:
У нас в компании 8 мобильных приложений и почти столько же мобильных команд. Конкретно наша работает с приложением для покупателей. Когда нас было немного, по 6-10 человек в iOS, Android и QA–командах, мы отлично справлялись с задачами. С ростом столкнулись с проблемой: чем больше у тимлида людей в подчинении, тем меньше он может уделить времени каждому, меньше времени имеет на погружение в задачи. В итоге качество управления команд начинало ухудшаться и с этим нужно было что-то делать
Решение мы нашли в распределении команд по стримам.
В этой статье расскажу как у нас организована работа для 30+ мобильных разработчиков и 14 QA: как мы планируем, делимся знаниями и что нам даёт этот подход.
Если вам интересно, какие инструменты не любят инженеры в бигтехе, почему проджекты там скорее не нужны, для чего на самом деле Scrum, и как стоит подходить к ведению проектов, если есть цель вырастить хорошую инженерную культуру и регулярно добиваться необходимых компании результатов, залетайте под кат и давайте разбираться вместе!
Они встретились, увлеклись одной идеей и написали статью, давшую старт, возможно, самому значительному технологическому прорыву в новейшей истории.
Как и многие научные открытия это произошло по счастливой случайности...
Регулярно имею дело с собеседованиями: как прохожу, так и провожу их. Накопив опыт, решил поделиться мнением, что с техническими собеседованиями не так. Разберу частые ошибки собеседующих и расскажу как, а главное зачем можно улучшать процесс технических интервью.
«Баннерная крутилка» — один из самых высоконагруженных сервисов в Яндексе. Он умеет переживать 700 тысяч RPS, а иногда и больше. Каждый раз, когда приходит запрос, крутилка должна просмотреть базу из миллиарда документов и выбрать из них самые релевантные для пользователя. При этом выдерживаются весьма жесткие временные рамки: 99% всех запросов обрабатываются менее чем за 200 миллисекунд.
Какими принципами стоит руководствоваться при построении подобных высоконагруженных систем? Как устроены стадии отбора документов? Какое участие в ранжировании принимает ML? Обо всём этом на недавнем мероприятии для разработчиков в Ереване рассказал Артём Ваншулин, руководитель разработки ранжирования в команде баннерной системы. Сегодня мы делимся с сообществом текстовой версией его доклада. Передаём ему слово.
Всем привет! Я Юнес, SDET в Тинькофф. Помогаю автоматизаторам создавать более эффективные и надежные тесты, готовить тестовые данные и настраивать CI/CD-пайплайны.
Расскажу о доступных способах оптимизации Spring-контекста для тестов. Будет здорово, если у вас есть знания о Spring Framework и опыт написания тестов: тогда мы будем на одной волне. Давайте разберемся в хитросплетениях аннотаций и конфигураций вместе под катом!
Я нашел свою систему «Личного планирования», о чем я поделился в этой статье и передаю этот опыт студентам курсов по менеджменту в Практикуме.
В этой статье расскажу:
— Зачем начинать планирование в начале дня,
— Почему нужно ограничивать количество задач и блокировать время для их выполнения,
— Какие приложения помогают отслеживать продуктивность,
— Зачем подводить итоги дня и анализировать свою эффективность.
О нашем девятимесячном пути к горизонтальному шардингу Postgres-стека Figma и о возможности обеспечения (почти) бесконечной масштабируемости.
Вертикальное разбиение было относительно простым и важным инструментом масштабирования, позволившим нам быстро добиться существенных улучшений. Кроме того, оно стало важным этапом на пути к горизонтальному шардингу.
С 2020 года стек баз данных Figma вырос почти в сотню раз. Это хорошая проблема, ведь она означает, что наш бизнес расширяется. Но в то же время она стала причиной технических сложностей. В течение последних четырёх лет мы усиленно старались не отставать от прогресса и избегать потенциальных проблем, связанных с ростом. В 2020 году у нас работала единственная база данных Postgres, которая хостилась на самом большом физическом инстансе AWS, но к концу 2022 года мы уже создали распределённую архитектуру с кэшированием, репликами для чтения и десятком вертикально разделённых баз данных. Мы разбили группы связанных таблиц (например, «Figma files» или «Organizations») на отдельные вертикальные разделы, что позволило нам обеспечить удобство инкрементального масштабирования и оставить достаточно пространства для дальнейшего роста.
Привет, Хабр! Я Саша Шутай, руководитель направления PHP в AGIMA. Хочу обсудить важные для тимлидов вопросы: как управлять бэклогом и правильно распределять время, нормально ли отвлекаться во время работы, как овертаймить, не выгорать и успевать жить. Статья в первую очередь будет полезна начинающим тимлидам. Ну а матерые руководители команд найдут в ней советы по оптимизации работы.