| 
	| 
	
	| 
		
	| 
			
			 
			
				05.11.2011, 01:33
			
			
			
		 |  
	| 
		
			|  | Профессор       |  | 
					Регистрация: 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 и названия переменных.
 
я бы стал использовать правила принятые в БЭМ , потому как его многие стали применять, но он мне неудобен в этих мелочах. 			 Последний раз редактировалось vflash, 05.11.2011 в 04:08.
 |  |  
	| 
		
	| 
			
			 
			
				05.11.2011, 10:31
			
			
			
		 |  
	| 
		
			
			| Профессор       |  | 
					Регистрация: 20.03.2008 
						Сообщений: 1,183
					 
		
 |  |  
	| подчёркивание визуально длинее дефиса. и как следствие сильнее разделяет слова. проблема с дефисом в именах шаблонов остаётся и в твоём случае, только реже проявляется (когда для одного модуля нужно несколько шаблонов). по даблклику логичнее было бы выделять вообще всё имя целиком. с ctrl+backspace аналогично. 
поэтому лучше так:  
var subjFirstLine = document.querySelector(".mboxRow_subjFirstLine");
				__________________.ня
 |  |  
	| 
		
	| 
			
			 
			
				05.11.2011, 10:41
			
			
			
		 |  
	| 
		
			
			| Новичок на форуме       |  | 
					Регистрация: 19.02.2008 
						Сообщений: 9,177
					 
		
 |  |  
	| 
	
 
	| Сообщение от vflash |  
	| var subj_firstline |  
	
 Так нельзя, в JavaScript принят другой стиль наименования переменных.
 
	
 
	| Сообщение от vflash |  
	| var column-proxy |  
	
 А с этим как раз всё нормально. Есть стандарт преобразования этого в columnProxy. |  |  
	| 
		
	| 
			
			 
			
				05.11.2011, 13:05
			
			
			
		 |  
	| 
		
			|  | Профессор       |  | 
					Регистрация: 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-[вправо/влево] перемешает курсор по словам, а подчеркивание воспринимают как часть слова. Потому дифис как разделитель и тут оказывается более удобным.
 
_			 Последний раз редактировалось vflash, 05.11.2011 в 13:15.
 |  |  
	| 
		
	| 
			
			 
			
				05.11.2011, 14:24
			
			
			
		 |  
	| 
		
			|  | 猫       |  | 
					Регистрация: 07.06.2007 
						Сообщений: 7,504
					 
		
 |  |  
	| vflash,Думаю в случае просмотра или совместной разработки, человеку смотрящему ваш код, придется поломать голову, привыкая к нижним подчеркиваниям.
 
 Меня сейчас больше интересуют префиксы. Например целесообразно ли использовать префиксы:
 f - форум,
 p - персональный,
 ph - фотосервис ну и т.д.
 помимо b и i
 ?
 
 На небольшом проекте мне это кажется очень удобным, возможно и на большом будет нормально.
 
 По поводу повторного использования я в курсе.
 
				__________________Последний раз редактировалось Gozar, Сегодня в 24:14.
 |  |  
	| 
		
	| 
			
			 
			
				05.11.2011, 17:44
			
			
			
		 |  
	| 
		
			|  | Профессор       |  | 
					Регистрация: 09.07.2007 
						Сообщений: 304
					 
		
 |  |  
	| 
	
 
	| Сообщение от Gozar |  
	| Меня сейчас больше интересуют префиксы. Например целесообразно ли использовать префиксы: f - форум,
 p - персональный,
 ph - фотосервис ну и т.д.
 помимо b и i
 ?
 |  
	
 пробовал так и отказался. лучше название проекта указывать в имени объекта. префикс это своего рода подсветка кода. например чтобы легко можно было удалить классы отвечающие за скины.
 
	
 
	| Сообщение от Gozar |  
	| На небольшом проекте ... |  
	
 любой проект бьется на небольшие части. потому нет разницы что верстать большой что маленький. если нет нужды в скинах то верстать становиться совсем просто.
 
	
 
	| Сообщение от Gozar |  
	| Думаю в случае просмотра или совместной разработки, человеку смотрящему ваш код, придется поломать голову, привыкая к нижним подчеркиваниям. |  
	
 среди программистов подчеркивание является обычным делом. это вообшето обще принятая практика. если верстальщик привык использовать дефис как замена пробела то программисту из-за этого приходиться работать с двумя разными стилями наименования. |  |  
	| 
		
	| 
			
			 
			
				05.11.2011, 23:46
			
			
			
		 |  
	| 
		
			
			| Новичок на форуме       |  | 
					Регистрация: 19.02.2008 
						Сообщений: 9,177
					 
		
 |  |  
	| 
	
 
	| Сообщение от vflash |  
	| в js есть стандарт допустимых символов и правила их последовательности. а вот стиль это уже прихоть определенной группы или лица. |  
	
 Угу, и получится месиво как в PHP. Половина функций в одном стиле, половина в другом. В PHP от этого не избавиться, но зачем и в JavaScript такое творить своими руками?
 
	
 
	| Сообщение от vflash |  
	| Есть имя у элемента , на него уже было потрачено время чтобы придумать так зачем еще тратить когда можно это сделать копипастом. |  
	
 Я поступил проще. У меня есть метод this.getEl(className), который принимает имя класса, возвращает первый элемент с этим классом (внутри виджета). При этом сама кэширует результаты. Поэтому ссылки на элементы я нигде не сохраняю, при необходимости делаю this.getEl() с нужным классом. В результате имя элемента только в CSS. |  |  
	| 
		
	| 
			
			 
			
				06.11.2011, 02:39
			
			
			
		 |  
	| 
		
			
			| Профессор       |  | 
					Регистрация: 20.03.2008 
						Сообщений: 1,183
					 
		
 |  |  
	| префиксы нужны для предотвращения конфликтов. поэтому все имена конкретного программиста должны иметь его префикс. или все имена программистов определённой группы, которые могут друг с другом договориться,чтобы не конфликтовать. при этом одни имена в разных местах должны иметь один префикс (например, класс в цсс и соответствующий скрипт в жс), но при этом имена относящиеся к разным сущностям должны иметь разный префикс (например, у меня есть функция $jam.$doc возвращающая ссылку на документ, а есть модуль wc:doc содержащий базовые стили и скрипты для документации). хотя по хорошему один из них лучше переименовать, чтобы самому же путаться и чтобы не было конфликтов, когда импортируются оба пространства имён типа такого:
 with( $jam )
 with( $wc )
 {
 // some code
 }
 
				__________________.ня
 |  |  
	| 
		
	| 
			
			 
			
				06.11.2011, 09:00
			
			
			
		 |  
	| 
		
			
			| Новичок на форуме       |  | 
					Регистрация: 19.02.2008 
						Сообщений: 9,177
					 
		
 |  |  
	| 
	
 
	| Сообщение от tenshi |  
	| префиксы нужны для предотвращения конфликтов. поэтому все имена конкретного программиста должны иметь его префикс. |  
	
 Как это спасёт от того, что ты не помнишь, какие имена со своим префиксом ты использовал год назад? |  |  
	| 
		
	| 
			
			 
			
				06.11.2011, 12:02
			
			
			
		 |  
	| 
		
			
			| Профессор       |  | 
					Регистрация: 20.03.2008 
						Сообщений: 1,183
					 
		
 |  |  
	| очень просто: открываешь директорию с модулями, пытаешься создать новый и тебе выдётся ошибка что такой модуль уже есть. 
				__________________.ня
 |  |  |  |