Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 11.05.2012, 15:06
Новичок на форуме
Отправить личное сообщение для Shampe Посмотреть профиль Найти все сообщения от Shampe
 
Регистрация: 11.05.2012
Сообщений: 2

Расскажите пожалуйста о реалиях веб-разработки.
Здравствуйте!
Я начинающий web-программист,точнее хочу им стать. Прочел книжку по html/css и основам JS,сейчас читаю книгу от создателя данного ресурса.Но проблема в том,что я совсем не представляю как выглядит веб-разработка в наши дни. Все эти CMS, фрейворки, шаблонизаторы(плохо понимаю что это,быть может и синонимы)...
Расскажите пожалуйста,как пишутся сайты в серьезных конторах?
Т.е. программист садится,открывает любимую IDE и с чистого листа пишет или все-таки фундамет закладывается при помощи фреймворков(?) и программисту остается лишь допилить? Так же хотелось бы узнать все-таки побольше про CMS,фрейморки и все,что с ними связанно. Я говорю не только про JS,а вообще про все инструменты,используемые при разработке.

И еще такой вопрос - в онлайн учебники дошел до части с замыканиями,статичными методами,фабричными методами и т.д. Там есть несколько,для меня,странных примеров.Например, вызов функции в таком виде sum(a)(b).Используется ли это все в реальной разработке или это просто синтаксический сахар(ужас?)?Вопрос вызван тем,что я пока плохо понимаю,как это можно применить на практике и в тех примерах JS, которые я видел, ничего такого нет.
Какое вообще имеет направление вектор веб-разработки в наши дни?
Буду рад любым ответам,в том числе ссылкам на хорошие ресурсы.
Ответить с цитированием
  #2 (permalink)  
Старый 12.05.2012, 18:16
Аватар для cmygeHm
Профессор
Отправить личное сообщение для cmygeHm Посмотреть профиль Найти все сообщения от cmygeHm
 
Регистрация: 12.10.2010
Сообщений: 196

Ну про замыкания я тебя могу успокоить - это дело не для новичка, и тебе не скоро пригодится. В каждой организации свой подход к разработке (фреймворки/не фреймворки, цмс/не цмс). Во всех сайтопишущих конторах используют цмски. В крупных организациях при разработке какого-ниб внутреннего веб-продукта могут использовать какой-нибудь пхп фреймворк (Zend, YII) и чаще всего используют какой-нибудь js-фреймворк (jQuery, ExtJS). В общем фреймворк выбирается в зависимости от типа проекта. Для мобильных устройств могут использовать например Sencha Touch или вообще на чистом JS писать.
Для начала пойди работать стажером в любую фирму что пишет сайтики. Проработаешь пол года (у кого как) поймешь куда развиваться дальше.
Ответить с цитированием
  #3 (permalink)  
Старый 12.05.2012, 19:48
Аватар для Gvozd
Матрос
Отправить личное сообщение для Gvozd Посмотреть профиль Найти все сообщения от Gvozd
 
Регистрация: 04.04.2008
Сообщений: 6,246

Сообщение от cmygeHm
Ну про замыкания я тебя могу успокоить - это дело не для новичка, и тебе не скоро пригодится.
Это так, только в случае если хочется остаться новичком.
Для JS-разработчика использовать замыкания должно быть также естественно как дышать.
Да и по хорошему делу, 90%+ кода должно находится в замыкании, кроме случаев преднамеренного объявления глобальных переменных и функций
Ответить с цитированием
  #4 (permalink)  
Старый 12.05.2012, 22:16
Аватар для Gvozd
Матрос
Отправить личное сообщение для Gvozd Посмотреть профиль Найти все сообщения от Gvozd
 
Регистрация: 04.04.2008
Сообщений: 6,246

Сообщение от Maxmaxmахimus
если ты конечно не назвал функцию обертку - замыканием.
То что я назвал замыкание - это и есть замыкание
(function(){//пример на каждый день. ничего сложного, но очень полезно
    var name = null;//перестаем срать в глобальную область видимости, а используем локальные переменные. Попутно обретаем блага в Chrome
})();

А вот функция-обертка - это самостоятельный паттерн, не имеющий отношения к замыканиям.
Как вы могли перепутать эти два понятия - мне очень интересно
Ответить с цитированием
  #5 (permalink)  
Старый 14.05.2012, 11:10
Аватар для cmygeHm
Профессор
Отправить личное сообщение для cmygeHm Посмотреть профиль Найти все сообщения от cmygeHm
 
Регистрация: 12.10.2010
Сообщений: 196

