Search
Write a publication
Pull to refresh
24
0
pred8or @pred8or

User

Send message

Чек-лист вёрстки. Что можно отдавать клиенту, а что надо переделывать

Reading time20 min
Views317K
Идеальная вёрсткаВы PM. Как узнать – готова ли вёрстка к реальному использованию?
Вы заказчик. Как убедиться, что работа выполнена качественно?
Как оценить качество вёрстки?

Когда я стал тим-лидом, а позже PM, передо мной стала задача проверять вёрстку наших проектов. Нужно было выработать формальные, легкопроверяемые критерии, соответствие кода которым, должно было давать некую гарантию, что не будет факапов и ни клиент, ни программеры не сказажут потом “WTF?”.

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

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

Итак что же это за список?

Краткая версия теперь доступна на html5checklist.com (github), где можно вносить pull-request'ы.

История обновлений:
  • 2015/08/11: Актуализировал рекомендации по оптимизации скорости загрузки. Добавил требование поддержки Retina. Дополнил «19. Мелочи» требованием что изображения должны масштабироваться в зависимости от размера окна.
  • 2015/08/10: актуализирован список исключений для CSSLint
  • 2015/07/29: актуализирован пункт №13 «плохо»/«хорошо»
  • 2015/04/08: добавлено требование использования препроцессоров и рекомендация использования систем сборки
  • 2013/04/25: добавлены анализаторами качества кода: CSSLint и JSHint, указан сайт подбора css font stack (спасибо @fliptheweb), мелкие уточнения (работу интерактивных элементов страницы, что не пропадает фон на высоких разрешениях, не должно быть пустых презентационных блоков, при проверках контента — пробовать удалять заголовки, менять местами блоки)
  • 2013/04/24: добавил пункт об минимизации каскада (БЭМ-техники, MCSS, SMACSS), необходимости вписывания в экран моб. устройства, заменил ссылку на проверочный текст отображения стандартного html на код с normalize.css, поправил пример где в рекомендации встречался длинный каскад, упомянул про Opera на Presto и новый уровень семантики — в именах классов BEM.
  • 2012/04/12: отсортировал пункты проверки в порядке важности, выделил главные, дополнил статью подробностями
  • 2011/12/07: дополнил согласно доклада на WSD Минск'2011.
  • 2011/07/19: добавлено про повышение надёжности вёрстки благодаря html5-тэгам, про необходимость favicon/apple-touch-icon, отсутствие багов при ресайзе textarea
  • 2011/06/15: добавил пояснения какие ошибки валидации допустимы, рассказал про отсутствие официальной кнопки «HTML5 Valid» и про официальное лого HTML5 на сайте.


Далее с примерами - как проверить html, даже если вы ничего не понимаете в вёрстке.

Apache Traffic Server — уникальный кеширующий прокси-сервер для CDN

Reading time3 min
Views11K
image

Однажды возникла идея запустить русско-язычную версию популярного американского сайта. После недолгих размышлений было решено реализовать полностью интерактивную схему вида examplesite.com — > examplesite-ru.com и заставить машину делать как можно больше работы.

Некоторое изучение и эксперименты с различными прокси-серверами привели к интересному продукту — Apache Traffic Server, о котором я и хочу рассказать.
Читать дальше →

Набор инструментов для построения графиков, блок-схем и диаграмм

Reading time3 min
Views180K


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

Про фрилансера Ивана и как он не вставал с дивана

Reading time6 min
Views49K
Совсем недавно мы писали о том, как сдавать жилье в аренду, не навлечь на себя гнев государства и не вылететь при этом в трубу, используя простые практические советы по оптимизации налогообложения, рациональный подход и электронного бухгалтера «Эльбу».

Сценарий со сдачей квартиры всем хорошо знаком, но тот кейс, о котором сейчас пойдет речь, покажется многим из вас более жизненным и актуальным. А речь пойдет о фрилансере Иване — успешном блоггере и стоковом фотографе.
Читать дальше →

Новый пуленепробиваемый синтаксис @font-face

Reading time3 min
Views71K
С самого начала «вебошрифтовой революции» мы полагались на неизящные хаки деклараций @font-face, чтобы шрифты из Паутины загружались во всех браузерах. Может ли существовать лучший путь? Вполне изящный и совместимый с будущими браузерами?

Вкратце об истории вопроса


В сентябре 2009 года Пол Айриш (Paul Irish) огласил пуленепробиваемый синтаксис для записи деклараций @font-face. Синтаксис был компактным и в то время действовал во всех браузерах. Недавно стали поступать, со временем усиливаясь, жалобы на отказ шрифтов загружаться в Android — поэтому мы стали вместо того рекомендовать синтаксис «Mo' Bulletproofer», сочинённый Ричардом Финком (Richard Fink). К сожалению, синтаксису «Mo' Bulletproofer» требуется двойная запись деклараций, так что поддержка его сложнее.

Синтаксис Fontspring @Font-Face


