LINUX.ORG.RU

JS, праздники и обучение.

 , ,


0

1

Посоветуй годных книг, статей, да чтобы ES6... ...А то на праздники желания пить нет, играть в лом.

Прочёл «Нинзя» до половины, приходится в инет лезть. Многое в книге с выходом ES6 устарело, подходы изменились (даже по замыканиям, привет let).

Инфа интересует по голому JS. Буду всем откликнувшимся признателен.

P.S. Всех на «галерах» с наступающими!

Deleted

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

Ответ на: комментарий от pru-mike

Мне не очень, но спасибо. Хочется что-то более «научное» ;) И всё равно надо несколько ресурсов.

Deleted
()

P.S. Кому надо, на rutracker много качественных видео (на англ), например, автора «You Don't Know JS» - Kyle Simpson. В общем, «зарыться» есть куда ;)

Deleted
()

подходы изменились (даже по замыканиям

Я вот не пойму... Все языки кроме JS достаточно единообразно работают с разными вещами, и только JS - максимально феерическим способом. Это как бы символизирует, как работают мозги большинства адекватных программистов. Вы точно уверены, что хотите разбирать это 50 оттенков JS???
Зачем менять подходы, если можно писать нормально???

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

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

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

Вово. TS предлагает только один подход...

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

Я про замыкания как область видимости в JS. В JS всё по-своему, всё не так, как везде.
Как мне тут знакомые жаловались - был проект, подключили какой-то счётчик от Google. Переменные смешались, всё повалились, дебаг на две недели.
Можно иметь это ввиду, называть переменные красиво, вместо обычной трансляции линейных процедур засовывать всё в замыкания... Когда пишешь переиспользуемый код с наследованием (у меня - контроллеры пажинации для angularjs, с небольшими различиями), можно создавать псевдо-классы на функциях с коллбэками и прототипах...
А можно взять TypeScript.

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

ничего не понял. кроме того что знакомые не использовали var, вообще это причина почему я не использую nodejs на бекенде, в остальном не понял про замыкания, что там не так как везде и где езе нельзя сделать замыкание, разве-что на каком-то древнем васике?

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

и чем ts помогает в этом случае особенно не понял, тут уже какая-то МАГИЯ начинается из-за незнания основ

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

понял, наверное ts оборачивает единицы трансляции в замыкание, т/е из файла

let a = "a"
alert(a)


делает

(function (global) {
  let a = "a"
  ...
})(window)


ну так это все делают и руками так писать никто не мешает, так уж повелось что namespace при прототипо-ориентированном подходе - лишняя сущность

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

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

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

Именно. Когда на бэк-энде питон или C#, или даже php, переключение головы на прототипное ООП и оборачивание простых алгоритмов в какой-либо JS специфичный костыль очень сильно тормозит работу.
ПРи работе в команде, возможно, у ванильного JS есть преимущества.
Я Cofe Script попробовал - плюнул. Вот он точно не уменьшает проблемы JS, а добавляет свою магию. TS наоборот, уменьшает количество магии и делает поведение фронтенда более предсказуемым без изучения спецификации JS.

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

формулировка «ТС решает проблемы с замыканиями» выглядит глупо, учитывая что ничего от себя ТС в этом не добавляет, а оборачивать модули в замыкания как-бы общепринятая практика

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

Это не общепринятая практика. Обычно проблему пространств имен берет на себя компилятор/интерпретатор. А на алгоритмических блок-схемах, напнимер, замыкания - нонсенс.

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

Где static, там и указатели и управление памятью. Так до ассемблера можно докопать.
JS - по идее, высокоуровневый язык. По идее.

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

Не по идее, а 100500. Я вот нашел то, что искал. «Functional-Light JavaScript, v2» Кайл спокойно (конечно, у него был и есть Гуру) объясняет, как писать в функциональном стиле: композиции, свёртки, монады, функторы, чистота! в JS ;) Прямо вызывает слёзы умиления. Кто из языков может таким похвастать?

И TS просто для привыкших к OOП...

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

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

предыдущие реализации модульности (commonjs иже) требовали модуль оборачивать в замыкание, собственно через define модули и создавались, в современной реалии замыкание добавляет трансплитер, ну а если пишешь сам простой проект без всего - будь добр, либо делай как следует, либо не забывай где упустил - и проблем не будет.

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

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

Магия-магия! Только недавно, повторяюсь, с let и const ситуация начала выравнивается. Вы же завели дискуссию ;) Так вот, раньше писали не такое тяжелое. Рюшечки и т.д. А теперь надо поддерживать большое. TS давал (да и даёт в определённой парадигме) такую возможность. Как пример: VSCode.

Ребята стандартизировали (ребята же умные), а в массы надо протолкнуть изменения. Замечу, что рюшечки от этого знания не красивше ;) Вот при поддержке! кода эти изменения реально всплывают... Скажу так, JS идёт семимильными шагами (надо в массы дотолкнуть знание новых фич) к уверенной поддержке в сложных проектах.

P.S. Всё это первого числа, не принимайте строго.

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

Зачем мне функторы и свёртки?
Я решаю прикладные задачи. Я кодирую блок-схемы логических процессов. Если бы я хотел заморочиться, писал бы на форте.

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

Эээ, да не особо и надо. Но вот «побочные эффекты»... Каждый пляшет как умееет ;)

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

я вот что подумал, а ведь в крестах тоже необходимо «замыкание» в заголовке, из ifndef/define/endif, так что не такая уж «экзотика», да и вообще во многих языках, вот например include и require_once из, прости господи, пыха, думаю примеров можно еще найти.

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

функции высшего порядка и разнообразные свертки - лучшее что придумали в программировании, имхо, как разница между дрочить на байты (гордая программа на си на 99% это управление ресурсами и СВОИ РОДНЫЕ реализации общеизвестных и давно стандартизированных алгоритмов), но это мое мнение, я вообще апологет fp.

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

АААААААА, Боже, дай сил. В программировании главное не текст. ФП ценен только чистотой! Повторяюсь, Вы, видимо, не в теме.

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

«замыкание», в теме чего? дело в том что техника замыканий пришла из фп, как ни крути

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

тут выше возмущаются что в жс-де нет единиц трансляции, а я как бы привожу примеры схожих «недостатков» в более развинутых языках, так в чем соль?

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

Посоветуй годных книг, статей, да чтобы ES6

Так ведь ES8 вышел.

БА-ДУМ-ТС!

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

суть здесь в том что лучше высшая функция из lodash чем for
(var i < .length) ну вот хоть убей, считаешь что это не важно в программировании? продолжай практиковаться.

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