Выбор MQ для высоконагруженного проекта

Автор: admin от 19-04-2017, 17:30, посмотрело: 18

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

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

Если микросервис перестает отвечать на запросы в результате аварии, его клиенты должны быть мгновенно перенаправлены на резервный. Для управления потоком запросов часто используют так называемые очереди сообщений (message queues).

Недавно используемая нами очередь перестала нас устраивать по параметрам отказоустойчивости и мы заменили ее. Ниже мы делимся нашим опытом выбора.

Категория: Программирование

 

TypeScript в Slack

Автор: admin от 19-04-2017, 15:20, посмотрело: 20

Или как мы перестали беспокоиться и научились доверять компилятору


TypeScript в Slack

Когда Брендан Эйх создал самую первую версию javascript для Netscape Navigator 2.0 всего за десять дней, вряд ли он ожидал, в какой степени Slack Desktop App будет использовать его изобретение. Мы используем только кодовую базу javascript для многопоточного десктопного приложения, которое постоянно взаимодействует с нативным кодом и работает под Windows, macOS и Linux.

Управлять большими кодовыми базами javascript непросто. Всякий раз, когда мы мимоходом передаём объекты из javascript браузера Chrome в Objective-C, чтобы просто получить обратный вызов через другой поток на Node.js, нужна гарантия, что все кусочки складываются вместе. В десктопном мире маленькая ошибка может привести к сбою приложения. С этой целью мы внедрили TypeScript (статически типизированное надмножество javascript) и быстро поняли, как жить без волнений и с любовью к компилятору. И не только мы: опрос разработчиков на Stack Overflow показывает, что TypeScript является третьей самой любимой технологией программирования. Учитывая, насколько быстро статическая проверка типов набирает ход, мы хотим поделиться нашим опытом и методиками.

Категория: Программирование

 

Реализация псевдо-3D в гоночных играх

Автор: admin от 19-04-2017, 12:15, посмотрело: 27

Реализация псевдо-3D в гоночных играх

Введение


Почему псевдо-3d?

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

Но в такой системе есть и множество недостатков. Глубина физики, используемой в играх-симуляторах, будет утеряна, поэтому такие движки не приспособлены для этих игр. Однако они просты в реализации, быстро работают, а игры на их основе обычно очень интересны!

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

Категория: Программирование » Веб-разработка

 

Самые подробные карты мира будут нужны автомобилям, а не людям

Автор: admin от 19-04-2017, 11:05, посмотрело: 26

Самые подробные карты мира будут нужны автомобилям, а не людям

Сегодня целый ряд компаний, среди которых Here, Civil Maps и даже Nvidia, работают над новым видом картографии. Будущая значимость автомобильной и высокотехнологичной промышленности зависит от успехов беспилотных автомобилей. В течение следующих пяти лет на наших дорогах могут появиться машины с «ограниченной автономностью», способные обходиться без человека лишь при определённых условиях или только в определённых географических точках. Но полностью автономный автомобиль, способный самостоятельно ездить где угодно и в любое время, когда роль человека ограничена лишь указанием пункта назначения, всё ещё остается отдалённой целью. Чтобы это стало реальностью, автомобили должны точно знать, где они находятся. И для этого понадобится гораздо большая точность позиционирования, чем сегодня обеспечивают GPS или ГЛОНАСС. Значит, нужны будут гораздо более точные карты, нежели те, что установлены в вашем навигаторе. Но фокус в том, что ни один человек не будет способен их прочитать! (с)

Категория: Программирование » Веб-разработка

 

Дилетантское ЧПУ?

Автор: admin от 19-04-2017, 10:55, посмотрело: 27

Дилетантское ЧПУ?


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

Однажды нам понадобилось организовать управление для самодельной штамповочной линии. Линия самодельная, а значит и управление, сделаем самодельное. Мы не использовали промышленные стандарты для передачи данных. Было решено, всё сделать из подручных материалов и ненужного старого компьютера. Главные условия: просто, дёшево, быстро. Надёжность – как получиться. Расскажу, как мы это сделали.

Категория: Программирование

 

Пишем Telegram бота на Rust, который будет запускать код на...Rust?

Автор: admin от 19-04-2017, 02:20, посмотрело: 28

Доброй ночи! Сегодня хотелось бы кратко рассказать, о том, как написать Telegram бота на Rust, который будет запускать код на Rust. У статьи нет цели произвести полное погружение в API telegram_bot, Serde, Telegram или в нюансы разработки на Rust. Она скорее носит ознакомительный характер. Числа Пеано с помощью системы типов складывать не будем.
Пишем Telegram бота на Rust, который будет запускать код на...Rust?


Хотел складывать числа Пеано, но ладно, давай своего бота...

Категория: Программирование

 

Создание Tinkoff Design System. Первые шаги

Автор: admin от 18-04-2017, 20:45, посмотрело: 27

В цикле статей Tinkoff Design System я расскажу, как мы строим нашу дизайн-систему по методологии Atomic Design.

Создание Tinkoff Design System. Первые шаги

Категория: Программирование » Веб-разработка

 

Про технику безопасности, ядерную физику и любовь: о противоречиях современной ИТ-архитектуры фронтальных решений

Автор: admin от 18-04-2017, 18:40, посмотрело: 31

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

Больше изоленты!


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

Про технику безопасности, ядерную физику и любовь: о противоречиях современной ИТ-архитектуры фронтальных решений

Категория: Программирование

 

Питерский бездомный — в Праге. Продолжение истории разработчика-самоучки

Автор: admin от 18-04-2017, 16:25, посмотрело: 29

Что бы вы ответили на вопрос работодателя: «Готовы ли вы переехать в наш новый офис в другой стране?». Скорее всего, правильно было бы уточнить, в какую конкретно страну, на каких условиях и что-то еще в таком духе. Потом начать изучать законодательство, штудировать форумы, задавать вопросы, переживать по поводу транспортировки вещей, разбираться в особенностях местной ипотеки, строить планы на 10 лет вперед, волноваться, начать пить и курить или бросить пить и курить.

Все люди разные и у всех разные мотивы, а я просто никогда не был за границей.
«Да», — ответил я.

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

В общем, прошло 1,5 года, я переехал в новый R&D офис Veeam Software в Чехии и пишу продолжение своей истории. Вдруг кого-то заинтересует мой опыт релокации, налаживания быта и работы в другой стране.

Категория: Программирование

 

Коротко и просто о сложном – тарификация в «8-800»

Автор: admin от 18-04-2017, 15:45, посмотрело: 23

Коротко и просто о сложном – тарификация в «8-800»

В предыдущем посте мы рассмотрели «интеллектуальную» маршрутизацию и как она работает в сервисе «8-800». Сегодня предлагаю рассмотреть вопросы тарификации услуги «8-800».
Подробности

Категория: Программирование » Веб-разработка