Информация
- В рейтинге
- Не участвует
- Откуда
- Москва, Москва и Московская обл., Россия
- Дата рождения
- Зарегистрирован
- Активность
Специализация
Фронтенд разработчик, Фулстек разработчик
Ведущий
Проектирование архитектуры приложений
Решение проблем
Разработка решений по интеграции
Проектирование информационных систем
Системная интеграция
Анализ требований
Системный анализ
что касается дописывания display:block - во первых gzip сжатие =)
ну и тут уже вкусовщина - я за явное определение в css того как элемент должен отображаться
вот допустим у вас в css класс .wallet - допустим он применен к div - я за то чтобы в нем однозначно было написано что он блочный, хотя на практике все чаще flex или grid или inline-block
то есть в css все равно даже если использовать div - стоит указывать display
Спасибо! Мне нравится ваш серьезный вдумчивый подход.
Но на счет сжатия хоть это и звучит на первый взгляд правдоподобно, там как минимум нет разницы - количество токенов идентично.
Вот примеры сжатых через gzip файлов - https://drive.google.com/drive/folders/1Uijwa_bV0ULh72T3jlZJtC5jj9_d96nW?usp=sharing
Может их открыть и сами убедиться в том что файлы идентичны
Если в файл custom.html добавить хоть один div - то размеры сжатых файлов будут одинаковые - этот пример лежит в папке two
вам нужно спорить не со мной нарциссом, а с текстом статьи, кто бы не был ее автором, приводя и подкрепляя весомые аргументы, не переходя на личности, вы же так или иначе все сводите к обсуждению автора материала, его энтузиазму опыту и психологическим особенностям
Вот дело как раз в том, что уже давно, такая опция, by desing, есть и в html
Но разработчики её не используют... продолжая верстать интерфейс приложений как будто это текст книги
нет это вы используете назидательный тон по отношению ко мне, почти в каждом своем сообщении, вот цитаты:
- "Ваш бы энтузиазм да в правильное русло направить"
- "Попробуйте изучить реакт, вьюжс или ангуляр, там как раз"
- "если хотите вменяемо конкурировать на рынке с другими опытными фронтенд специалистами"
из-за этого у читателя в голове формируется образ как взрослый опытный дядя говорит какому-то новичку что нельзя писать так как ему вздумается. Тем самым в глазах читателя вы понижаете авторитет автора - просто говоря с ним свысока, за счет чего у невнимательного читателя срабатывает когнитивное искажение - что раз источник "плохой" - то и информация которую он сообщает ложна.
понимаете? А это я собеседую этих фронтенд специалистов и вот кто про такие теги даже не слышал - у меня собес не пройдет )
Предлагаю вернуться к тегам. Где это не работает?
Вы же видите что код однозначно читабельнее , что тег это просто
<></>а его имя можно придумывать так же как имя переменной. И развитие стандарта html привело к тому что они сделали возможным создавать свои теги на случай если не достаточно имеющихся , но разработчики продолжили все оборачивать в div и span, даже нишевые решения, аппки для webview приложения заточенные только под одну платформу smartTV например."а пока вы напоминаете мне меня же 10 лет назад" - ну вот это что?
я старше вас, мне 36 лет, вам полагаю около 32, и разработкой занимаюсь дольше. Комплимент что я не растерял энтузиазм за годы в айти и продолжаю смотреть на привычные вещи свежим взглядом?
я же не говорю о том чтобы в разных проектах использовали одинаковые согласованные имена "новые" имена тегов. - это будут примерно английские слова - которые поисковики научаться анализировать.
вообще не понимаю чего вы так прицепились когда сами пишете статьи про веб-компоненты? c точки зрения семантики я делаю почти то же самое только говорю что еще не всегда обязательно этот тег регестирировать.
нет уж простите - говорите об этом только вы и еще пара человек в комментариях и постоянно пытаетесь выставить лично меня не компетентным, что-то про мою конкуренцию с другими фронтенд разработчиками. Не нужно пожалуйста критиковать описанный в статье подход через понижения авторитета его автора в глазах аудитории ok?
И рейтинг статьи положительный и много кто добавил ее в закладки - сравните это с другими публикациями за последние сутки - так что ни на что он не намекает.
Что касается "скринридеров" и иже с ними - ну допустим есть какие-то программы которые это не обработают, но html например для electron приложения так можно писать? или для веб версии crm / мессенджера? Если посмотреть на современные SPA , дашборд в админке или интерфейс конструктора сайтов , там каким боком вообще нужны стандарты seo и скринридеры?
Опять же если эта практика станет больше распространена то и seo / поисковики подстроятся, выработают новые эрвистики на основе имен тегов.
И то что google вводил новый формат разметки для amp страниц, яндекс так же для своих быстрых страниц, а telegram устраивал конкурс с разметкой популярных сайтов для корректной работы своего instantview говорит о том что текущая верстка сайтов не особо им помогает разбирать контент.
Вы можете мне ответить на этот вопрос что-то кроме "так нельзя" / "иди учи реакт" / "верстать" и тому подобное?
Хорошие доводы, спасибо!
Но то что emmet упрощает генерацию бойлерплейта - он же все равно его генерирует и далее этот код существует и отправляется на клиент, а можно вообще жить без это кода. Я надеялся что кто-то такой же дотошливый как и я сможет скинуть ссылку на программу которая текст из div class=text может прочитать, а из тега text или my-text не может. Но с таким я пока не сталкивался, отсюда и вывод что это код, пусть его и AI генерирует, не нужен никому, ни на каком этапе.
Специальным браузерам точно так же, что прост div что кастомный тег, нет разницы и для div нужно прописывать aria чтобы придать ему смысл и для кастомного тега так же
То есть вы тот описанный в статье человек, который боится что где-то, когда-то , "на умном холодильнике" что-то пойдет не так
Если какие-то парсеры всё-таки споткнутся о кастомный тег - значит и веб-компоненты нельзя использовать? Ну давайте тогда будем их использовать хотя бы в приложениях которые не предназначены для парсинга, онлайн играх, этих вот телеграмм ботов со встроенным web-app , закрытых админках и crm?
Ну если никак не учите то будете так же читать доки по дизайн системе. Что там внутри кастомное не кастомное имя на уровень абстракции выше не попадет.
Но опять же, вы апеллируете к своему личному опыту и своей персональной насмотренности, к субъективному восприятию чужого кода которое коротко можно описать одной фразой - "так сложилось что я привык по другому и лень переучиваться"
А с инженерной точки зрения есть что сказать по поводу качества работы такого кода? Если например представить что вам не нужно его писать, а вы только пользователь, на комп которого загружается такой вот код. Ведь в конце концов программирование создано не для вашего удобства чтобы вам на работе было комфортно сидеть, а для того чтобы решать задачи пользователей программных продуктов и если вы как разработчик давно не замечаете трёх сущностей в коде, то может как пользователь видите что на некоторых сайтах устройство нет-нет да залагает от парсинга всего этого энтерпрайза?
Всё бывает в первый раз, это как раз таки из-за того что такой подход в новинку, а это из-за того что его мало кто использует.
Но если это веб-компонент то это как-то по другому видно, потому что есть такой файл например и он где-то импортируется выше, ну у меня vscode по клику перекидывает в него.
В принципе можно договориться что если тег из нескольких частей через чёрточки - то веб-компонент, а если всё слитно - то просто тег.
То что вы сейчас испытываете называется когнитивное сопротивление, это нормально когда встречаешься с чем-то новым.
А вот то что возможность языка которая в нем уже кучу лет для опытных разработчиков является чем-то новым не нормально
Вы даёте мне странные советы. Посмотрите мой профиль что ли.
Я написал на angular ни одно приложение. Знаю реакт лучше многих, это пожалуй основной фреймворк на котором я пишу на работе, ну и было несколько проектов на vue. А ещё в прошлом riotjs , meteor, backbone.
Я прекрасно знаю как в каком фронтенд фреймворке делается вёрстка и все нюансы со стилизацией и организацией как компонент так и вообще ui китов.
Ну свои собственные переменные и имена классов в новом проекте вы же как-то учите? Имя тега в данном случае призвано заменить название одного из его css классов не более того
Вторая картинка это валидный именно html код который исполняют браузеры.
Я не хочу с вами спорить о том что есть xml а что html вот тут неплохо описали разницу - https://habr.com/ru/articles/810945/ и тут https://habr.com/ru/articles/252283/
На счет копирастов - нуу интереная мысль с одной стороны... с другой - это только фронтенд - обычно есть же еще остальная немаловажная часть проекта - бэк и обсуфицированный js код . Думаю эта результирующая верстка все равно не являющаяся исходным кодом а лишь сгенерированная им, мало чего даст желающим скопировать проект.
я в статье говорю что для заголовка лучше использовать h1
и про тег article так же сказал
про SEO говорится что нет разницы между ничего не значащим <div class="bar" и ничего не значащим <bar>
ну и в конце концов - вот в интерфейсе почты например или календаря для авторизованного юзера разве нужно SEO ? - посмотрите я тут примеры кода скинул - https://habr.com/ru/articles/819465/#comment_26899193
я предлагаю вместо вот такого кода
писать вот такой
и то и другое - это html код календарей - там нет особо тегов для разметки текста это datepicker'ы, только в одном случае все на одних только div и span а в другом с именованными тегами
тегов с осмысленными названиями толком не было и нет до сих пор на сайтах
в стать об этом написано - читайте внимательно - в частности про заголовки
заменять в первую очередь я как раз предлагаю абстрактные div и span
а я не заменю h1 потому что это нецелесообразно, но если мне по каким-то другим причинам(которых я пока не придумал) понадобится сделать кастомный тег для заголовка то я пропишу ему
role="heading" aria-level="1"так что семантика будет сохранена.Практический смысл как раз таки есть в моем подходе, а вот практического смысла писать div вместе с атрубутом class - нет
В практическом смысле в памяти браузера объект с установленным атрибутом занимает больше места , ну если совсем грубо то как-то так:
при прочих равных и одинаковой функциональности этот тег меньше жрет всех ресурсов, с одной стороны это мелочи, с другой - тегов тысячи ... но если уж вообще рассуждать о некотором практическом смысле - то все же - чем меньше свойств тем быстрее работает. Да компы быстрые не играет роли свой тег или блок с классомб по скорости там тысячные доли миллисекунды разницы, но это все равно просто не имеет смысла, тому нет причин больше печатать чтобы оно потом дольше грузилось.
я ничего не изобретал , этим занимается w3c
я же просто пишу на html и хочу читать чужой код наполненный смыслом - поэтому обращаюсь к разработчикам с просьбой - давайте осмысленные имена тегам
мой подход к написанию валидного html отличается только тем, что я даю оригинальные имена тому, что большинство фронтенд-разработчиков именует как `div`
xml тут не при чем, просто вы знаете что в xml через DTD можно свои имена тегам придумавать, но не знаете что точно так же можно делать и в html и без DTD - поэтому сравниваете с xml , он тут не при чем - я использую нативные задокументированные возможности языка html
еще раз - вы вводите в IDE - только имя и я ввожу в IDE только имя
ваша IDE генерирует div class - моя нет
при этом результат работы и того и другого кода идентичен
вопрос - вам для чего нужен этот div class, чтобы что? или кому он вообще нужен и для чего?
то есть ваша ide сгенерировала то что вам то и не нужно и никому не нужно - какой-то текст который вы уже давно автоматически взглядом пропускаете и смотрите только на имя класса - а зачем это делать если можно этого не делать?
нет на выходе мы получаем разное количество символов и смыслов
я на выходе получаю одну смысловую единицу - только тег с его именем
вы на выходе получаете три смысловые единицы - тег, атрибут, название
2 из которых всегда одинаковые и мало что значат
зависит конечно от длины названий тегов но скорее всего и мой css будет компактнее и файлы отдаваемые юзеру в итоге будут меньше весить и git diff проще смотреть и анализировать и все остальные плюсы лаконичности вплоть до меньшего потребления оперативной памяти
в моем случае браузер видет только тег - в вашем случае браузер видит тег атрибут и значение атрибута, так или иначе вся эта информация обрабатывается человеком / компьютером.
Еще раз взгляните свежим не замыленым / привыкшем взглядом на html. Да - можно писать везде div class=" - можно - но для чего? какие цели достигаются написанием этого бойлерплейта? что вы в конце концов хотите сказать миру своим `div class="`? то что у вас в ide есть автокоплит? :)))
Исторически так сложилось не более того, книжки старые так были написаны, потом уже те кто читал эти книжки - учил других не особо вспоминая о новых возможностях, далее те кто учит html просто не видят примеров со своими именами тегов и даже не догадываются что так можно, информации по фронтенду так много что никто не копается в деталях и так не успевают за всем уследить - смотрят как все делают и повторяют за ними. А тем временем по меркам IT это просто огромный срок, уже лет 15 наверно как существует возможность вкладывать в сами имена тегов смысл а не только в их атрибуты.
Просто уже давно нет причин писать <div class
То есть те методы - это написать код который будет помогать генерировать бойлерплейт код? Больше кода богу кода?
Я ввожу в IDE "<loader" и оно само по табу мне пишет <loader></loader>
Да, не в блокноте пишем, AI половину генерирует, но все таки каждый символ чего-то да стоит и каждая сущность чего-то да значит. И даже перевод взгляда в "шапку" ide где прописан путь и перевод курсора на закрывающий тег(чтобы наверху увидеть как он там открыт) - какое-то время да занимает, в сравнении с тем - когда можно все это увидеть просто смотря на конструкцию закрытия тега. Вы поймите, что вы каждый раз даете своей сущности название - div. Регулярно, совершенно разные блоки вы называете одним и тем же именем или позволяете это сделать IDE за вас.
Ну это то же самое что давать многим переменным одинаковые имена по типу myvar1 myvar2.
Что станет хуже если ваша ide когда вы пишите loader будет генерировать '<loader></loader>' ? Ну перенастройте ide и пишите на одну точку меньше и перводите взгляд и курсор реже.