Привет, мимо пробегающий читатель!
В прошлой статье я обмолвился, что, возможно, опишу конфигурацию присутствующих в решении маршрутизаторов Juniper MX204. Близится конец года, и напоследок я решил написать небольшую статью на эту тему.
Привет, мимо пробегающий читатель!
В прошлой статье я обмолвился, что, возможно, опишу конфигурацию присутствующих в решении маршрутизаторов Juniper MX204. Близится конец года, и напоследок я решил написать небольшую статью на эту тему.
За последние пару лет не раз можно было услышать про новые инструменты
сборки статики, такие как SWC, esbuild и Vite. Все они обещают нам next
gen-оптимизацию времени сборки, а SWC ещë и грозится оптимизировать
скорость выполнения тестов на Jest; более того, судя по документации,
сделать это очень просто. Я решил проверить, так ли это на самом деле и
каким будет результат. Если вам интересно, что из этого получилось и
какие были проблемы, то прошу под кат.
В предыдущей статье я рассказывал, как построить простой кластер Kubernetes с одним мастер-узлом. Прошло время, опали листья... и мне захотелось большего, поэтому решил позариться на высокодоступные кластеры. В интернете много статей о том, как построить подобное решение, и давайте даже опустим тот факт, что многие из них уже устарели. Одно дело — установить кластер, а как же обслуживание: удаление, добавление, замена узлов? Про это и не вспоминают! В итоге оказалось, что не всё так просто, и вот, спустя больше ста установок, удалений и замен, у меня получилось собрать подробнейшее руководство по установке и, главное, обслуживанию highly available кластера с помощью Kubespray.
Конфигурирование приложений — это интересная тема. Мало того, что форматов конфигурации в сообществе инженеров много, ситуация осложняется тем, что выбор того или иного языка определяет, как вашим приложением будут пользоваться люди. Инженеры, которые будут выкладывать ваш бэкенд в абстрактную dev- или prod-среду, будут смотреть на ваше приложение как на чёрный ящик с одной лишь ручкой: механизмом настроек.
Я, как инженер, встречал удобные и не очень текстовые конфигурации: conf в Nginx, ini в systemd, JSON в VSCode… А также YAML. Он не стал новым словом в языках, но показал, какой красивой может быть конфигурация. Впрочем, сам по себе язык тупой как пробка: если вы попробуете писать на YAML что-то сложное, с переменными или циклами, то получится химера вроде Ansible. Или вроде манифестов Kubernetes, у которого диалект настолько переусложнён, что его приходится шаблонизировать с помощью Helm.
Да, как понятно из заголовка, я хочу поговорить про язык Terraform, но сначала…
Друзья, всем привет! Как известно, в Kubernetes у каждого pod’а есть ограничение на использование памяти (limits.memory), и, как показывает опыт, далеко не всегда очевидно, как JVM-приложение интерпретирует эту настройку, что порой может приводить к OOMKill.
Приветствую, дорогой читатель!
Меня зовут Евгений, я занимаюсь развитием сетевой инфраструктуры в Домклик. Сегодняшняя статья будет охватывать только применение динамической маршрутизации на основе FRRouting (FRR), но, возможно, в будущем я напишу продолжение о том, как конфигурировать другое оборудование, которое вы встретите в тексте.
Приветствую всех, уважаемые читали! Меня зовут Сергей Семенов, я frontend-разработчик в компании Домклик. Эта статья посвящена созданию интерактивного приложения для визуализации алгоритмов сортировки. Надеюсь, многим из вас тема покажется интересной. Уверен, что вы успешно пройдёте через все этапы разработки и пополните свою копилку пет-проектов.
Привет, меня зовут Кристина, я фронтенд-разработчик в Домклик. Хочу рассказать немного про основные изменения React 18.
Друзья, всем привет! Меня зовут Игорь Карелин, я frontend-разработчик в компании Домклик. В прошлой части мы разобрались, как настроить и запустить проект, а сегодня продолжим создавать наш планировщик и поэтапно разберём создание аутентификации с помощью библиотеки Passport.
Недавно я сменил работу и, как все новички, столкнулся с трудностями адаптации на новом месте. Предыдущие 5 лет я работал в одной компании и выступал стороной, принимающей людей в команду. И вот мне довелось побывать на их месте.
В этой статье я хочу поделиться с вами чувствами, которые испытывает человек, пришедший на новое место, а также рассказать о нескольких приёмах, которые с большей эффективностью помогут интегрировать в команду (и чувствовать себя комфортнее) не только новоиспеченного стажёра, но и бывалого ветерана. В старой компании я прошёл путь от бекенд-джуна до техлида и приобрёл там большую часть своих практических навыков.
Существует много руководств и инструкций по созданию базовых бекенд-приложений. Также в сети можно найти пошаговые tutorial по сборке приложения и развёртыванию на сервер, либо подробные инструкции для популярных CI/CD-инструментов. Описанных в них шагов достаточно для запуска pet-проектов, но для полноценных приложений, которые должны будут выдержать пиковые нагрузки от большого количества пользователей и при этом бесперебойно работать, нужна более детальная и качественная подготовка. Ниже я опишу шаги, которые обязательны для инженеров из моих команд при первом развёртывании веб-приложения в production и при дальнейшей выкатке крупных фич.
Наверное, каждый из нас задумывался о том, как было бы классно, если бы кондиционер сам включался, когда мы подходим домой. Однако для управления всеми устройствами либо используют готовое решение из облака, либо приходится заморачиваться с покупкой микрокомпьютера, чтобы умный дом не стал глупым без интернета :) Но нужен ли для этого микрокомпьютер, если наверняка в шкафу лежит запылившийся планшет или смартфон, который когда-то работал и с более требовательными приложениями?..
Программный код часто содержит баги, и это нормально. Мой первый скрипт был для раскладывания скриншотов по датам и названию игр. Тестировал его я, разумеется, руками, поэтому заняло это несколько дней. Знай я на тот момент хоть один фреймворк тестирования, весь процесс отладки занял бы считанные часы.
Сейчас я пишу больше инфраструктурного кода: утилиты бэкапов, скрипты мониторинга, Kubernetes-манифесты, Ansible-плейбуки, Terraform-модули, и, чуть не забыл, CI/CD. Иногда он бывает простым, иногда странным, но чаще — нетестируемым. Инфраструктурный код — это код в мешке: пока не запустишь — не узнаешь, что случится. В среднем я делаю 10—20 запусков пайплайна в Jenkins, чтобы довести код CI до рабочего состояния.
Ах да, не протестированный инфраструктурный код может быть просто опасным. В лучшем случае он может запуститься во всех окружениях и упасть во время сборки в production, в среднем — стереть бэкап или выдавать ложные показания в графане, в худшем — выдавать неконсистентный бэкап на протяжении полугода, пока вам не понадобится его восстановить.
Сейчас расскажу, как можно все эти беды свести к минимуму.
Однажды я купил ноутбук Dell, да не простой, а XPS, о котором мечтал давным-давно, и хотя это была не компактная 13”-14” модель, а 15”, это не помешало ему стать моей верной рабочей лошадкой. Спустя некоторое время ноутбук начал греться и шуметь вентиляторами, в том числе во время простоя. В какой-то момент он просто начал жарить мои штаны.
Как сделать так, чтобы ноутбук не грелся? В этой статье я расскажу про очевидные и подробно рассмотрю нестандартные способы решения.
«Напиши, пожалуйста, кастомный итератор,» — такое задание довольно часто дают на собеседованиях, и я раз за разом вижу обреченные глаза кандидата, когда он сталкивается с подобной просьбой. Опыт участия в собеседованиях показал мне, что большинство начинающих разработчиков бегут от этой темы, потому что она кажется слишком запутанной и непонятной. А ведь ничего сложного в ней нет, если подобраться к ней правильным образом — в чём я и постараюсь помочь дорогим читателям.
Наше путешествие мы начнем с того, что вообще такое итератор. Итератор — это некий объект, который в себе реализует интерфейс перебора чего-либо. А говоря рабоче-крестьянским языком — это такая штука, которая в себе описывает правило, по которому мы будем перебирать содержимое той или иной коробки.
Всем привет! Мы — команда Smart vision в Домклик, и мы предлагаем нашим клиентам различные инструменты для помощи в подборе жилья, чтобы им было как можно комфортнее. Один из таких инструментов — автоматическая расстановка мебели, чтобы наши пользователи смогли посмотреть на трёхмерную квартиру с обстановкой и лучше понимали размеры помещения. Пока программа доступна в тестовом контуре внутри экосистемы Домклик. Мы не рассматриваем этот алгоритм в качестве инструмента для идеальной расстановки мебели, это лишь помощь клиенту в расстановке мебели для дальнейшей работы с ней.
Есть много статей о решении этой задачи: с применением GAN, который генерирует на плане помещения цветовую область для размещения мебели; с помощью классических методов на основе набора правил; или с помощью более редких графовых методов. Но все существующие методы объединяет объединяет то, что все они или не реализованы (либо находятся в закрытом доступе), или не учитывают, например, окна и двери, а также тип помещения (гостиная, спальня, детская, кухня, санузел и т.д.). Мы постарались избавиться от этих недостатков в своём инструменте.
Друзья, всем привет! Меня зовут Игорь Карелин, я frontend-разработчик в компании Домклик. В серии статей мы поэтапно разработаем продвинутое приложение-планировщик. Сначала создадим и настроим монорепозиторий c помощью NX, разработаем интерфейс с помощью React, добавим backend на основе NestJS, и, наконец, подключим базу данных MongoDB.
Много ли среди ваших знакомых выдающихся в юности личностей? Я помню, как моя подруга детства В. получала четвёрки и пятёрки по большинству дисциплин, делая «домашку» на переменах, ходила на олимпиады, а в классе была душой компании. Однажды она перешагнула через класс. Поступила в хороший ветеринарный институт. Все её называли «чудом». Спустя полтора года после выпуска она попала в психиатрический стационар с депрессией и расцарапанными руками. Сегодня она учится жить заново уже без звания «чуда».
Другая история: мой близкий человек Л. пошла в школу в 5 лет, училась отменно, без проблем запоминала стихи, обладала фотографической памятью, едва не перешагнула через класс. Все только и говорили, «какой колоссальный у неё потенциал». Спустя год после выпуска Л. вылетела из одного колледжа, потом из второго. На частных курсах и мастер-классах она постоянно выгорает, сейчас обучение даётся ей с непосильным трудом.
Ещё я помню, как Игорь учился на «отлично» почти по всем предметам (кроме, пожалуй, физкультуры), как школа отправляла его на олимпиады по информатике, а вне уроков он преуспевал на различных кружках. Конечно, он не всегда интересовался тем или иным занятием, но если что-то захватывало его, то он захватывал это в ответ. При этом его хвалили учителя, а родители называли «талантливым». Спустя несколько лет после выпускного Игоря, возможно, ещё можно назвать талантливым специалистом, но в нём нет прежней энергии. Он не интересуется новыми науками, разочаровывается во всём, за что берётся, с трудом сосредотачивается, и вообще вымотан.
Привет, Хабр! С ростом количества микросервисов и их взаимосвязей может возникнуть потребность комплексной проверки работоспособности системы. Со временем API сервисов и их поведение может дорабатываться и изменяться, при этом хочется иметь уверенность, что система микросервисов в совокупности ведёт себя согласно ожиданиям. Мы разберём простой пример написания интеграционных тестов, которые в дальнейшем можно встроить в CI/CD-процесс для решения подобной проблемы.
Всем привет, меня зовут Семён, я руковожу разработкой витрины объектов недвижимости в Домклик. Занимал должности от разработчика до директора в разных компаниях и разных странах, проходил этот путь несколько раз и не понаслышке знаю, каково это — выходить из зоны комфорта и в корне менять род занятий. Так, например, происходит при переходе с роли разработчика на роль тимлида. Но сегодня я хочу обсудить следующий возможный шаг в карьере тимлида — переход на директорскую (executive) должность. Он таит в себе много вызовов и неожиданностей. Статья будет интересна тем, кто собирается сделать такой карьерный шаг, а также новоиспечённым СТО, viceCTO, техдирам и прочим Е-level технарям. Прошу под кат.
Ваш аккаунт