Search
Write a publication
Pull to refresh
41
0
Шевченко Андрей @Helsq

Пользователь

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, даже если вы ничего не понимаете в вёрстке.

Обзор C# библиотек для работы с PDF

Reading time5 min
Views175K
topic image
На написание данной статьи меня подтолкнул топик HTML в PDF, правда по причине того, что он посвящен языку php, лично мне он был мало полезен, т.к. весь опыт работы с php у меня сводился в переводе нескольких скриптов на C#, поэтому я решил сделать небольшой обзор того, что доступно для работы с pdf по средствам языка C#.

Ко мне в список попало 7 библиотек, о которых я скажу несколько слов, а для самой популярной (судя по ответам на stackoverflow), я напишу, как с помощью неё сделать простейший документ. Сразу скажу, что это iTextSharp и работа с ней будет описана в конце статьи.
Читать дальше →

Малый бизнес 2011. Волк и овцы

Reading time6 min
Views35K
На прошлой неделе мы начали публикацию case’ов, помогающих решать проблемы реального бизнеса в реальной жизни. От вас было получено много пожеланий как это продолжать, у нас у самих возникла масса идей и вот, мы продолжаем! Уже немало написано о том, что с 2011 года для малого бизнеса наступят темные времена. Взносы вырастут в 2,5 раза, отчетность придется сдавать новую, больше и в 4 раза чаще, кроме того, нет никакой гарантии, что наши кровные деньги пойдут по назначению и сделают жизнь бабушек, дедушек и детушек лучше. Но что теперь делать бизнесменам? Уходить «в тень»? Закрываться? Бежать из страны?

Большинство способов малозаконны. А можно ли что-то сделать вполне легально и пережить трудное время, пока правительство не одумается и не прекратит «кошмарить» малый бизнес?
Читать дальше →

Чем отличаются настоящие тестировщики от поддельных?

Reading time5 min
Views27K
Сегодня я не смогла уснуть. Тяжкие думы не первый день омрачают моё бренное существование.

Их первоисточником (или, скорее, катализатором) послужило описание сферы тестирования на сайте SQA Testing School, находящейся в Силиконовой долине. В этом описании тестирование представляется как элементарная область, научиться которой можно очень быстро, знаний для этого нужно минимум, а зарабатывать в которой можно очень даже неплохо.

Первой праведной мыслью было: тестирование обидели!

На смену первой пришла вторая, более взвешенная: описанное вполне соответствует действительности. Устроиться тестировщиком легко. Быть плохим тестировщиком и при этом не быть уволенным — легко. Не приносить ни малейшей пользы проекту, и при этом зарабатывать нормальные деньги — легко.

Но ведь бывают, бывают истинные гении своего дела, которые приносят пользу, и, несмотря на «болотистый» рынок труда в сфере тестирования, являются высококвалифицированными специалистами!

Кто они?
Как отличить настоящих джедаев от поддельных тестировщиков?

Результатом раздумий стал СПИСОК ИЗ ДЕСЯТИ ОТЛИЧИЙ НАСТОЯЩЕГО ТЕСТИРОВЩИКА ОТ ПОДДЕЛЬНОГО.
Читать дальше →

CMS своими руками. Теория велосипедостроения

Reading time8 min
Views25K
Как много веселых ребят
И все делают велосипед.
А один из них как-нибудь утром
Придумает порох.
Виктор Цой.

image

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

Итак, я стал смотреть, по каким же запросам попадают ко мне начинающие «разработчики велосипедов», и постарался осветить некоторые вещи, которые для меня самого были неочевидны в начале работ.

Ну-с, показывайте ваши синяки...

Сделай сам ACL. История разработки и написания несложной системы контроля доступов

Reading time7 min
Views12K

Есть у нас в поддержке внутренний проект, где используется очень неудобная система контроля доступа.
Так называемая ACL.
Неудобная она тем, что для предоставления любого доступа администратору нужно совершать очень много действий для каждого отдельного ресурса требующего доступа.
Ну и после того, как жалобы пользователей начали достигать критической отметки мне была поставлена задача упростить, либо переделать систему.

Посмотрел я существующий код, желания в себе не почувствовал для переделки, — и решил подыскать готовое решение. Сразу скажу, — я большой противник «велосипедов», прежде чем что-то написать я всегда стараюсь найти готовое и подходящее решение. Так было и на этот раз, но достаточно безуспешно. Несколько решений есть, например, в коллекции PEAR, но подходящего я не выбрал. Много кода устарело (мы используем версию PHP 5.3), поэтому было принято решение писать ACL самостоятельно.

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

Каждой визитке свой QR-код

