Как стать автором
Обновить
10
0
Разномазов Валерий @DrRaznomazov

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

Отправить сообщение

Еще немного о GraphQL и зачем его использовать

Время на прочтение8 мин
Количество просмотров10K

Меня зовут Рустам, и я техлид в компании Distillery. Мы занимаемся разработкой мобильных приложений и веб-сервисов. Хочу рассказать, как мы с коллегами решили немного поэкспериментировать с технологией GraphQL

Для начала о том, что такое GraphQL. Это язык запросов для API, который разработали в Facebook в 2012 году. Он позволяет клиентам запрашивать ограниченное множество данных, в которых они нуждаются. GraphQL использует строго типизированный протокол, и все операции с данными проверяются в соответствии со схемой. 

Это хороший вариант для проектов, в которых разным типам клиентов (например, мобильному приложению и сайту) нужны разные наборы данных. С GraphQL мы заранее описываем схему запроса и ответа, а клиент сам указывает, какие данные ему необходимы. 

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

В целом у GraphQL есть несколько сильных сторон:

Читать далее
Всего голосов 4: ↑2 и ↓20
Комментарии10

Как Kubernetes создает и запускает контейнеры: Иллюстрированное руководство

Время на прочтение7 мин
Количество просмотров26K

Понимание того как Kubernetes обрабатывает контейнеры дает большую гибкость при создании пользовательских конфигураций под конкретные нужды.

Kubernetes позволяет выполнять много полезной работы без глубокого понимания деталей. Утилита командной строки kubectl и дашборды в Openshift помогают управлять вашими контейнерами. Однако, как только вы заглянете глубже в Kubernetes все может быстро усложниться.

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

Такая аналогия правдива и для работы с Kubernetes. Просто сказать: "Давайте оставим это на усмотрение разработчиков" - недостаточно, с таким же успехом можно предоставить выбор системы кондиционирования обычным рабочим со строительной площадки. За каждой хорошо спроектированной системой стоит как множество деталей, так и архитектор, который понимает их значение.

Для системного архитектора в IT важно понимать как Kubernetes создает и запускает контейнеры. Изучение контейнерной оркестрации необходимо по двум причинам. Во-первых, это хорошее знание для архитектора уровня компании (как для обычного архитектора знание систем кондиционирования). Во-вторых, понимание механизмов, благодаря которым Kubernetes создает и запускает контейнеры, позволяет настраивать пользовательские конфигурации кластеров Kubernetes для специфичных кейсов, но для этого необходимо понимать основы.

Читать далее
Всего голосов 11: ↑9 и ↓2+7
Комментарии2

Почему я перешёл с Python на Go: choose your fighter

Время на прочтение8 мин
Количество просмотров59K
Привет, Хабр! Меня зовут Саша, я бэкенд-разработчик в Ozon. Пишу платформу для контента, который генерят пользователи: отзывов, комментов, вопросов, ответов. Раньше я писал на Python. Выбрал его изначально из-за лёгкого синтаксиса и большого количества вакансий для Python-разработчиков — изи катка для входа в профессию. 

В один момент мне написали из Ozon: «П̶с̶с̶,̶ ̶п̶а̶р̶е̶н̶ь̶,̶ ̶п̶о̶к̶о̶д̶и̶т̶ь̶ ̶н̶а̶ ̶G̶o̶ ̶н̶е̶ ̶х̶о̶ч̶е̶ш̶ь̶?̶ Предлагаем переход на Golang с текущего стека, обучение за счёт компании».

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


Среди разработчиков бытует мнение, что язык вторичен. Мол, главное — уметь в computer science, а на чём писать — не так уж важно. Но так считают хардкорные разработчики, они вертят деревья, смотрят на всех свысока и зарабатывают 300кк в наносекунду. Я же программист-полукровка (без высшего технического образования, а ещё мои родители — маглы) и считаю, что смена языка — важный шаг и нужно хорошенько прикинуть, прежде чем в это вписываться. Будем откровенны, если у вас за плечами десять лет на плюсах, вряд ли вам предложат должность senior iOS-разработчика на Swift. Проблема в том, что каждый язык имеет свои особенности и на их изучение требуется время.
Читать дальше →
Всего голосов 61: ↑53 и ↓8+45
Комментарии131

Архитектура на «микросервисах» в монолите: проект из практики

Время на прочтение7 мин
Количество просмотров12K

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

На старте было просто: связаться с нами можно было только через почту. Входящим ящиком был IMAP, исходящим — SaaS сервис по отправке почты, забрать письма с которого было то еще приключение. Мы смотрели на заголовки и соединяли письма в цепочки, как в любом почтовике: Gmail, Outlook. В таком виде передавали операторам. 

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

Так появился проект линковка.

Читать далее
Всего голосов 23: ↑23 и ↓0+23
Комментарии2

Введение в соединения

Время на прочтение6 мин
Количество просмотров19K

По материалам статьи Craig Freedman: Introduction to Joins

Можно соединить две таблицы явно, перечислив обе таблицы в предложении FROM запроса. Также можно соединить две таблицы, используя для этого всё разнообразие подзапросов. Наконец, SQL Server во время оптимизации может добавить соединение в план запроса, преследуя свои цели.

