Уже не безработный ;)
Паттерн Circuit Breaker
Привет, Хабр!
Каждая секунда простоя может стоить компании целое состояние, важно иметь надежные механизмы защиты от сбоев. Здесь и приходит на помощь паттерн Circuit Breaker.
Представьте себе обычный автоматический выключатель в вашем доме. Когда происходит перегрузка, он "выбивается", предотвращая возможные повреждения. Точно так же работает и Circuit Breaker в микросервисах. Он мониторит вызовы к внешнему сервису и при обнаружении слишком большого количества неудачных попыток временно "отключает" вызов, предотвращая тем самым падение всей системы.
Этот паттерн основывается на трех основных состояниях: закрытое, открытое и полуоткрытое.
Gopher, вы слышали это слово?
Gopher
«To Gopher, the world is just one big file system»
Gopher — один из протоколов интернета, был популярен в начале 1990-х, впоследствии его роль уменьшилась. В основном с повсеместным развитием WWW. Ошибочно считается (а именно так написано в русской и английской википедии), что протоколы Gopher и HTTP были своего рода конкурентами, это и привело к уменьшению доли одного и увеличению другого. Нет, изначально Gopher был разработан для своеобразной замены FTP, протокола, который был разрабтан еще в 1960-х годах.
Telegram-bot для поиска укрытий (публикую после событий в Белгороде 30.12.23)
Эта статья, как и приложение были написаны на прошлых новогодних праздниках, но по ряду причин, я не решился публиковать текст, так и остался он в черновиках. Вчера случилось страшное - в канун новогодних праздников город Белгород, в котором я живу, попал под массированный обстрел кассетными боеприпасами, моя семья также попала в сектор бомбардировки, чудом спаслись и не пострадали. Все произошло быстро, эти несколько минут перевернули жизни сотен семей. Когда мы вышли из укрытия, стало понятно, что будут десятки погибших. Увы, не сработали никакие системы превентивного предупреждения.
Как проходят архитектурные секции собеседования в Яндексе: практика дизайна распределённых систем
Технический уровень кандидата у нас оценивается за счет всего двух типов интервью: секции с кодом и секции дизайна компьютерных систем. Первый тип мы назначаем всем претендентам вне зависимости от их уровня, а вот у кандидатов, которые претендуют на должность старшего специалиста, нужно проверять не только способность писать эффективный и работоспособный код, но и способность разрабатывать сложные системы в целом.
Что такое дизайн информационных систем
Основная цель любой IT-компании — производить сервисы, которые решают задачи пользователей. Мы должны уметь собирать элементы системы в единый механизм, который будет эффективно выполнять поставленную цель, и если первый тип собеседований нацелен в первую очередь на проверку необходимого минимума, то интервью про дизайн систем проверяет достаточность навыков кандидата в достижении конечной цели. Далекому от IT пользователю принципы и устройство систем могут казаться бесконечно сложными, но мы, их разработчики, должны иметь (не обязательно детальное) представление о принципах функционирования и роли каждого компонента.
Опытный читатель может сказать — в мире полно платных и бесплатных решений, из которых я могу собрать систему как из деталей конструктора, зачем мне понимать устройство этих деталей?
System Design 101
О сложных системах простыми словами.
В шпаргалке на высоком уровне рассматриваются такие вещи, как протоколы коммуникации, DevOps, CI/CD, архитектурные паттерны, базы данных, кэширование, микросервисы (и монолиты), платежные системы, Git, облачные сервисы etc. Особую ценность представляют диаграммы — рекомендую уделить им пристальное внимание. Полагаю, шпаргалка будет интересна всем, кто хоть как-то связан с разработкой программного обеспечения и, прежде всего, веб-приложений. Буду признателен за помощь в уточнении/исправлении понятий, терминологии, логики/алгоритмов работы систем (в рамках того, что по этому поводу содержится в оригинале), а также в обнаружении очепяток.
Выражаю благодарность Анне Неустроевой за помощь в редактировании материала.
Возможно, немного другой формат шпаргалки покажется вам более удобным.
Быстрее быстрого в СУБД
Привет! Меня зовут Сергей, я технический эксперт в компании Bercut. Когда-то увлекался Delphi и J2ME, издал несколько книг на эти темы, и профессионально уже около 20 лет создаю высоконагруженные приложения баз данных, используя для этого PL/SQL и SQL.
В Bercut мы занимаемся разработкой и развитием IT-продуктов и решений для операторов цифровых услуг и мобильных сервисов. Наши системы работают на различном железе, разных СУБД и обслуживают 24x7x365 в режиме онлайн сотни миллионов абонентов по всему миру. И это только кажется, что абонент один раз в день куда-то позвонил и все, больше никакой нагрузки от него нет и никто с ним не работает. На самом деле каждый смартфон каждого абонента непрерывно обменивается данными с сетью, а это все работа инфраструктуры операторов сотовой связи, а значит, нашего ПО. Как же система справляется с таким огромным объемом нагрузки?
Сегодня расскажу, что нужно делать и чего избегать, чтобы построить максимально производительную систему на примере СУБД Оракл.
Как за 60$ создать систему распознавания лиц с помощью Python и Nvidia Jetson Nano 2GB
Новый набор инструментов для разработчиков Nvidia Jetson Nano 2GB представляет собой одноплатный компьютер с графическим ускорителем стоимостью 59$, работающий под управлением программного обеспечения с искусственным интеллектом.
Производительность, которую вы можете получить от одноплатного компьютера за 59$ в 2020 году, просто потрясающая. Давайте попробуем использовать этот продукт, чтобы собрать простой вариант домофона, который будет отслеживать всех людей, подходящих ко входной двери вашего дома. С помощью алгоритма распознавания лиц система мгновенно узнает, приближался ли когда-нибудь в прошлом к вашей двери этот человек, даже если в прошлый визит он был одет по-другому.
Реактивное программирование со Spring
Эта серия заметок служит введением в разработку реактивных веб-приложений с использованием Spring Boot, Project Reactor, WebFlux и R2DBC. Это руководство по реактивному миру для новичков, но предполагается, что читатель уже знаком с Java и Spring Boot.
В первой части представлен обзор различных концепций реактивного программирования и их истории. Вторая часть представляет собой введение в Project Reactor с большим количеством коротких примеров кода. В третьей части рассматривается WebFlux - реактивный веб-фреймворк Spring. И, наконец, четвертая часть посвящена R2DBC - Reactive Relational Database Connectivity.
Как тестировать не-REST-бэкенд. Часть вторая, WebSocket
Привет! Продолжаем цикл статей про тестирование не-REST-бэкенда, в прошлый раз мы говорили о GraphQL, теперь пришло время WebSocket.
Итак, что такое WebSocket?
Википедия сообщает, что это «протокол связи поверх TCP-соединения, предназначенный для обмена сообщениями между браузером и веб-сервером, использующий постоянное соединение».
Что тут важно — что это протокол (со всеми вытекающими последствиями для протокола), который использует постоянное соединение.
Работу по WebSocket в обычной жизни можно представить примерно так.
Вы живете в квартире вместе с семьей, решили поработать, ушли в отдельную комнату и закрыли за собой звуконепроницаемую дверь (ну а как еще работать-то). В общем, сидите, работаете, и вообще не слышите происходящего в квартире. Заметите только, если вам кто-то постучить в дверь.
И тут к вам в дверь стучит, скажем, жена, вы открываете, и она говорит, что ей надо уехать по делам вместе с остальными членами семьи, вы в доме за старшего, и надо будет встретить курьера, который скоро приедет.
ОК, что вам делать в такой ситуации?
Вышла Java 21
Java 21 является LTS-релизом, а значит у него будут выходить обновления как минимум 5 лет с момента выхода.
Скажи «нет» Electron! Пишем быстрое десктопное приложение на JavaFX
Если вы не знаете Electron, то это по сути веб-браузер (Chromium) в котором работает только ваше веб-приложение… словно настоящая десктопная программа (нет, это не шутка)… это даёт возможность использовать веб-стек и разрабатывать кросс-платформенные десктопные приложения.
Самые новые, хипстерские десктопные приложения в наше время сделаны на Electron, в том числе Slack, VS Code, Atom и GitHub Desktop. Необычайный успех.
Мы писали десктопные программы десятилетиями. С другой стороны, веб только начал развиваться менее 20 лет назад, и на протяжении почти всего этого времени он служил только для доставки документов и анимированных «гифок». Никто не использовал его для создания полноценных приложений, даже самых простых!
Создаем нативное Kotlin приложение на Spring Boot Native, Gradle и GraalVM без докера под MacOS и Windows
В этой статье я хочу рассказать о практическом опыте нативной компиляции production приложения, написанного на Kotlin со Spring Boot, Gradle с использованием GraalVM . Начну сразу с минусов и плюсов самой возможности нативной компиляции и где она может быть полезна, и дальше перейду уже непосредственно к процессу сборки под MacOS и Windows.
В конце статьи я более подробно расскажу о проекте и почему возникла такая необходимость, учитывая довольно много ограничений и подводных камней поддержки нативной компиляции как со стороны Spring Boot, та и со стороны GraalVM.
Как я создал курс по программированию на Rust, вышел на мировой рынок и увеличил прибыль в десятки раз
C 2010 года вместе с тем, как свет увидел новый язык программирования Rust от Mozilla я начал его изучение и применение. Время шло, но он стабильно показывал отличное соотношение тех, кто хочет использовать его, кто уже использует и кто планирует делать это дальше.
С появлением стабильной версии 1.0 в 2015 году было решено «с головой» погружаться в изучение и пилить курс, который бы в «экспресс» режиме позволил познакомиться с основами и понять, как использовать Rust на практике.
В кейсе поговорим о создании курса, разочаровании в российском рынке, выходе материала в мир и увеличении доходов с его продажи почти в 10 раз.
Производство корпусов «в силикон» на пальцах: поэтапно и с анимацией
Это вам не 3D-принтер гонять, тут все по-взрослому. Покажем производство корпусов по очень популярной технологии литья полиуретана в силиконовые формы — как это делается; и расскажем о рисках и ошибках. Зачем? Чтобы цена разработки и производства корпуса неожиданно не стала в несколько раз выше, чем вы планировали.
Railway и Render, как замена бесплатного тарифа Heroku
Как многим известно Heroku с 28.11.2022 прекращает поддержку бесплатных аккаунтов. И у меня, как и у других пользователей бесплатного аккаунта, возник вопрос: «Куда же теперь переезжать?» Я нашёл два подходящих сервиса, которые, на мой взгляд, могли бы заменить Heroku. Так как я не увидел статей на Habr на тему, куда можно мигрировать с Heroku, то решил написать небольшую инструкцию по переезду. Надеюсь кому-то она будет полезной.
Будущее живой музыки или причуда миллиардера? Как устроена самая крупная сферическая конструкция в мире
Первый стадионный концерт состоялся в 1965-м году, когда The Beatles выступили на нью-йоркском Shea Stadium перед 55 000 кричащих фанатов. Этот концерт, на котором «Битлз» заработали более 160 000 долларов за 28 минут работы, стал атрибутом статусности и коммерческой мощи музыкантов. В 1970-е годы стадионы стали основной площадкой для концертных исполнений популярной музыки. От звёзд кантри и рок-музыки до более традиционных певцов, таких как Фрэнк Синатра и Барбра Стрейзанд, популярные исполнители стали привлекать аудиторию от 20 000 до 100 000 человек за один раз.
Музыканты смотрели на стадион как на способ выступить перед наибольшим количеством людей и заработать больше денег, а значит переход к стадионам, как минимум из чисто коммерческих соображений, был неизбежен. Но удерживать внимание 20 000 (или даже более) человек одновременно было серьёзной задачей для тех, кто выступал. И вскоре исполнителей стали сопровождать свои концерты спецэффектами, вроде пиротехники или лазерного светового шоу. Если для небольших клубных выступлений была характерна ламповость, то для стадионных концертов стала характерна зрелищность.
С тех пор такие концерты стали прерогативой самых популярных и успешных музыкантов мира: The Queen, U2, Мадонны, Эминема, Metallica, Майкла Джексона и других. Но концерт на стадионе часто означает плохую видимость и плохой звук для большинства зрителей. Но развитие технологий не могло не коснуться и этой отрасли развлечений. Новая эра живых развлечений начнётся в конце сентября 2023-го года, когда U2 выступят в «Сфере». Геометрическая фигура высотой 112 м и шириной 157 м в Лас-Вегасе попробует полностью переосмыслить стадионные концерты.
Вам достался проект. Но есть один нюанс…
Привет Хабровчане!
В моей практике были проекты, где я начинал со старта, а где приходилось включаться на этапе реализации. Иногда при вхождении в проект хочется отказаться, так как просто не понятно, а что ожидает заказчик или техническое задание оставляет массу вопросов.
В рамках одного проекта в компании ОТР 2000 были трудности с самим техническим заданием, но благодаря команде проекта (всех помню, вы лучшие с кем я когда-либо работал) удалось нивелировать отставание по проекту, и вывести команду из состояния перманентного цейтнота.
В рамках другого проекта в компании Spora, сам заказчик предложил подобный подход (Эрнест Юрьевич, эти знания до сих пор мне помогают, сердечно вас за это благодарю), что позволило добиться хороших результатов и сформулировать план на длительный период, которые реализовывался с опережением графика и при этом в команде была здоровая атмосфер.
Был проект, где до срока сдачи оставалось два месяца, а прогноз по работам был на пять месяцев:))) Но получилось. Основная сложность была не в техническом задании или непонятных целях, а в постоянно растущих объемах и небольшом административном хаосе.
Как удавалось решить данные вопросы и хотелось рассказать.
«Входить в IT неспеша» или как стать Middle Java Backend разработчиком минуя ступень Junior
Статья о том, как шаг за шагом при дефиците свободного времени обучиться и устроиться на работу сразу Middle Java разработчиком перескочив через Junior ступеньку, основанная на личном опыте, и о том, как мне это помогло, когда сразу после трудоустройства пришлось тянуть проект практически в solo.
Статья родилась как некий ответ на вопросы, которые мне часто задавали люди, находящиеся в таком же положении, как и был когда‑то я, когда времени на обучение почти нет и хочется войти в IT кем‑то выше, чем Junior разработчик.
Разработка блока управления боковыми зеркалами автомобиля
Особенности разработки автомобильной электроники, некоторые хитрости и почти весь процесс создания блока на примере простого устройства.
Information
- Rating
- 3,640-th
- Registered
- Activity