Рубрика «архитектура» - 24

Маленькая архитектура - 1

Я хочу стать архитектором ПО:

Это хорошая цель для разработчика

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

Хм. Ну, тогда ты вовсе не хочешь стать архитектором ПО.

Конечно хочу! Я хочу быть тем человеком, который принимает все важные решения.

Это хорошо, но ты не перечислил важных решений. Ты перечислил решения, не играющие особой роли.

В смысле? База данных – это не важное решение? Знаешь, сколько мы денег тратим на них?

Скорее всего слишком много. И нет, база данных – это не одно из самых важных решений.

Как можно такое говорить? База данных находится в самом центре системы! Там собраны все данные, они сортируются, индексируются и к ним осуществляется доступ. Без нее не будет системы!

База данных это просто устройство ввода-вывода. Так получилось, что она предоставляет некоторые полезные инструменты для сортировки, запросов и отчетов, но все это – вспомогательные аспекты в рамках системной архитектуры.Читать полностью »

В преддверии Joker 2016 продолжаем серию текстов о тех компаниях, в жизни которых Java-разработка точно играет большую роль: спонсорах Joker. В Luxoft нам ответили на очень разные вопросы — от того, какие Java-технологии используют чаще всего, до того, почему предубеждения по поводу аутсорс-разработки неверны.

«Во всех проектах делали именно то, что считали нужным»: Luxoft о Java и не только - 1

Нашими собеседниками стали:

  • Олег Золотых, управляющий директор Luxoft Russia
  • Михаил Дружинин, архитектор и лидер архитектурного комьюнити (а также спикер HolyJS 2016)
  • Максим Сячин, Java-разработчик (а также спикер Joker 2016)
  • Анастасия Тихомирова, специалист по маркетингу

Читать полностью »

Микросервисы: пожалуйста, не нужно - 1
Иллюстрация @alvaro_sanchez

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

Естественно, в реальности все оказалось совсем наоборот. Когда смотришь назад, на произошедшее, то зрение оказывается ближе к 100%, чем когда смотришь с надеждой в будущее.

Я хочу рассказать о некоторых важных заблуждениях и подводных камнях движения за микросервисы с точки зрения человека, который работал в компании, убежденной в идее целительных свойств микросервисов. Я не хочу, чтобы выводом этой статьи для вас стало "микросервисы == плохо", но в идеале я хотел бы, чтобы вы задумались о проблемах когда будете решать, подходит ли вам микросервисная архитектура.Читать полностью »

Ужасающий венерианский комар (фото Ричарда Джонса) Наш отважный герой, случайно забредший в запретную область ядовитых венерианских джунглей, окружён роем из десяти тысяч голодных полуразумных комаров. Вопрос съедобности человека для инопланетных организмов, с научной точки зрения, вообще-то, достаточно спорен — но венерианские комары, как известно, искренне разделяют позицию Маркса, что критерием истинности суждения является эксперимент. Казалось бы, положение безнадёжно — но герой, не растерявшись, извлекает из широких штанин инвентаря походный термоядерный фумигатор, красивым движением включает его, и…

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

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

Читать полностью »

Примеры кода с летней школы по Node.js и JavaScript в КПИ - 1Товарищи инженеры, докладываю вам об успехах в подготовке научно-технических кадров в области программной инженерии в Киевском политехническом институте и публикую интересные примеры кода, которые были написаны для учебного курса, но будут, надеюсь, интересны и с практической точки зрения. Идея, внедрить JavaScript и Node.js в учебный процесс, вызревала у меня уже несколько лет. Но для освоения базовых вещей в программировании мне больше нравится C, чтобы люди прочувствовали машину, научились контролировать себя и свой код. А вот для прикладных задач, в которых уровень абстракции C уже не достаточно иллюстративен, мультипарадигменный и гибкий JavaScript прижился. При помощи мощного и простого API Node.js можно писать концептуальный код прямо на паре. Кроме того, знания JavaScript обязательно пригодятся на практике любому инженеру, работающему в ИТ. Часть кода, разработанного студентами курса, уже попала в серьезные Open Source проекты и это прекрасная практика, которую может повторить каждый, ведь лабораторные работы мы постепенно выкладываем на github и будем делать это и дальше, снабжая их методическими указаниями и не заботясь о том, что студенты будут списывать из форков, ведь все это нужно в первую очередь им самим. Эти материалы были использованы при подготовке порядка 300 студентов политехнического ВУЗа за 2015-2016 учебный год. Примеры я еще раз разложу по полочкам на летней школе, которая проходит с 9 по 26 августа 2016 года в Киеве, и расписание которой можно найти тут. Итак, переходим к самым показательным примерам кода.Читать полностью »