Reading time3 min
Views5.3K

Вопрос передачи личной контактной информации был, есть и будет актуальным. Как происходит передача контактов в современном мире?
Самый распространенный способ – начитка циферок вашего номера собеседнику. Последний вносит информацию в бумажный архив или в телефон. В бумажках есть большой минус — слабая каталогитизация и неудобно реализованный поиск. С телефоном проще, но все-равно это время. Необходимо достать телефон из кармана, барсетки, рюкзака (или где еще носят мобильники?), разблокировать и только потом панично набирать циферки. А в спешке пальчики не слушаются и тыкают куда попало.
Читать дальше →

Собираем домашний NAS на Intel Atom

Reading time5 min
Views76K
Два года назад, когда в моем основном компьютере появился четырехъядерный процессор, я решил, что продолжать использовать его в качестве круглосуточно работающего сетевого диска не очень правильно. Не то, чтобы энергопотребление катастрофически скакнуло – просто как-то противоестественно использовать гоночный болид для поездок на дачу и по грибы. Между тем, просто выключать компьютер было не вариантом – во-первых, все в доме уже привыкли к наличию общего сетевого диска, а, во-вторых, файлообменные сети не зря называются так, как называются – скачать и убежать как-то невежливо… На тот момент уже существовали специализированные решения для парней, вроде меня – Network Attached Storage или просто NAS. Однако, попробовав несколько готовых вариантов, я в итоге плюнул и собрал маленький компьютер на Intel Atom. И вот с ним мы подружились настолько, что я стал убежденным адептом и проповедником именно такой разновидности Умных Сетевых Дисков.

image

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

3 главные проблемы сайтов web-студий

Reading time3 min
Views15K
Не самая новая тема, не самые свежие идеи. Но, раз количество сайтов с подобными ошибками только растёт, мои советы могут быть вам полезны.

image

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

#1: Текст главной страницы


Надеюсь, не нужно объяснять, насколько важен для web-сайта хороший текст. Особенно, если сайт коммерческий. Но, в то же время, тексты 90% сайтов web-студий СНГ бесполезны. Почему я так считаю?

Давайте посмотрим на вопрос со стороны заказчика и будем предельно откровенны. Сколько студий «уже 10 лет на рынке web-разработки»? Сотни. В скольких студиях «работают только квалифицированные специалисты»? Во всех. У какой студии «самая качественная и расширяемая CMS»? У каждой.
Читать дальше →

Превращаем один компьютер в два

Reading time4 min
Views140K
Вывод любого нового продукта на рынок почти всегда — задача непростая. Особенно в узкой(малоизвестной) нише. Особенно софта в стране, где за ПО пока платить не привыкли.

Хочу поделиться успешной историей продукта, к которому имею некоторое отношение уже на протяжении нескольких лет.

Для начала коротко о сути софта. Это программа для «форточек», которая позволяет от 2 до 10 пользователям работать с одним компом так, как будто у каждого свой индивидуальный. Подключаем к системнику мониторы(через дополнительные видео-карты), мыши-клавы(через USB-хабы), ставим программу – и можно смотреть одновременно разные фильмы(правда, для этого либо сплит звуковухи 5.1 надо сделать, либо дополнительные установить), пользоваться Инетом и банально работать с документами.

Аналоги, несомненно, уже были. Это и железячный вариант — плата JetWay, Buddy B-210 и еще живой софтовый BeTwin и другие… Но об этом мы узнали уже потом.

Родилась идея создания «Астер» в тот момент, когда стало очень грустно смотреть на супер-компьютеры, которые покупаются для того, чтобы работать с Word и прочей бумагомарательной софтиной. Фактически, получился следующий виток спирали. Очень давно, когда компы были большими, все ресурсы делились между терминалами.
Под катом - наш маленький, но заметных успех

Настройка и оптимизация MySQL сервера

Reading time9 min
Views317K
В этой статье будут описаны различные настройки MySQL, преимущественно те, которые влияют на производительность. Для удобства все переменные разделены по разделам (базовые настройки, ограничения, настройки потоки, кэширование запросов, тайминги, буферы, InnoDB). Сначала уточним имена некоторых переменных, которые изменились в версии 4 MySQL, а в сети продолжают встречаться и старые и новые варианты имен, что вызывает вопросы.
Читать дальше →

Обзор: 10 русских SaaS-систем управления проектами

Reading time1 min
Views15K
Столкнулся с задачей подбора системы управления проектами для своей команды. Порадовало, что на Хабре есть много полезных статей и обзоров по этому поводу (и не менее полезных комментариев к ним). Помимо этого переворошил еще множество обзоров и отзывов разных людей и в ходе поисков наткнулся на интересную сводную таблицу Обзор: 10 русских SaaS-систем управления проектами.

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

