Мы в Telegram
Добавить новость
ВСЕ новости СЕГОДНЯ
BigPot.News — википедия новостей News24 с календарным архивом. Все самые быстрые 24/7 новости в ежеминутном тематическом обновлении Life24 — на русском, и не только + Today24, а также тексты с озвучкой — в авторском разделе #123ru.net
Ria.city

Когда проекты были простыми. Как начинался Яндекс

Сейчас уже сложно представить себе, каким был Интернет лет двадцать назад. Примитивные технологии разработки, сайты на php с четко определенной единственной функцией, простейшие пользовательские сервисы. И даже Яндекс, превратившийся сегодня в целую экосистему, объединял тогда только поисковик и почту. Когда я пришел туда работать в начале 2000-го, он только-только выделился из компании «КомпТек» в отдельную фирму. Именно тогда возникла идея превратить сайт в портал, объединяющий различные сервисы на одной площадке.

Всё началось весной 2000-го. У нашей команды был план запустить до лета шесть портальных проектов сразу. По части из них уже были какие-то наработки, часть писалась с нуля, но все получилось, и мы успели в срок. Так что летом того года оказалось, что у нас существует не только поиск Яндекс, но и портал компании Яндекс, объединяющий какое-то количество сервисов. Это было необычно и ново: на ту пору никто всерьез портальными решениями не занимался.

Один пароль, или много?

Тут возникло несколько вопросов, решение которых стало для нас своего рода сверхзадачей. Было совершенно ясно, что с точки зрения пользователя созданные нами сервисы не должны выглядеть, как набор отдельных сайтов, между ними должна быть какая-то интеграция. А какая, по большому счету, никто не знал, было лишь понимание необходимости этого, но не более. В частности, внутри команды Яндекса абсолютно всерьез шла дискуссия, - нужно ли вообще делать общую систему логинов-паролей для всего портала, или пусть пользователь отдельно логинится в каждый отдельный сервис? Скорее всего, этого уже никто теперь не помнит, но базово так и было - нужно было отдельно регистрироваться в каждом сервисе.

Эта дискуссия переросла чуть ли не в настоящую войну, и, боюсь, что одним из ее зачинщиков был я. Просто потому, что смотрел на Яндекс уже как на портал и активно пропагандировал слияние баз юзеров всех проектов и создание единой системы авторизации. В конечном счете такое решение было принято и появилась общая система авторизации и работы с пользователем Яндекса, которая впоследствии превратилась в то, что теперь называется «Яндекс. Паспорт».

Другая проблема была чисто производственная, относящаяся собственно к технологии. Разрабатывать проекты по отдельности, каждый – с нуля, со многих точек зрения не серьезно и не эффективно. Очевидно, что проекты часто используют одну и ту же функциональность. Например, тогда было принято в каждом проекте обязательно иметь свой форум - место для обмена пользователей мнениями. Нужна авторизация. То и дело необходимы компоненты для интеграции с проектами других компаний. Нужно, наконец, банальное управление контентом. Было понятно, что надо развивать внутри Яндекса некую единую технологию разработки портальных проектов. Такую, чтобы проект можно было не писать целиком, а в существенной мере собирать из готовых компонент, которые у нас должны быть разработаны внутри. Это и стало нашей следующей задачей.

Для того времени - новинка

В первую очередь надо было реализовать интеграционную шину, которая позволяет отдельным компонентам взаимодействовать как между собой, так и с фронтендом. Потребовалось и создание web-сервера, потому что Apache нас не устраивал. Нам нужно было построить технологию, которая позволяла веб-сайт тоже собирать из компонент. Делать так, чтобы одна страница обслуживалась через интеграционную шину разными компонентами, причем каждая компонента в эту страницу должна передавать свою часть – либо представленную в виде виджета на странице, либо просто как пакет переменных, который используется другими компонентами этой же страницы.

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

Мало того, если компоненты не передавали друг другу информацию, наш сервер умел собирать страницу асинхронно. То есть при генерации страницы он пакетно отправлял запросы всем компонентам, которые в ней задействованы, и потом синтезировал страницу, собирая их ответы. Кроме того, поскольку в такой технологии вопрос синтеза страницы был довольно большой проблемой и делать это стандартными способами через всякие шаблоны было не эффективно, мы перешли на технологию использования преобразования xml xslt.

