• История тестирования проекта «К»: Kotlin&Spek

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

      В этой статье мы поговорим об автоматическом тестировании на одном из многочисленных проектов QIWI, получившим кодовое название «К».



      Когда мы организовывали тестирование это проекта, то решили выбрать практичный и хайповый Kotlin, а также Spek, гласящий «Вы называете их тестами, мы называем их спецификациями» (You call them tests, we call them specifications). Возможно, такой подход подойдет и вам, если вы столкнетесь с похожими задачами.

      Почему Kotlin, а не что-то еще? Kotlin был выбран разработкой, поэкспериментировать, так как конкретно этот продукт не был критичным, и можно было вживую потренироваться на нём, не опасаясь, что будут проблемы.

      Официальная документация говорит нам, что «Spek написан на Kotlin, и спецификации, которые вы пишете, будут написаны на Kotlin» – это очень ясно отвечает на вопрос: «Зачем это нужно?».

      Итак…

      Что это и зачем это нужно?

      Читать дальше →
      • +16
      • 2,5k
      • 2
    • QIWI Кухня от 7 июня — видео выступлений наших спикеров

        Привет, Хабр! Время от времени для дизайнеров, исследователей и аналитиков (и граждан, им сочувствующих) мы проводим митапы под кодовым названием “QIWI Кухня”.



        Недавняя встреча прошла 7 июня. Мы успели обсудить создание нашего виртуального журнала, особенности проектирования виртуальных ассистентов, поговорили о семиотике и создании контента для четырёх разных аудиторий (Гедонисты, Независимые, Эстеты, Традиционалисты).

        Темы докладов (как и презентации спикеров) — под катом. Там же и полные видео выступлений.
        Читать дальше →
      • Из фронтенда в бэкенд

          К переходам внутри департаментов иногда относятся по-разному. Кому-то просто привычнее видеть любые карьерные изменения внутри одной компании через призму роста должностей. Кто-то не считает возможным сменить сферу деятельности, даже если она смежная с текущей. Третьи же в принципе уверены, что переход из департамента в департамент означает, что человек занимает позицию “ни рыба, ни мясо”, и вряд ли добьётся чего-то значимого.


          image


          При этом некоторые работодатели всячески это приветствуют и считают чем-то вроде предохранителя от выгорания – человек сменит фокус внимания, сменит департамент или отдел, но не сменит саму работу в целом.


          Меня зовут Костя, и я работаю в QIWI почти 4 года. Сегодня расскажу вам, как успешно перешел из frontend-разработки в backend.

          Читать дальше →
        • Автотесты, балансировка, терминал и не только – о чем мы будем говорить уже в этот четверг

            Привет, Хабр! Напоминаем, что осталось всего три дня, чтобы успеть записаться на QIWI SERVER PARTY 2.0, который мы проведем в четверг, 15 марта.

            Адрес тот же – г. Москва, Ул. Ленинская Слобода, 26с11 Loft#3, начинаем в 17.00 (спикеры выступают с 18 до 21).

            Бесплатная регистрация доступна по ссылке, а под катом мы расскажем немного подробнее о том, какие доклады ждут вас в четверг.
            Читать дальше →
          • Нагрузочное тестирование «не-HTTP». Ч.2 Gatling

              В первой части статьи мы провели сравнительный анализ средств нагрузки на Java для JMeter, ушли от XML тест-планов и достигли 30K RPS с одной машины, нагружая «не-HTTP» сервис на примере Apache Thrift.

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

              Читать дальше →
            • 15 марта QIWI соберёт back-end разработчиков на QIWI SERVER PARTY 2.0

                Неформальный митап для back-end разработчиков, которым важно быть в теме.



                Приходи и ты узнаешь:

                • Про отказоустойчивую и высоконагруженную балансировку
                • Горизонтальный рост разработчика
                • Автотесты на Kotlin
                • Teamcity DSL (Kotlin)
                • Оптимизацию навыков работы в терминале


                Программа митапа:

                17.00–18.00 — cбор гостей и регистрация
                18.00–19.00 — выступления спикеров
                19.00–19.20 — перекур
                19.20–21.00 — выступления спикеров
                21.00–22.00 — свободное общение и выступление музыкальной группы.
                Читать дальше →
              • QIWI приглашает дизайнеров, исследователей и аналитиков «на кухню»

                  15 февраля 2018 г. в офисе QIWI пройдет митап QIWI Кухня, посвященный созданию продуктов «с нуля». Спикерами выступят команды дизайнеров QIWI, а также Иван Замесин (ex- Chatfuel) и Алексей Черняк (ex-Groupon).

                  image

                  Новый проект QIWI Кухня — это серия неформальных митапов для дизайнеров, исследователей и аналитиков, которые хотят быстро запускать новые продукты и увидеть внутреннюю «кухню» QIWI и как все устроено в больших компаниях на самом деле.
                  Участники первого митапа смогут узнать о процессах при создании продуктов с нуля, почему вся команда должна знать бизнес-модель, как быстро и легко делать customer development.
                  Рил ток онли!

                  Лиды продуктовых и дизайн-команд QIWI расскажут, как проводить UX-тесты, когда у вас agile, как создавался дизайн «Совести» и как с ним жить дальше, на какую аналитику не стоит тратить время на старте.

                  Читать дальше →
                • Двадцать лет с юзкейсами: выжимаем практический опыт

                    У нас в QIWI регулярно проводятся встречи аналитиков и проектных менеджеров, где мы рассказываем друг другу о своем опыте, делимся знаниями и полезными приемами. На одной из таких встреч я рассказал о методике Use Case и о своем опыте работы с ней. Рассказ был встречен на ура, и я решил поделиться им с хабрасообществом.



                    Я буду использовать разговорное «юзкейс» вместо неуклюжей кальки «прецедент использования». Надеюсь, уважаемая публика меня за это простит.
                    Читать дальше →
                    • +19
                    • 6,4k
                    • 2
                  • Нагрузочное тестирование «не-HTTP». Ч.1 JMeter

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


                      В этой статье мы расскажем, как писать код для нагрузочного тестирования «не-HTTP» протоколов на примере Apache Thrift с помощью таких инструментов, как JMeter и Gatling (часть 2). Тестировать будем микросервис, который должен справляться с 50K RPS. С одной нагрузочной машины постараемся достичь производительности, заявленной в этом твите:


                      Читать дальше →
                      • +11
                      • 6,1k
                      • 7
                    • Два года успешного использования Edition-Based Redefiniton в базах Oracle

                        Хранимый код в базе? Не смешите, на дворе 2017 год!


                        В этом году бренду QIWI исполнилось 10 лет. За это время в нашей основной транзакционной базе накопилось более чем 130 тысяч строк хранимого PL/SQL кода. На Хабре регулярно встречаются статьи о том, как различные команды разработчиков категорически не используют хранимый код в БД, стараясь убрать излишнюю нагрузку с БД и таким образом удешевить систему. По этой теме можно долго дискутировать, и такая точка зрения опровергается, например, вот в этом видео.

                        Что бесспорно — хранимый PL/SQL код традиционно имел один существенный минус: релиз PL/SQL программы требовал остановки сервиса, поскольку процесс компиляции этого кода должен был получить эксклюзивную блокировку в словаре БД (так называемый library cache pin). Не вовремя запущенная случайная рекомпиляция могла подвесить всю систему. Приходилось регулярно выделять технические окна для релиза PL/SQL кода. Заверенные скриншоты жалоб наших возмущённых клиентов, попавших в такие окна, бережно хранятся в наших архивах. Однако не прошло и 20 лет от создания PL/SQL, как Oracle этот недостаток если не устранил полностью, то существенно смягчил.

                        Welcome to Oracle Edition-Based Redefinition


                        Мы не будем приводить детальные примеры кода с использованием Edition-Based Redefinition, а опишем несколько ключевых пунктов проекта по его внедрению. С некоторой натяжкой этот механизм, который принято сокращать до EBR, можно считать системой контроля версий объектов БД внутри самой БД. Теперь приложения способны работать с разными версиями одних и тех же процедур, пакетов и представлений. Однако в БД, кроме кода, есть еще и структуры данных в виде таблиц, и Oracle пришлось придумать способ межверсионной трансформации как самих таблиц, так и данных в них.
                        Читать дальше →
                        • +11
                        • 2,9k
                        • 9
                      • Как мозг бьет дерево, или как мы сделали рекомендательную систему с помощью нейронной сети

                          Как бы вы сделали рекомендательную систему? У многих в голове сразу появилась картина как они импортят и стакают XGBoost CatBoost. Изначально у нас в голове появилась та же картина, но мы решили на волне хайпа сделать это на нейронных сетях, благо времени было много. Опыт их создания, тестирование, результаты и наши мысли описаны далее.


                          Читать дальше →
                        • Длинные уши асинхронности


                            Разработчики React тяготеют к функциональному подходу, но с появлением MobX, появилась возможность работать с состоянием в более-менее привычном ООП-стиле. Mobx старается не навязывать какую либо архитектуру, позволяя работать с реактивным состоянием, как с обычными объектами. При этом он делает автоматическое связывание вычислений, когда достаточно написать C = A + B, чтобы при обновлении A, обновился и C.


                            В HelloWorld это выглядит просто, но если мы добавим fetch, отображение статусов загрузки и обработку ошибок, мы увидим, что получается много копипаста, а в код начинают просачиваться хелперы вроде when, fromPromise или lazyObservable. И уже не получается писать код так, как будто нет асинхронности. Я хочу разобрать некоторые подобные примеры в MobX и попытаться улучшить его базовую концепцию, развив идею псевдосинхронности.

                            Читать дальше →
                          • Донаты стримерам и настоящие деньги для ненастоящей жизни: подведены итоги QIWI API Contest

                              Современное правило ценности гласит: «Ценность любой платформы для пользователей определяется количеством приложений, под неё написанных». Поэтому, выложив в августе этого года API QIWI Кошелька с новой аутентификацией, мы не стали откладывать вовлечение аудитории в творческий процесс создания приложений в долгий ящик, и провели в сентябре конкурс идей QIWI API Contest, в котором поучаствовал даже сам Хабр.


                              Финалисты QIWI API Contest и члены жюри

                              Из 20 полученных прототипов мы отобрали 6 лучших команд, попавших в финал. А затем выбрали два проекта, заслуживших наши такие разные, но по-своему замечательные призы: поездку на Финтех фестиваль в бананово-лимонный Сингапур и личное знакомство с основателем и CEO компании QIWI Сергеем Солониным.
                              Читать дальше →
                              • +11
                              • 3,1k
                              • 1
                            • Помедленнее, мы записываем: 10 новых применений API QIWI Кошелька, которые предложил Хабр

                                На прошлой неделе мы решили поощрить креатив хабражителей и напомнить про наше новое API QIWI Кошелька, проведя конкурс идей по его применению. Который, в свою очередь, является прологом к конкурсу решений QIWI API Contest, который пройдёт 23 сентября в Москве.



                                Как и обещали, мы отобрали и публикуем 10 наиболее перспективных, на наш взгляд, предложений, которые можно успешно воплотить в жизнь с использованием открытого API QIWI Кошелька, и призываем разработчиков смело их разбирать и записываться с ними на наш конкурс — приём заявок закрывается уже в пятницу, 15 сентября.
                                Читать дальше →
                                • +25
                                • 5,3k
                                • 1
                              • Отчет с митапа для back-end разработчиков

                                  6 сентября на Дизайн-заводе Flacon прошел неформальный митап для back-end разработчиков.


                                  Нас пугали ураганом, грозой и холодом. Не сработало, к нам присоединилось более 150 участников!

                                  Горячий глинтвейн и бургеры, теплая атмосфера. А еще горячие темы выступлений:

                                  — Как с пользой провести время на собеседовании
                                  — Почему Big Data бесполезна
                                  — Как внедрить Kubernetes и не сойти с ума
                                  — Почему архитектуру иногда нужно менять просто так
                                  — Про Docker



                                  Читать дальше →
                                • По тысяче рублей за идею: платим за предложения по автоматизации кошельков QIWI



                                    Современные онлайн-кошельки — как интернет-клиенты классических банков, так и сервисы электронных денег — стараются максимально кастомизироваться, пытаясь вести учёт ваших трат или автоматизировать оплаты. Но что, если стандартных «создать регулярный платёж» вам недостаточно? Что, если вам нужно «оплачивать телефон каждый раз, когда у меня баланс ниже определённой суммы»? Или «сделать покупку, когда цена/курс упадут ниже порога»? Очевидно, что такие сложные сценарии требуют как доступа к параметрам сторонних сервисов, так и доступ к управлению своими платёжными инструментов.

                                    Такой, как доступ, который даёт API кошелька QIWI. Чтобы как можно больше разработчиков узнал и опробовало возможности автоматизации своих кошельков через наше API, QIWI проводит конкурс приложений для QIWI Кошелька, который завершится в Москве 23 сентября финальным этапом. До 15 сентября будут отобраны 15 команд, которые померятся качеством и оригинальностью своих вариантов автоматизации QIWI-кошелька ради главных призов: поездки на Singapore FinTech Festival и деловой завтрак с генеральным директором QIWI Сергеем Солониным, входящего в список «Форбс» 200 самых богатых бизнесменов России.

                                    Но даже если вы не разработчик, то помочь участникам хакатона и получить за это свой приз можно будет, дочитав этот пост до конца — мы расскажем, как принять участие в конкурсе самых перспективных идей приложений для QIWI-кошелька.
                                    Читать дальше →
                                  • QIWI Server Party: пиво DevOps не помеха

                                      Привет всем! Совсем скоро состоится мероприятие под кодовым названием QIWI Server Party! Встреча для back-end разработчиков, которым важно дело, а не “эффективные рабочие процессы”.

                                      Будут интересные доклады и квалифицированные спикеры! Например, наш коллега Сергей Чеканский расскажет, «Почему BigData бесполезна»! А также своим опытом работы с Kubernetes поделится Антон Дубенчук. Плюс будет еще пара интересных тем.



                                      Ну и, разумеется, неформальное общение, пиво и BBQ. За подробностями добро пожаловать под кат!
                                      Читать дальше →
                                    • 6 сентября QIWI соберёт back-end разрабочиков на QIWI SERVER PARTY

                                        image

                                        QIWI SERVER PARTY для back-end разрабочиков — 6 сентября, дизайн-завод FLACON


                                        Неформальный митап для back-end разработчиков, которым не нужны эффективные рабочие процессы.

                                        Ты узнаешь:

                                        • Как с пользой провести время на собеседовании
                                        • Почему Big Data бесполезна
                                        • Как внедрить Kubernetes и не сойти с ума
                                        • Почему архитектуру иногда нужно менять просто так

                                        Программа митапа:

                                        17.00–18.00 — cбор гостей и регистрация
                                        18.00–19.00 — выступления спикеров
                                        19.00–19.20 — перекур
                                        19.20–20.00 — выступления спикеров
                                        20.00–22.00 — свободное общение и специальный приглашенный гость

                                        Ближе к дате программа может незначительно поменяться.

                                        Где: дизайн-завод FLACON / ул. Б. Новодмитровская, 36 / Крыша кафе-бара «Искра»
                                        Когда: 6 сентября в 17.00

                                        Вход свободный по регистрации на таймпад

                                        Если back-end твоя тема, ждем!
                                        Читать дальше →
                                      • Как легально «вскрыть» QIWI Кошелек и прокачать его по полной программе

                                          С недавнего времени пользователям Visa QIWI Кошелька доступны новые методы API. Под катом: что это за API, зачем мы его открыли и почему стоит начать им пользоваться уже сейчас.


                                          Читать дальше →
                                        • Как развивать продукт, если в команде один разработчик и два заказчика?

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



                                            Команда мечты


                                            Волею судеб мы с коллегой взяли ответственность за развитие сайта подключения b2b клиентов к QIWI (ishop.qiwi.com) и страницы оплаты счетов (bill.qiwi.com). В момент нашего великолепного пришествия в проект, команда мечты состояла из двух заказчиков (мы), одного JavaScript разработчика на удаленке и одного специалиста QA. Накануне, кстати говоря, из команды ушел серверный Java разработчик. Также в рабочей группе имелся новенький проектный менеджер, но решив, что 3 управленца на 1 разработчика — перебор — разошлись.
                                            Читать дальше →
                                          Самое читаемое