Решил вкатиться в JS и поднимать 300кк в наносекунду, написал свою первую функцию, прошу оценитьfunction pow(x, n) {⠀⠀return (n >= 0) ? (n != 0) ? (n != 1 ) ? x * pow(x, n-1) : x : 1 : 1 / pow(x, -n);}Какие у меня перспективы?
>>193711618 (OP)Отвечаю зеленому, но поебать. Тернарные операции вложенные вообще недопустимы, это и не читабельно нихуя, хоть бы стайл гайды почитал. Ну и ненужная в такой задаче рекурсия тоже говно. Ангуляр эксперт в треде
>>193711618 (OP)Хуета какая-то. Члму не стрелочная функция и вообще простое объявление функции, а не через переменную. Ты там по каким учебникам учишься? 2005 го года издания?
>>193712852Разве чем короче код, тем не лучше? >не читабельноОдна строчка же, можно всю функцию взглядом охватить и сразу прочитать >Ну и ненужная в такой задаче рекурсия тоже говноЦикл писать? Так это вообще на целую страницу будет, зачем так делать?
>>193711618 (OP)В больших проектах всегда бьют такое говно, которым ты решил выебнуться, на понятные куски, пусть это увеличивает кол-во строк.Даже тернарники иногда разбивают на иф-элс.
>>193713141>стрелочная функцияЕще не дошел до этого >вообще простое объявление функции, а не через переменнуюЧтобы функцию в конец кода поставить, разве это не нужно? >Ты там по каким учебникам учишься?learn.javascript.ru
>>193713213>Цикл писать? Так это вообще на целую страницу будет, зачем так делать? сразу видно маню, который в Вузе не учился, любая рекурсия, которую можно переписать циклом, должна быть переписана. Там огромная разница в потребляемых ресурсах>Одна строчка же, можно всю функцию взглядом охватить и сразу прочитатьНет, читай Стайл Гайды хотя бы того же Гугла. Даже одна тернарная операция расписывается на 3 строки, но и то это не очень удобно и понятно
>>193713556Ну не рассказывай, тернарники все юзают, но не вложенные блядь. Пусть поставит линтер от эирбнб и он ему все расскажет, хотя он всё равно не вкатится
>>193713443Реактивные конечно. Template driven не перевариваю вообще, хотя по сути под капотом одно и то же.
>>193713556>сразу видно маню, который в Вузе не училсяТак-то учился >>193713556>Даже одна тернарная операция расписывается на 3 строкиЭто как вообще? Разве она не для того, чтобы в одну строку что-то записать?
>>193713636Ну да, я изначально ему про вложенные и писал, хотя сам даже одиночную тернарку никогда не использую, неудобно потом код читать, ИМХО
>>193713426> Чтобы функцию в конец кода поставить, разве это не нужно?Ееееб твою, когда до es6 модулей доберетесь, тогда и приходите
>>193713694Поставь линтер и не еби мозги анону. А вузик нахуй не нужен в вебе.Мимо фронтендер 2 года опыта, вкатился в 22
>>193711618 (OP)>непонятное говно в одну строчку вместо кодаУ тебя хорошие перспективы в JS, это правда, там все в таком же стиле. Продолжай изучать и добьешься всего.мимо с++ девелопер
>>193713671ну тут зависит от задач все, у меня пока лично не было форм, которые надо было бы вязать с стором, просто обычно пилим отдельный модуль (регистрации/логина того же)
>>193714204Ну если у вас была нечитаемая лапша на фронтенде, то это не значит, что она у всех такая. На крестах говнокод писать ещё проще
>>193714051>пукдо этого делали какой то онлайн-магаз мебели сраной, сейчас какую то срань с измерениями сенсоров начинаем, ни там, ни здесь сложных форм не предвидится
>>193711618 (OP)Оп, есть три стулаНа одном var дроченный, на другом let точенный. На какой сам сядешь, на какой выделенную область памяти с именем посадишь?
>>193713919Хочу сидеть на фрилансе и не выходить из своей сычевальни, хочу не вставать на РАБоту к 8, хочу хорошо кушать и иметь много свободного времени на саморазвитие через аниме
>>193714290У меня была читаемая лапша, потому что я старался. А в целом - широкое использование анонимных функций читаемости не добавляют.
>>193714406щтоб так делать, надо обеспечить себе пассивный доход, а не просить дядю с упворка дать тебе покодить за еду
>>193718953>Где ты учишьсяВ лучшем вузе мухосранской области >тебе не говорили, что так делать не хорошо?Нет
А так лучше? function pow2(x, n) {⠀⠀var k = x; ⠀⠀⠀⠀if (n < 0) { ⠀⠀⠀⠀⠀⠀n = -n; ⠀⠀⠀⠀⠀⠀for ( var i=0; i < n-1; i++ ) k = x; ⠀⠀⠀⠀⠀⠀return 1/k; ⠀⠀⠀⠀} else if (n != 0) {⠀⠀⠀⠀⠀⠀for ( var i=0; i < n-1; i++ ) k = x; ⠀⠀⠀⠀⠀⠀return k; ⠀⠀⠀⠀} else {⠀⠀⠀⠀⠀⠀return 0; ⠀⠀⠀⠀}⠀⠀}
>>193720327Да, обосрался на этом, но это от невнимательности, я не такой тупой.А в оформлении как? Так нужно писать код, чтобы не пинали за нечитабельность?
>>193720673Воды дохуя.Я щас сонный, но на ум почему то приходят такие мысли:у тебя два раза написан и тот же цикл, еще и в одну строчку, еще можно заменить это на while(i--).Еще, у тебя на каждой итерации цикла k = x.
>>193711618 (OP)Ну и при каком N у тебя пробъет стек? Рекурсия говно без задач, заставил бы развернуть в цикл
>>193721157>Еще, у тебя на каждой итерации цикла k = x.Это двач две звездочки убрал, там умножение должно быть >у тебя два раза написан и тот же циклЯ не придумал, как этого избежать и сохранить читабельность >еще и в одну строчкуЭто плохо? Там же всего один оператор.
>>193721257>Ну и при каком N у тебя пробъет стек? Ну так сейчас в каждом компьютере > 16gb RAM, этого более чем достаточно
>>193721635Блэд, да двач звездочки убрал и курсив сделал, там все умножается. Вы про оформление скажите, достаточно ли читабельно, нет ли ничего лишнего
>>193713229Двачую адеквата. Двачеры всякие выёбуются ненужной, абсолютно нечитабельной хуйней. Да ОП сам с утра хуй поймет, что он там написал.
>>193721838Ну если кому-то не хватает памяти, разве это не значит, что ему стоит обновить компьютер? Почему программисты должны думать о нищуках, они же все равно за софт заплатить не смогут?
>>193721470>Я не придумал, как этого избежать и сохранить читабельностьТак например:if (n != 0){ count = Math.abs(n) - 1; while(count--) k умнож= x; if (n < 0) return 1/k; else return k;}else return 1;или даже так:if (n != 0){ count = Math.abs(n) - 1; while(count--) k умнож= x; n < 0 ? return 1/k : return k;}else return 1;Скобки можешь не переносить на новую строку - это вкусовщина, я всегда переношу, мне так читать удобнее блоки.
>>193721901>нечитабельной хуйнейПо-моему, очень даже читаемо, намного лучше этой срани >>193719803 Если с мышлением все нормально, если знаешь, как работает тернарный оператор, то все понимается с первого взгляда.
>>193722155Суть программирования в том, чтобы напрягать мышление не над тем, что у тебя там, блять, нахуеверчено, а над решением задачи. Дохуявложенный тернарный оператор с рекурсией - это явно то, что может замедлить чтение кода и его понимание другим людям, тем более, когда подобной хуйни можно избежать, написав более быстрый и читаемый код.А так ты просто выебываешься и усложняешь жизнь другим людям, которые этот код потом, возможно, будут сопровождать.
>>193711618 (OP)ну такое:pow(3,'boom') -> stack overflowpow('d','d') -> stack overflowX2pow(3,NaN) -> stack overflowX3pow(0,Infinity) -> stack overflowX4...этих контрпримеров достаточно, думаю
>>193711618 (OP)Ты же в курсе, что js обычно минимизируют, друг? Никто так переменные и методы не объявляет, почитай стандарты синтаксиса
>>193711618 (OP)Тебе это уже всё говорили, но я повторюсь:Тернарник в тернарнике - хуй разберёшь. Код должен быть поддерживаемым. Ты типа молодец, что смог однострочником ёбнуть, но это нахуй никому не надо. Да ещё и через рекурсию. Да ещё и короче можно было.
>>193722601>>193722729Ну так она ж только для целых чисел >pow('d','d') -> stack overflowX2Кому вообще придет в голову возводить букву в степень?
>>193722885А на ней это написано? Вообще приличная функция должна валидировать свои аргументы и кидать осмысленное сообщение об ошибке
>>193722601>pow(3,'boom') -> stack overflow>pow('d','d') -> stack overflowX2>pow(3,NaN) -> stack overflowX3>pow(0,Infinity) -> stack overflowX4stackoverflow.com
Пользуясь случаем, спрошу тут: туда сейчас модно вкатываться, посоны? А то меня этот веб-кодинг уже заебал.>>193723004Вот там и проси оценить.
>>193722979Хм, а исключения - это норм подход или уже не модно? Что-то я давно их использование в js скриптах не видел
>>193723255Ну конкретно джаваскрипт обычно это всякий асинхронный код, то там брошенное исключение покажет тебе вывернутый на изнанку стек. Так что лучше использовать встроенные методы для твоего фреймворка
>>193723243Берёшь @ вкатываешься. После бурсы на стажировку в одну веб-студию взяли и понеслось. Я бы не сказал, что не знаком с вебом, но любви особой к нему не испытываю. И вообще, это мой первый пост в этом итт треде, может ты меня с кем-то перепутал?
>>193723360>Так что лучше использовать встроенные методы для твоего фреймворка>подразумевая, что сайтец написан на js-фреймворке, а не тупо сборкой бесплатной phpшной цмски с jquery и бутстрапом для блочной верстки
>>193723255Ну что же вы, бетмены. Мне действительно нужно какое-нибудь тривиальное универсальное решение, которое я всегда могу использовать на любом говносайте сам то я не js-макакаВот так норм?try { throw new Error('Хуй');} catch (error) { console.error('Пизда!'); console.error(error);}
>>193712852Если ниибаца експерт, поясни про кастомный асинхронный pipe.У меня з сервера в форму условно приходит название продукта, на фронт я условно хочу вывести его id.Сам пайп в себе имеет некий сервис, который получает обьект Observable(product-full-info, к примеру), з которого на форму я хочу отправить тот id.
>>193725049ты не шаришь в эксепшонах. Их задача - выбрасывать исключения прерывая выполнение функции, а не обрабатывать их внутри ее тела. Если функция обосралась где-то внутри себя, ты из нее бросаешь исключение "ЕксепшонФункцияСпасибоАбу", а обрабатываешь выше - там, где её вызвал. Или не обрабатываешь а опять-же, оставляешь на обработку выше по стеку - в той функции, в которой ты вызвал функцию, из которой ты вызвал функцию СпасибоАбу.