Это было устроено следующим образом: вся страница представляла собой xml-документ, то есть, по сути дела, дерево, а ветки этого дерева представляли собой запросы к компонентам. И после того, как компонента отрабатывала, веточка дерева, соответствующая запросу, заменялась на ответ этой компоненты. Таким образом выстраивалось xml-дерево, которое содержало информацию, полученную от всех компонент. После этого информация передавалась в xslt-транслятор, который выдавал уже html-страницу.

Новые возможности

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

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

И, действительно, это стало большой удачей. Конечно, это был нелегкий процесс, и вообще на все было потрачено много сил, но к некоторым моментам мы сгенерировали большой набор серверных компонент, наработали опыт компонентного веб-дизайна под xml-xslt преобразование, и это окупилось. Были случаи, когда нам удавалось новый сервис запустить за неделю. То есть настроить под него серверные компоненты, - они были настраиваемые, так что можно было под новый сервис взять готовую компоненту и нужным образом ее заточить.

Например, была серверная компонента, которая умела ходить во внешние API, выдергивать из них информацию и сохранять во внутренней объектно-ориентированной базе данных. Соответственно, очень легко с помощью такой технологии было делать партнерские проекты, потому что один разработчик настраивает эту вот компоненту для взаимодействия с внешними сервисами, другой работает с объектно-ориентированной базой данных для использования ее в этом проекте, а мы эту базу написали сами полностью, так что можно было через веб-интерфейс динамически настраивать, что нам нужно, какие структуры данных нужны под конкретный проект. Третий разработчик в то же время делал фронтендную часть, собирал xml-страницы и выстраивал навигацию, а параллельно делался дизайн и по мере готовности дизайна – верстка. В результате можно было за неделю собрать полностью рабочий проект. Можно было бы, наверное, и быстрее, если бы можно было быстрее сделать дизайн. Хотя, бывали, конечно, и ситуации, когда для проекта приходилось разрабатывать уникальные компоненты, и тогда красной линией в проекте был уже не дизайн, а разработка.

Сэкономить время и деньги

Удалось не только сократить сроки, но и значительно снизить стоимость разработки типовых проектов. Это позволило Яндексу очень оперативно реагировать на конъюнктуру рынка и делать большое количество ситуативных проектов – под сезон, как «Яндекс.Лето», проект про отдых и путешествие, или «Яндекс. Новый год». Под каждый из них мы собирали рекламодателей, которые были готовы сотрудничать, либо партнеров, которым было выгодно публиковать в этом проекте свою информацию. Иногда получалось делать вообще адресные проекты, как «Яндекс.Пиво», который мы делали для компании «Стелла Артуа». Получился интересный рекламный проект, в который мы встроили игру про пивоварение, так что, несмотря на то, что это была реклама, люди с большим удовольствием приходили на сайт. 
#Яндекс, #КомпТек, #ДмитрийЗавалишин
Источник

Точка зрения авторов может не совпадать с позицией редакции


Все новости по теме на сегодня

Яндекс в новостях



Музыкальные новости
Анастасия Ивлеева

Блогера Ивлееву оштрафовали на 50 тыс рублей за дискредитацию российской армии



Все новости 24/7

Game News

Garry's Mod is removing 20 years' worth of Nintendo-related items from its Steam Workshop following takedown request: 'It's Nintendo. Need more be said?'


Новости 24 часа

Шапки женские вязаные на Wildberries, 2024 — новый цвет от 392 руб. (модель 466)


News Every Day

NYU Hospital on Long Island performs miraculous surgery


Українські новини

Магазин дверей і підлогового покриття Albero: якісна продукція для кожного клієнта


Настроение

Премьер-министра Эстонии Каю Каллас уже не остановить: она намерена увеличить военный бюджет страны до 5% ВВП


Мир

Морской кокос во благо красоты

Бизнес

Весь бизнес

Культура

Спорт

Политика

Общество

Авторы

Новости тенниса

WTA

WTA озвучила Елене Рыбакиной условия для становления второй ракеткой мира



