Рубрика «разработка» - 61

Публикуем первую часть перевода очередного материала из серии, посвящённой тому, как в Instagram работают с Python. В первом материале этой серии речь шла об особенностях серверного кода Instagram, о том, что он представляет собой монолит, который часто меняется, и о том, как статические средства проверки типов помогают этим монолитом управлять. Второй материал посвящён типизации HTTP-API. Здесь речь пойдёт о подходах к решению некоторых проблем, с которыми столкнулись в Instagram, используя Python в своём проекте. Автор материала надеется на то, что опыт Instagram пригодится тем, кто может столкнуться с похожими проблемами.

Использование strict-модулей в крупномасштабных Python-проектах: опыт Instagram. Часть 1 - 1
Читать полностью »

CSS позволяет создавать динамические макеты страниц и интерфейсы веб-проектов. Но CSS — статический язык. После того, как задано некое значение, изменить его нельзя. Идея случайного изменения неких значений здесь не рассматривается.

Есть ли в CSS случайные числа? - 1

Генерирование случайных чисел — это территория JavaScript, на которую CSS не заходит. А что если это не совсем так? На самом деле, если принять в расчёт действия, выполняемые пользователем, это позволит добавить в CSS немного случайности. Автор материала, перевод которого мы сегодня публикуем, предлагает это обсудить.
Читать полностью »

С момента выхода стандарта ECMAScript 2015 (его ещё называют ES6) JavaScript серьёзно изменился и улучшился. Это очень хорошая новость для всех JS-разработчиков. Более того, теперь новая версия ECMAScript выходит каждый год. Возможно, вы не обратили особого внимания на то, что появилось в самой свежей версии стандарта, который был выпущен в июне 2019 года. Автор заметки, перевод которой мы сегодня публикуем, хочет в двух словах рассказать о новшествах JavaScript, и о том, чего можно ждать в следующей версии стандарта ECMAScript.

Ожидаемые новые возможности JavaScript, о которых полезно знать - 1

Здесь будут упомянуты возможности, предложения которых находятся на третьем этапе согласования (Stage 3). Это значит, что они, скорее всего, появятся в следующей версии стандарта ECMAScript, но с абсолютной достоверностью этого утверждать нельзя. Вот репозиторий, в котором можно найти сведения о предложениях, находящихся на разных этапах согласования.
Читать полностью »

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

Типы для HTTP-API, написанных на Python: опыт Instagram - 1

Эта статья посвящена тому, как в Instagram используют типы для документирования HTTP-API и для обеспечения соблюдения контрактов при работе с ними.
Читать полностью »

Байки переговорщика - 1

Привет!

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

С другой стороны, частые переговоры означают много поездок. Иногда везёт. Вот в Дубае выходные пятница и суббота, а воскресенье — рабочий. При этом рейсы на воскресенье дорогие, и куда выгоднее лететь в пятницу. Встреча по поводу наших разработок по машинному зрению для дронов была на воскресенье, и когда наш переговорщик прилетел, заказчик извинился и сказал, что не получается, и нужно перенести ещё на пару дней. Так у него получились незапланированные выходные. Ну а дальше он закономерно вышел на пляж и уснул. После чего всем говорил, что сгорел на работе. Но интересно не это: дело в том, что ещё один наш коллега как раз застрял посреди тундры. Это примерно два часа вертолётом от Нового Уренгоя, и, кроме вертолёта, там транспорта нет. У него была метель — и, как следствие, нелётная погода. Он прибыл, обследовал талевые тросы и не смог вылететь. К началу истории уже сидел там два дня. Синоптики обещали открыть площадку только ещё через три дня. Из развлечений у него там была еда в столовой на месторождении, настольный теннис с вахтовиками и SMS на телефоне. Вот они друг другу и жаловались, кто и где застрял. Читать полностью »

Сегодня публикуем вторую часть перевода материала, посвящённого статическому анализу больших объёмов серверного Python-кода в Instagram.

