Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #31 (permalink)  
Старый 05.11.2011, 01:33
Аватар для vflash
Профессор
Отправить личное сообщение для vflash Посмотреть профиль Найти все сообщения от vflash
 
Регистрация: 09.07.2007
Сообщений: 304

tenshi,
Презентация была про то чтоб верстать объектно (разбить на мелкие части и верстать маленькими кусками). Так сказать для популяризации. Ничего нового в этом нет.

БЭМ это способ создания уникальных имен классов, один из многих которые можно придумать. В своей практике выработались свои правила наименования, и они мне видятся более правильными.

приведу пример почему способ наименования принятый в БЭМ не самый удачный:

При верстке каждый объект описывается в своем шаблоне. Имя этому шаблону задаю такоеже как и имя объекта. И тут есть проблема у БЭМ, не все шаблонизаторы позволяют использовать дефис в имени шаблона.

Еше в редакторе (Notepad++) при двойном клике по имени объекта, это имя объекта будет выделено полностью если в нем использовано подчеркивание , а если будет дефис то выделено будет не полностью . Мелочь , но очень удобно в практике.



Еше так нельзя
var column-proxy = document.querySelector(".b-page-layout__column-proxy");

а так можно
var subj_firstline = document.querySelector(".b-mbox_row-subj_firstline");

это удобно если имя класса измениться, то могу в редакторе за рас менять и css и названия переменных.

я бы стал использовать правила принятые в БЭМ , потому как его многие стали применять, но он мне неудобен в этих мелочах.
__________________
лучшая rss читалка zzreader.com

Последний раз редактировалось vflash, 05.11.2011 в 04:08.
Ответить с цитированием
  #32 (permalink)  
Старый 05.11.2011, 10:31
Профессор
Отправить личное сообщение для tenshi Посмотреть профиль Найти все сообщения от tenshi
 
Регистрация: 20.03.2008
Сообщений: 1,183

подчёркивание визуально длинее дефиса. и как следствие сильнее разделяет слова. проблема с дефисом в именах шаблонов остаётся и в твоём случае, только реже проявляется (когда для одного модуля нужно несколько шаблонов). по даблклику логичнее было бы выделять вообще всё имя целиком. с ctrl+backspace аналогично.

поэтому лучше так:
var subjFirstLine = document.querySelector(".mboxRow_subjFirstLine");
__________________
.ня
Ответить с цитированием
  #33 (permalink)  
Старый 05.11.2011, 10:41
Новичок на форуме
Отправить личное сообщение для Kolyaj Посмотреть профиль Найти все сообщения от Kolyaj
 
Регистрация: 19.02.2008
Сообщений: 9,177

Сообщение от vflash
var subj_firstline
Так нельзя, в JavaScript принят другой стиль наименования переменных.

Сообщение от vflash
var column-proxy
А с этим как раз всё нормально. Есть стандарт преобразования этого в columnProxy.
Ответить с цитированием
  #34 (permalink)  
Старый 05.11.2011, 13:05
Аватар для vflash
Профессор
Отправить личное сообщение для vflash Посмотреть профиль Найти все сообщения от vflash
 
Регистрация: 09.07.2007
Сообщений: 304

Сообщение от Kolyaj
Так нельзя, в JavaScript принят другой стиль наименования переменных.
в js есть стандарт допустимых символов и правила их последовательности. а вот стиль это уже прихоть определенной группы или лица.

Сообщение от Kolyaj
А с этим как раз всё нормально. Есть стандарт преобразования этого в columnProxy.
в таком случии если css класс измениться, а такое бывает часто при разработке, то для синхронизации будет достаточно всего один рас сделать замену по документу(ам).
я ведь не про то как правильно назвать, а о том чтобы об этом вообще не думать. Есть имя у элемента , на него уже было потрачено время чтобы придумать так зачем еще тратить когда можно это сделать копипастом.


Сообщение от tenshi
var subjFirstLine = document.querySelector(".mboxRow_subjFirstLine");
в таком случаи двойной клик выделит весь класс. выделить весь класс тоже бывает нужно , но мне както чаше бывает нужно выделить часть. или имя объекта или имя элемента.

можно ведь назвать и так. так класс(css) даже привычней выглядит.
var subjFirstLine = document.querySelector(".b-mboxRow-subjFirstLine");



---
Еще в редакторах Ctrl-[вправо/влево] перемешает курсор по словам, а подчеркивание воспринимают как часть слова. Потому дифис как разделитель и тут оказывается более удобным.


_
__________________
лучшая rss читалка zzreader.com

Последний раз редактировалось vflash, 05.11.2011 в 13:15.
Ответить с цитированием
  #35 (permalink)  
Старый 05.11.2011, 14:24
Аватар для Gozar
Отправить личное сообщение для Gozar Посмотреть профиль Найти все сообщения от Gozar
 
Регистрация: 07.06.2007
Сообщений: 7,504

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

Меня сейчас больше интересуют префиксы. Например целесообразно ли использовать префиксы:
f - форум,
p - персональный,
ph - фотосервис ну и т.д.
помимо b и i
?