BigPot.Newsреально независимые новости по темам (энциклопедический систематизированный навигатор "Википедия новостей 24/7" c ежеминутным тематическим мониторингом интернет-пространства) в форме аполитичного просветительского интернет-журнала на русском языке, без цензуры, на многоязычной международной веб-платформе 123ru.net в содружестве с более чем 20 000 источников информации во всём мире, сайтом News-Life.pro, глобальными гео-проектами Russian.City и Moscow.Media под патронажем Russia24.pro с уникальным персонифицированным новостным разделом "Региональная власть РФ" без купюр и модерации, а также "VIP-скандалы" в двух цветовых вариантах "День - Ночь" (кнопка справа вверху). Эти новости увидят Ваши внуки (наша система обеспечивает вечное хранение опубликованной информации 24/7). Будьте честными сегодня, чтобы было не стыдно завтра.

Опубликовать свою новость в любом городе и регионе, а также на любом языке мира можно мгновенно — здесь


Ria.city

Специалисты рассказали, почему выросли цены на стройматериалы

Шапки женские вязаные на Wildberries, 2024 — новый цвет от 392 руб. (модель 466)

В Подмосковье сотрудники Росгвардии задержали подозреваемого в краже

Более 100 студентов посетило СЛД Курск в рамках акции «Неделя без турникетов»

Новости России

Российско-турецкий мониторинговый центр в Карабахе прекратил свою деятельность

В Подмосковье выявлено более 110 нарушений правил охоты

В Московской области сотрудники Росгвардии задержали подозреваемых в краже из медучреждения

В Подмосковье сотрудники Росгвардии провели тематические мероприятия, посвященные Дню памяти погибших в радиационных авариях и катастрофах

Экология в России и мире

Токсиколог Кутушов рассказал почему возникает похмелье

Аделина Панина стала «Лучшим экстрасенсом» по версии журнала Special Magazine

Отдых во имя открытий

Туроператоры назвали направления, куда россияне поедут отдыхать на майские праздники: некоторые страны удивили

Спорт в России и мире

Камбэком обернулся матч вундеркинда из России перед стартом Еленой Рыбакиной в Мадриде

Мирра Андреева замыкает год // 16-летняя российская теннисистка успешно стартовала на крупном турнире WTA в Мадриде

Потапова обыграла Шнайдер на старте грунтового турнира WTA 1000 в Мадриде

Легенда тенниса рассказал, готов ли он опять стать тренером Джоковича

Moscow.media

Специалист по организации праздников Катерина Кузина: тренды свадебного декора 2024 года

В Белогорском районе Республики Крым проведен рейд по бывшим мигрантам

ТСД SAOTRON RT-T50: высокопроизводительный терминал сбора данных промышленного класса

Несколько дорог подтоплено в Абатском районе Тюменской области

Новости Крыма на Sevpoisk.ru

Поклонник Басты сделал предложение девушке на концерте рэпера в Новосибирске

Денис Мацуев: желаю «Спартаку» и ЦСКА показать в дерби искромётный футбол

Рэпер Баста благословил девушку на брак во время своего концерта

Сергей Трофимов выступит с летним концертом в Зеленом Театре ВДНХ

Губернаторы России

Суд признал Филиппа Киркорова виновным в несвоевременной оплате штрафа

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

Психолог Хакимов: к работе после майских праздников стоит готовиться заранее

В Красноярске появится новый ресторан на Мира


Все города России от А до Я

Персональные новости
Александр Шохин

Было бы сесть предложено // Александр Шохин с почестями принял на своем съезде Владимира Путина


BigPot.News — быстрые и самые свежие тематические новости об известных личностях в России, в Украине, в Беларусии, в Казахстане и за их пределами в календарном формате 24/7 на основе авторской технологичной информационно-поисковой системы Ru24.net с элементами искусственного интеллекта, гео-отбора и возможностью мгновенной публикации авторского контента в категориях News и Life в режиме Free Public



Больше новостей СЕГОДНЯ


BigPot.News — СРОЧНЫЕ новости. Неоспоримое преимущество BigPot.News — максимальная скорость публикаций 24/7. Быстрее нас, СЕЙЧАС, лишь только — ВЕТЕР)

Опубликовать свою новость в любом городе и регионе, а также на любом языке мира можно мгновенно — здесь