LINUX.ORG.RU

Как не писать на JS «спагетти»-код?


0

0

За неделю родил больше 3000 тысяч строк на jQuery. Вчера рефакторил поведение одной кнопочки... на что ушло часов 8-10. По сути тут очень много дублирующего кода.

Изучал по тонкой книге «JQuery - новый стиль программирования.» Что читать в будущем? Какие есть подходы для сокращений сотен дублей в средненьком проекте (уже страшно: что было бы в крупном?).


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

> Националисты осилили мозг и лямбды.

О как! Позвольте полюбопытствовать, коллега, чем вы заинтересовались раньше: лиспом или национальной идеей? Спасибо!

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

> emacs

vim


Да вы шутник, батенька! Там же не работает основной инструмент похапе-кодера — выделение мышкой и Ctrl-C Ctrl-V!!!111

К тому же, я полагаю, под венду это хозяйство ставится не самым тривиальным способом. А похапешнеги в подавляющем большинстве — вендузнятнеги.

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

> Ну так не соблаговолит ли благородный дон продемонстрировать, как на JavaScript реализуется какая-нибудь безделица? Например, [список ништяков jvm поскипан]

Прежде чем трындеть, научись различать язык и его реализацию.

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

> Не провоцирует язык ничего. Он только свободу дает

Граната тоже не провоцирует ничего. Лежит себе тихо мирно в ладони обезьяны.

Вот никогда не понимал подобных наездов на JS, C++, Lua... только за то, что они дают «слишком много свободы»...

Тут есть один маленький нюанс - целевая аудитория языка. Верстальщики и прочие вебмастеры на C++ не кодят.

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

> [список ништяков jvm поскипан]

Прежде чем трындеть, научись различать язык и его реализацию.


Какую бы реализацию Java мы не взяли, все эти ништяки есть.
Какую бы реализацию JavaScript мы не взяли, никаких этих ништяков нет.

Слив засчитан.

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

Да вы шутник, батенька! Там же не работает основной инструмент похапе-кодера — выделение мышкой и Ctrl-C Ctrl-V!!!111

Ну, вообще-то, работает. ;)

под венду это хозяйство ставится не самым тривиальным способом

Для некоторых вещей нужен в наличии цигвин, а так - почти всё тоже самое. )

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

> похапешнеги в подавляющем большинстве — вендузнятнеги

неправда, многие умудряются Notepad++ запускать в Убунточке под wine
вместе с квипчиком, Foobar2000 и гамезами
а Убунта - это так, чтоб девки давали

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

Ответы получил. Спасибо всем за помощь :)

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

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

> Для некоторых вещей нужен в наличии цигвин, а так - почти всё тоже самое.

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

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

Так и вижу похапэшника, ковыряющего емакс в цыгвине...

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

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

Да вы шутник, батенька! Там же не работает основной инструмент похапе-кодера — выделение мышкой и Ctrl-C Ctrl-V!!!111

Выделение мышкой в обеих работает, C-c и C-v - в emacs.

И ставится оно традиционным для винды способом.

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

Сложный вопрос. Такие вещи происходят не сразу и частично эти два процесса перекрывались. Но Лисп, пожалуй, был раньше.

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

У анона раздвоение. Это писал один человек, я гарантирую!

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

Была мысль писать на Ruby-подобном Coffee Script.

daris
() автор топика
Ответ на: комментарий от ugoday

> Сложный вопрос. Такие вещи происходят не сразу и частично эти два процесса перекрывались. Но Лисп, пожалуй, был раньше.

Большое спасибо, уважаемый! Мне эта информация была нужна чисто ради профессионального интереса.

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

В вашем случае я чётко прослеживаю первый вариант. То есть, ваша психика была нестабильна с самого начала, что повлекло два практически независимых русла течения патологии — националистические идеи и функциональное программирование. Благодарю за предоставление ценного материала.

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

Боюсь, у меня для вас плохая новость. Вы зациклились в своём маленьком мирке и потеряли способность воспринимать тенденции, протекающие в большом мире. Непонятность происходящего пугает вас, а подсознание запрещает признать собственную неадекватность. Тут включаются вытесняющие механизмы психики и вы наделяете окружающих своими проблемами. Обратимы ли эти изменения я не знаю, рекомендую обратиться к специалистам.

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

