Расскажите пожалуйста о реалиях веб-разработки.
Здравствуйте!
Я начинающий 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, время: 05:03. |