Истории про разработку сайтов. Сергей Бережной, Яндекс

Post on 11-Nov-2014

8.003 views 8 download

Tags:

description

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

Transcript of Истории про разработку сайтов. Сергей Бережной, Яндекс

Виталий Харисов

YaC, Москва, 19 сентября 2011 года

Сергей Бережной

Историиïпðрîо ðрàаçзðрàаáбîоòтêкóу ñсàаéйòтîоâв

старенький дедушкаphotosight.ru

2005 г.

про переселенцев или новичковliveinternet.ru

статистика сервисов в 2005 году

оглядываясь назад

статистика сервисов сегодня

Египет

дом1-й этаж

дом2-й этаж1-й этаж

дом3-й этаж2-й этаж1-й этаж

1-й этаж

1-й этаж1/4

дизайн меняется

css-селекторы

css-селекторы#my-block ul

css-селекторы#my-block ul#my-block li *

css-селекторы#my-block ul

#my-block li *.my-elem

css-селекторы#head .my-block li *

css-селекторы#head .my-block li *#foot .my-block ul

css-селекторы про id

css-селекторы с именами тегов и *

.class-to-rule-them-all

class="myblock myblock-mytype"

b- l- h-  g-

/* Block 1 */ /* (begin) */…

/* Block 1 */ /* (end) */

1-й этаж2/4

копипаст между html-макетами

тяжёлый ручной трудwisconsinhistory.org

XML

XIncludeXPointer

собрали машину, поехали,рады и счастливы

собрали машину, поехали,рады и счастливы

через 3 секунды всё взорвалось

1-й этаж3/4

рассада...

liveinternet.ru

...и высаживание в сад thesurvivalgirl.com

html -> xsl/tt2

тяжёлый ручной труд

поддержание актуальности

поддержание актуальностидинамики относительно статики

поддержание актуальностидинамики относительно статикистатики относительно динамики

единая командаkamaz.ru

единая команда

единая командаединый репозиторий

единая командаединый репозиторий

все влияют на продакшен

html -> xsl/tt2

тяжёлый ручной трудничего не изменилось :-(

1-й этаж4/4

JavaScript

нечто мааленькое

myproject.js

getElementById

инструмент не соответствует задаче

y5

Framework

JS ~ CSS

<div class="myblock y5-c-MyComponent" onclick="return { p1: 1, p2: 'two' }">

2-й этаж

2-й этаж1/3

img.yandex.net

icons.pngicons1.pngiconz.png

new/icons.pngv2/icons1.png

CVS

ад

изображение

свалка/помойка

levelofindirection.com

yandex.st

yandex.st/PRJ/2.3.5/

yandex.st/PRJ/_/X31pO5JJJKEifJ7sfvuf3mGeD_8.png

Debian: yandex-PRJ-www-static-2-3-5

api.yandex.ru/jslibs

2-й этаж2/3

что роботу хорошо, то человеку смерть

сложности с чем-то слишком большим

зависимости

32 @import

3 глубина @import

compiling!

fastcgi&

inotify

2-й этаж3/3

несколько сервисовс одинаковыми элементами

баги

тяжёлый ручной труд

отдельное хранилищеобщих файлов

common/ css/ js/ xsl/

one

to rule them all

3-й этаж

3-й этаж1/2...

one COMMON to rule them all

Вавилонsmallbay.ru

добавление блока на страницу —нужно добавить

во все файлы технологий

labelsmarkstags

quirks / standard

global reset / no-reset

аноним

нет версионирования

X.Y.N

КУдП

changelog

jetpack

css/myblock.cssjs/myblock.js

img/myblock.png

blocks/myblock/myblock.{css,js,png}

сборка всех страничных технологийпо одному описанию

документация прилагается

etftrends.typepad.com

каталог блоков

3-й этаж2/2...

xsl — выразительноtt2 — быстрее

ручная поддержка соглашений

внутреннеяндексовое <—> общеполезное

OpenSource

one

to rule them all

3-й этаж...

очень молодой человек

смотрящий в будущее

photosight.ru

очень старый человекумиляющийся

прошлому

lifeisphoto.ru

мастерклассы ТАМ ==>

Сергей Бережнойveged@yandex-team.ru

Виталий Харисовvitaly@yandex-team.ru

BONUS!

хорошо, когда сначала api,а потом его использование

части большого проектаможно считать проектами

и релизить раздельно