> Ну а так посоветую изучать Google Closure Library, там хороший код получается как-то по-дефолту.

Вот единственный годный совет в топике.

Друг, который сейчас в Гугле много на жабоскрипте пишет, ещё очень Closure Compiler нахваливал.

Так что ходи сюда http://code.google.com/closure/, и будет тебе счастье.

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

>Вы зациклились в своём маленьком мирке и потеряли способность воспринимать тенденции, протекающие в большом мире.

(поправляя очки, готовясь записывать)

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

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

> какие же это тенденции протекают в большом мире

- Командир! Тут тенденция протекла!
- Какая? Чем воняет?
- Лиспом, кажись...
- Срочно заделать течь и убрать лужу!
- Есть!

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

1.а Популярные ЯП тырят фичи лиспа тридцатилетней давности. Чем новее язык или стандарт, тем дальше от С/фортрана и тем ближе к лиспу.

1.б Основные реализации КЛ приближаются по скорости к С и Жабе.

2 По всей Европе наблюдается бурный рост националистических настроений.

А ты, я вижу, застрял на уровне фортран77 и развитого брежневизма.

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

> Популярные ЯП тырят фичи лиспа тридцатилетней давности.

Официальная медицина тырит фичи знахарского целительства трёхтысячелетней давности. Что сказать-то хотел?

Чем новее язык или стандарт, тем дальше от С/фортрана и тем ближе к лиспу.


Дооо, всё ближе и ближе. Что-то никто не торопится на S-выражения переходить, как я погляжу. А то, что лямбды появляются где ни попадя — так причём тут вообще лисп? Когда Чёрч разрабатывал свой lambda calculus, МакКарти ещё в штанишки ссался.

Основные реализации КЛ приближаются по скорости к С и Жабе.


На синтетических тестах, ага. Заебатое достижение за 30 лет, ничего не скажешь! А ты попробуй на реальных задачах его погонять. Перемножь-ка пару матриц int64_t на 32-битной тачке, а я посмеюсь сливу твоей скобкоты убогому Фортрану.

По всей Европе наблюдается бурный рост националистических настроений.


А ещё они атомные станции закрывают, и разрешают пидорам жениться и усыновлять детей, ага. И что теперь?

А ты, я вижу, застрял на уровне фортран77 и развитого брежневизма.


А мы, уважаемый, думаем головой и не поклоняемся идолам.

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

Что сказать-то хотел?

Что это хорошие, нужные фичи. А простачки, которые тридцать лет орали про них «не нужно» вновь оказались в дураках.

Что-то никто не торопится на S-выражения переходить

А лисп это не только и не сколько S-выражения. M-lisp тоже лисп. И вот в этот M-лисп мейнстримные язычки и превращаются.

На синтетических тестах, ага.

Угу. Когда на этих тестах лисп сливал, это были хорошие, годные тесты. И тут вдруг раз --- стали синтетическими. Беда-беда.

попробуй на реальных задачах его погонять. Перемножь-ка пару матриц int64_t на 32-битной тачке

Странные у вас представления о реальных задачах. Предположу, лобовая реализация будет не хуже жабы, а использование SSE и MMX магии позволит сделать очень быстрый код. Но это уже ассемблеродрочка.

И что теперь?

То, что ты опять отстал от жизни.

и не поклоняемся идолам.

Ну, можешь идти своим, особым путём, маргинальчик. Я ж не против.

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

> Что это хорошие, нужные фичи.

Да, хорошие и нужные. Только причём тут лисп?

А простачки, которые тридцать лет орали про них «не нужно» вновь оказались в дураках.


В дураках, как показывает история, оказались сделавшие ставку на лисп во время AI summer. А умные люди смотрели на них со стороны и ждали, пока те набьют все возможные шишки. Потому что умные люди учатся на ошибках дураков. Про вопли «не нужно» — это бредни твоего пожранного лиспом и нацизмом мозга. Может, какой быдлан-1С-ник и вопил, но по-настоящему умные люди просто ждали молча нужного момента. И вот он потихоньку наступает.

А лисп это не только и не сколько S-выражения. M-lisp тоже лисп. И вот в этот M-лисп мейнстримные язычки и превращаются.


OH WOW! TELL ME MOAR!!!111
Пойду скажу авторам Scala, что они изобрели М-лисп. Вот пацаны-то поржут.

