Комментарии 38
Тэги head и body уже отменили, я что-то пропустил?
habrahabr.ru/post/275729/#two
habrahabr.ru/post/275729/#two
+13
Стандарт HTML5
По нему теги body и head могут не использоваться.
Но мне лично они помогают ориентироваться в разметке и использовать для структурирования кода документа.
По нему теги body и head могут не использоваться.
Но мне лично они помогают ориентироваться в разметке и использовать для структурирования кода документа.
+6
НЛО прилетело и опубликовало эту надпись здесь
А смысл?
0
На самом деле, JavaScript никогда не будет вашим узким местом в расчете на производительность.
Ага. Кроме всего кода, который вызывается из колбека window.requestAnimationFrame. Или если вам нужно читать много данных из WebSocket. С этого момента микрооптимизации ваш лучший друг. Никаких forEach. Никакого кода, который плохо переваривается оптимизатором. И обращайте внимание на то, что именно идёт в прототип, а что в сам объект. Кроме того старайтесь не использовать классы.
Ах, да. Если вы решили использовать какие либо соглашения, то запишите это на видном месте. Например в README проекта. Но при этом старайтесь не раздувать подобные документы до огромных размеров.
+7
/* хорошо */
.foo.bar {
color: green;
}
.foo {
color: red;
}
Вот как раз в этом месте сначала логичнее указать .foo, а ниже уже .foo.bar
/* плохо */
if (x === undefined || x === null) { /*… */ }
/* хорошо */
if (x == undefined) { /*… */ }
Опять же, иногда нужно явное сравнение с undefined. Это же JS! Вообще == и === нужно использовать только там, где это нужно. Хотите показать, что вы именно с undefined сравниваете, используйте ===, это не будет плохим кодом.
Очень странно написано про каррирование. Из текста кажется, что это просто антипаттерн для всего.
Понимаю, что перевод, но многие рекомендации из статьи обсуждаемы все же.
+6
Ещё, очень заинтересовало «всегда используйте рекурсию вместо циклов» с «отличным» примером.
Теперь представим что данная фиговина добавляет 40 чего нибудь (не знаю, фотографий с обрамлением) на страничку. Глубина рекурсии получится 40 (Сорок, Карл!).
«Оптимальней», ну да ну да :/
Теперь представим что данная фиговина добавляет 40 чего нибудь (не знаю, фотографий с обрамлением) на страничку. Глубина рекурсии получится 40 (Сорок, Карл!).
«Оптимальней», ну да ну да :/
+7
А js не умеет оптимизировать хвостовую рекурсию в цикл?
0
По стандарту ES6 должет уметь. На данный момент реализовано в Babel; в node.js и браузерах ещё нет: kangax.github.io/compat-table/es6
+1
Я начал перечислять фактические ошибки и плохие советы, но быстро сломался.
В итоге вывод простой: не следуйте советам из этой статьи. Вообще.
P.S. Но вот это просто убило
Давно ль ‘Hello, world’ вошло в русский язык?…
В итоге вывод простой: не следуйте советам из этой статьи. Вообще.
P.S. Но вот это просто убило
<!-- хорошо -->
<!doctype html>
<html lang=ru>
<meta charset=utf-8>
<title>Hello, world.</title>
</html>
Давно ль ‘Hello, world’ вошло в русский язык?…
+8
Не, ну некоторые советы вполне разумны.
Но, конечно, и много спорного, а местами и просто чуши.
Но, конечно, и много спорного, а местами и просто чуши.
+4
Ну да, совет в alt писать что-то осмысленное — норм.
Остальное — местами вкусовщина, местами непонимание, местами откровенно вредные советы.
Остальное — местами вкусовщина, местами непонимание, местами откровенно вредные советы.
+2
Вообще, весь второй раздел можно заменить на одну фразу «используйте CSS-препроцессоры, такие как LESS, SASS, Stylus» ну или что сейчас самое модное.
+1
Да не, там немало вопросов, которые не касаются технологии, но касаются логики построения стилей. Например, с пунктом 2.7 я согласен. И совершенно неважно, будет ли это делаться на голом CSS или на самом модном турбопрепостпроцессоре.
+1
А я нет. В таком примере, как у автора приведён — да, так не надо делать. Но легко можно представить кучу ситуаций, когда так делать надо. Например, первую букву слова выделить другим цветом.
-1
При чем тут первая буква?
Автор имеет в виду другое — нужно избегать схемы «указать свойство всем, а потом переопределить исключения».
Намного лучше выделить именно нужные элементы и стилизовать именно их (по возможности).
Автор имеет в виду другое — нужно избегать схемы «указать свойство всем, а потом переопределить исключения».
Намного лучше выделить именно нужные элементы и стилизовать именно их (по возможности).
+1
Ну да. Указал цвет для текста, а потом переопределил исключение (первую букву). Что не так?
Ну и вообще, показанный пример (li + li вместо li:first-child) конфликтует с первым же правилом «явное лучше неявного».
Ну и вообще, показанный пример (li + li вместо li:first-child) конфликтует с первым же правилом «явное лучше неявного».
0
Мдя. Удаление head и body это, конечно, ну оооочень семантично и просто замечательно повышает читабельность…
И следом вообще офигительный пример, со стрелочными функциями, который понять не-автору, если он будет хоть на пару строк длиннее — вообще задница. Потому что алгоритм становится совершенно неявным. Человек — не машина. Понять, что и в какой последовательности будет происходить в этом примере — ни разу не просто. А уже попробовать разобраться дебагом в пошаговом режиме и вовсе невозможно.
Отдельное объявление функций используемых только в одном месте — и вовсе архиглупость, т.к. заставляет «листать» выше-ниже, использование Inline записи в данном случае и лаконичнее и понятнее — т.к. сразу видно что и где происходит.
Омг… Супер-совет, для 10к элементов, например вообще отлично.
В общем, мне кажется переводчик чё-то попутал, и это был сборник советов как не надо делать.
Нет, конечно изучить и обдумать приведенные советы нужно. Но тут столько спорных моментов, что для новичков эта статья вообще крайне вредна (учитывая ее название «Руководство».
Да еще и массовое использование ES5 и CSS3, тоже штука хорошая — но только с оговорками и полифилами.
P.S. — на мой взгляд, спорными и обсуждаемыми тут являются почти все советы. Просто если на каждый поинт писать возражения — это будет уже статья, а не коммент…
Легкочитаемый, выразительный и правильный код важнее производительности.
И следом вообще офигительный пример, со стрелочными функциями, который понять не-автору, если он будет хоть на пару строк длиннее — вообще задница. Потому что алгоритм становится совершенно неявным. Человек — не машина. Понять, что и в какой последовательности будет происходить в этом примере — ни разу не просто. А уже попробовать разобраться дебагом в пошаговом режиме и вовсе невозможно.
Отдельное объявление функций используемых только в одном месте — и вовсе архиглупость, т.к. заставляет «листать» выше-ниже, использование Inline записи в данном случае и лаконичнее и понятнее — т.к. сразу видно что и где происходит.
[12, 5, 8, 130, 44].filter(function (val) { return val >= 10; }).map(function(val){return val * val});
Если вы не можете использовать методы Array.prototype, используйте рекурсию.
Омг… Супер-совет, для 10к элементов, например вообще отлично.
В общем, мне кажется переводчик чё-то попутал, и это был сборник советов как не надо делать.
Нет, конечно изучить и обдумать приведенные советы нужно. Но тут столько спорных моментов, что для новичков эта статья вообще крайне вредна (учитывая ее название «Руководство».
Да еще и массовое использование ES5 и CSS3, тоже штука хорошая — но только с оговорками и полифилами.
P.S. — на мой взгляд, спорными и обсуждаемыми тут являются почти все советы. Просто если на каждый поинт писать возражения — это будет уже статья, а не коммент…
+2
НЛО прилетело и опубликовало эту надпись здесь
Семантическая вёрстка, или семантический HTML-код, — это подход к созданию веб-страниц на языке HTML, основанный на использовании HTML-тегов в соответствии с их семантикой (предназначением)[1], а также предполагающий логичную и последовательную иерархию страницы© Википедия
Ну вот как-бы иерархию-то тут и ломают… Это если чисто формально подходить.
А если подойти не с формальной точки зрения, а по сути и смыслу семантической верстки — то всё еще хуже.
Ведь для чего вообще в html5 ввели новые тэги? Да как раз таки для создания структуры и иерархии контента! Всё, другого назначения у всяких «article» и «head» нету. С технической точки зрения их функции прекрасно выполняют div'ы
И разрушение структуры путем удаления «head» есть прямое нарушение принципов семантической верстки.
0
Пожалуйста, расскажите подробней про кеширование. Немного не понял разницу двух примеров. Спасибо.
+1
Улыбнуло слово «ежели», а так ничего вроде
+1
Мда. Название «Вредные советы» статье подошло бы лучше.
Кто не прыгал из окошка©Григорий Остер
Вместе с маминым зонтом,
Тот лихим парашютистом
Не считается пока.
Не лететь ему, как птице,
Над взволнованной толпой,
Не лежать ему в больнице
С забинтованной ногой.
-3
комментарии сплошь отрицательные, а статья в огромном плюсе. странно сие
0
Меня умиляет манера изложения: «это — хорошо, это — плохо. dixi». Объяснить, аргументировать, почему так, а не так — не, зачем.
+1
Определении языка и кодировки символов не является обязательным, однако рекомендуется всегда объявлять их на уровне документа, даже если они указаны в заголовках HTTP.
Ну да, конечно.
Допустим, в HTTP-заголовке идёт одна кодировка, в документе указана другая — такое бывает, видел много раз. Внимание, вопрос: в какой кодировке клиент увидит страницу?
Мне кажется, указывать кодировку достаточно один раз — в HTTP-заголовке.
0
Зарегистрируйтесь на Хабре, чтобы оставить комментарий
Руководство по HTML/CSS/JavaScript