Стратегия для вёрстки "с нуля"

Jun 08, 2016 00:06



Текстовый редактор
Немножко истории

Начинал верстать в 2000-м году с родного для Windows Notepad'а. Тогда ещё кнопочка-баннер была популярная такая. Но без подсветки синтаксиса верстать конечно было сложно. Устроившись на ГРЭС-1 для эффективности использовал Intellisence InterDev'а в MS Visual Studio 6. Была возможность использовать автогенератор Frontpage, но после полученных знаний по HTML и CSS и желания придерживаться стратегии разделения кода и оформления, любые автогенераторы были отвергнуты как зло =) В том числе были отвергнуты Flash и Silverlight как закрытые/компилируемые технологии, расчёт оказался верен, умерли (нынче так же умирают и js-фреймворки, особенно с развитием CSS) ;)

По переезду в Москву продолжил пользоваться MS Studio, но, как только устроился в GeneGo, где платные продукты MS были не в почёте, перешёл на jEdit.
Сейчас

Notepad++ с плагинами:
  • CSS-zencoding - удобная штука вместо Intellisence, пишется на манеру CSS3-правил + разные сокращения которые следует выучить.
  • TextFX - после установки ZenCoding пользуюсь им реже, но у него по прежнему много полезных функций.
  • XMLTools - для XSD-валидации, иногда для прямой (небраузерной) XSLT-трансформации и авто-форматирования.

На новый компьютер не стал устанавливать MS Office, при необходимости пользуюсь MS Office Viewer'ами и Google-документами.

Платформа и браузеры

Да, я продолжаю оставаться на Windows, и в сторону Linux'а не заглядываюсь, поскольку использовать графический интерфейс, мне проще. Всё же я больше разработчик, чем админ, командной строкой наелся во времена NortonCommander'а. В своё время установкой систем тоже занимался, теперь же, как инженер, предпочитаю сосредотачиваться исключительно на веб-разработке, а не на настройке окружения.

От платформы идёт и выбор того какую поддержку браузеров обеспечивать, и соответственно насколько дорого (по трудозатратам) будет обходиться тестирование (использование вирт. машин).
Internet Explorer

Сейчас у меня Wingows 7 с IE8. Для Windows XP, который ещё долго может жить, максимально можно установить только IE8 (см. таблицу). Так что, как в своё время сообщество веб-разработчиков не могло отказаться от поддержки IE6, то же самое произойдёт и с IE8, но новые фичи в коде использовать не запрещено (см. далее). О js-скриптах для IE5+, эмулирующих поддержку кода написанного под IE7/8, в курсе, но это плохой способ поддержки обратной совместимости.
Opera

Сейчас у меня установлена 37-я версия, которая недоступна на XP и Vista. Можно конечно тестировать Presto, тем более что в 2016-м году вышла версия 12.18. На XP можно поставить максимум 28-ю (см. таблицу), а на 98-й Windows версию 10.10, но до таких динозавров желания скатываться нету =)
Mozilla Firefox

Не использую, тестирую в Chrome. Самый свежий 46-й Firefox по заявлению разработчика можно установить на Windows XP.
Apple Safari

Имеет смысл тестировать при наличии удалённого доступа к Mac. Сейчас таким делом не заморачиваюсь. Apple Safari на том же движке WebKit что и Chrome (до 28-й версии). На XP можно установить самую свежую win-версию (5.1.7).
Google Chrome

Установлена 34-я версия, автообновления отключены. На XP можно поставить самую свежую версию.
Другие браузеры...

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

Рабочее окружение

Поскольку я интересуюсь прежде всего фронтендом, и не занимаюсь нынче серверной частью, то настройка веб-серверов меня менее всего интересует. Сейчас не оптимизирую файлы, пишу код таким образом, чтобы макеты можно было запускать сразу, без настройки окружения - без запуска скриптов Grunt/Gulp.
CSS-препроцессоры и постпроцессоры

