Как стать автором
Обновить

Компания Ingram Micro Cloud временно не ведёт блог на Хабре

Сначала показывать

Организация типовых модулей во Vuex

Блог компании Ingram Micro Cloud JavaScript *VueJS *

Как мы организовали Vuex-сторы и победили копипасту


Vuex — это официальная библиотека для управления состоянием приложений, разработанная специально для фреймворка Vue.js.


Vuex реализует паттерн управления состоянием, который служит централизованным хранилищем данных для всех компонентов приложения.


По мере роста приложения такое хранилище разрастается и данные приложения оказываются помещены в один большой объект.


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


Работая над проектом CloudBlue Connect и создавая очередной модуль, мы поймали себя на мысли, что пишем один и тот же шаблонный код снова и снова, меняя лишь эндпоинт:


  1. Репозиторий, в которой содержится логика взаимодействия с бекендом;
  2. Модуль для Vuex, который работает с репозиторием;
  3. Юнит-тесты для репозиториев и модулей.

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


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


Для этого мы создали фабрику типовых модулей Vuex, сократившую практически до нуля написание нового кода для взаимодействия с бекендом и хранилищем (стором).

Читать дальше →
Всего голосов 11: ↑10 и ↓1 +9
Просмотры 3.9K
Комментарии 4

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

Блог компании Ingram Micro Cloud Open source *DevOps *VueJS *TypeScript *
🔥 Технотекст 2020
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.

Читать дальше →
Всего голосов 5: ↑5 и ↓0 +5
Просмотры 4.3K
Комментарии 5

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

Блог компании Ingram Micro Cloud JavaScript *VueJS *
Из песочницы

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


Пара слов о…


Всем привет! Сразу оговорюсь. Я очень люблю VueJS, активно пишу на нем уже больше 2-х лет и не считаю, что разработка на нем может причинить боль хоть в какой-то значимой степени :)
С другой стороны, мы всегда пытаемся найти универсальные решения, которые помогут тратить меньше времени на механическую работу и больше – на то, что действительно интересно. Иногда решение оказывается особенно удачным. Одним из таких я хочу поделиться с вами. 10 строк, о которых пойдет речь (спойлер: в конце их окажется немного больше), родились в процессе работы над проектом Cloud Blue – Connect, который представляет собой достаточно крупное приложение на 400+ компонентов. Найденное нами решение уже интегрировано в самые разные точки системы и вот уже более полугода ни разу не требовало правок, поэтому его смело можно считать успешно проверенным на устойчивость.
Читать дальше →
Всего голосов 25: ↑19 и ↓6 +13
Просмотры 13K
Комментарии 17

Скребём Github: поиск «секретов» разработки

Блог компании Ingram Micro Cloud Информационная безопасность *
image

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

Сибирское саппорт-комьюнити: начало

Блог компании Ingram Micro Cloud Help Desk Software *Service Desk *Конференции
Это было обычное утро обычного апрельского вторника. Мы сидели на кухне и холиварили о том, как нужно делать саппорт. Вдруг Дима Дягилев (Operations Manager Technical Support) нарушил привычный ход событий. Причем не только на вторник, но и ближайшие полгода.

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



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

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

«Ну так что, делаем?» — «Конечно делаем!»
Читать дальше →
Всего голосов 14: ↑12 и ↓2 +10
Просмотры 2.2K
Комментарии 6

Патентование, настолка для программистов, сети в Kubernetes и самокат в подарок

Блог компании Ingram Micro Cloud Серверное администрирование *Конференции DevOps *Kubernetes *


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

И это не единственная активность Ingram Micro Cloud на РИТ++. На разных конференциях можно будет еще послушать выступления наших ребят. Подробности — под катом.
Читать дальше →
Всего голосов 12: ↑11 и ↓1 +10
Просмотры 3.2K
Комментарии 1

Как сделать Public API, которым будут пользоваться

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


Почему же так происходит?
Всего голосов 6: ↑6 и ↓0 +6
Просмотры 9.5K
Комментарии 1

Как в IT-компании запустить патентный процесс

Блог компании Ingram Micro Cloud


В декабре 2015 года американский дистрибьютор с оборотом $43 млрд. Ingram Micro купил часть бизнеса Parallels, Odin Automation — платформу для дистрибуции облачных сервисов. Кроме разработчиков и нескольких ключевых патентов на сам продукт, Ingram Micro получил в наследство еще и зачатки «культуры патентования», которая впоследствии расцвела и накрыла защитной кроной все новые разработки. О том, как росло это «дерево» и чем его «поливали» я расскажу в этом посте.
Читать дальше →
Всего голосов 11: ↑9 и ↓2 +7
Просмотры 2.9K
Комментарии 12

Ingram Micro и Odin Automation

Блог компании Ingram Micro Cloud
Привет Хабр! Меня зовут Тимур Хакимьянов, я являюсь вице-президентом Odin Automation и руковожу разработкой платформы дистрибуции облачных сервисов и приложений. Информация о нашей компании в Рунете крайне скудна, несмотря на то, что нашими продуктами пользуется более 150 телеком-операторов, хостеров и провайдеров по всему миру, среди которых есть очень крупные и известные. При этом почти весь наш департамент разработки находится в России. Поэтому я хочу немного заполнить информационный вакуум и подробнее рассказать о том, кто мы такие и что делаем.
Читать дальше →
Всего голосов 16: ↑13 и ↓3 +10
Просмотры 6.4K
Комментарии 7

Что же такое RQL

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

Resource Query Language (RQL) — это язык запросов, разработанный для использования в URI при работе с объекто-подобными структурами данных. С помощью RQL клиент может запрашивать у сервера список объектов соответствующих определенным правилам, т.е., по сути, это синтаксис, который описывает как запрашивать данные. Например, запрос выбирающий все книги авторства Перумова может быть записан как eq(author,Перумов) или в обычном формате URL: author=Перумов.
Читать дальше →
Всего голосов 24: ↑22 и ↓2 +20
Просмотры 11K
Комментарии 19

«Сломай голосовалку на РИТ++». Даёшь 1 000 000 RPS

Блог компании Ingram Micro Cloud Высокая производительность *Разработка веб-сайтов *Программирование *Node.JS *


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

Читать дальше →
Всего голосов 30: ↑28 и ↓2 +26
Просмотры 8.7K
Комментарии 34

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

Блог компании Ingram Micro Cloud Информационная безопасность *Программирование *
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 голосующих.



Приходите на наш стенд рядом с конгресс-холлом.
Читать дальше →
Всего голосов 45: ↑36 и ↓9 +27
Просмотры 13K
Комментарии 67

Технология APS: фронтенд контрольной панели и возможности JS SDK

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


Читать дальше →
Всего голосов 19: ↑19 и ↓0 +19
Просмотры 4.1K
Комментарии 0

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

Блог компании Ingram Micro Cloud Анализ и проектирование систем *SaaS / S+S *Разработка под e-commerce *Биллинговые системы *
Привет, Хабр! Меня зовут Тимур Низаметдинов, я работаю 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 по управлению и учету облачных сервисов.


Читать дальше →
Всего голосов 25: ↑24 и ↓1 +23
Просмотры 6K
Комментарии 0