Evgeny
аюсолюта нет. есть оценка стоимости рисков
Ohar
вот да
Vladimir
Она есть, потому что риск надо уменьшать)
Ohar
А это очень индивидуально
Artur
И правильно сделало.
Дима
Спорно
Дима
Писать раз за разом один и тот же код и раздувать структуру проекта тоже не лучший подход
Дима
Просто npm кривой и никак не помогает в этом плане
Vladimir
npm то причем
Vladimir
Люди сами решают, что не хотят писать код
Дима
Ну да, но микромодуули должны быть ниже этих особенностей, быть атомарными. Unix way
Ohar
Дима
У меня в примере тут всегда модуль arrify
Vladimir
Про unix way недавно был классный пост
Ohar
Если фигню можно не писать, а зацепить как зависимость → так и надо сделать
Ohar
Естественно, посмотрев сначала что там внутри
Vladimir
Дима
Arrify — это штука для реализации подхода Zero One Infinity rule, но при этом нигде не реализованная. Это всего одна строчка, но я предпочту убедиться, что sindresorhus не наговнокодил в 4 строчках и не убил оптимизацию, а потом юзать его.
Ohar
Если ты говоришь про написание библиотеки, в которой важна скорость, то согласен. В прочих случаях нет.
Дима
Зачем мне писать эту строчку в каждом проекте?
Vladimir
Потому что тебе так и так придется написать какую то строчку
Ohar
бэкенд бэкенду рознь
Vladimir
И строчку с использованием либы сложнее читать
Дима
Лучше это будет import arrify, чем блок кода, сопровождение которого теперь взваливается на мои плечи
Vladimir
Еще раз - чтобы понять, что такое arrify, читатель кода (в том числе и ты в будущем), должен будет зайти внутрь и прочитать его код
Artur
Вот я может убогий, но вместо lodash всяких использую FP подход и фигачу каждый раз "строчку-другую" кода.
Дима
Дима
Есть документация
Дима
jsdoc на крайняк
Vladimir
Здеесь речь о том что это пишется в одну строчку, не надо никаких файлов
Artur
И скажите, есть кто-то, кто откидывает библиотеки не только по всем вышеперечисленным причинам, но и по причине того, что код использует слишком много устаревших зависимостей (типа is-array и т.п.) из-за стремления поддержки старых версий ноды?
Vladimir
А тебе еще нужно помнить, что для консистентности во всем проекте теперь нужно использовать arrify и 100 других однострочников
Дима
Что значит не надо? А где этот год будет располагаться, как его из этого места подключать и чем это принципиально будет отличаться от import arrify?
Vladimir
Его не надо подключать
Artur
Не надо ничего подключать)
Artur
Бери и пиши)
Vladimir
Это одна строчка в том месте где она нужна
Дима
Писать в том же файле?
Дима
Ууу
Artur
Благо arrow functions теперь есть
Дима
Не, сразу нет
Vladimir
Да не нужна тут функция
Vladimir
Это просто одна строчка
Artur
Я просто не в курсе что такое arrfy
Дима
В сопровождении кода
Vladimir
Ну нужно каждую строчку выносить в функцию с дебильным названием
Artur
или как его
Дима
Программист за день пишет 30 строчек
Дима
Задача — посчитайте цену вашей строки
Artur
Дима
Vladimir
Да я серьезно
Artur
Люди делятся на два типа, ага)))
Vladimir
Кто пишет 30 строчек, того надо увольнять сразу
Дима
Я тоже, правда смишно
Дима
Уволен
Дима
Dreamerinnoise
'use strict';
module.exports = function (val) {
if (val === null || val === undefined) {
return [];
}
return Array.isArray(val) ? val : [val];
};
вот из-за этого ставить пакет?
Лучше заведу себе в utils файл под это.
Dreamerinnoise
или там другой arrify?)
Дима
Дима
Ты думаешь я так не сделал)
Dreamerinnoise
ну и что?
Ohar
Дима
ну и что?
Как разбухнет до 200 строчек так вернёмся к этому разговору
Дима
Количество утилит в проекте может быть очень большим
Dreamerinnoise
ну есть и по 200 строчек
Dreamerinnoise
и что?
Vladimir
200 строчек? да это две недели работы!
Дима
Я не понимаю, зачем поддерживать то, что можно не поддерживать
Dreamerinnoise
это так трудно!
Дима
Жизнь слишком коротка, чтобы тратить её на arrify в каждом проекте
Ohar
Дима
Ohar
Фатальный недостаток и всё такое
Vladimir
Сорри, но кажется, что люди, которые тратят время на поиск arrify и подобного по npm просто неэффективны
Vladimir
Откуда вы вообще про это говно знаете?
Ohar
Vladimir
Нет, серьезный вопрос - откуда вы знает про arrify?