А вот таким этому коду следовало бы быть с самого начала. Чистым, ясным и простым:
@font-face {
	font-family: 'MyFontFamily';
	src: url('myfont-webfont.eot?') format('eot'), 
	     url('myfont-webfont.woff') format('woff'), 
	     url('myfont-webfont.ttf')  format('truetype'),
	     url('myfont-webfont.svg#svgFontName') format('svg');
	}

Что? Я не понял.


Хак Трюк, заставляющий этот код заработать — символ «?» вслед за именем файла EOT. Без шуток.

Как это срабатывает


Читать дальше →

Базовые рекомендации для повышения безопасности *nix веб-сервера

Reading time3 min
Views25K
Вдохновившись статьей о поиске следов взлома, решил написать статью о предупреждении взлома и базовых шагах для сведения возможности взлома сервера к минимуму.
Все шаги крайне важны, и невозможно выделить самый-самый важный, либо второстепенный.
Данная статья не является пошаговой инструкцией, а лишь списком рекомендуемых шагов.
Читать дальше →

Как быстро проверить Linux сервер на предмет взлома

Reading time4 min
Views128K
Примерно два года назад я арендовал у одного немецкого хостера не очень мощный сервер на базе Centos 5.2. На нём живут несколько вебпроектов, приносящих некоторую прибыль, и поэтому, я стараюсь присматривать за ним по мере возможности.
На Centos есть стандартный анализатор логов Logwatch, который запускается ежедневно по крону, анализирует содержимое /var/log, делает сводный отчет и присылает его по электропочте. В один прекрасный день я обнаружил в этом отчете запись:

--------------------- yum Begin ------------------------ 
 
 Packages Installed:
    lzo2 - 2.02-3.el5.rf.i386
    dnstracer - 1.8-1.2.el5.rf.i386
    openvpn - 2.0.9-1.el5.rf.i386

---------------------- yum End -------------------------


В тот момент меня она очень смутила, так как в предыдущий день на сервер я не логинился и тем более ничего не устанавливал. Первое, что пришло в голову — сервер был скомпроментирован. Себя я считал уверенным пользователем Linux, однако я растерялся. Благо в тот момент в icq был мой бывший коллега, лучший системный администратор, которого я знаю, и просто очень хороший человек.
Он помог быстро проверить систему. В результате у меня сформировалось краткое HowTo о том, как быстро проверить свой сервер на предмет взлома. Уверен, что многим Храброчитателям оно будет полезно. Предполагается, что пользователь знаком с консолью Linux/Unix.

Читать дальше →

Fugue Icons в сером

Reading time1 min
Views2.3K
Во многих проектах я использую известный набор иконок Fugue Icons и часто нужно создать эффект «активной\не активной» кнопки. Чтобы не перекрашивать каждый раз по иконке в серый, я перекрасил все иконки и добавил в названия файла "-gray" сохранив структуру архива.



Выкладываю архив в общее пользование, может кому пригодится.
Cкачать Fugue Icons Gray, зеркало на Яндех.Народ

Лицензия: Attribution 3.0 Unported (CC BY 3.0)
Скачать оригинальный набор Fugue Icons 3.0 можно с сайта автора или с Google Code

Динамический favicon или отображаем карму, не обновляя страницу

Reading time5 min
Views12K
image
У каждого из нас, полагаю, в любимом браузере постоянно открыты несколько вкладок одновременно. Не раз бывают случаи, что и заголовка вкладки не видно — лишь favicon'ки. Но часто они информации, кроме как отображения логотипа сайта, не дают. И, наверное, зря. Но мы постараемся и здесь использовать это место (целых 16px*16px!) так, как хотим. По крайней мере, будем знать, как это можно сделать.
Читать дальше →

Launchlist для вашего сайта

Reading time2 min
Views12K
imageЗдравствуйте, уважаемые Хабравчане.
Хотим опубликовать результат нашего небольшого исследования.

Суть эксперимента

Существует довольно много сайтов, в том числе региональных, где народ обсуждает работы студий web-дизайна, а так же разработанные ими сайты.
Иногда такие обсуждения приводят к закидыванию оппонентов какашками по поводу деталей реализации.
Согласитесь, обидно, когда большая (не на один месяц!) работа, в пух и прах разносится школьниками критиками, из-за мелочей в юзабилити, лени, или просто из-за небольшой забывчивости разработчика.

Мы промониторили несколько десятков подобных обсуждений за последние несколько месяцев и выявили следующее…
Читать дальше →

Установка Request Tracker 3.8

Reading time5 min
Views38K


Приветствую тебя, %habrauser%!

Предыстория:

В данный момент я работаю в небольшой конторе, которая занимается консультированием, аудитом и обслуживание в области IT. Хотя контора и небольшая, количество клиентов у нас росло быстрыми темпами, и без нормального хелпдеска обойтись было уже очень сложно. Рассмотрев приличный перечень продуктов, как платные так и бесплатные, наш выбор пал на продукт фирмы BestPractical, который называется весьма незамысловато Request Tracker.
Читать дальше →

Обнаружение объектов методом Оцу

