Pull to refresh
71
Karma
0
Rating
Азат Разетдинов @razetdinov

Разработка программного обеспечения

Разработка в монорепозитории. Доклад Яндекса

Яндекс corporate blog JavaScript *Interfaces *Development Management *Build automation *
Моё имя Азат Разетдинов, я в Яндексе уже 12 лет, руковожу службой разработки интерфейсов в Я.Недвижимости. Сегодня я хотел бы поговорить про монорепозиторий. Если у вас всего один репозиторий в работе — поздравляю, вы уже живете в монорепозитории. Теперь о том, зачем он нужен другим.



Как сказала руководитель службы разработки API Яндекс.Карт Марина Перескокова — посадил дед монорепу, выросла монорепа большая-пребольшая.

Читать дальше →
Total votes 31: ↑24 and ↓7 +17
Views 20K
Comments 40

Загрузка скриптов браузерами: вести с полей

Client optimization *
Translation
Как справляются браузеры с параллельной загрузкой скриптов?

Во времена IE7 и Firefox 2.0 ни один браузер не загружал скрипты параллельно с другими ресурсами. Вместо этого старые браузеры блокировали все последующие запросы до полной загрузки, парсинга и выполнения скрипта. Вот так выглядел лог HTTP-запросов при подобной блокировке в старых браузерах:

HTTP-запросы

На тестовой странице, по которой была сгенерирована данная диаграмма, есть шесть HTTP-запросов:
  • HTML-документ;
  • первый скрипт — 2 секунды на скачивание, 2 секунды на выполнение;
  • второй скрипт — 2 секунды на скачивание, 2 секунды на выполнение;
  • картинка — 1 секунда на скачивание;
  • стилевой файл — 1 секунда на скачивание;
  • iframe — 1 секунда на скачивание.

На диаграмме видно, как скрипты блокируют друг друга, а также картинку, стилевой файл и iframe. Последние загружаются параллельно друг другу, но только после того, как завершена последовательная загрузка скриптов.

Читать дальше →
Total votes 34: ↑30 and ↓4 +26
Views 2.8K
Comments 63

Nokia начала закрывать своих конкурентов

Smartphones
Translation
Письмо 27 625 631 пользователю Nav4All

Дорогие клиенты!

С большим сожалением уведомляем вас, что системы глобальной навигации Nav4All и Tracking & Tracing уйдут в офлайн в течение 3 дней. Причина — лицензионное соглашение на данные с Navteq (100% дочерняя фирма Nokia) совершенно неожиданно не было продлено. Перейти на другого поставщика в кратчайшие сроки невозможно. Системы Nav4All были разработаны для данных Navteq. Следовательно, Nav4All вынуждена приостановить работу.

Читать дальше →
Total votes 70: ↑57 and ↓13 +44
Views 459
Comments 54

Проверка равенства, неравенства, идентичности узлов в XPath

XSLT *
С одной стороны, в языке XPath используются знакомые каждому программисту операторы сравнения «равно», «не равно», «меньше», «больше» и другие. С другой стороны, эти операторы умеют работать не только с примитивными типами, но и с целыми наборами узлов. Незнание правил сравнения наборов узлов может привести к некоторым сюрпризам.

Попробуйте быстро ответить на вопрос, чему равно следующее выражение:

foo = 'bar' and foo != 'bar'

Если ваш ответ — false, автор предлагает
Читать дальше →
Total votes 58: ↑52 and ↓6 +46
Views 11K
Comments 52

Три редкоиспользуемые оси в XPath

XSLT *
Основная мощь языка XPath заключается в осях, позволяющих добраться до любого элемента в исходном документе. Рассмотрим применение таких редкоиспользуемых осей, как ancestor, descendant и self.

ancestor


Задача: получить атрибут id элемента-«прадеда» foo.

Обычно в таких случаях начинают рисовать лестницы:

../../../@id

Такая запись плоха тем, что малопонятна без знания исходного xml. Автор рекомендует в подобных случаях использовать более информативное выражение:

ancestor::foo[1]/@id

Эта запись не только даёт представление об искомом элементе, но и продолжает работать даже в том случае, когда текущий элемент изменил своё положение в дереве.
Читать дальше →
Total votes 63: ↑61 and ↓2 +59
Views 70K
Comments 16

Subversion: cлияние переименований файлов

Version control systems *
— Зачем ты, Белка, летишь за мной, Кабаном?
— Не знаю, Кабан! Приказ Хорька. Как понял? Приём.
— Ни хера не понял! Какого Хорька, Белка? Я Кабан. Кто такой Хорёк? Кто это? Приём.
— Кабан, ты дятел! Как понял? Приём.
— Понял тебя, Белка. Я — Дятел. Повторяю вопрос про хорька. Кто это?
— Кабан, сука, ты всех заманал, лети вперёд молча! Конец связи.
Виктор Шендерович

Как известно, Subversion не умеет отслеживать переименования файлов. Согласно документации, команда svn move равносильна svn copy с последующим svn delete. Такое поведение вызывает большие проблемы при слиянии веток. Рассмотрим способы их решения.
Читать дальше →
Total votes 55: ↑52 and ↓3 +49
Views 3.3K
Comments 21

Управление вкладками в разных браузерах

Interfaces *
Вкладочный интерфейс поддерживают всё больше программ: браузеры, мессенджеры, текстовые редакторы. В целом поведение вкладок реализовано однотипно, но встречаются и различия. Это создаёт трудности для пользователей, т. к. одни и те же операции производятся в разных приложениях по-разному.

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

Не имея возможности сравнить все существующие программы, автор ограничился анализом реализации 1) браузерами 2) для Windows 3) следующих операций:
— создание вкладки;
— закрытие вкладки;
— отмена закрытия вкладки;
— навигация по вкладкам;
— открытие адреса/ссылки во вкладке.
Читать дальше →
Total votes 43: ↑32 and ↓11 +21
Views 9.9K
Comments 92

Контрол-навигация

Interfaces *
Нельзя не заметить, что в рунете всё бóльшую популярность набирает т. н. контрол-навигация: перемещение по страницам одного уровня с помощью сочетаний Ctrl + ← и Ctrl + →. Некоторые товарищи даже неуютно себя чувствуют, когда попадают на сайт, не поддерживающий листание страниц с клавиатуры.

Почему эта функциональность до сих пор не реализована в самих браузерах?
Читать дальше →
Total votes 44: ↑36 and ↓8 +28
Views 1.5K
Comments 48

guid как средство от дубликатов в RSS

Habr
Читающие Хабр через RSS наверняка замечали, что иногда один и тот же топик дублируется в ленте. Это происходит, когда пост перемещается из одного блога в другой. Меняется ссылка, и RSS-ридеры воспринимают её как новый топик. Это поведение легко исправить.

Читать дальше →
Total votes 31: ↑30 and ↓1 +29
Views 3.4K
Comments 24

Information

Rating
Does not participate
Location
Москва, Москва и Московская обл., Россия
Works in
Date of birth
Registered
Activity