Угу. Когда на этих тестах лисп сливал, это были хорошие, годные тесты. И тут вдруг раз --- стали синтетическими. Беда-беда.


Ты невменяем? Там, где лисп сливал — это были объективные тесты. Он на них сливает и до сих пор. И лишь слегка подбирается к Си и Java на выдуманных лисперами же тестах. Хочешь опровергнуть? Давай пруфлинки.

Странные у вас представления о реальных задачах.


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

Предположу, лобовая реализация будет не хуже жабы


Вот тут-то ты и вляпался по-полной. Даже не представляешь, насколько вляпался. Оказывается, в лиспе ты точно такое же некомпетентное трепло, как и со своей «национальной идеей», оказавшейся пустышкой.
Да тебе на ЛОРе самый последний похапешнег расскажет, что самый продвинутый современный коммонлисп — SBCL — не умеет 64-битных FIXNUM'ов, и при выходе за границу 32-битного (точнее, 29-битного) целого неявно подставляет вместо него BIGNUM. Понимаешь ли ты своим скудным лисперским мозжечком, насколько катастрофические это имеет последствия для арифметики?

Нет, ну это просто феерия какая-то. Впаривать в каждой теме свой лишп, и не знать таких элементарных вещей? Давненько не случалось такого, чтобы лиспер настолько эпично опустил сам себя, в причём в разговоре с не-лиспером. Это, кстати, ещё раз подтверждает то, что лисперы — прожектёры и пустобрёхи, и практических задач либо не решали вообще, либо втихомолку решали их на нормальных языках. Которым не присущи нелепые косяки с int64_t.

Ну, можешь идти своим, особым путём, маргинальчик. Я ж не против.

маргинальчик


маргинальчик



Ох, лол! В устах лиспера это звучит как-то особенно сардонически и гротескно. Это, знаешь, как если бы Боря Моисеев обозвал тебя пидорасом.

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

Да, хорошие и нужные.

Это всё, что мне нужно было услышать.

ставку на лисп во время AI summer.

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

OH WOW! TELL ME MOAR!!!111

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

где лисп сливал — это были объективные тесты

А где побеждал --- там синтетические. И галимых синтетических тестов что-то всё больше, а «объективные» куда-то деваются.

Хочешь опровергнуть?

http://swizard.livejournal.com/158763.html

http://swizard.livejournal.com/159125.html

Если ты не имеешь отношения к большим сеточным задачам и линейной алгебре

Пафоса то сколько, а реально --- синтетичнейшая из синтетик маргинальщина.

Ох, лол! В устах лиспер

Шаблончик лопнул? Беда-беда, огорчение.

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

> Пафоса то сколько, а реально --- синтетичнейшая из синтетик маргинальщина.

Линейная алгебра — маргинальщина? Да он совсем упоролся. Его Золотце покусал, что ли?

anonymous
()

>За неделю родил больше 3000 тысяч строк на jQuery. Вчера рефакторил поведение одной кнопочки... на что ушло часов 8-10. По сути тут очень много дублирующего кода.
Сдается мне, что после правильного рефакторинга от них останется 300, а то и меньше

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

>...отношения к большим сеточным задачам и линейной алгебре,...

...Да тебе на ЛОРе самый последний похапешнег расскажет, что самый продвинутый современный коммонлисп — SBCL — не умеет 64-битных FIXNUM'ов, и при выходе за границу 32-битного (точнее, 29-битного) целого неявно подставляет вместо него BIGNUM. Понимаешь ли ты своим скудным лисперским мозжечком, насколько катастрофические это имеет последствия для арифметики?

...

Рассуждать об алгебре и одновременно радоваться, что несовершенство современной аппаратуры разрушает математические абстракции в мейстримных языках?... Да ты феерический идиот!

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

Что за бредятина? В мейнстримовых языках как раз всё нормально — int64_t поддерживается и на 32-битных архитектурах. Это в маргинальных языках начинаются косяки. Чему тут радоваться-то?

anonymous
()

ООП, паттерны, всё это фигня. Декларативный подход, вот в чем сила. Посмотри на i-bem от Яндекса.

ei-grad ★★★★★
()

Ну и RightJS ещё неплох.

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

Ты будешь удивлён, но доля числодробилок в индустрии --- ничтожна. Такие дела.

Золотце покусал

Ху из мистер Золотце? На лоре таких вроде не было.

ugoday ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.