• Мутационный анализ, или как тестировать тесты

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



      О подходе к автоматизации этой задачи и был доклад Марка Лангового на Frontend Conf. Видео и статья короткие, а идеи очень рабочие — надо брать на заметку.
      Читать дальше →
      • +35
      • 7,8k
      • 2
    • Оцениваем процессы в команде разработки на основе объективных данных

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

        Сергей Семёнов считает, что это происходит в основном по двум причинам.

        • Нет инструментов и стандартов для оценки работы программистов. Менеджерам приходится прибегать к субъективной оценке, что в свою очередь приводит к ошибкам.
        • Не используются средства автоматического контроля за процессами в команде. Без должного контроля процессы в командах разработки перестают выполнять свои функции, так как начинают исполняться частично или попросту игнорироваться.

        И предлагает подход к оценке и контролю процессов на основе объективных данных.

        Ниже видео и текстовая версия доклада Сергея, который по результатам зрительского голосования занял второе место на Saint TeamLead Conf.
        Читать дальше →
      • Вечером 8 ноября в конгресс-холле МШУ СКОЛКОВО прошла церемония вручения премии HighLoad++ — первой за всю долгую историю конференции, то есть с 2007 года. Награду за вклад в развитие экосистемы интернет-разработки в России получили шесть человек — шесть несущих элементов российского хайлоада. Комбинированные решения — норма для хайлоада, так что свой репортаж о церемонии мы дополнили комментариями, которые взяли у победителей.
        Подробности — под катом
      • HighLoad++: презентации от докладчиков Авито, конспекты, фото и впечатления

          В Сколково отгремела двенадцатая по счету HighLoad++. Конференция собрала больше 3000 участников, профессионалов в области работы с высоконагруженными системами. Коллеги обменивались опытом построения и развития архитектуры крупных проектов, говорили о базах данных, системах хранения, системном администрировании, нагрузочном тестировании, эксплуатации крупных проектов.
          Мы традиционно принимали активное участие в HighLoad++. В этом посте я хочу поделиться материалами докладчиков от Авито, впечатлениями от конференции. И рассказать, что это за странный синий бак на этом фото.


          Читать дальше →
          • +39
          • 6,5k
          • 2
        • Смешные и грустные истории про разработку компьютерных игр

            Только через смех можно рассказывать, как плоды долгой и упорной работы распространяются по всем компьютерам страны, но не приносят ни капли дохода. Только улыбка поможет принять хорошее, честное предложение распределения прибыли 1 к 12, где 1 — разработчику, а остальное агрегатору. И трудно слегка не загрустить, слушая о том удивительном времени абсолютно пустого рынка мобильных игр и почти азартном энтузиазме разработчиков. И, наверное, только у Вадима Башурова (PapaBubaDiop) такой длинный путь и невероятный опыт, чтобы иметь в запасе множество невыдуманных смешных и грустных историй.

            Так уж повезло, что по случаю тридцатилетнего юбилея своей первой игры, Вадим пришел на Apps Conf. Да, когда вышла самая популярная игра того времени, многие из нас еще не родились, а ныне уважаемые Head of mobile пешком под стол ходили. Но каждый, кто в начале 90-х видел компьютер, видел и игру «Поле Чудес» и думал, что же такое Арзамас.

            Читать дальше →
          • Открытая трансляция главного зала HighLoad++ 2018

              Конференция для разработчиков высоконагруженных сервисов HighLoad++ в этом году получилась просто гигантской. 8 и 9 ноября в СКОЛКОВО приедут 3000 гостей, чтобы вникнуть в тонкости архитектуры, узнать о нововведениях в базах данных, поговорить про микросервисы, облака, большие данные, нейронки и кто знает, в какие еще дебри могут зайти кулуарные разговоры всех этих первоклассных разработчиков.



              В расписании 138 докладов основной программы, 14 двухчасовых мастер-классов и несчетное количество митапов (в том смысле, что они будут добавляться по ходу дела, и посчитать мы их сможем только уже по факту). С одной стороны, это все значит, что каждый найдет себе темы по душе и сможет получить ответы на свои вопросы. А с другой — очень сложно выбрать.

              Один из вариантов маршрута по конференции — пойти на все самые популярные доклады. Тем более что, работая над расписанием, мы опросили будущих слушателей и составили рейтинг ожиданий. Лидеры голосования выступят в Главном зале (Когресс-холле), который мы по хорошей традиции транслируем бесплатно.

              Трансляция первого дня HighLoad++


              Трансляция второго дня HighLoad++


              Трансляция будет идти на нашем HighLoad Channel в youtube, чтобы не забыть и не пропустить можно подписаться на канал, на блог или на рассылку — а лучше на всё сразу, у нас все полезное :)
              Читать дальше →
              • +35
              • 8,4k
              • 5
            • Коммуникации как performance-зона работы тимлида

                Участники Saint TeamLead Conf назвали доклад Александра Зизы одним из лучших вероятно потому, что от навыков коммуникации тимлида зависит многое, а развиты они, как правило, не очень хорошо.

                Рассказ будет состоять из четырех смысловых блоков:

                1. Про коммуникацию. Коснемся того, что такое коммуникация, в чем основная проблема с коммуникацией, почему о ней так много говорят и пишут. Все ученые философы мира, начиная с Аристотеля пытаются решить эту задачу, но окончательного решения «взять и сделать» до сих пор нет.

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

                1. Мастерство: 4 уровня развития компетентности. Здесь поговорим про личное мастерство руководителя, который осуществляет свое управленческое воздействие через коммуникацию.

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




                Ниже вы найдете видео и текстовую версию этого выступления, но просто так посмотреть или прочитать его недостаточно. Надо постараться тут же начать применить подходы на практике, и Александр вас в этом убедит. Фактически это часть программы по развитию управленческих компетенций, по прокачке навыков тимлида с подробным руководством к действию и заготовкой для домашнего задания.
                Читать дальше →
                • +25
                • 8,5k
                • 7
              • Проактивная оптимизация производительности БД Oracle

                  Первое, с чем мы сталкиваемся, когда говорим о проактивной оптимизации — не известно, что нужно оптимизировать. «Сделай то, не знаю, что».

                  • Нет классического алгоритма.
                  • Проблема еще не возникла (неизвестна), и можно только предположить, где она может быть.
                  • Нужно найти какие-то потенциально слабые места в системе.
                  • Попытаться оптимизировать работу запросов в этих местах.

                  Основные цели проактивной оптимизации


                  Основные задачи проактивной оптимизации отличаются от задач реактивной оптимизации и состоят в следующем:

                  • избавление от узких мест в БД;
                  • уменьшение потребления ресурсов БД.

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



                  Если вы работаете с боевыми серверами, то хорошо представляете, что значат инциденты производительности. Нужно всё бросить и быстро решать проблему. ООО РНКО «Платежный центр» работает с многими агентами, и для них очень важно, чтобы таких проблем было как можно меньше. Александр Макаров на HighLoad++ Siberia рассказал, что было сделано, чтобы значительно уменьшить количество инцидентов производительности. На помощь пришла проактивная оптимизация. А почему и как ее производят на боевом сервере, читайте ниже.
                  Читать дальше →
                  • +19
                  • 4,9k
                  • 8
                • Миллион видеозвонков в сутки или «Позвони маме!»

                    С точки зрения пользователя, сервисы звонков выглядят довольно просто: заходишь на страницу к другому пользователю, звонишь, он снимает трубку, вы с ним разговариваете. Снаружи кажется, что все просто, но немногие знают, как сделать такой сервис. А вот Александр Тоболь (alatobol) не только знает, но и охотно делится своим опытом.



                    Далее текстовая версия доклада на HighLoad++ Siberia, из которой вы узнаете:

                    • как работают сервисы видеозвонков под капотом;
                    • как красиво пробить NAT — это будет интересно и специалистам из игровой сферы, которым необходимо peer-to-peer соединение;
                    • как устроен WebRTC, какие протоколы в него входят;
                    • как можно тюнить WebRTC через BigData.


                    О спикере: Александр Тоболь руководит разработкой платформ Видео и Ленты в ok.ru.
                    Читать дальше →
                  • Machine learning @ booking.com

                      Машинное обучение позволяет сделать сервис гораздо удобнее для пользователей. Начать внедрять рекомендации не так сложно, первые результаты можно получить, даже не имея налаженной инфраструктуры, главное начать. А уже потом строить масштабную систему. Именно так все начиналось в Booking.com. А во что это вылилось, какие сейчас используются подходы, как модели внедряются в продакшен, каких их мониторить, рассказал Виктор Билык на HighLoad++ Siberia. Возможные ошибки и проблемы не остались за бортом доклада, кому-то это поможет обойти мели, а кого-то натолкнет на новые идеи.



                      О спикере: Виктор Билык внедряет продукты машинного обучения в промышленную эксплуатацию в Booking.com.
                      Читать дальше →
                    • Теперь я тимлид, но почему мне так плохо? Практические советы

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



                        То, что доклад на эту тему был признан лучшим на конференции для тимлидов и о тимлидах, показывает, насколько действительно часто встречается такая ситуация. Но надо признать, конечно, что Евгений Кот (bunopus) заработал это «признание» еще и великолепным перформансом. С удовольствием делимся с вами его записью.
                        Читать дальше →
                        • +50
                        • 34k
                        • 9
                      • Вычисляем по IP: как бороться со спамом в социальной сети

                          Спам в социальных сетях и мессенджерах — это боль. Боль и для честных пользователей, и для разработчиков. Как с ней борются в Badoo, рассказал Михаил Овчинников на Highload++, далее текстовая версия этого доклада.


                          О спикере: Михаил Овчинников работает в Badoo и последние пять лет занимается антиспамом.

                          В Badoo зарегистрировано 390 миллионов пользователей (данные на октябрь 2017). Если сравнивать размер аудитории сервиса с населением России, то можно сказать, что в нашей стране по статистике каждых 100 млн человек охраняет 500 тысяч полицейских, а в Badoo каждые 100 млн пользователей защищает от спама всего один сотрудник Антиспама. Но даже такое небольшое количество программистов способно защитить пользователей от разных неприятностей в интернете.
                          Читать дальше →
                        • Железо не подведет. Как я готовлю к бою десятки серверов в день

                            Проверить один сервер — не проблема. Берешь чек-лист и по порядку проверяешь: процессор, память, диски. Но с сотней серверов такой способ вряд ли хорошо сработает. Чтобы исключить человеческий фактор, сделать проверки более надежными и быстрыми, надо автоматизировать процесс. Кому знать, как это лучше сделать, как не хостинг-провайдеру. Артём Артемьев на HighLoad++ Siberia рассказал, какие методы можно использовать, что лучше запускать руками, а что отлично получается автоматизировать. Далее текстовая версия доклада с советами, которые сможет повторить каждый, кто работает с железом и нуждается в регулярной проверке его работоспособности.



                            О спикере: Артём Артемьев (artemirk) технический директор в большом хостинг-провайдере FirstVDS, сам работает с железом.
                            Читать дальше →
                          • Работа с изображениями на Python

                              Тема сегодняшнего разговора — чему же научился Python за все годы своего существования в работе с изображениями. И действительно, кроме старичков родом из 1990 года ImageMagick и GraphicsMagick, есть современные эффективные библиотеки. Например, Pillow и более производительная Pillow-SIMD. Их активный разработчик Александр Карпинский (homm) на MoscowPython сравнил разные библиотеки для работы с изображениями на Python, представил бенчмарки и рассказал о неочевидных особенностях, которых всегда хватает. В этой статье расшифровка доклада, который поможет вам выбрать библиотеку под свое приложение, и сделать так, чтобы она работало максимально эффективно.


                              О спикере: Александр Карпинский работает в компании Uploadcare и занимается сервисом быстрой модификации изображений на лету. Участвует в разработке Pillow — популярной библиотеки для работы с изображениями на Python, развивает собственный форк этой библиотеки — Pillow-SIMD, который использует современные инструкции процессоров для наибольшей производительности.
                              Читать дальше →
                              • +49
                              • 16,1k
                              • 9
                            • Конференция про Python и про общение

                                Традиционно Python используют для создания сетевых сервисов, бэкенда в вебе и, конечно, для сбора и обработки данных, как правило Больших. Эти направления в равных долях с экосистемными докладами и постараемся обсудить на грядущей Moscow Python Conf++. Эта конференция для Python-разработчиков состоится в Москве 22 и 23 октября, и я возглавляю её Программный комитет. Программа, можно сказать, выстрадана, нам удалось сделать её именно такой, как мы и планировали, — разнообразной. Бэкенд, Big Data и особенности языка, у нас гармонично сочетаются с докладами по тестированию, искусственному интеллекту, безопасности и DevOps. Хочется заранее поделиться с вами результатом, поэтому предлагаю обзор докладов по секциям — то, что к вам никак не относится, можно проматывать.



                                Хотя, подождите, не спешите перескакивать на следующую тему. На картинке выше написано: «Профессиональная конференция» — то есть, предназначена она для профессиональных разработчиков. Но гостями мы видим не только собственно Python-разработчиков, но еще программистов, преимущественно использующих другой стек, но заинтересованных в возможностях Python для вспомогательных задач. Последним должны зайти доклады, например, про Apache Kafka, Wagtail, SQLAlchemy или линтеры.
                                Читать дальше →
                                • +30
                                • 4,3k
                                • 4
                              • Kafka в Wargaming: блицопрос

                                  Почему Kafka? Каковы общие впечатления? Каков состав кластеров? Под катом — дюжина коротких вопросов для Левона Авакяна, отвечающего в Wargaming за надежность, архитектуру приложений, инфраструктуру и продакшн.


                                  Читать дальше →
                                • Celery в нагруженных проектах: немного практики

                                    В преддверии нашей Moscow Python Conf++ мы кратко поговорили с Олегом Чуркиным, техлидом финтех-стартапа, о его обширном опыте работы с Celery: полмиллионе фоновых задачах, багах и тестировании.


                                    Читать дальше →
                                  • Автор Python больше не руководит разработкой. Сделает это язык лучше или хуже?

                                      Всё Python-сообщество надеется, что это не отразится на экосистеме негативно. Но одного этого недостаточно. Мы вот, например, считаем важным поддерживать сообщество и, как одно из мероприятий, проводим большую конференцию под названием Moscow Python Conf++. Там сможем обсудить этот и другие важные вопросы. А пока частично познакомлю вас с Программным комитетом. А задал им несколько вопросов, которые как раз и раскроют взгляды на экосистему, и расскажут о людях лучше их профессиональных достижений.

                                      Кроме заглавного вопроса, спрашивал вот что:

                                      • Что порекомендуешь для управления зависимостями?
                                      • На чем сейчас лучше всего делать backend?
                                      • TensorFlow все так же рулит для Machine Learning, или пора изучать что-то новое?
                                      • Почему твоему джуну надо учить Python, а не JavaScript?
                                      • Говорят, что в вебе backend уже не нужен. Так ли это?
                                      • 3.x или 2.7?
                                      • Чем хороший Python разработчик отличается от плохого?

                                      Спойлер: Провокация «3.x vs 2.7» не удалась, ответ однозначный. Отказываться от бэкенда, кажется, еще рано, а на чем его делать, зависит от задачи — кто бы мог подумать.
                                      Читать дальше →
                                      • +27
                                      • 13,8k
                                      • 9
                                    • Из Android-разработчика в DevOps

                                        Продолжаем серию статей про тех, кто делает проекты своими руками. Со Степаном Гончаровым мы поговорили о том, как органично менять направления профессионально деятельности, и при этом из Android-разработчика переквалифицироваться в DevOps. Расспросили про релизный цикл и процессы в Grab — компании, в которой только под Android разрабатывают 40 человек. Порассуждали про то, откуда черпать идеи для игр, расспросили про OpenSource-проекты Степана Archetype и kOptional.



                                        О госте: Степан Гончаров (stepango) разрабатывает приложения и игры под Android c 2008 года, c тех незапамятных времен, когда Android SDK не вышел. За свою карьеру успел побывать в роли QA, менеджера, маркетолога, блогера, аналитика, советника и многих других. Участвовал в разработке как никому неизвестных приложений, так и приложений с миллионами пользователей по всему миру. В настоящее время работает в Grab, активно использует Kotlin и Rx и все больше времени посвящает OSS.

                                        Перед вами текстовая расшифровка подкаста Run Loop. Ведущие: Илья Царев, Алексей Миляев и Роман Бусыгин.
                                        Читать дальше →
                                      • Application Coordinator в iOS приложениях

                                          Каждый год в платформе iOS происходит множество изменений, к тому же регулярно выходят сторонние библиотеки по работе с сетью, кэшированию данных, отрисовке UI через JavaScript и прочему. В противовес всем этим тенденциям Павел Гуров рассказал об архитектурном решении, которое будет актуально независимо от того, какими технологиями вы пользуетесь сейчас или будете пользоваться через пару лет.

                                          ApplicationCoordinator можно использовать для построения навигации между экранами, и заодно решить ряд проблем. Под катом демо и инструкция по максимально быстрому внедрению этого подхода.



                                          О спикере: Павел Гуров занимается разработкой iOS приложений в Avito.


                                          Читать дальше →
                                          • +36
                                          • 7,1k
                                          • 7

                                        Самое читаемое