Reading time6 min
Views47K
Здравствуйте, уважаемые хабрачитатели и хабракритики. Этот пост я хотел бы посвятить такой актуальной на сегодняшний день теме, как обнаружение объектов на изображениях.
В качестве одного из алгоритмов такого обнаружения рассмотрим выбор порога быстрым и эффективным методом Оцу.
Читать дальше →

Автоматизированная проверка PHP кода при комитах

Reading time6 min
Views34K
В свое время работая в узком кругу программистов, отдельными задачами и даже проектам, мы не задумывались о проблемах связанными с текучкой кадров. Точнее думать — думали, но ни каких мер не применяли, да и в целом коллектив был сплоченный никто не уходил и никого «не уходили». С ростом внутренних проектов и корпоративных клиентов, штат начал разрастаться и казалось, что все отлично — нас больше, значит будем больше успевать и делать, но не тут то было. Мы начали тратить кучу времени на “бесполезные” обсуждения, проверки, излишние проектирование и т.д, больше всего раздражает — это проверка кода. И тут я начал думать, что “мудрые и древние” наверняка решали эти проблемы с сотнями, тысячами программистов, неужели мы не справимся? Я решил провести эксперимент, под названием “автоматизированная проверка стиля кода при комитах”. Для большинства из Вас это не новость и наверняка вы этим пользуетесь, но поделиться опытом внедрения думаю, не будет лишним.
Читать дальше →

Онлайн генератор схем баз данных

Reading time1 min
Views252K
Хочу представить онлайн генератор схем баз данных dbdsgnr. Сервис сделан на питоне и google app engine. Залогиниться в него можно имея аккаунт в гугле. Вкратце о сервисе: вы рисуете схему баз данных, а сервис создает вам код. На данный момент можно получить только для MySQL, но обещают поддержку PostgreSQL, SQLite, MySQL, MSSql, Oracle. Под катом пример работы с данным сервисом.
Читать дальше →

Comet–приложение для Mochiweb c нагрузкой в 1 000 000 пользователей. Часть 3/3

Reading time21 min
Views4.8K
Часть 1 и Часть 2 в этом цикле статей показали, как создать приложение, используя mochiweb, и как передавать сообщения подключенным пользователям. Мы уменьшили постребление памяти до 8 Кб для каждого подключения. Мы повторили c10k тест. Мы сделали графики. Это была забава, но теперь пора повторить все для 1 миллиона соединений.

Это статья покрывает следующее:
• Использование базы данных Mnesia;
• Генерация правдоподобного набора данных вида «friends» для миллиона пользователей;
• Настройка Mnesia и ввод наших данных;
• Открытие миллиона соединений с одной машины;
• Сравнительный тест с 1 миллионом пользователей;
• Libevent + Си для обработки соединений;
• Финальные выводы.
Читать дальше →

Войны в песочнице — Часть 1

Reading time5 min
Views13K

Предупреждение


В статье описаны приключения одного моего знакомого.

Предыстория


События проходят во времена далекого третьего курса.

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

Что же дальше?

Практические советы тем, кто хочет построить веб-сообщество ч.5

Reading time5 min
Views1K
Фуух… Добрался-таки благополучно до страны своего нового места жительства, чутка оклемался, осмотрелся и привёл быт в порядок. Есть время и силы сварганить пятую, думаю уже заключительную, часть своих практических советов.

Предыдущие части: Часть 1, Часть 2, Часть 3 и Часть 4

image

Глава 13. Светлые рекламные идеи.

Короткая глава, в которой хотел бы акцентировать Ваше внимание на то, что в настоящее время, когда ресурсов всяких-разных и на разные тематики в интернете просто уйма и конкуренция просто огромна, то, желая своему проекту заработка, не достаточно просто вывесить табличку «купите баннер». Это уже как многим рекламодателям, так и РА даже не интересно. Уже интересуют всякие нестандартные рекламные решения. Тут вот сам Хабр впереди планеты всей — есть, чему поучиться. Тут и блоги компаний (я тоже у себя пытаюсь внедрить такой вид дохода, но… пока с трудом), и пересчёт рейтинга хабра-юзера в QIWI-денежку, и игрушки от СониЭрикссона и… Да что перечислять — всё у всех перед глазами. Я вот себе 86 (на тот момент) киви-рубликов на счёт кошелька запулил-))) Это я к тому, что реклама-рекламой, но подход; броско, действенно, интересно и эффективно. Рекламодатели в восторге, Боги хабра не в обиде уж явно. А многие, пусть и отлично посещаемые АйТи-направленные ресурсы, при прочих равных могут и упустить рекламодателей, которые предпочтут хитровымученную, а, может, и вирусную рекламную кампанию на хабре простому 240x400 баннеру…
Читать дальше →

Документация по API платежных систем

Reading time1 min
Views7.3K
За прошедший год в рамках проектов довелось поработать с рядом отечественных платежных системам. После чего, помимо опыта, осталось немного документации, которой и хочу поделиться. Возможно, кому-то пригодится в будущем.
Читать дальше →

Information

Rating
6,427-th
Location
Россия
Date of birth
Registered
Activity