Mixam19
берем допустим Django, Rails, да пусть даже Groovy Play!
Mixam19
это все ООП
Mixam19
это все динамическая типизация
Anonymous
к слову о лично моей питонке. я использую стек который находится в глубоком подполье в отношении к джангочке и считаю джангочку даже хуже пыхи как раз потому что там все в сахаре и никакого шанса на отладку я юзаю поделие бывших жавистов - pyramid, sqlalchemy, вот это все
Mixam19
и есть куча практик
Mixam19
сложившихся и переносимых с одной технологии на другую
Mixam19
js же это а) Асинхронность. б) Прототипы (разновидность ООП, но таки не привычное ООП). в) ES5 и ES6
Mixam19
это накладывает специфику
Mixam19
и не дает так просто использовать универсальные какие-то подходы к разработке
Anonymous
ну без ооп никуда не уедешь а самом деле
Mixam19
да тут даже не в ООП дело
Mixam19
а в том, как готовить прототипоориентированный язык
Mixam19
с кучей асинхронности
Mixam19
сколько я не пытался использовать практики из других языков - получается редкостная херня
Mixam19
а как делать не херню - нужно спрашивать у адептов нод.жс, но почему-то сколько не искал - не нашёл советов на эту тему
Anonymous
не знаю. вроде как раз таки всё одинаково архитектурно
Anonymous
ты пытался в колбеки или сразу асинкавейт ?
Mixam19
и в коллбэки, и в асинк/авэйт
Mixam19
коллбэки иногда работают лучше
Mixam19
в плане чистоты кода
Anonymous
колбеки везде говно, можно даже и не пытаться с ними в архитектуру. омг лол
Anonymous
во всяком случае я видел колбечный код на питоне на торнаде еще в 2010. это мало чем отличалось от "ноды", да
Mixam19
мне не хватает сингл респонсибилити, когда тяжко допустим разносить промайс и обработку результата промайса
Mixam19
может тем, для кого js родной это легко
Mixam19
но опять же, я не нашёл адекватных туториалов на эту тему
Mixam19
а все мои потуги всё-равно не дают удовлетворения результатом
Mixam19
я поверю в ноду, когда увижу на примере чистый поддерживаемый код на ней и пойму как это воркает
Mixam19
а пока же каждый пишет как захочет
Mixam19
и в итоге дикая каша
Anonymous
хз юзаешь асинавейт, считаешь что код синхронный. не гонишься за конкуррентностью... и профит
Mixam19
юзаешь асинк/авэйт - ок
Mixam19
пока у тебя не появляется в каждой функции try/catch
Mixam19
и ты начинаешь скучать по коллбэкам )))
Mixam19
и error first
Mixam19
причем как ни странно для фронтенда js более менее ок
Mixam19
но с нодой всё очень ужасно, особенно если проект до тебя писали пять человек каждый в своём стиле
Anonymous
ну это уже вопрос к ссаности жсных эксепшенов. зыбко но можно ограничиться верхним уровнем наверное и всё. в го вон всё гораздо хуже ) а в питонке эксепшены это контрол структура наравне с ифами
Mixam19
без обид, но вариацию твоего аргумента я слышал тыщи раз
Mixam19
суть аргумента: смирись, это же джаваскрипт )
Mixam19
а я не хочу смириться, я хочу понять как правильно ) это же юзается в крутых проектах
Mixam19
значит должно работать как-то если знать как )
Anonymous
просто нет крутых проектов на ноде. это как крутой проект на 1с или бейсике
Mixam19
но почему то никто не спешит делиться опытом )
Yaroslav 🇺🇦
Почему общепринятый шаблон - это правильно? Правильно должно быть то что комфортно для тебя и команды.
Mixam19
да я даже не про общепринятый
Mixam19
я про хоть какой-то
Mixam19
а его нет
Anonymous
ссаность механизма эксепшенов это не фича делающая язык каким то особенным для каких то своих архитектур. это просто данность
Mixam19
хоть направление в стиле "Вот это однозначно плохо, а вот эти варианты можно рассмотреть"
Anonymous
если бы был какой то монадический error handling или паники как в го можно было бы вести дискурс. а так именно что ничего посоветовать нельзя
Mixam19
для таких нескилловых как я, которые пока что не могут видеть всех подводных камней в силу недостаточного опыта )
Anonymous
в go вообще паники не используются как исключения, а только лишь как индикатор бага в программе который нужно исправить
Anonymous
хоть направление в стиле "Вот это однозначно плохо, а вот эти варианты можно рассмотреть"
это именно кочки которые ты должен прочувствовать своей жопой. так и работает "опыт" в айтишечке. после первых двух лет кодерок не растет в коде а растет байками уровня "я юзал эксепшены в крестах я ниасилил поэтому не юзаю в питоне"
Mixam19
Пока для меня нода выглядит так: Ты можешь не лажать на ноде, если ты очень скилловый программист. Но если ты очень скилловый программист - зачем тебе нода? ))
Nikita
потому, что ты фронт
Mixam19
я бек
Anonymous
в go вообще паники не используются как исключения, а только лишь как индикатор бага в программе который нужно исправить
там есть довольно прикольный механизм ловли паники и рекавери из стека. я не знаю каков он на деле но он есть, в отличии от "ничего" в расте
Mixam19
на рельсах писал бэк
Mixam19
и пишу
Mixam19
на ноде писал
Mixam19
на ноде был очень недоволен тем, что получалось
Mixam19
но работало всё стабильно вроде
Mixam19
ещё был проект, где я рефакторил ноду
Mixam19
мне не нравился результат, заказчик бывший жээсер вроде хвалил
Mixam19
но яхз что он хвалил
Mixam19
на мой взгялд всё было очень плохо
Mixam19
хотя конечно лучше, чем пришло изначально )
Anonymous
короче если у тебя парадигма запрос-ответ то впринципе никакого качественного скачка в архитектуре от динамикопараши ожидать не стоит. везде у тебя просто зассаная вьюшечка с реквест/респонс, мидлварька, и делай что хочешь
Daniil
Не бывает бывших джээсеров
Daniil
Враки все это
Mixam19
на руби я могу делать что хочу
Anonymous
там есть довольно прикольный механизм ловли паники и рекавери из стека. я не знаю каков он на деле но он есть, в отличии от "ничего" в расте
Авторы языка чётко описывают для чего там паника, она для описания неожиданного поведения, всё, что ожидается должно быть возвращенно как error
Mixam19
любые варианты - упороться в сервисы, упороться в ООП, упороться просто по фану, но аккуратно
Mixam19
а в джээс любой вариант про "что хочу" выходит дерьмово
Anonymous
мне не нравился результат, заказчик бывший жээсер вроде хвалил
ну вот это называется планка качества по индустрии для жсников. у питонистов или рубистов короче намного выше планка представления о том что такое ок
Anonymous
взять что угодно. например фреймворк для логгинга. для меня ок это то что умеет печатать строки, файлы, трейс, имеет апи к тому чтобы я например мог пройтись лично по фреймам и своровать переменные, привязка контекста к логгеру и тд и тд. можно сказать что это всё придумали не на пустом месте и раздрочили тему хорошо
Anonymous
а взять логгинг какойнить ноды и это будет раз в 100 менее фичастее