Публикуем первую часть перевода очередного материала из серии, посвящённой тому, как в Instagram работают с Python. В первом материале этой серии речь шла об особенностях серверного кода Instagram, о том, что он представляет собой монолит, который часто меняется, и о том, как статические средства проверки типов помогают этим монолитом управлять. Второй материал посвящён типизации HTTP-API. Здесь речь пойдёт о подходах к решению некоторых проблем, с которыми столкнулись в Instagram, используя Python в своём проекте. Автор материала надеется на то, что опыт Instagram пригодится тем, кто может столкнуться с похожими проблемами.
Рубрика «разработка» - 61
Использование strict-модулей в крупномасштабных Python-проектах: опыт Instagram. Часть 1
2019-11-12 в 9:38, admin, рубрики: python, Блог компании RUVDS.com, разработка, Разработка веб-сайтовЕсть ли в CSS случайные числа?
2019-11-12 в 9:30, admin, рубрики: css, Блог компании RUVDS.com, разработка, Разработка веб-сайтовCSS позволяет создавать динамические макеты страниц и интерфейсы веб-проектов. Но CSS — статический язык. После того, как задано некое значение, изменить его нельзя. Идея случайного изменения неких значений здесь не рассматривается.
Генерирование случайных чисел — это территория JavaScript, на которую CSS не заходит. А что если это не совсем так? На самом деле, если принять в расчёт действия, выполняемые пользователем, это позволит добавить в CSS немного случайности. Автор материала, перевод которого мы сегодня публикуем, предлагает это обсудить.
Читать полностью »
Ожидаемые новые возможности JavaScript, о которых полезно знать
2019-11-11 в 9:30, admin, рубрики: javascript, Блог компании RUVDS.com, разработка, Разработка веб-сайтовС момента выхода стандарта ECMAScript 2015 (его ещё называют ES6) JavaScript серьёзно изменился и улучшился. Это очень хорошая новость для всех JS-разработчиков. Более того, теперь новая версия ECMAScript выходит каждый год. Возможно, вы не обратили особого внимания на то, что появилось в самой свежей версии стандарта, который был выпущен в июне 2019 года. Автор заметки, перевод которой мы сегодня публикуем, хочет в двух словах рассказать о новшествах JavaScript, и о том, чего можно ждать в следующей версии стандарта ECMAScript.
Здесь будут упомянуты возможности, предложения которых находятся на третьем этапе согласования (Stage 3). Это значит, что они, скорее всего, появятся в следующей версии стандарта ECMAScript, но с абсолютной достоверностью этого утверждать нельзя. Вот репозиторий, в котором можно найти сведения о предложениях, находящихся на разных этапах согласования.
Читать полностью »
Типы для HTTP-API, написанных на Python: опыт Instagram
2019-11-07 в 9:30, admin, рубрики: api, python, Блог компании RUVDS.com, разработка, Разработка веб-сайтов, Социальные сети и сообществаСегодня мы публикуем второй материал из цикла, посвящённого использованию Python в Instagram. В прошлый раз речь шла проверке типов серверного кода Instagram. Сервер представляет собой монолит, написанный на Python. Он состоит из нескольких миллионов строк кода и имеет несколько тысяч конечных точек Django.
Эта статья посвящена тому, как в Instagram используют типы для документирования HTTP-API и для обеспечения соблюдения контрактов при работе с ними.
Читать полностью »
Байки переговорщика
2019-11-07 в 7:03, admin, рубрики: байки, Блог компании КРОК, заказчик, команда, переговоры, проект, разработка, управление проектами
Привет!
Начинал я с разработчика, сейчас руковожу департаментом разработки программного обеспечения и часто участвую в переговорах по разным проектам. По большей части речь о деталях реализации, то есть это не продажи, а обсуждение проектов с заказчиком. Но всё равно на них весело. Например, недавно наш человек чувствовал себя довольно неуютно, когда одному из резидентов Сколково объяснил, что блокчейн в проекте не нужен. Смотрели на него косо, и ощущение было, что он их убеждает в том, что вместо новомодного электричества всё можно решить на паровой или лошадиной тяге.
С другой стороны, частые переговоры означают много поездок. Иногда везёт. Вот в Дубае выходные пятница и суббота, а воскресенье — рабочий. При этом рейсы на воскресенье дорогие, и куда выгоднее лететь в пятницу. Встреча по поводу наших разработок по машинному зрению для дронов была на воскресенье, и когда наш переговорщик прилетел, заказчик извинился и сказал, что не получается, и нужно перенести ещё на пару дней. Так у него получились незапланированные выходные. Ну а дальше он закономерно вышел на пляж и уснул. После чего всем говорил, что сгорел на работе. Но интересно не это: дело в том, что ещё один наш коллега как раз застрял посреди тундры. Это примерно два часа вертолётом от Нового Уренгоя, и, кроме вертолёта, там транспорта нет. У него была метель — и, как следствие, нелётная погода. Он прибыл, обследовал талевые тросы и не смог вылететь. К началу истории уже сидел там два дня. Синоптики обещали открыть площадку только ещё через три дня. Из развлечений у него там была еда в столовой на месторождении, настольный теннис с вахтовиками и SMS на телефоне. Вот они друг другу и жаловались, кто и где застрял. Читать полностью »
Статический анализ больших объёмов Python-кода: опыт Instagram. Часть 2
2019-11-06 в 9:30, admin, рубрики: python, Блог компании RUVDS.com, разработка, Разработка веб-сайтовСегодня публикуем вторую часть перевода материала, посвящённого статическому анализу больших объёмов серверного Python-кода в Instagram.
Статический анализ больших объёмов Python-кода: опыт Instagram. Часть 1
2019-11-05 в 9:30, admin, рубрики: python, Блог компании RUVDS.com, разработка, Разработка веб-сайтовСерверный код в Instagram пишут исключительно на Python. Ну, в основном это именно так. Мы используем немного Cython, а в состав зависимостей входит немало C++-кода, с которым можно работать из Python как с C-расширениями.
Наше серверное приложение — это монолит, представляющий собой одну большую кодовую базу, состоящую из нескольких миллионов строк и включающую в себя несколько тысяч конечных точек Django (вот выступление, посвящённое использованию Django в Instagram). Всё это загружается и обслуживается как единая сущность. Из монолита выделено несколько сервисов, но в наши планы не входит сильное разделение монолита.
Наша серверная система — это монолит, который очень часто меняется. Каждый день сотни программистов делают сотни коммитов в код. Мы непрерывно разворачиваем эти изменения, делая это каждые семь минут. В результате развёртывание проекта в продакшне выполняется около ста раз за сутки. Мы стремимся к тому, чтобы между попаданием коммита в ветку master и развёртыванием соответствующего кода в продакшне проходило бы менее часа (вот выступление об этом, сделанное на PyCon 2019).
Очень сложно поддерживать эту огромную монолитную кодовую базу, делая в неё ежедневно сотни коммитов, и при этом не довести её до состояния полного хаоса. Мы хотим сделать Instagram местом, работая в котором, программисты могут быть продуктивными и способными быстро готовить к выходу новые полезные возможности системы.
Этот материал посвящён тому, как мы пользуемся линтингом и автоматическим рефакторингом для того чтобы облегчить управление кодовой базой, написанной на Python.
Если вам интересно будет опробовать некоторые идеи, упомянутые в этом материале, то знайте, что недавно мы перевели в разряд опенсорсных проект LibCST, который лежит в основе многих наших внутренних инструментов, предназначенных для линтинга и автоматического рефакторинга кода.
Читать полностью »
Разработка плагина для Grafana: история набитых шишек
2019-11-05 в 8:22, admin, рубрики: diy или сделай сам, github, Grafana, ITSumma, k8s, kubernetes, open source, Блог компании ITSumma, плагин, разработка, Управление продуктомВсем привет! Несколько месяцев назад мы запустили в продакшн наш новый open-source проект — Grafana-плагин для мониторинга kubernetes, который назвали DevOpsProdigy KubeGraf. Исходный код плагина доступен в публичном репозитории на GitHub. А в этой статье мы хотим поделиться с вами историей о том, как мы создавали плагин, какие инструменты использовали и с какими подводными камнями столкнулись в процессе разработки. Погнали!
Читать полностью »
10 заповедей разработчика
2019-11-05 в 5:28, admin, рубрики: Google, IT-стандарты, it-этика, Блог компании Southbridge, будущее здесь, зарубежный опыт, информационная безопасность, Карьера в IT-индустрии, китай, оборонка, разработка, технологии будущего, управление проектамиВначале было слово. И слово это код.
В странах первого мира высокие технологии управляют электроснабжением и логистикой, обеспечивают доступ к информации и услугам. Врачи на расстоянии в несколько тысяч километров от пациента проводят операции на мозге с помощью роботизированных инструментов. Мы можем поговорить с родственниками и друзьями в любой момент, находясь на обратной стороне Земли.
А ещё строчки кода управляют ударными беспилотниками, операторы которых не особо выбирают, кто попал под удар — боевики или нонкомбатанты. Формируют механики удержания внимания в социальных сетях, вызывая аддиктивные сценарии поведения, FoMO (Fear of missing out, Синдром упущенной выгоды), дофаминовое выгорание и депрессию. Управляют в DarkNet электронными рынками наркотиков и оружия.
Профессия IT-разработчика подросла и возмужала — вслед за правами и привилегиями пришла пора появиться обязанностям и ограничениям. Так когда-то было с врачами, так когда-то было с военными.
Семинары по облачным сервисам, ИИ, блокчейну, Data Science, микросервисам: теперь в Москве и Санкт-Петербурге
2019-10-31 в 15:12, admin, рубрики: appsody, blockchain, data science, devops, IBM, kabanero, microprofile, openshift, operators, Блог компании IBM, искусственный интеллект, машинное обучение, микросервисы, облачная разработка, облачные сервисы, разработка, Чат-боты
Если вы еще не побывали на наших практических семинарах по популярным темам для разработчиков (ИИ, блокчейн, data science, распознавание изображений, контейнеры, чат-боты и пр.), возможно, в этом ноябре — самое время восполнить упущение. Тем более, что этой осенью мы расширили географию наших семинаров, и теперь предлагаем их не только в Москве, но и в северной столице.
Как обычно, участие в семинарах абсолютно бесплатное, а кофе-чай-пирожные за наш счет. По окончании семинара каждый его участник получит сертификат от IBM. Количество мест ограничено.
Перечень практических семинаров:
- Чат-боты + методология разработки интеллектуальных ассистентов
- Микросервисы, DevOps и модернизация приложений — подход IBM
- Watson Studio – все необходимое для Data Science в облаке
- Распознавание изображений и видео в облаке
- Блокчейн с практическими примерами, платформа Hyperledger Fabric
- Искусственный интеллект для ваших приложений — практический семинар по сервисам ИИ
Интересно? Просим под кат для детального описания и регистрации.
Неинтересно? Предложите свою тему в комментариях — мы рассмотрим возможность провести по ней семинар.
Читать полностью »