Search
Write a publication
Pull to refresh
156
0
Виктор @TyVik

Full-stack developer

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

Двадцать вопросов, которые помогают разработать алгоритм

Reading time5 min
Views8.4K
Как разработать алгоритм, решающий сложную задачу? Многие считают, что для этого нужно «испытать озарение», что процесс этот не вполне рационален и зависит от творческой силы или таланта.

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

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

Proдвинутый папа — территория для IT пап

Reading time2 min
Views1.2K
Уважаемые Хабра-папы (а так же те, кто собирается стать папой в ближайшее время). Я папа, со стажем 2 года и в данном посте я хочу рассказать Вам о том, как родилась идея портала для пап Proдвинутый папа.



Давайте заглянем внутрь проекта

Дайте мне железа! Часть 1

Reading time4 min
Views19K
Дайте мне железа!

Часть 2

На хабре есть много статей, посвященных созданию прикольных самопальных девайсов на базе микроконтроллеров, взять хотябы замечательную серию про необычный подарок (1, 2, 3) и дополнение про сенсорную клавиатуру. Они вызывают энтузиазм, побуждают к экспериментам, но вот возникает примерно такая фраза: «А теперь, значит, рисуем схему, разводим плату, травим, запаиваем, пишем прошивку, заливаем, и дело в шляпе». Вот тут-то у меня, как кодера, ни разу не державшего в руках паяльника, эти самые руки и опускались, ибо все пункты кроме написания прошивки были недоступны.

Но все меняется, когда желание пересиливает лень! В этой статье я расскажу, с чего начать, чтобы приобщиться к экспериментам с микроконтроллерами.

Под катом чуть менее мегабайта картинок
Мне интересно, давай рассказывай!

Машинка управляемая через Bluetooth

Reading time3 min
Views15K
Давно хотел приобщить к программированию своего сына, но как это сделать?
Прошли те времена, когда учились на бейсиках и паскалях. Пытался показать ему TurboPascal — даже кое-что вроде бы начало получаться, но как-то дальше не пошло…

Решил сделать следующую попытку, когда познакомился с детским языком-конструктором Scratch. Это даже не язык — это средство создания скриптов путем перетаскивания на экране «блоков» и соединения их друг с другом. Теперь дело пошло получше. Ребенок смог сделать даже какую-то простую игру. Но ведь нужно двигаться дальше?



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

Настольные игры: во что играют в IT-офисах?

Reading time9 min
Views113K
В этом топике — обещанный обзор разных настольных игр.

— Первая часть — это «портированные» версии известных компьютерных (по сюжету Starcraft, Warcraft, Civilization, Age of Empires, Master of Orion, Doom)
— Вторая часть — игры, которые интересны многим хабражителям, судя по комментариям к прошлым топикам.
— В комментариях предлагаю делиться информацией об интересных играх: думаю, многие смогут подсказать нечто необычное в плане поиграть или же предупредить от напрасной покупки.
— Топик будет интересен тем, кто хочет понять, что популярно на рынке, вкратце посмотреть товар для магазина и тем, кому просто интересно, что же там вообще есть из настольных игр для себя, компании или в подарок.
— В конце есть приятный бонус хабрачитателям.

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

Тюнинг nginx

Reading time8 min
Views97K
Статья написана по материалам моего доклада на CodeCamp 2009.

Для многих из нас настает тот долгожданный день, когда аудитория сайта начинает стремительно расти. Каждое утро мы, затая дыхание, смотрим на графики google analitycs и расплываемся в улыбке, когда взят рубеж в очередную тысячу посетителей в день. Как правило, рост посещаемости не совпадает с ростом технической базы и сайт начинает тормозить. Тут в игру вступает сисадмин...

У любого проекта всегда есть что оптимизировать: можно почитать советы по оптимизации на webo.in, установить eaccelerator, memcache, проиндексировать поисковые поля в базе данных. Я предполагаю, что все это уже проделано, а сайт по прежнему тормозит.

Пришло время оптимизировать nginx...

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

Еще одна шпаргалка

Reading time2 min
Views16K
VIM содержит сотни команд, выучить их все невозможно, да и по правде говоря «зазубривание» — дело неблагодарное. Читая различные факи и туториалы я взял за правило заносить новые для меня команды в отдельный файл, сопровождая их кратким описанием. В процессе работы с редактором я часто заглядываю в этот файл и с течением времени многие команды из него пополняют мой стандартный набор. Своим файлом-шпаргалкой я и хочу с вами поделиться.
Читать дальше →

Как работают алгоритмы сортировки

Reading time1 min
Views22K
Иногда для понимания того, как работает та или иная вещь, лучше один раз увидеть, чем сто раз услышать.

Замечательный сайт www.sorting-algorithms.com позволяет увидеть, как сортируются данные разными алгоритмами. Вы сможете посмотреть анимацию в зависимости от алгоритма, исходных данных.



Все это бегает и сортируется прямо на ваших глазах!

Работает на Google App Engine, видимо, поэтому и лежит от посетителей с «Хабра».

Требования к html-верстке

Reading time6 min
Views76K

1. Верстка, аутсорсинг и технические задания


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

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

«Hello world!» с помощью генетических алгоритмов

Reading time5 min
Views26K
В наше время все большую популярность набирают генетические алгоритмы. Их используют для решения самых разнообразных задач. Где-то они работают эффективнее других, где-то программист просто решил выпендриться…

Так что же такое генетический алгоритм? Если верить википедии, то генетический алгоритм — это эвристический алгоритм поиска, используемый для решения задач оптимизации и моделирования путём случайного подбора, комбинирования и вариации искомых параметров с использованием механизмов, напоминающих биологическую эволюцию. Является разновидностью эволюционных вычислений. Отличительной особенностью генетического алгоритма является акцент на использование оператора «скрещивания», который производит операцию рекомбинации решений-кандидатов, роль которой аналогична роли скрещивания в живой природе.

Т.е. генетический алгоритм работает наподобие нашей с вами эволюции. Сначала создаются начальные популяции, затем они скрещиваются между собой (при этом возможно возникновение мутаций). Популяции выжившие в процессе естественного отбора проверяются на удовлетворение заданным критериям. Если удовлетворяют — все счастливы, если нет — вновь скрещиваются и так до финальной победы.

Как это все выглядит вы можете увидеть на следующем рисунке:



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

Топологическая сортировка

Reading time3 min
Views148K
Топологическая сортировка (Topological sort) — один из основных алгоритмов на графах, который применяется для решения множества более сложных задач.
Задача топологической сортировки графа состоит в следующем: указать такой линейный порядок на его вершинах, чтобы любое ребро вело от вершины с меньшим номером к вершине с большим номером. Очевидно, что если в графе есть циклы, то такого порядка не существует.
Ориентированной сетью (или просто сетью) называют бесконтурный ориентированный граф. В задачах подобного плана рассматриваются только конечные сети.
image
↑ Пример ориентированного неотсортированного графа, к которому применима топологическая сортировка
Далее про алгоритм, реализацию и применение..
12 ...
64

Information

Rating
9,344-th
Location
Краснодар, Краснодарский край, Россия
Date of birth
Registered
Activity

Specialization

Backend Developer, Software Architect
Lead
Python
PostgreSQL
Linux
Docker
Kubernetes
RabbitMQ
Elasticsearch