Это первая из серии статей, которые я планирую посвятить соединениям. Эту статью я собираюсь посвятить азам соединений, описав назначение логических операторов соединениё, поддерживаемых SQL Server. Вот они:

Соединение (JOIN) - одна из самых важных операций, выполняемых реляционными системами управления базами данных (РСУБД). РСУБД используют соединения для того, чтобы сопоставить строки одной таблицы строкам другой таблицы. Например, соединения можно использовать для сопоставления продаж - клиентам или книг - авторам. Без соединений, имелись бы раздельные списки продаж и клиентов или книг и авторов, но невозможно было бы определить, какие клиенты что купили, или какой из авторов был заказан.

Читать далее
Всего голосов 2: ↑1 и ↓10
Комментарии13

Программирование в науке: полувековое легаси и Fortran 77

Время на прочтение10 мин
Количество просмотров10K

Александр Нозик, физик и программист, руководитель Nuclear Physics Methods Laboratory в JetBrains Research, заместитель заведующего Лабораторией методов ядерно-физических экспериментов и магистерской программой в МФТИ — о том, как перевести научный код на современный стек и почему в науку тяжело внедрять новые инструменты. Статья написана на основе выпуска подкаста «Люди и код» от Skillbox (декабрь 2021 года).

Читать далее
Всего голосов 21: ↑18 и ↓3+15
Комментарии48

Есть ли системные аналитики за рубежом?

Время на прочтение11 мин
Количество просмотров27K

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

А есть ли системные аналитики за рубежом? Что входит в их обязанности? Востребованные ли это специалисты?

В этой статье я показываю результаты анализа рынков труда США и Германии.

Читать далее
Всего голосов 8: ↑8 и ↓0+8
Комментарии11

Основы Linux (обзор с практическим уклоном)

Время на прочтение14 мин
Количество просмотров280K

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

В последние несколько лет все больше и больше людей ищут возможность войти в ИТ или поглубже изучить Linux, повысив уровень своей квалификации. Вместе с тем полноценных обзоров с практическом уклоном по типу «все и сразу» написано не так уж и много (особенно на русском языке).

Главная задача данной статьи – указать начинающим специалистам направление развития, дать ключевые понятия для дальнейшего изучения и показать несколько простых практических приемов. По этой причине (а еще, безусловно, вследствие недостаточной квалификации автора) теоретический материал достаточно сильно упрощен.

Читать далее
Всего голосов 76: ↑72 и ↓4+68
Комментарии44

Cordova: связь между JavaScript и Java

Время на прочтение6 мин
Количество просмотров4.8K

Cordova — это кроссплатформенная среда разработки с открытым исходным кодом, которая позволяет использовать HTML и JavaScript для разработки приложений на нескольких платформах, таких как Android и iOS. Как Cordova позволяет приложениям работать на разных платформах и реализовывать функции? Все дело в многочисленных плагинах в Cordova. Они позволяют сосредоточиться исключительно на функциях приложения, не взаимодействуя с API на уровне ОС.

Читать далее
Всего голосов 5: ↑4 и ↓1+3
Комментарии2

Набор инструментов для работы Системного аналитика

Время на прочтение3 мин
Количество просмотров14K

Привет, меня зовут Сережа, последние несколько нет я работаю на позиции Системного аналитика в крупных финтех-продуктах. А еще менторю и начал вести блог @analytics_career для популяризации направления Системный анализ и помощи новичкам при входе в профессию.

Сегодня хочу поделиться с вами своим опытом по использованию тех или иных инструментов в своей работе.

Читать далее
Всего голосов 10: ↑6 и ↓4+2
Комментарии7

Как можно тестировать платформенные сервисы

Время на прочтение9 мин
Количество просмотров3.3K

PaaS (Platform as a Service) — внутренняя платформа для запуска и разработки приложений. Если коротко, то наш PaaS позволяет легко и, можно сказать, при нулевом знании внутренней кухни создать свой сервис и начать пилить продуктовые компоненты. Более длинное объяснение — в этом видео. Под катом небольшой рассказ о том, с какими проблемами пришлось столкнуться при первом приближении к тестированию продукта, как происходил сам процесс тестирования платформенных решений на примерах и какую пользу это принесло.

Меня зовут Лариса Седнина, я работаю QA-инженером в Авито в юните QA Center of Excellence. Наш юнит — это центр экспертизы по обеспечению качества, основная задача которого в распространении лучших практик тестирования, помощи в настройке процесса тестирования и разработке инструментов для тестирования.

Читать далее
Всего голосов 13: ↑11 и ↓2+9
Комментарии1

Основы Postgres для администраторов баз данных Oracle

Время на прочтение7 мин
Количество просмотров11K

«А кто отвечает за эту базу данных?»

Народ из команды администраторов баз данных пожал плечами, и кто-то спросил: «А сервер Oracle или SQL?»

«По-моему, это My SQL», — сказал руководитель отдела разработки.