Посчитал табличку достойной внимания Хабра, но чтобы не обижать автора и не копипастить, ограничусь ссылкой на табличку в его ЖЖ. Если автор присутствует на Хабре, буду рад познакомиться.

Большие потоки трафика и Linux: прерывания, маршрутизатор и NAT-сервер

Reading time6 min
Views62K
Написано по следам публикации Большие потоки трафика и управление прерываниями в Linux

В нашей городской сети более 30 тысяч абонентов. Суммарный объем внешних каналов — более 3 гигабит. А советы, данные в упомянутой статье, мы проходили еще несколько лет назад. Таким образом, я хочу шире раскрыть тему и поделиться с читателями своими наработками в рамках затрагиваемого вопроса.

В заметке описываются нюансы настройки/тюнинга маршрутизатора и NAT-сервера под управлением Linux, а также приведены некоторые уточнения по поводу распределения прерываний.

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

Закон «Об информации». Интересные моменты

Reading time8 min
Views18K
Работа любого «айтишника» неразрывно связана с обработкой информации. Однако, если попробовать поинтересоваться у того же «любого айтишника» его познаниями в информационном законодательстве, то результат будет, скорее всего, печален. В копирайте этот же сферический айтишник в вакууме будет разбираться значительно лучше. Можно предположить, что такое отсутствие интереса вызвано несколькими причинами.

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

Сейчас мы попробуем провести нашего «сферического айтишника в вакууме» через «информационный» закон, выделив в нем наиболее важное.

Программа и данные

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

Фильтры: смерть регуляркам и правильная валидация

Reading time2 min
Views26K
Фильтры данных впервые появились в PHP 5.0, и по какому-то стечению обстоятельств остались незамечеными большй частью кодеров. Наверное, это можно объяснить отсутствием чего-нибудь подобного в PHP4, а может просто мануал плохо читали. Я тоже узнал про них случайно… А ведь эта замечательная функция позволяет избавиться от запутаных, и подчас некорректных, регулярных выражений, при выполнении типичных задач.
Мануал по фильтрам находится здесь. Приведу только основную информацию и пару практичных примеров.
Читать дальше →

Memcached и PHP ликбез

Reading time6 min
Views227K
В интернете достаточно много информации на данную тему, но, несмотря на это, многие обходят её стороной. Цель данного поста, разъяснить на пальцах основы взаимодействия с Memcached.
Читать дальше

Microsoft All-In-One Code Framework (C#, C++, VB.NET)

Reading time1 min
Views2.1K
В связи с недавним выходом новой версии этой «библиотеки знаний», и в связи с отсутствием новостной поддержки на Хабрахабре, заполняю этот пробел. Итак если вы:
  • Долго искали примеры реализации той или иной части API Windows и не могли найти
  • Хотите чтобы у вас на жестком диске было обширное количество работающих примеров
  • Если вы программируете на C#, C++ или VB.NET
  • Хотите чтобы для вас написали примеры работающего кода представители Microsoft MSDN Team

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

Быстрая загрузка картинок на хабрэффект

Reading time1 min
Views878
Раз пошла такая пьянка беседа про загрузчики на хабрэффект то я подумал что моя доморощенная программулина тоже может кому то пригодиться.
Есть 2 варианта:
  • cliUploader — загрузить картинки с параметров командной строки. Каждый аргумент – абсолютный или относительный путь (например можно добавить ярлык в контекстное меню Отправить, или просто перетащить одну или несколько картинок на ярлык заливалки)
  • clipboardUploader — загрузить из буфера обмена (например после нажатия PrintScreen или Alt + PrintScreen)
После отработки программы – в буфер обмена будет скопирована ссылка, либо если в первом случае было отправлено несколько изображений – то несколько ссылок, разделенных "\n".

Код естественно тоже выложил, но сразу оговорюсь, что я не гнался за его чистотой и красотой, а просто делал чтоб работало и «для себя».
Скачать плоды моего скромного труда можно там. Бинарники собраны под .NET 2.0, так что есть серьезные основания полагать что в mono тоже заработает, хотя я и не тестировал. Если кто отважится проверить – прошу отписать о результатах.

Форки движка MySQL: MariaDB, Percona. who is who?

Reading time3 min
Views89K
MySQL стал собственностью Oracle, есть ли альтернативы и как быстро движение вперед?.. Вроде как обобщающего обзорчика «who is who?» еще не было. Итак, обзорчик для тех кто «не в теме»
Читать дальше →

Information

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