LINUX.ORG.RU

Как научиться нормально программировать на JavaScript?

 


5

3

Насколько «нормально» применимо к этому ЯП... Что почитать? Интересуют патерны, организация кода в интеграции с какими-то JS MVC фреймворками чтобы большое приложение не превращалось в hell

★★★★★

Последнее исправление: vertexua (всего исправлений: 1)

Ответ на: комментарий от vertexua

А потом это:

Дэвид Флэнаган «JavaScript. Подробное руководство»

Стоян Стефанов «JavaScript. Шаблоны»

Wizard_ ★★★★★
()

чтобы большое приложение не превращалось в hell

Гугл для этого аж свой язык запилил.

PolarFox ★★★★★
()
Ответ на: комментарий от Eddy_Em

jQuery - добро, оно приводит к общему виду блекджек и шлюх разных браузеров. То, что вызывает твое отвращение - это говнокод, который и в отсутствие jQuery ничем иным не станет (только потребуется больше велосипедов).

metrokto ★★
()

Там в итоге все скатывается к жесткой изоляции модулей со всеми их ресурсами. Можно посмотреть require.js и почитать BEM.

Вам нужна именно специфика больших приложений, или вообще JS с нуля?

Vit ★★★★★
()
Ответ на: комментарий от metrokto

jQuery - добро, оно приводит к общему виду блекджек и шлюх разных браузеров.

это ли не речь про тот самый jQuery который в будующих своих версиях решил кинуть поддержку традионных MsIE ? :-)

# P.S.: а если не учитывать MsIE — то в браузерах и без jQuery есть document.querySelector() и прочие плюшки похожие на jQuery`вские :-)

user_id_68054 ★★★★★
()
Последнее исправление: user_id_68054 (всего исправлений: 1)
Ответ на: комментарий от user_id_68054

это ли не речь про тот самый jQuery который в будующих своих версиях решил кинуть поддержку традионных MsIE ? :-)

Да, тот самый, который в будущих релизах откажется от поддержки устаревших версий IE.

то в браузерах и без jQuery есть document.querySelector() и прочие плюшки похожие на jQuery`вские :-)

Чтобы добиться одинакового поведения кода во всех браузерах (даже одинакового поведения среди версий упомянутого тобой IE), тебе придется написать сотни кода, и не обязательно этот велосипед будет лучше, чем jQuery (не говоря уже о сомнительном удовольствии поддерживать такой код).

metrokto ★★
()
Ответ на: комментарий от Eddy_Em

Если just for fun, то да, но работать за деньги, с таким подходом, не удастся.
P. S.: Когда кто-нибудь, кроме оперы, сможет выделять любую часть текста ссылки, тогда станет браузером, а так... =)

metrokto ★★
()
Ответ на: комментарий от metrokto

Когда кто-нибудь, кроме оперы, сможет выделять любую часть текста ссылки, тогда станет браузером, а так... =)

Файрфокс: зажми альт и выделяй.

PolarFox ★★★★★
()
Ответ на: комментарий от PolarFox

Файрфокс: выполняй дополнительные ненужные действия, потому что мы не осилили сделать это по-человечески.

anonymous
()
Ответ на: комментарий от anonymous

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

PolarFox ★★★★★
()
Ответ на: комментарий от user_id_68054

тот самый jQuery который в будующих своих версиях решил кинуть поддержку традионных MsIE ? :-)

с каких пор устаревшие глючные недобраузеры с бесконечно раздутым чсв стали традиционными?

q11q11 ★★★★★
()
Ответ на: комментарий от PolarFox

Запусти Оперу и посмотри же. Выделение в сторону — текст, вверх/вниз — драг&дроп.

anonymous
()
Ответ на: комментарий от PolarFox

Файрфокс: зажми альт и выделяй.

У меня в кде окно при нажатом альте тащится.

Wizard_ ★★★★★
()
Ответ на: комментарий от Eddy_Em

Направление твоей деятельности совпадает с направлением интересов. Если одно из этих двух направлений измениться, то будет только свобода сменить работу.

metrokto ★★
()
Ответ на: комментарий от metrokto

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

Eddy_Em ☆☆☆☆☆
()
Ответ на: комментарий от metrokto

Синица в руке держит. Но, учитывая то, что лет через 5 у нас никакой науки в стране не останется (если вообще Россия еще будет существовать), то дергать, увы, таки придется. Хочется куда-нибудь в Новую Зеландию. Но и Китай сойдет на худой конец.

Eddy_Em ☆☆☆☆☆
()
Ответ на: комментарий от Eddy_Em

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

Komintern ★★★★★
()
Последнее исправление: Komintern (всего исправлений: 1)
Ответ на: комментарий от Komintern

Я бы это назвал не панацеей, а средством от запора. Примет быдлокодер jquery, и как полезет из него дерьмище всякое…

Eddy_Em ☆☆☆☆☆
()
Ответ на: комментарий от q11q11

с каких пор устаревшие глючные недобраузеры с бесконечно раздутым чсв стали традиционными?

может быть слово «традиционный» было мною не правильно подобрано. но в этом случае тогда я и не знаю как ещё более правильно перевести на русский язык слово «Legacy»

user_id_68054 ★★★★★
()
Ответ на: комментарий от user_id_68054

как ещё более правильно перевести на русский язык слово «Legacy»

Это слово на русский переводится однозначно: "наследие". И все, больше вариантов перевода нет!

А "наследие" можно по-разному понимать: кто-то понимает с негативной точки зрения ("говно мамонта", "совок" и т.п.), кто-то — с позитивной ("надежность", "стабильность"), кто-то — с нейтральной ("передача и долгов, и прибыли")

Eddy_Em ☆☆☆☆☆
()
Ответ на: комментарий от Eddy_Em

за расшифровку спасибо.

а что касается субъективного представления — это вообще отдельная тема.

вот я думаю что любое слово которое прикрепляется к слову «MsIE» — начинает преобретать негативный (или саркастический) смысл :-)

user_id_68054 ★★★★★
()
Ответ на: комментарий от user_id_68054

MsIE

Это же эдакий извращенный download-manager, предназначенный для скачивания браузера под прошивку игровых приставок (хотя, на кой хрен нужен браузер на прошивке игровых приставок — не знаю)

Eddy_Em ☆☆☆☆☆
()
Ответ на: комментарий от Eddy_Em

хотя, на кой хрен нужен браузер на прошивке игровых приставок — не знаю

Это что, а вот зачем нужен браузер на прошивках для роутеров — тем более не понятно.

wintrolls ☆☆
()
Ответ на: комментарий от wintrolls

зачем нужен браузер на прошивках для роутеров — тем более не понятно

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

Eddy_Em ☆☆☆☆☆
()
Ответ на: комментарий от user_id_68054

это ли не речь про тот самый jQuery который в будующих своих версиях решил кинуть поддержку традионных MsIE ? :-)

Это да, глупость они затеяли. Надеюсь одумаются или появятся другие варианты кроме заморозки версии.

# P.S.: а если не учитывать MsIE — то в браузерах и без jQuery есть document.querySelector() и прочие плюшки похожие на jQuery`вские :-)

