Термоядерное вооружение на службе добру

августа 10, 2011  |  Published in Уголок философа  |  10 Comments

Вы можете поймать муху палочками для еды?
Вы можете простоять в позе журавля трое суток?
А отжаться стоя на мизинцах?

Правдивый ответ: не могу! А вот великие учителя, далее по тексту мы будем называть их гуру, — могут.

Вполне закономерный вопрос: Зачем мне ловить муху палочками?

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

В интернетах полно различных рецептов по поводу того, как что-то правильно делать, ну например как использовать SVG или VML для того, чтобы сделать скругленные уголки у блоков, или еще о чем-то таком. Эти рецепты ассоциируются у меня с такой ситуацией, когда вместо мухобойки или газеты, человек в борьбе с перепончатокрылыми использует, ну, например, танк или термоядерное оружие.

Гуру плодят последователей причем авторитет гуру зависит в большинстве случаев от сложности его решения тривиальной задачи. Да, возможно, я не доконца понимаю где правильнее использовать <b>, а где <strong>, но от этого ничего не ломается, все работает хорошо, а значит работа выполнена. Да, семантика важная вещь, но только для поисковиков, да и то, неужели вы всерьез думаете, что поисковики так уж сильно обращают внимание на семантическое колдовство W3C? Разработчики любого поисковика понимают, что семантикой всегда будут злоупотреблать, например, те же сеошники, от сюда и вывод, что семантика на 50% нужна ради семантики, на 40% ради удовлетворения эго разработчика и, максимум на 10% для привнесения реальной пользы. Разумеется, существуют разумные рамки между быстрой и простой версткой и валидной, кроссбраузерной верстками.

Например, новые теги типа <article>, <header> и т.д. в HTML5 — чисто семантическое нововведение, но мне оно кажется успешным, хотябы потому, что код становится более понятным и отпадает необходимость объявления стилей и идентификаторов (в большинстве случаев). А вот скругленные уголкии на SVG или VML и обязательная блочная верстка с кучей хаков — это лишнее. Для адекватных браузеров можно использовать border-radius, а вот для всех остальных использовать картинки. Разумеется, в случае сложного фонового изображения в неадекватных браузерах можно обойтись и без скругленных уголков. Стремление сделать все по стандартам — это как охота на мух на танке, ибо стандарты существуют только на бумаге, но реалии таковы, что даже CSS2 полностью не поддерживается современными браузерами, а поддержка некоторых свойств из CSS3 с превиксами типа -moz- и т.д. больше походит на использование хаков, чем на что-то универсальное и валидное.

Общий смысл поста таков: нужно стремиться к совершенству, но без фанатизма, где есть проблемы с блочной версткой — можно использовать таблицы, где гуру говорят: «Это не Rails-way», можно привести железный аргумент: «Это работает и реализует 100% того, что нужно!».

Tags: ,

Responses

  1. Паша says:

    августа 10, 2011 at 23:05 (#)

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

  2. Паша says:

    августа 10, 2011 at 23:13 (#)

    На предыдущем проекте практически все файлы были более 1000 строек. И не только модели и контролеры, но и файлы css и javascript, которые к тому же были для каждого контролера и конечно грузились все разом. Когда я их спрашивал что это за хрень, они мне тоже отвечали «Это работает и реализует 100% того, что нужно!». Так что по-моему лучше следовать правилам если по другому не умеешь. Когда научишься, тогда импровизируй.

  3. admin says:

    августа 10, 2011 at 23:21 (#)

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

  4. Паша says:

    августа 11, 2011 at 03:03 (#)

    В статье сильно выраженный призыв отказаться от чего бы то ни было, но нет призыва сначала изучить, то от чего собираешься отказаться.

  5. says:

    августа 11, 2011 at 09:14 (#)

    По видимому пост написан на фоне конкретной ситуации, с которой столкнулся автор :) или кто-то пытался ему доказать мегаважность семантики.

    » семантика на 50% нужна ради семантики » — это точно
    Пользователю важнее удобность и скорость работы с сайтом а не насколько канонически правильно это сделано.

  6. zzzz says:

    августа 11, 2011 at 10:38 (#)

    я думал ты программист а не верстальщик

  7. admin says:

    августа 11, 2011 at 11:05 (#)

    zzzz, я вообще веб разработкой интересуюсь, даже в фотошопе не плохо работаю, но рисовать не умею =) Несмотря на это программирование для меня более приоритетное направление развития.

  8. admin says:

    августа 11, 2011 at 11:10 (#)

    Дмитрий, да, так и есть. Спорил с одним человеком, который убеждал меня в том, что стандарты — святое, только я не понял, как их можно придерживаться на 100%, если сами браузеры даже css2 не полностью поддерживают. От сего и крик души: Уперся в тупик — забей на кроссбраузерность, валидность и семантику. Главное чтобы все работало. Вот пекут люди, скажем «Пражский» хлеб и продают его. А другие люди его едят и им нравится, хотя, возможно, оригинальная технология и рецепт «Чешского» хлеба совсем другие, но никто не парится, ибо пекарь получает деньги, а покупатель — вкусны хлеб.

  9. says:

    августа 12, 2011 at 06:59 (#)

    Действительно, во всем стоит знать меру :)

    Кстати, было бы неплохо написать статью про рабочее окружение, про то на чем работают программисты на руби. Скажем кто сидит на убунту пользуется gmate и консольным git. Кто на маке текстмэйтом и т.д. Про сниппеты и т.д :)

  10. says:

    июля 23, 2012 at 17:00 (#)

    К идеалу можно долго идти, а сайт хорошо работающий нужен сейчас, тогда проект не затянется

    Вот я разрабатывал сайт с нуля и стремился к идеалу — Год!
    Конечно польза огромная, стандарты знаю терь, но за это время столько изменений произошло в мире веб программирования, (появился CSS3, HTML5, и тп) что за просто ними не угнаться.

Leave a Response

Для подсветки кода используйте BB - коды: [language]...[/language], где language может быть: ruby, javascript, css, html.