• Интеграция проекта VueJS+TS с SonarQube

    • Tutorial

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



    В данной статье речь пойдет, как писал выше, о платформе SonarQube. Немного теории — что это такое вообще, для тех, кто слышит о ней впервые:


    SonarQube (бывший Sonar) — платформа с открытым исходным кодом для непрерывного анализа (англ. continuous inspection) и измерения качества кода.
    Поддерживает анализ кода и поиск ошибок согласно правилам стандартов программирования MISRA C, MISRA C++, MITRE/CWE и CERT Secure Coding Standards. А также умеет распознавать ошибки из списков OWASP Топ-10 и CWE/SANS Топ-25 ошибок программирования.
    Несмотря на то, что платформа использует различные готовые инструменты, SonarQube сводит результаты к единой информационной панели (англ. dashboard), ведя историю прогонов и позволяя тем самым увидеть общую тенденцию изменения качества программного обеспечения в ходе разработки.

    Более подробно можно узнать на официальном сайте


    Поддерживается большое количество языков программирования. Судя по информации из ссылки выше — это более 25 языков. Для поддержки конкретного языка необходимо установить соответствующий плагин. В community-версию входит плагин для работы с Javascript (в том числе typesсript), хотя в wiki написано обратное. За Javascript отвечает плагин SonarJS, за Typescript SonarTS соответственно.


    Для отправки информации о покрытии используется официальный клиент sonarqube-scanner, который, используя настройки из config-файла, отправляет эти данные на сервер SonarQube для дальнейшей консолидации и агрегирования.


    Для Javascript есть npm-обертка. Итак, начинаем пошаговое внедрение SonarQube в Vue-проект, использующий Typescript.

    Читать дальше →
  • 10 строк кода, которые уменьшат боль от вашего проекта на Vue

    … или знакомство с плагинами Vue JS на примере интегрированной шины событий


    Пара слов о…


    Всем привет! Сразу оговорюсь. Я очень люблю VueJS, активно пишу на нем уже больше 2-х лет и не считаю, что разработка на нем может причинить боль хоть в какой-то значимой степени :)
    С другой стороны, мы всегда пытаемся найти универсальные решения, которые помогут тратить меньше времени на механическую работу и больше – на то, что действительно интересно. Иногда решение оказывается особенно удачным. Одним из таких я хочу поделиться с вами. 10 строк, о которых пойдет речь (спойлер: в конце их окажется немного больше), родились в процессе работы над проектом Cloud Blue – Connect, который представляет собой достаточно крупное приложение на 400+ компонентов. Найденное нами решение уже интегрировано в самые разные точки системы и вот уже более полугода ни разу не требовало правок, поэтому его смело можно считать успешно проверенным на устойчивость.
    Читать дальше →
  • Скребём Github: поиск «секретов» разработки

      image

      При разработке софтверного продукта или облачного SaaS-сервиса достаточно трудно отслеживать сторонние активности всех специалистов, вовлеченных в процесс разработки. Достаточно открыть Github, ввести в поиске «<имя_домена_компании.com> pass» и оценить выдачу. В том случае, если вдруг Github действительно показывает в своей выдаче что-то интересное, то мы рассмотрим сценарии, которые могут помочь злоумышленникам нарушить бизнес-процесс твоей компании. А если Github все же молчит, то рассмотрим альтернативные варианты атаки на цикл разработки продукта, при которых точкой входа в инфраструктуру могут стать не только разработчики, но даже Security-инженеры.
      Читать дальше →
      • +10
      • 3,7k
      • 1
    • Сибирское саппорт-комьюнити: начало

        Это было обычное утро обычного апрельского вторника. Мы сидели на кухне и холиварили о том, как нужно делать саппорт. Вдруг Дима Дягилев (Operations Manager Technical Support) нарушил привычный ход событий. Причем не только на вторник, но и ближайшие полгода.

        — Ребята, вам не кажется дико несправедливым то, что у девелоперов, PM’ов, QA’шников и эйчаров есть свои митапы, а у саппорта что-то не очень. Ведь полно скиловых инженеров,  многим есть чем поделиться с коллегами, о чем рассказать.



        Возникла небольшая пауза, мы задумались.

        — Знаешь, Дим, а ведь так и есть. Митап-традиции у саппорта нет, но мы изобрели сто-о-олько всяких велосипедов, что другим наверняка будет интересно об этом послушать. А кому-то даже полезно. А кто-то наверняка сам сплясал на сотне грабель и может рассказать об этих танцах.

        «Ну так что, делаем?» — «Конечно делаем!»
        Читать дальше →
      • Патентование, настолка для программистов, сети в Kubernetes и самокат в подарок



          28-29 мая в Сколково пройдет фестиваль конференций РИТ++. На стенде Ingram Micro Сloud мы устраиваем битву в игре-головоломке CloudPipe за главный приз — электросамокат. Побороться за другие награды можно удаленно, регистрация и подробности на cloudpipe.win

          И это не единственная активность Ingram Micro Cloud на РИТ++. На разных конференциях можно будет еще послушать выступления наших ребят. Подробности — под катом.
          Читать дальше →
        • Как сделать Public API, которым будут пользоваться

            Во фронтенде практически безраздельно правит OpenSource, а с недавних пор набирает популярность компонентный подход. Вроде бы всё чудесно. Небольшим компаниям компонентный подход помогает переиспользовать код, а крупным компаниям выравнивать UX во всей линейке продуктов, сервисов и прочего. И вот мы все такие замечательные крутые разработчики пилим свои фреймворки, библиотеки и виджеты, радостно полагая, что если они решают наши задачи, то решают и проблемы окружающего мира. Мы выкладываем их в паблик, ожидая благодарных пользователей, звезд на GitHub, скачиваний на NPM-е. Но почему-то одни библиотеки взлетают, а другие остаются незамеченными и позабытыми.


            Почему же так происходит?
          • Как в IT-компании запустить патентный процесс



              В декабре 2015 года американский дистрибьютор с оборотом $43 млрд. Ingram Micro купил часть бизнеса Parallels, Odin Automation — платформу для дистрибуции облачных сервисов. Кроме разработчиков и нескольких ключевых патентов на сам продукт, Ingram Micro получил в наследство еще и зачатки «культуры патентования», которая впоследствии расцвела и накрыла защитной кроной все новые разработки. О том, как росло это «дерево» и чем его «поливали» я расскажу в этом посте.
              Читать дальше →
            • Ingram Micro и Odin Automation

                Привет Хабр! Меня зовут Тимур Хакимьянов, я являюсь вице-президентом Odin Automation и руковожу разработкой платформы дистрибуции облачных сервисов и приложений. Информация о нашей компании в Рунете крайне скудна, несмотря на то, что нашими продуктами пользуется более 150 телеком-операторов, хостеров и провайдеров по всему миру, среди которых есть очень крупные и известные. При этом почти весь наш департамент разработки находится в России. Поэтому я хочу немного заполнить информационный вакуум и подробнее рассказать о том, кто мы такие и что делаем.
                Читать дальше →
              • Что же такое RQL

                  Представьте, что у вас есть хранилище данных с REST-интерфейсом. Пусть в нем хранится информация о книгах и вы хотите вывести список всех книг. Можно сделать метод «books», который будет возвращать нам список книг. Но при отображении списка обычно есть паджинация или ленивая подгрузка данных, а еще пользовать хочет фильтровать и сортировать данные. Когда мы добавляем поддержку мобильных устройств у нас появляется еще потребность как-то ограничить объем получаемых данных не передавая часть полей. Всю эту информацию должен уметь понимать почти любой метод получения списка объектов, т.к. списки отображаются с помощью специального виджета. И тут нам на помощь приходит Resource Query Language.

                  Resource Query Language (RQL) — это язык запросов, разработанный для использования в URI при работе с объекто-подобными структурами данных. С помощью RQL клиент может запрашивать у сервера список объектов соответствующих определенным правилам, т.е., по сути, это синтаксис, который описывает как запрашивать данные. Например, запрос выбирающий все книги авторства Перумова может быть записан как eq(author,Перумов) или в обычном формате URL: author=Перумов.
                  Читать дальше →
                • «Сломай голосовалку на РИТ++». Даёшь 1 000 000 RPS


                    Прошёл второй день РИТ++, и по горячим следам мы хотим рассказать о том, как всем миром пытались сломать нашу голосовалку. Под катом — код, метрики, имена победителей и самых активных участников, и прочие грязные подробности.

                    Читать дальше →
                  • Итоги половины дня! Сломай голосовалку на РИТ++ за 50 наклеек. День два

                      UPD 6 июня, 13:00 Промежуточные итоги половины дня (играем до 18.00)

                      TOP25
                      { _id: 'burik666@...', count: 577979174 },
                      { _id: 'ivan@...', count: 513559731 },
                      { _id: 'alarkin@...', count: 222891322 },
                      { _id: 'i@...', count: 216486374 },
                      { _id: 'odn@...', count: 145072331 },
                      { _id: 'A1977494@...', count: 55572517 },
                      { _id: 'elena@...', count: 44642302 },
                      { _id: 'hack@...', count: 15686298 },
                      { _id: 'alexey.tsikov@...', count: 12685075 },
                      { _id: 'minkin.andrew@...', count: 8200540 },
                      { _id: 'perminoff@...', count: 5428646 },
                      { _id: '256@...', count: 5030088 },
                      { _id: 'v@...', count: 2163356 },
                      { _id: 'pen<ОЙ>is@...', count: 2100855 },
                      { _id: 'lebedevcommerical@...', count: 1605961 },
                      { _id: 'serg_sokolov@...', count: 1600238 },
                      { _id: 'msalnikov@...', count: 1499220 },
                      { _id: 'ghostlyfox@...', count: 1473142 },
                      { _id: 'alex21021991@...', count: 1437472 },
                      { _id: 'nikita.shapovalov@...', count: 1007977 },
                      { _id: 'evgen300@...', count: 652291 },
                      { _id: 'malchenko.dmitriy.by@...', count: 611410 },
                      { _id: 'dzmitry_t@...', count: 279287 },
                      { _id: 'maniaque.ru@...', count: 262446 },
                      { _id: 'e.tabatsky@...', count: 190766 }


                      UPD 6 июня, 12:40

                      361K RPS Голосуй за свой ЯП? #ritfest2017 high load голосование https://t.co/CbbDhHJKNj @IngramCloud pic.twitter.com/mT6jfI9L4G

                      — Alex Hayorov (@hayorov) June 6, 2017

                      6 июня, 10:00
                      Сегодня второй день! Мы добавили мощностей и немного изменили дизайн, теперь вы можете видеть топ-5 голосующих.



                      Приходите на наш стенд рядом с конгресс-холлом.
                      Читать дальше →
                    • Технология APS: фронтенд контрольной панели и возможности JS SDK

                        В прошлый раз мы рассказали об APS (Application Packaging Standard) — нашей открытой технологии интегрирования приложений в платформу по продаже облачных сервисов (SaaS marketplace) Odin Automation. Наша платформа связывает разработчиков и потребителей облачных сервисов через инфраструктуру крупных сервис-провайдеров (поставщиков телекоммуникационных и хостинг-услуг), одновременно предоставляя точку входа для конечных пользователей: контрольную панель или портал, с помощью которого можно создать сайт, настроить почту, купить антивирус или виртуальную машину в облаке. В этом посте мы более подробно остановимся на том, как устроен фронтенд контрольной панели и APS-приложений и какие возможности предоставляет APS JavaScript SDK.


                        Читать дальше →
                      • Технология APS: облачный стандарт

                          Привет, Хабр! Меня зовут Тимур Низаметдинов, я работаю Senior Software Architect облачной экосистемы Odin (Ingram Micro). Сегодня я хочу рассказать вам об APS (Application Packaging Standard) — ключевой технологии, используемой для интеграции в платформу по продаже и потреблению облачных сервисов (SaaS marketplace) Odin Automation.

                          Про платформу





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

                          Odin Automation состоит из следующих компонентов:


                          • Онлайн-магазин, задача которого привлечь конечных пользователей, а также представителей малого и среднего бизнеса, заинтересованных в приобретении таких продуктов, как Microsoft Office 365 или Dropbox for Business. Система помогает выбрать наиболее подходящие решения, сориентироваться в их возможностях и версиях.

                          • Панель управления купленными сервисами (Контрольная панель / Self-management Control Panel), задача которой предоставить возможности управления, докупки (upsell) и перекрестной продажи (cross-sell) сервисов покупателю.

                          • Система бизнес-поддержки (BSS, Business Support System), которая управляет рабочими процессами, инициирует процессы оплаты, предоставления (provisioning), биллинга и так далее.

                          • Система поддержки операций (OSS, Operation Support System), которая занимается учетом, планированием и предоставлением услуг.

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


                          Читать дальше →

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