Языки программирования и фреймворки
PHP, HTML5, CSS, JavaScript/jQuery – стандартный набор большинства веб-разработчиков в мире. Каждая из этих технологий активно развивается и эволюционирует, помогая разработчикам делать современные продукты быстрее и качественнее.
Symfony 3 – суперсовременный и один из самых популярных в мире MVC фреймворков. Эта enterprise-level платформа обеспечивает высокий уровень качества, надёжности и быстродействия. Большая часть проектов, которые мы сделали в последние пять лет, написаны на Symfony. За это время мы создали собственную библиотеку плагинов (бандлов) и разворачиваем новые проекты на готовых модулях в течение нескольких часов.
Ruby on Rails 5 – фреймворк для создания веб-приложений на языке Ruby. Мы используем его на нестандартных проектах, когда необходимо быстро получить нужный результат. Развитые механизмы автоматического тестирования позволяют нашим клиентам быть уверенными в полученном результате.
Python – этот язык программирования используется для написания автоматических тестов, для разработки mining pool, для быстрого создания различных утилит.
Базы данных
Основной выбор при разработке проектов средней сложности, это MySQL. Если в проекте требуется работа с транзакциями, финансовой логикой, статистикой или картографией, то мы используем PostgreSQL. MongoDB мы берём в качестве инструмента в случаях, когда преобладают операции чтения из БД. Redis – простое и эффективное решение для кеширования данных. В технологически сложных проектах используем микс из разных баз данных, максимально используя сильные стороны каждой.
Мы имеем также опыт миграции проекта на Microsoft SQL Server.
Инструменты: MySQL (MariaDB, Percona), PostgreSQL, MongoDB, Redis
JS-фреймворки и библиотеки
В последнее время разработка фронтенд-компонентов проектов изменилась, и активно появляются новые инструменты для оптимизации кода, скорости работы и правильной разработки. На большинстве проектов мы используем Require.js, WebPack и Handlebars.js.
ReactJS, Angular, Backbone.js – современные средства для создания пользовательских интерфейсов, на базе которых мы создаем single-page applications проекты (одностраничные приложения).
Gulp, Grunt – с помощью этих инструментов мы оптимизируем размер контента страницы – картинок, CSS и JavaScript файлов, а так же меняем подход выгрузки ресурсов на клиентов вашего проекта. Мы контролируем, как и в каком объёме пользователь получит ресурсы, выгружаемые на отдельных страницах. Каждая страница содержит только тот набор ресурсов, который необходим для её отображения.
Блокчейн технологии
Для коммуникации с Bitcoin и его форками мы используем JSON-RPC API. Мы владеем приемами создания сложных транзакций, можем защитить средства проекта с помощью multisignature и cold wallet. Мы также имеем опыт интеграции с известными блокчейн сервис-провайдерами.
C/C++, Qt – на этих технологиях был написан и продолжает развиваться оригинальный клиент Bitcoin Core. Многие форки блокчейна, в том числе созданные нами, наследуют эти технологии. Разработка новых алгоритмов Proof of Work, используемых в майнерах, также ведется нами на языке C++, с использованием вычислительных библиотек CUDA, OpenCL.
Мы разрабатываем смарт-контракты для сетей Ethereum и RSK на языках Solidity и Vyper.
Мы владеем инструментами Web3.js и MetaMask, которые позволяют создавать интерактивные web-приложения.
Методология тестирования
Проект (самые важные части или весь код) покрываются автоматическими тестами, как unit-тестами, так и функциональными тестами для фронтенда. Мы используем подход Continuous Integration, при котором тесты запускаются автоматически каждый раз, когда происходит обновление кода в репозитории, и разработчик видит, не затронуло ли его изменение другие части кода.
Behaviour driven development (BDD) особенно часто мы используем в Agile проектах, когда написанные тесты позволяют контролировать целостность проекта и проводить быстрые изменения без потери качества.
Инструменты: GitLab CI, phpUnit, Rspec, Selenium, Behat, Mink, Capybara, Truffle, Remix
Поисковые движки
Когда нужен большой объём фильтрации или поиск по морфологии, стандартный поиск в базе данных работает не эффективно. Поисковые движки Sphinx Search и ElasticSearch создают индекс, по которому поиск и фильтрация осуществляются быстро и не нагружая ресурсы сервера.
Инструменты
NodeJS – инструмент, который мы часто используем для написания скриптов внутри проектов.
Blackfire – с помощью Blackfire мы замеряем производительность написанных нами компонентов и приложений. Отслеживание метрик на протяжении всей разработки даёт нам уверенность в том, что код написан не только качественно, но и наиболее оптимально.
Varnish – http кеширующий сервер для увеличения скорости загрузки страницы. В отдельных случаях может давать прирост в 20-50 раз и спасать от падения сервера под нагрузкой.
NGINX – производительный веб-сервер, стандарт де-факто в работе с объёмными проектами.
Newrelic – набор инструментов для замеров скорости работы и наличия ошибок. С его помощью мы проверяем производительность и находим узкие места в архитектуре проекта. Проводим нагрузочное тестирование и убеждаемся в том, что проект выдерживает требуемую заказчиком нагрузку.
Sentry – журналирование ошибок. Позволяет отлавливать ошибки в автоматическом режиме. Мы устанавливаем этот инструмент на каждый проект после его реализации и запуска, и можем видеть ситуацию с ошибками на проекте после его релиза.
RabbitMQ – менеджер сообщений позволяет нам распределять нагрузку в сложных проектах, упрощает масштабирование и делает код более понятным.
Truffle – этот фреймворк мы используем для создания большинства смарт-контрактов.
Amazon Web Services (AWS) – для создания гибкой инфраструктуры высоконагруженного проекта.
Cloudflare – используем для обеспечения бесперебойной работы web-приложений наших клиентов.
Спасибо!
Ваше сообщение отправлено.
Мы ответим Вам в ближайшее время.
Продолжить