Статический анализ больших объёмов Python-кода: опыт Instagram. Часть 2 - 1

Первая часть
Читать полностью »

Серверный код в Instagram пишут исключительно на Python. Ну, в основном это именно так. Мы используем немного Cython, а в состав зависимостей входит немало C++-кода, с которым можно работать из Python как с C-расширениями.

Статический анализ больших объёмов Python-кода: опыт Instagram. Часть 1 - 1

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

Наша серверная система — это монолит, который очень часто меняется. Каждый день сотни программистов делают сотни коммитов в код. Мы непрерывно разворачиваем эти изменения, делая это каждые семь минут. В результате развёртывание проекта в продакшне выполняется около ста раз за сутки. Мы стремимся к тому, чтобы между попаданием коммита в ветку master и развёртыванием соответствующего кода в продакшне проходило бы менее часа (вот выступление об этом, сделанное на PyCon 2019).

Очень сложно поддерживать эту огромную монолитную кодовую базу, делая в неё ежедневно сотни коммитов, и при этом не довести её до состояния полного хаоса. Мы хотим сделать Instagram местом, работая в котором, программисты могут быть продуктивными и способными быстро готовить к выходу новые полезные возможности системы.

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

Если вам интересно будет опробовать некоторые идеи, упомянутые в этом материале, то знайте, что недавно мы перевели в разряд опенсорсных проект LibCST, который лежит в основе многих наших внутренних инструментов, предназначенных для линтинга и автоматического рефакторинга кода.
Читать полностью »

Всем привет! Несколько месяцев назад мы запустили в продакшн наш новый open-source проект — Grafana-плагин для мониторинга kubernetes, который назвали DevOpsProdigy KubeGraf. Исходный код плагина доступен в публичном репозитории на GitHub. А в этой статье мы хотим поделиться с вами историей о том, как мы создавали плагин, какие инструменты использовали и с какими подводными камнями столкнулись в процессе разработки. Погнали!
Читать полностью »

Вначале было слово. И слово это код.

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

А ещё строчки кода управляют ударными беспилотниками, операторы которых не особо выбирают, кто попал под удар — боевики или нонкомбатанты. Формируют механики удержания внимания в социальных сетях, вызывая аддиктивные сценарии поведения, FoMO (Fear of missing out, Синдром упущенной выгоды), дофаминовое выгорание и депрессию. Управляют в DarkNet электронными рынками наркотиков и оружия.

10 заповедей разработчика - 1

Профессия IT-разработчика подросла и возмужала — вслед за правами и привилегиями пришла пора появиться обязанностям и ограничениям. Так когда-то было с врачами, так когда-то было с военными.

Читать полностью »

Семинары по облачным сервисам, ИИ, блокчейну, Data Science, микросервисам: теперь в Москве и Санкт-Петербурге - 1

Если вы еще не побывали на наших практических семинарах по популярным темам для разработчиков (ИИ, блокчейн, data science, распознавание изображений, контейнеры, чат-боты и пр.), возможно, в этом ноябре — самое время восполнить упущение. Тем более, что этой осенью мы расширили географию наших семинаров, и теперь предлагаем их не только в Москве, но и в северной столице.

Как обычно, участие в семинарах абсолютно бесплатное, а кофе-чай-пирожные за наш счет. По окончании семинара каждый его участник получит сертификат от IBM. Количество мест ограничено.

Перечень практических семинаров:

  • Чат-боты + методология разработки интеллектуальных ассистентов
  • Микросервисы, DevOps и модернизация приложений — подход IBM
  • Watson Studio – все необходимое для Data Science в облаке
  • Распознавание изображений и видео в облаке
  • Блокчейн с практическими примерами, платформа Hyperledger Fabric
  • Искусственный интеллект для ваших приложений — практический семинар по сервисам ИИ

Интересно? Просим под кат для детального описания и регистрации.
Неинтересно? Предложите свою тему в комментариях — мы рассмотрим возможность провести по ней семинар.
Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js