• 10 000 строчек проще рефакторить или переписать?

    alexey-m-ukolov
    @alexey-m-ukolov Куратор тега JavaScript
    Обычно код такого качества проще переписать. Есть и дополнительные плюсы:
    - вы в деталях поймёте, как работает проект и что делает;
    - вы, вероятно, найдёте и исправите какие-то баги по дороге.

    Но это индивидуально, вообще. Кому-то проще инкрементально рефакторить, лично мне проще в такой ситуации писать с нуля, ориентируясь на имеющийся код, но критически его оценивая.
    Это и от размеров проекта ещё зависит, от общей его сложности, от нагрузки на разработчиков (можно ли остановить активную разработку на какое-то время). 10k строк, в принципе, не очень большой размер.
    Ответ написан
  • Как узнать последнюю цифру числа?

    bingo347
    @bingo347 Куратор тега JavaScript
    Ищу TypeScript разработчика
    Для целых чисел все просто, как уже верно заметил Stalker_RED достаточно взять остаток от деления на 10n % 10
    Но вот с дробными числами все намного интереснее. Потенциально, можно получить целое представление последовательно умножая число на 10 (сдвигая тем самым десятичную точку вправо), а после воспользоваться предыдущим приемом. Но проблема тут в том, что потенциально такая последовательность может оказаться бесконечной и такой алгоритм зациклится.
    Если обратится к стандарту IEEE 754, то можно узнать, что в 64 битах можно точно представить не более 16 десятичных разрядов, а это уже можно использовать как ограничитель, так как при превышении 16 сдвигов десятичной точки значение все равно уже не будет точным
    const lastDigit = n => {
        // в n совсем не то
        if (isNaN(n) || !isFinite(n)) return NaN;
        // в n целое
        if (n % 1 === 0) return n % 10;
        // для дробных проще со строкой работать
        const s = String(Math.abs(n));
        // неточные значения
        if (s.length > 16 || s.includes('e')) return NaN;
        return +s.slice(-1);
    }
    Ответ написан
  • Стоит ли использовать классы-обёртки?

    Kozack
    @Kozack Куратор тега JavaScript
    Thinking about a11y
    В целом JsDoc должно хватать.

    Хм. Я бы на вашем месте, использовал абстракцию + JsDoc
    /**
     * @returns {UserGroup}
     */
    function getUserGroups () {}

    Важно, чтобы получить эти группы можно было исключительно через эту абстракцию. Тогда, я полагаю, любая IDE сможет определить типі и автокомплит
    Ответ написан
  • Почему PHP теряет популярность?

    anton_reut
    @anton_reut
    Начинающий веб-разработчик
    Никогда не ведитесь на уговоры разрабатывать какой то веб проект на каком то экзотичном языке, например Питоне или Яве, в результате вы получите костыльный долгострой и дефицит программистов которые будут готовы над ним работать.
    Это как в моде - есть всякое эпатажное дерьмо для показов на подиуме, а есть повседневные джинсы с рубашкой, все любят обсуждать эпатаж но носят джинсы.
    Ответ написан