За 20 лет работы администратором баз данных зачастую именно в таких ситуациях передо мной возникала необходимость изучения новых RDBMS (система управления реляционными базами данных). В результате я не понаслышке знаю, с какими сложностями вы можете столкнуться, когда приходится с головой погружаться в омут другой системы.

Читать далее
Всего голосов 10: ↑7 и ↓3+4
Комментарии7

Когда и зачем нужен CI/CD

Время на прочтение6 мин
Количество просмотров25K

Скорость сборки продукта — важное конкурентное преимущество в разработке программного обеспечения. То, что раньше делалось месяцами, сегодня выполняется за считанные дни без потери качества. Путь к ускорению релизов лежит через автоматизацию и внедрение CI/CD.

В статье разберём, когда и зачем нужен CI/CD, но перед этим, расскажем, как устроена методология и почему эффективнее внедрить её, чем деплоить вручную.

Читать далее
Всего голосов 17: ↑17 и ↓0+17
Комментарии7

Программа самоподготовки младшего системного аналитика

Время на прочтение2 мин
Количество просмотров50K

Мы решили узнать, как работает старый тезис «в интернете всё есть и бесплатно, курите маны, глупцы».

И подготовили программу самоподготовки, собранную из лучших бесплатных или совсем недорогих материалов, которые мы знаем. Общая длительность программы для освоения — от 150 часов.

Читать далее
Всего голосов 9: ↑8 и ↓1+7
Комментарии14

Как связан CI/CD и правила бережливого производства

Время на прочтение4 мин
Количество просмотров4.6K

У терминов, которые мы используем в процессах CI/CD, много общего с терминами из фабричного производства. Например, пайплайн — его наиболее близкий литературный перевод «производственная линия» и это не случайно: лучшие подходы разработки ПО похожи на подходы фабричного производства. 

Эта статья — адаптированный урок Тимофея Ларкина, ведущего инженера X5 Retail Group, «Принципы работы CI и CD» курса по CI/CD. В ней мы расскажем про то, через какие боли проходят те, кто делает софт, как помогают правила бережливого производства, и какие шаги включить в пайплайн, чтобы 20% усилий дали 80% результата. 

Изучить
Всего голосов 13: ↑11 и ↓2+9
Комментарии2

Микросервисы для чайников: как на них перейти с монолита с нуля

Время на прочтение12 мин
Количество просмотров66K

Меня зовут Семен Катаев, я работаю в Авито над процессом перехода от монолитной архитектуры к микросервисам. Переход у нас все еще продолжается, но мне уже есть чем с вами поделиться. Это краткий обзор того, с чем придётся столкнуться, если вы задумались над созданием надежного, масштабируемого, распределённого приложения.

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

Читать далее
Всего голосов 29: ↑27 и ↓2+25
Комментарии31

Как не надо индексировать

Время на прочтение5 мин
Количество просмотров37K

Развитие происходит по спирали: когда-то люди не умели правильно индексировать, потом (в основном) научились, потом пришли noSQL и все снова забыли знание древних. Что вы будете делать, когда последние из старых DBA отплывут в Валинор?

Снова и снова и сталкиваюсь с полным набором антипаттернов индексирования. Я их перечислю, но! Для каждого антипаттерна есть исключение, когда именно это и стоит делать. Поэтому кликбейтно сформулированное правило верно в 95% случаях, но если вы хотите копнуть глубже, то прочитайте про исключения.

И в конце полезные скрипты для MSSQL, Postgres и MySQL.

Читать далее
Всего голосов 44: ↑44 и ↓0+44
Комментарии25

Микросервисы глазами аналитика

Время на прочтение14 мин
Количество просмотров34K

Расскажу про системы с микросервисной архитектурой (MSA). Как они устроены, как я их анализировала, какие увидела проблемы и преимущества.

Статья не раскрывает лучшие практики использования микросервисов и не разоблачает их излишнюю популярность. Основная цель - описать технологию и процесс работы с ней с точки зрения системного аналитика.

Читать далее
Всего голосов 14: ↑14 и ↓0+14
Комментарии25
В течение всего прошлого года мы на Хабр Карьере просили пользователей оценить своих прошлых и нынешних работодателей. Сотрудники давали оценку задачам, технологиям, заработной плате, соцпакету и другим важным условиям в работе. Мы собрали все цифры и рассчитали наш ежегодный рейтинг.
Узнать, кто в топе
Всего голосов 51: ↑40 и ↓11+29
Комментарии27

Масштабный проект по внедрению SAP S/4HANA в удаленном режиме: уроки, которые мы усвоили

Время на прочтение8 мин
Количество просмотров4.3K

Внедрение системы – непростая задача, а внедрение “на удаленке”, еще и в другой стране, еще и на только строящемся предприятии – тем более!

Так, как же внедрить в такое непростое время целую систему удаленно? Об этом мы расскажем в этой статье!

Читать далее
Всего голосов 6: ↑5 и ↓1+4
Комментарии0
1

Информация

В рейтинге
Не участвует
Откуда
Ростов-на-Дону, Ростовская обл., Россия
Работает в
Дата рождения
Зарегистрирован
Активность