Расскажите пожалуйста о реалиях веб-разработки. 
		
		
		
		Здравствуйте! 
	Я начинающий web-программист,точнее хочу им стать. Прочел книжку по html/css и основам JS,сейчас читаю книгу от создателя данного ресурса.Но проблема в том,что я совсем не представляю как выглядит веб-разработка в наши дни. Все эти CMS, фрейворки, шаблонизаторы(плохо понимаю что это,быть может и синонимы)... Расскажите пожалуйста,как пишутся сайты в серьезных конторах? Т.е. программист садится,открывает любимую IDE и с чистого листа пишет или все-таки фундамет закладывается при помощи фреймворков(?) и программисту остается лишь допилить? Так же хотелось бы узнать все-таки побольше про CMS,фрейморки и все,что с ними связанно. Я говорю не только про JS,а вообще про все инструменты,используемые при разработке. И еще такой вопрос - в онлайн учебники дошел до части с замыканиями,статичными методами,фабричными методами и т.д. Там есть несколько,для меня,странных примеров.Например, вызов функции в таком виде sum(a)(b).Используется ли это все в реальной разработке или это просто синтаксический сахар(ужас?)?Вопрос вызван тем,что я пока плохо понимаю,как это можно применить на практике и в тех примерах JS, которые я видел, ничего такого нет. Какое вообще имеет направление вектор веб-разработки в наши дни? Буду рад любым ответам,в том числе ссылкам на хорошие ресурсы.  | 
	
		
 Ну про замыкания я тебя могу успокоить - это дело не для новичка, и тебе не скоро пригодится. В каждой организации свой подход к разработке (фреймворки/не фреймворки, цмс/не цмс). Во всех сайтопишущих конторах используют цмски. В крупных организациях при разработке какого-ниб внутреннего веб-продукта могут использовать какой-нибудь пхп фреймворк (Zend, YII) и чаще всего используют какой-нибудь js-фреймворк (jQuery, ExtJS). В общем фреймворк выбирается в зависимости от типа проекта. Для мобильных устройств могут использовать например Sencha Touch или вообще на чистом JS писать. 
	Для начала пойди работать стажером в любую фирму что пишет сайтики. Проработаешь пол года (у кого как) поймешь куда развиваться дальше.  | 
	
		
 Цитата: 
	
 Для JS-разработчика использовать замыкания должно быть также естественно как дышать. Да и по хорошему делу, 90%+ кода должно находится в замыкании, кроме случаев преднамеренного объявления глобальных переменных и функций  | 
	
		
 Цитата: 
	
 
(function(){//пример на каждый день. ничего сложного, но очень полезно
    var name = null;//перестаем срать в глобальную область видимости, а используем локальные переменные. Попутно обретаем блага в Chrome
})();
А вот функция-обертка - это самостоятельный паттерн, не имеющий отношения к замыканиям. Как вы могли перепутать эти два понятия - мне очень интересно  | 
	
		
 Я думаю если человеку в первый же день поставить ультиматум, что если он сейчас же не поймет, что такое замыкание, то он не сможет стать JS-программистом, то я думаю он не сможет им стать! =) А вот когда он задастся вопросом "почему  
	
for(var i = 0; i<10; i++){
   document.getElementById('divId'+i).onclick = function(){
      alert(i);
   }
}
выводит 10 при клике на каждый див?" я думаю будет занятнее узнать что такое замыкание.  | 
	
		
 Ответ на вопрос "почему" 
	http://javascript.ru/basic/closure#p...-ispolzovaniya Но лучше прочитать статью с самого начала, чтобы все было понятно - она написана простым языком  | 
	
		
 Цитата: 
	
 Используются ли готовые CMS / фреймворки / библиотеки — зависит от проекта. Если есть возможность использовать существующую CMS, то почему бы и нет? Если существующие CMS не устраивают (перепиливать много и сложно), то можно использовать фреймворк. Иногда программисты в конторках пишут свои фреймворки (а то и CMS). Библиотеки, по хорошему, надо использовать как можно чаще, чтобы не изобретать велосипеды. Но и использовать библиотеку ради использования библиотеки не стоит (Опять же, если библиотека слишком велика, а нужна лишь её малая толика, возможно, есть смысл написать нужную функциональность самому).  | 
	
		
 Всем спасибо за ответы! 
	По поводу замыканий: я слишком сумбурно сформулировал вопрос. С замыканиями более-менее разобрался,но меня больше смущают экзотические возможности языка,например возможность вызвать функцию таким образом - sum(a)(b)...(n). Собственно, в учебнике этот пример описан ради того,чтобы показать "крутость" языка,или подобные приемы используются в реальных задачах и реальных библиотеках? И да,какие знания,по вашему мнению,необходимо иметь стажеру JS?Ясен пончик,что конторы разные бывают,и у всех разные требования, но я думаю,что все-таки основные требования у многих похожи.  | 
	
		
 Цитата: 
	
  | 
	
		
 Gvozd, я не вопрос задавал =) 
	 | 
| Часовой пояс GMT +3, время: 18:42. |