В jQuery много других фишек кроме querySelector, без которых писать грустно.

Legioner ★★★★★
()
Ответ на: комментарий от anonymous

Старые версии IE помёрли. Забудь.

С радостью забыл бы, но к сожалению далеко не везде они помёрли. Есть заказчики, у которых пользователи сидят преимущественно на IE6. В Китае IE6 вообще имеет очень большую долю.

Legioner ★★★★★
()
Ответ на: комментарий от anonymous

По факту проекты есть и поддержка IE6 бывает нужна и jQuery сильно помогает в написании портабельного JS-кода. Кто там кого рублём наказывает, мне не интересно, у меня зп фиксированная и я делаю те задачи, которые передо мной ставят. Если буду фрилансить, с радостью буду посылать всяких IE6, пока что не могу.

Legioner ★★★★★
()
Ответ на: комментарий от Eddy_Em

Ты на прошивку для рутера можешь зайти по ssh

А на игровую станцию по RDP, графика изкоробки и браузер быстрее.

так что там браузер нужен

Роутер должен роутить, а не интернеты смотреть.

wintrolls ☆☆
()
Последнее исправление: wintrolls (всего исправлений: 1)

Как научиться нормально программировать на JavaScript?

Читай ES5.1 (и MDN, если первичная платформа - браузеры).
Ориентируйся на стандарты.
Уничтожай популяцию недобраузеров и костылей типа жоквери. Не забывай о querySelector/querySelectorAll, classList и прочих полезных вещах, о которых совки с быдлохабра тебе не расскажут.
JS есть не только в браузерах. Пробуй писать серверсайд (nodeJS, gjs через SoupServer) и десктоп (gjs).
Не юзай with, а в браузерах ещё и let не юзай.
Параллельно с JS изучай сопутствующие технологии (для браузера - CSS3, SVG, работу с DOM и нативные API а-ля канвас, вебсокеты, WAAPI, localStorage/sessionStorage (в общем, уйма их), для ноды - хотя бы самые популярные либы типа express.js, для gjs - соответствующий Gobject-стек и основы GTK). Прежде чем написать свой велосипед, тысячу раз убедись, что в выбранном API-стеке действительно нет такого функционала.
И вот когда вы с машиной будете общаться на одном языке, попробуй осилить любой JS-фреймворк. Хотя скорее всего захочется написать свой, не плоди сущностей без нужды.

border-radius
()

Sugar.js - избавит от обезьяньей работы.

Sizzle - селекторы, но лучше jQuery (Sizzle в его составе), много полезного есть, смысл не использовать jQuery - знают только ЛОР-аналитики.

Backbone.js - с этого стоит начать знакомство с MVC фреймворками (простое, низкоуровневое).

Но на coffescript писать короче и приятнее.

Reaper ★★
()
Последнее исправление: Reaper (всего исправлений: 1)
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.