Как мы переделали сеть «Аэроэкспресса»: интересный пример скачка на уровень вверх - 1

«Аэроэкспресс» — молодая компания. Пару лет назад, когда мы начали реализовывать проект по модернизации сети передачи данных, компания очень быстро развивалась. Настолько быстро, что их внутренний ИТ-отдел в какой-то момент понял: пора переделывать сеть, потому что пунктов продажи билетов и других терминалов стало слишком много и ручные процедуры настройки сети уже давно пора заменять. Это логический этап в эволюции любой компании. На этом этапе заказчик продумал правильную архитектуру и начал оптимизировать инфраструктуру с учётом запаса прочности при дальнейшем масштабировании мощностей. Цель — сделать всё и с первого раза, чтобы избежать возможных проблем в будущем.

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

Следующей задачей стало обеспечение возможности продавать билеты, даже если метеориты попадут в два любых случайных объекта инфраструктуры (включая дата-центр «Аэроэкспресса» и коммутаторы ядра М9).

И ещё — сделать IP-телефонию внутри компании, способной работать даже при физическом отключении от интернета.

Параллельно мы подняли Ethernet поверх IP (MAC по IP) и сделали ещё пару забавных и полезных фич.Читать полностью »

В среду, 20 июля, состоялась седьмая встреча Rambler.iOS, которую мы уже анонсировали на Хабре. По просьбам участников предыдущих мероприятий в этот раз было уделено особое внимание общению между разработчиками.

Было заявлено 3 доклада, два из которых были связаны между собой общей темой – мобильные платежи.

image

Читать полностью »

В августе 2015 года мы запустили новый adtech-проект — Atuko.
Это система управления мобильной рекламой, ориентированная на профессионалов.
Наш опыт создания приложения на микросервисах в сфере рекламных технологий - 1

В Atuko мы сфокусировались на управлении одним каналом трафика — myTarget, основной рекламной системой Mail.ru, объединившей в себе рекламу на Одноклассниках, мобильном VK и некоторых других ресурсах Mail.ru, и охватывающей >90% аудитории Рунета. И естественно рекламодателям, нужны инструменты создания кампаний, анализа результатов и управления.

Читать полностью »

Привет!

Напоминаем, что все желающие по-прежнему могут приобрести отличную книгу Сэма Ньюмена "Создание микросервисов". Поскольку наши ожидания эта тема более чем оправдала, мы продолжаем искать связанную с ней литературу и не так давно обратили внимание на книгу о программировании микросервисов на языке Go

Язык Go, микросервисы и DevOps – хорошая компания? - 1

Интересную статью с обоснованием этого подхода мы нашли в блоге Agile Maverick, и ее перевод размещаем под катом.

Приятного чтения!

Читать полностью »

Мультиплеер в быстрых играх (Часть IV: Хэдшот! Путешествуем во времени) - 1

  1. Части I, II (синглплеер с авторитарным сервером)
  2. Часть III (Появление врага)
  3. Часть IV (Хэдшот!)

Как повесить идеальный хэдшот если у тебя пинг 2 секунды? Вы узнаете в этой статье.

Текущий алгоритм работы мультиплеера

  • Сервер получает команды с клиентов и времена их отправления
  • Сервер обновляет состояние мира
  • Сервер с некоторой частотой отправляет свое состояние всем клиентам
  • Клиент отправляет команды и локально воспроизводит их результат
  • Клиент получает обновленные состояния мира и:
    • Применяет состояние от сервера
    • Заново применяет все свои команды, которые сервер не успел применить.
    • Интерполирует предыдущие состояния других игроков
  • С точки зрения игрока, есть два серьезных последствия:
    • Игрок видит себя в настоящем
    • Игрок видит других в прошлом.

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


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js