На небольшом проекте мне это кажется очень удобным, возможно и на большом будет нормально.

По поводу повторного использования я в курсе.
__________________
Последний раз редактировалось Gozar, Сегодня в 24:14.
Ответить с цитированием
  #36 (permalink)  
Старый 05.11.2011, 17:44
Аватар для vflash
Профессор
Отправить личное сообщение для vflash Посмотреть профиль Найти все сообщения от vflash
 
Регистрация: 09.07.2007
Сообщений: 304

Сообщение от Gozar
Меня сейчас больше интересуют префиксы. Например целесообразно ли использовать префиксы:
f - форум,
p - персональный,
ph - фотосервис ну и т.д.
помимо b и i
?
пробовал так и отказался. лучше название проекта указывать в имени объекта. префикс это своего рода подсветка кода. например чтобы легко можно было удалить классы отвечающие за скины.

Сообщение от Gozar
На небольшом проекте ...
любой проект бьется на небольшие части. потому нет разницы что верстать большой что маленький. если нет нужды в скинах то верстать становиться совсем просто.

Сообщение от Gozar
Думаю в случае просмотра или совместной разработки, человеку смотрящему ваш код, придется поломать голову, привыкая к нижним подчеркиваниям.
среди программистов подчеркивание является обычным делом. это вообшето обще принятая практика. если верстальщик привык использовать дефис как замена пробела то программисту из-за этого приходиться работать с двумя разными стилями наименования.
__________________
лучшая rss читалка zzreader.com
Ответить с цитированием
  #37 (permalink)  
Старый 05.11.2011, 23:46
Новичок на форуме
Отправить личное сообщение для Kolyaj Посмотреть профиль Найти все сообщения от Kolyaj
 
Регистрация: 19.02.2008
Сообщений: 9,177

Сообщение от vflash
в js есть стандарт допустимых символов и правила их последовательности. а вот стиль это уже прихоть определенной группы или лица.
Угу, и получится месиво как в PHP. Половина функций в одном стиле, половина в другом. В PHP от этого не избавиться, но зачем и в JavaScript такое творить своими руками?


Сообщение от vflash
Есть имя у элемента , на него уже было потрачено время чтобы придумать так зачем еще тратить когда можно это сделать копипастом.
Я поступил проще. У меня есть метод this.getEl(className), который принимает имя класса, возвращает первый элемент с этим классом (внутри виджета). При этом сама кэширует результаты. Поэтому ссылки на элементы я нигде не сохраняю, при необходимости делаю this.getEl() с нужным классом. В результате имя элемента только в CSS.
Ответить с цитированием
  #38 (permalink)  
Старый 06.11.2011, 02:39
Профессор
Отправить личное сообщение для tenshi Посмотреть профиль Найти все сообщения от tenshi
 
Регистрация: 20.03.2008
Сообщений: 1,183

префиксы нужны для предотвращения конфликтов. поэтому все имена конкретного программиста должны иметь его префикс. или все имена программистов определённой группы, которые могут друг с другом договориться,чтобы не конфликтовать. при этом одни имена в разных местах должны иметь один префикс (например, класс в цсс и соответствующий скрипт в жс), но при этом имена относящиеся к разным сущностям должны иметь разный префикс (например, у меня есть функция $jam.$doc возвращающая ссылку на документ, а есть модуль wc:doc содержащий базовые стили и скрипты для документации). хотя по хорошему один из них лучше переименовать, чтобы самому же путаться и чтобы не было конфликтов, когда импортируются оба пространства имён типа такого:

with( $jam )
with( $wc )
{
// some code
}
__________________
.ня
Ответить с цитированием
  #39 (permalink)  
Старый 06.11.2011, 09:00
Новичок на форуме
Отправить личное сообщение для Kolyaj Посмотреть профиль Найти все сообщения от Kolyaj
 
Регистрация: 19.02.2008
Сообщений: 9,177

Сообщение от tenshi
префиксы нужны для предотвращения конфликтов. поэтому все имена конкретного программиста должны иметь его префикс.
Как это спасёт от того, что ты не помнишь, какие имена со своим префиксом ты использовал год назад?
Ответить с цитированием
  #40 (permalink)  
Старый 06.11.2011, 12:02
Профессор
Отправить личное сообщение для tenshi Посмотреть профиль Найти все сообщения от tenshi
 
Регистрация: 20.03.2008
Сообщений: 1,183

очень просто: открываешь директорию с модулями, пытаешься создать новый и тебе выдётся ошибка что такой модуль уже есть.
__________________
.ня
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Создание HTML страниц Sportlife89 (X)HTML/CSS 7 03.06.2011 15:04
Передача кода HTML Владимир Седов Общие вопросы Javascript 2 12.04.2011 16:48
кеширование HTML переданого через ajax BorisBritva jQuery 6 02.04.2011 01:23
Как с помощью PHP сохранить какие-либо изменения в HTML документе? FirstFrost Общие вопросы Javascript 1 15.07.2010 17:12
Динамические html элементы sky Элементы интерфейса 2 07.03.2010 11:58