Задать вопрос
evgeniy8705
@evgeniy8705
Повелитель вселенной

Как научиться писать приложения на pure JS?

В общем, как научиться писать полноценные приложения без использования каких либо зависимостей, в частности фреймворков?
Как продумывать архитектуру? Как все организовывать? Какие основные топики нужно знать чтобы писать приложения с нуля на чистом JS?
И самое главное, где об о всем почитать? Желательно на русском*
Хотел найти материалы по MVC, но так ничего нормального не нашел, на каждом сайте одна и та же почти статья, освещающая краткие сведения об этом и все, а как написать полноценное приложение из больше чем одного компонента и написать архитектуру под это, нигде не пишут...

Может быть вообще что то глупое спрашиваю, но вижу что все вокруг обсуждают какую то магию, половина использует готовые фреймворки, там все уже за них сделано, все продумано, а другая половина говорит не используйте фреймворки, пишите на чистом JS. Я могу что то написать в императивном стиле, все в одном файле, 100500 функций. Да может быть будет что то работать, но за хорошее инженерное решение это не сойдет. Хотелось бы самому с нуля писать все собственноручно. Хотя бы научиться этому, а потом уже браться за полезные инструменты в виде какие то зависимостей, те же фреймворки. Не хочется использовать что то не зная как все устроено под капотом.
  • Вопрос задан
  • 4269 просмотров
Подписаться 3 Оценить Комментировать
Пригласить эксперта
Ответы на вопрос 4
Stalker_RED
@Stalker_RED
Про архитектуру и шаблоны проектирования (паттерны) есть книжки.

Ненормальные статьи про MVC штампуются потому, что MVC задумывался не для web'а, и вообще лет за пятнадцать до появления www. Есть неплохая статья рассказывающая о том, как мы докатились до ситуации, в которой буковки MVC лепят куда попало потому что это модно. Если интересно, почитайте оригинал Реенскауга, но перевода вроде нет.

А в фреймворках и библиотеках нет ничего плохого. Относитесь к ним как к наборам инструментов или готовых деталек (как конструктор лего, например). Но плохо, когда человек не знает ничего кроме своего любимого фреймворка, и если в этом фреймворке нет нужной детальки - сразу конец света наступает.
Ответ написан
kurtov
@kurtov
А зачем?
Зашел на upwork:
по запросу 'pure javascript' выдает 50+ вакансий, из которых только <20 имеется в виду чистый js
запрос по 'javascript' выдает 11k+

Не хочется использовать что то не зная как все устроено под капотом.


Загляните под капот. Это самый быстрый и надежный способ при самостоятельном обучении. Как правило js проекты в открытом доступе на github
Ответ написан
Комментировать
dummyman
@dummyman
диссидент-схизматик
Поддерживаю вас. В современных браузерах и других интерпретаторах js есть все необходимые средства для программирования без всяких там "jQuery и ко".

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


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

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


На самом деле, мета-программирование на javascript - это не всегда положительная сторона. Есть тысяча и один фреймворк, которые могут послужить хорошим примером, как делать не надо!
Вспомним хотябы GWT, YUI. Потом ExtJS4 - полная срака из кастомной структуры классов с наследованием двадцатого уровня. Для реализации того функционала можно было выкинуть 3/4 кода. Может быть, во времена популярности prototype.js+script.aculo.us, ExtJS 2 был "хорошим инженерным решением", но в 4й версии - с абстракциями явный перебор.

На русском языке обязательно прочтите Гарден.
Хорошую книгу написал Джон Резик. Есть русская версия, правда только первое издание.
a4ab075560824f9e8283565363a7561f.jpg
Поверьте, фреймворки - зло! Не пишите лишнего кода сверх решения задачи. Компенсируйте максимум структуры приложения в html и css.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы