Size: a a a

2020 July 14

С

Славик in pro.js
ох уж
источник

С

Славик in pro.js
включаешь во мне токсичность на ровном месте
источник

С

Славик in pro.js
ща посмотрим, с чего всё начиналось
источник

С

Славик in pro.js
Dmitry Kazakov
кто за чистоту кода, чтобы вместо такого (из кодпена про шарики чуть выше)

let colorGenerator = () => {
   let nums = "0123456789ABCDEF";
   let color = "#";
   for (let i = 0; i < 6; i++) {
       color += nums[Math.floor(Math.random() * 16)];
   }
   return color;
};

console.log(colorGenerator());


писать что-то более читабельное и семантичное типа

function shuffleStr(str) {
   return str.split('').sort(() => Math.random() > 0.5 ? 1 : -1).join('');
}

const COLOR_TYPES = { HEX: 'HEX', RGB: 'RGB', HSLA: 'HSLA' };

function generateColor(colorType = COLOR_TYPES.HEX) {
   if (colorType === COLOR_TYPES.HEX) {
       const hexPrefix = '#';
       const hexSymbols = '0123456789ABCDEF';
       const randomHex = shuffleStr(hexSymbols).substr(0, 6);

       return hexPrefix + randomHex;
   }
   
   throw new Error(`colorType ${colorType} is not supported`);
}

console.log(generateColor(COLOR_TYPES.HEX));
тут со своим рефакторингом ты испортил изначальный код
источник

С

Славик in pro.js
в твоем hex коде все символы уникальны будут
источник

DK

Dmitry Kazakov in pro.js
да, дублироваться символы хекса не будут
источник

L

Lupusregina[beta] in pro.js
Dmitry Kazakov
если непонятно, что она возвращает, и приходится читать реализацию, в которой чорт ногу сломит, то испортит. В идеале название функции + внешний интерфейс (параметры вызова) должны давать достаточную информацию и без использования типизации. getRandHex() в этом отношении намного хуже, чем, например, getRandomCssColor({ type: COLOR_TYPES.HEX }) - при рефакторинге своего решения пришел бы к такой схеме. Все же читабельность намного важнее перфоманса, на фронте нечасто бывают сложные вычисления
источник

С

Славик in pro.js
для решения первоначальной задачи я в codepen не вижу вообще надобности в RGB и RGBA
источник

С

Славик in pro.js
ты решил, что ему это может пригодиться, поэтому запилил задатки, но не сделал реализацию? тогда нафига твой лишний код нужен?
источник

DK

Dmitry Kazakov in pro.js
это называется не лишний, а расширяемый)
источник

С

Славик in pro.js
еще круче, когда в реальном проекте фигачат ненужную реализацию и не тестируют и следующие разработчики берутся использовать методы, не подозревая о том, что они вообще не работают
источник

С

Славик in pro.js
он и так расширяемый
источник

С

Славик in pro.js
и более того он и так читаемый
источник

С

Славик in pro.js
ты влез со своим рефакторингом, по факту испортил изначальный алгоритм и потратил время разработчиков на холивар, который нафиг никому не сдался кроме тебя
источник

С

Славик in pro.js
будь мы в одной команде, ты бы уже отжимался за то, что отвлек меня не по делу и еще за тобой прибирать пришлось
источник

KB

Konstantins Bogdanov... in pro.js
источник

DK

Dmitry Kazakov in pro.js
мощно)
источник

С

Славик in pro.js
я поделился с тобой моим подходом к делу, ты поделился своим - обменялись опытами и славно
источник

С

Славик in pro.js
я буду рад с тобой не столкнуться на одном проекте
источник

С

Славик in pro.js
и также буду рад прекратить этот беспонтовый холивар этим сообщением
источник