Я думаю если человеку в первый же день поставить ультиматум, что если он сейчас же не поймет, что такое замыкание, то он не сможет стать JS-программистом, то я думаю он не сможет им стать! =) А вот когда он задастся вопросом "почему
for(var i = 0; i<10; i++){
   document.getElementById('divId'+i).onclick = function(){
      alert(i);
   }
}

выводит 10 при клике на каждый див?" я думаю будет занятнее узнать что такое замыкание.
Ответить с цитированием
  #6 (permalink)  
Старый 14.05.2012, 11:12
Аватар для Gvozd
Матрос
Отправить личное сообщение для Gvozd Посмотреть профиль Найти все сообщения от Gvozd
 
Регистрация: 04.04.2008
Сообщений: 6,246

Ответ на вопрос "почему"
http://javascript.ru/basic/closure#p...-ispolzovaniya
Но лучше прочитать статью с самого начала, чтобы все было понятно - она написана простым языком
Ответить с цитированием
  #7 (permalink)  
Старый 14.05.2012, 11:20
Аватар для B@rmaley.e><e
⊞ Развернуть
Отправить личное сообщение для B@rmaley.e><e Посмотреть профиль Найти все сообщения от B@rmaley.e><e
 
Регистрация: 11.01.2010
Сообщений: 1,810

Сообщение от Shampe
Т.е. программист садится,открывает любимую IDE и с чистого листа пишет или все-таки фундамет закладывается при помощи фреймворков(?) и программисту остается лишь допилить? Так же хотелось бы узнать все-таки побольше про CMS,фрейморки и все,что с ними связанно. Я говорю не только про JS,а вообще про все инструменты,используемые при разработке.
С "программист садится и пишет код" никогда ничего (кроме фейлов, конечно) не начинается. Сначала идёт стадия проектирования, где определяется, кто, что и как будет делать. Одна большая задача "Сделать заказчику зашибись" разбивается на несколько маленьких, которые раздаются конкретным людям (дизайнеру — нарисовать шаблон, чтобы было зашибись, программисту — написать приличный код). Для программистов проектирование это ещё и определение компонент проекта и их взаимодействия.

Используются ли готовые CMS / фреймворки / библиотеки — зависит от проекта. Если есть возможность использовать существующую CMS, то почему бы и нет? Если существующие CMS не устраивают (перепиливать много и сложно), то можно использовать фреймворк. Иногда программисты в конторках пишут свои фреймворки (а то и CMS).

Библиотеки, по хорошему, надо использовать как можно чаще, чтобы не изобретать велосипеды. Но и использовать библиотеку ради использования библиотеки не стоит (Опять же, если библиотека слишком велика, а нужна лишь её малая толика, возможно, есть смысл написать нужную функциональность самому).
Ответить с цитированием
  #8 (permalink)  
Старый 14.05.2012, 14:58
Новичок на форуме
Отправить личное сообщение для Shampe Посмотреть профиль Найти все сообщения от Shampe
 
Регистрация: 11.05.2012
Сообщений: 2

Всем спасибо за ответы!

По поводу замыканий: я слишком сумбурно сформулировал вопрос. С замыканиями более-менее разобрался,но меня больше смущают экзотические возможности языка,например возможность вызвать функцию таким образом - sum(a)(b)...(n). Собственно, в учебнике этот пример описан ради того,чтобы показать "крутость" языка,или подобные приемы используются в реальных задачах и реальных библиотеках?

И да,какие знания,по вашему мнению,необходимо иметь стажеру JS?Ясен пончик,что конторы разные бывают,и у всех разные требования, но я думаю,что все-таки основные требования у многих похожи.
Ответить с цитированием
  #9 (permalink)  
Старый 14.05.2012, 17:14
Аватар для B@rmaley.e><e
⊞ Развернуть
Отправить личное сообщение для B@rmaley.e><e Посмотреть профиль Найти все сообщения от B@rmaley.e><e
 
Регистрация: 11.01.2010
Сообщений: 1,810

Сообщение от Shampe
этот пример описан ради того,чтобы показать "крутость" языка,или подобные приемы используются в реальных задачах и реальных библиотеках?
Код вида fnc(arg1)(arg2)(arg3)(arg4) обычно не встречается в реальных библиотеках. Но знать о таких возможностях языка полезно.
Ответить с цитированием
  #10 (permalink)  
Старый 14.05.2012, 17:23
Аватар для cmygeHm
Профессор
Отправить личное сообщение для cmygeHm Посмотреть профиль Найти все сообщения от cmygeHm
 
Регистрация: 12.10.2010
Сообщений: 196

Gvozd, я не вопрос задавал =)

Последний раз редактировалось cmygeHm, 15.05.2012 в 14:18.
Ответить с цитированием
Ответ



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

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