Как научиться писать большие javascript приложения?
Вот вроде знаешь JS, учил фреймворки типа Ангуляр и Реакт и написал на них по паре-тройке небольших приложений уровня посложнее чем TODO.
Но есть понимание что писать большие приложения, со сложной архитектурой я не умею.
Как научиться?
Подозреваю, начнут предлагать найти хорошую контору и пойти туда работать за хлеб и воду, но тут есть две проблемы - сложно найти хорошую контору, не разбираясь в теме, второе - обременен семьей и работа за хлеб и воду сильно не радует.
Emptyform, А зачем говнокодить? Неужели вам нужен всегда палкойпорукамбитель чтобы не говнокодить. Думайте просто, прежде чем писать код. Задавайтесь вопросами, ищите ответы.
Всё начинается с архитектуры приложения и обмена сообщениями посредством слушателей событий (подписка на события), которые, получая события модифицируют объекты, а те в свою очередь, генерируют оповещение о модификации для всех других, зависящих от них, объектов.
xmoonlight, сорри, код - собственность компании, прав на публикацию у меня нет
но тому, кто хорошо соображает, будет достаточно того, что я написала, тем более, что с деревьями и рекурсиями знакомы все, в смысле все программисты
более того, бизнес логика, организованная таким образом для одного проекта, легко переносится в любой проект, фронтенд больших и сложных одностраничных приложений разворачивается за 2-3 дня одним разработчиком практически без ошибок
ой всё,
1. что вы имеете в виду под "колбэк синхронизаци"
2. что вы имеете в виду по "архитектура - полное дерево приложения"
3. что вы имеете в виду под "микроменеджмент"
Умение писать TODO на Angular не помогает мне в понимании этих вещей, к сожалению
xmoonlight, архитектура это слои которые общаются между собой в программе, например(в вебе) клиент, сервер, субд. То, что вы пишите про организацию dom обьектов - это бизнес-логика
Сергей Некрасов, Есть архитектура клиентского веб-приложения, есть архитектура серверного веб-приложения, есть архитектура корпоративных (или нативных) приложений (то, что Вы посоветовали), есть архитектура комплексного сетевого решения или сервиса (когда много разнородных блоков обслуживают один запрос клиента), есть архитектура распределённого сетевого комплекса с различными типами топологий (например, CDN).
Удачи! :)
Сергей Некрасов, это мои знания, основанные на опыте...
А вот то, что ВЫ УЖЕ! научились - похвально!
Осталось лишь Вам научиться понимать смысл написанного...))))
xmoonlight, лол о каких лайках вы говорите, вы свой блог видели вообще? Я бы за такие ответы минусовал бы и банил.. Статья "Как выучить js" , а вы тупо ссылки какие то левые написали и ни одной книги даже.. В таких статьях самое главное мотивация читателя, перечисление различных советов. Вообще задумайтесь об этом.
"Всё начинается с архитектуры приложения и обмена сообщениями посредством слушателей" вы серьезно? Вы думаете вся архитектура заключается в каких то там слушателях (это всего 1 паттерн из нескольких десятков под названием observer) Вы сами то ни в одном крупном проекте не участвовали, а пытаетесь других учить!
darksladen, Я с удовольствием выслушаю ценные советы от Вас касательно заданного TC вопроса и по оптимизации моего блога.
Можете конструктивно ответить?
PS:
Вы сами то ни в одном крупном проекте не участвовали, а пытаетесь других учить!
xmoonlight, Касательно вашего блога - оформление ужасное, с телефона 5.5 дюймов отображается ужасно, нет ни стиля, ни удобства, ни годного контента, который чем либо мог бы помочь, везде какие то обрывки непонятные, которые вы видимо в качестве заметок используете. Не работал с этой платформой, но раз уж блог делаете купили бы домен с сервером простейшим, неужели так накладно? Домен 300р. в год, сервер 1 бакс в месяц.. Дизайн бы сами сделали нормальный, видимо платформа не позволяет это. Но в любом случае контент никакой у вас.
А по поводу ценных советов - совет один - работай и учись, не задавая глупые вопросы, которые в день по сотни раз задают! По архитектуре приложений кучи книг написано, неужели сложно погуглить?
А теперь пожалуйста вы объясните свой умный ответ с вашими событиями и слушателями, которых полон js абсолютно в каждом коде, где калбэк на калбэке.. Вы просто рассказали, что знаете что такое слушатели, только недавно узнав о них сам?
Готов перейти - подскажите хостинг с такими ценами (+производительность)?
Но в любом случае контент никакой у вас.
Поясните... Что не так с ним? (глубина изложения мыслей, мало исходного кода или что-то ещё?)
А теперь пожалуйста вы объясните свой умный ответ с вашими событиями и слушателями, которых полон js абсолютно в каждом коде, где калбэк на калбэке..
EventListener's - это не колбэки, а обработчики событий. Другими словами - это "система переговоров" между объектами (классы, DOM-объекты и т.д.), которая используется для асинхронной реакции на события в зависимости от состояний объектов, что уменьшает время работы кода в несколько раз.
и вообще много паттернов вы знаете и часто ли применяется их в крупных проектах?
Да.. знаю все..., но применяю не более 2-3х (из этого списка в одном проекте), в зависимости от схемы обмена данными между объектами, заданной бизнес-уровнем.
xmoonlight, что у вас с зарплатой, что вы за каждый доллар беспокоит есть, как у программиста может вообще не быть хостинга не понимаю ;) Digital ocean 5 баксов стоит. Так это vps и вы на ней хоть десяток сайтов можете разместить. Ну если хотите дешего, то jino. Знакомый рублей 30 платит + там антидос, сам проверял ;)
На счёт сайта я уже все сказал - статьи вы пишите, но потом видимо забивание на них где то в середине и публикуете. Просмотрел несколько статей, все никакие - вот рандомная статья специально для вас.
1) права доступа обычно выставляют 775, а не 777
2) полный бред. К тому же не у всех апач как бы..
3) то есть я для доступа в админку постоянный ip должен покупать? Может все же пароль понадежней поставить?
4) резервная копия - разумеется надо ее делать, всем об этом известно, но не все это делают. Ок, норм совет, но все об этом знают
5) логи и нагрузку значит? Хм...
Я не знаю тролите вы меня или нет, но это максимально бредовая статья, странно что вы с вашим богочайшим опытом в серьезных проектах этого не понимаете! И САМОЕ классное, вы ещё смете после этого бреда писать такое - Эти простые правила помогут максимально уберечь Ваш сайт от большинства возможных атак.
Вас надо не на тостере банить, а в интернете, чтобы люди не читали вашего бреда. Такая же хорошая тема - безопасность сайта, можно столько годных советов реально новичкам дать, раз для них вы и пишите и рассказать о действительно интересных и самых частых уязвимость, например csrf атаки или sql инъекции, модули для защиты от доса школьниками, капча для защиты от спама, тупо рассказать какими коварными бывают плагины на ВордПресс..
Короче говоря, ваш блог не только пользу не приносит, он приносит кучу вреда.
xmoonlight, о боже! Какая зависть, вы о чем? Задайте вопрос сообществу, пусть они покритикуют. Это удивительно, что под вашим ответом никто из 4 тысяч человек не написал ничего плохого, но это не отправляет вашу статью.
Я уверен, что вы не применяется ни одного из своих же советов. Разве что 1 пункт, хотя насколько я понял вы только с хостингом работали в своей жизни
xmoonlight, хм, при чем здесь вода, хлеб и хостинг ;) И к чему вы мне ссылку на какой то свой ответ дали не в тему - ответ неплохой, но мы же о сайте говорим вроде?
странный вопрос, однако, у Вас: зависит от связей объектов, которые обусловлены бизнес-процессом (я же писал уже!)...
Список паттернов - можно найти по ссылке в ответе: largescalejs
xmoonlight, пардон, я было понял так что вы вообще используете из всего набора паттернов всегда одни и те же 2-3 штуки. Теперь вижу что вы имели в виду не более каких-либо 2-3 паттернов в одном проекте.
Большое приложение не является монолитным. Оно состоит из набора маленьких приложений, которые выполняют свои маленькие задачи. Любая большая программа начинается с маленького прототипа, который потом вырастает до галактических размеров. Ну, если получается. Получается не очень часто. Часто получается выбрасывать прототип и писать новый. Со временем учитесь правильной архитектуре с самого начала и тогда разработка большого приложения идёт несколько быстрее.
Например, я вчера получил ошибку в архитектуре, которую программировал три дня на c#. Пришлось исправлять несколько часов. Знаете какое ощущение? Отличное! Я все-таки решил задачу!
Emptyform, правильная архитектура бывает только в определенном контексте или определенном круге задач. Нет абсолютно правильной архитектуры. Что хорошо работает в одном случае может вообще не работать в другом. Может моё видение будет нестандартным - правильную архитектуру надо "угадать", а потом программированием проверить насколько ваша "догадка" подтвердилась. Со временем такие манипуляции получается проводить в голове без программирования, но это в основном получается после накопленного негативного опыта. Не в том смысле, что он плохой, а в том, что не получилось сразу понять, что техническое решение не подходит, хотя все компилируется и собирается, но развивать не получается. Тут только свой путь.
Emptyform, Сделаю ещё одно дополнение. Некоторые проекты, даже личные, пишутся и сопровождаются достаточно длительное время. У меня есть несколько личных проектов, которые я сопровождаю сам для себя и постепенно на них прокачиваю скилы. Интервал от полугода до двух лет. Вполне уместно придумать самому себе задачу и периодически допиливать в ней новый функционал или переводить её на новую технологию. Например, я экспериментирую на C# несколько лет, пару лет назад открыл для себя WPF, пару месяцев назад binding, месяц назад "свойства" и обкатываю их.
научиться хорошо писать маленькие
а там может осенит, как делать большие
вот странно, ни разу не видела, чтобы архитекторы спрашивали, как быстро научиться строить большие дома; все как зайки идут в вуз, потом годами в подмастерьях, и как-то живы
Не вводите человека в заблуждение относительно возможности хорошо писать маленькие приложения не понимая и не разбираясь и в организации архитектуры!
Читайте мой ответ...
xmoonlight, пожалуйста ссылку на мой комментарий, где я утверждаю о "возможности хорошо писать маленькие приложения не понимая и не разбираясь и в организации архитектуры"
если такой ссылки нет, то вам имеет смысл удалить ваш глупый наезд и не позориться вашими представлениями об архитектуре
xmoonlight, уточните, пожалуйста, в каком месте написано о "возможности хорошо писать маленькие приложения не понимая и не разбираясь и в организации архитектуры"
создается впечатление, что это место - ваши фантазии, даю вам еще один шанс опровергнуть
ой всё, если Вы не понимаете то, что в цитате, то пусть расскажут другие Вам об этом. На данный момент - остановимся на этом, т.к. Вы не хотите признать свою ошибку и продолжать конструктивное общение.