Основная засада с ними это перевод проекта с одной технологии на другую, например при смене версии Bootstrap: v3 на LESS, v4 на SASS, v5 вообще обещают на PostCSS. Соответственно, чтобы сэкономить время при портировании проекта, в дальнейшем можно использовать только схожий синтаксис. Stylus мне показался интересным, благодаря возможности клиентской трансформации кода в CSS, но уже сейчас народ переводит код на PostCSS, за ним будущее, читайте интервью Андрея Ситника.

В принципе, чтобы не маяться настройкой сервера, если находишься OnLine, Достаточно просто использовать CodePen, там на выбор можно указать любой процессор. Но в целом я тоже придерживаюсь мнения, что нынешний Web overengineering.
Вставки повторного кода

Server Side Includes, подразумевают настройку сервера ;) Перевёл это дело на клиентскую сторону за счёт рендеринга XML-движком, который позволяет включать отдельные файлы plain-текстом, и загружать деревья элементов - открыл локальный файл в браузере и работает! Таким образом порог вхождения в проект будет ниже, проще разобраться.

Помимо этого, разделение на xml-контент и xsl-трансформацию в html позволяет легче менять отображение, поскольку xml-элемент может быть трансформирован в какой угодно набор html-элементов (wrapper/inner) и содержать любые необходимые атрибуты и их значения, будь то свой велосипед, Twitter Bootstrap, Google Material Design Light, Yahoo PureCSS, LeafCSS или что-то ещё...

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

Облако/Интернет
CVS

На предыдущем месте для контроля версий использовали TortoiseSVN, для баг-репортов Jira. Сейчас осваиваю Git, в качестве сервера использую GitHub, в качестве GUI для Git использую TortoiseGit, что логично.
DevLinks > Хранение кода

На GitHub имеет смысл выкладывать крупные проекты, а всё что помельче и попроще/атомарно (небольшие тесты), что хотелось бы показать сразу в действии, буду выкладывать на CodePen. На CodePen по сравнению с jsFiddle не нужно каждый раз жать кнопочку отрисовки, свой код можно тематически организовать расставив тэги, помимо JS подсвечиваются ошибки CSS и HTML, и можно даже блог вести!
DevLinks > Самообучение

В качестве отличного справочного ресурса по фронтенду использую webref.ru (реинкарнацию htmlbook.ru), спецификации от w3c, да и stackoverflow никто не отменял ;)

Отказоустойчивость

До появления таких модных ныне словосочетаний как "Mobile first", "Progressive enchancement", я успел узнать про CSS naked day и CSSZenGarden. По тому же naked-принципу сайт проверялся на отключение отображения картинок и js-скриптов (показан только тот контент и элементы, которым хорошо и без js). Ортодоксальные последователи такого принципа, даже свои "вебдванольные" AJAX сайты верстают так, чтобы они могли быть одновременно и "вебоднонольными" (с перезагрузкой страницы) ;) Чисто теоретически такой подход хорош, но на практике требует бОльших трудозатрат, посему не придерживаюсь (хоть и хотелось бы).

Чтобы придерживаться стратегии "Mobile first" нужно тестирование на как большем количестве мобильных устройств, что пока не входит в мою практику, так что у меня "Screen first" с тестированием при уменьшенном размере экрана (mobile-устройства отличаются от desktop'а не только размером экрана).

Про CodeStyle отдельный пост нужно писать... Про CSS вкратце: текущая реализация БЭМа избыточна (хотя его красиво использует уже и Google), совсем от каскада (мощной фичи CSS) я бы, наверное, отказываться не стал. Использую lowerCamelCase для именованияБлока (но по хорошему надо прийти к Венгерской нотации - с набором префиксов перед первой заглавной), нижнее подчёркивание чтобы отделить _имяЭлемента, дефис для -модификатора, в том числе чтобы указать блоку-наименованиеСостояния, которое может быть и самостоятельным (глобальным), например -hidden. Об IE6 забыли, потому множественные селекторы наконец-то приветствуются.




webdev, link, реклама, web, it

Previous post Next post
Up