Бред

Ответить в тред Ответить в тред
Аноним 04/12/20 Птн 08:10:09 2346226401
image.png 9Кб, 340x225
340x225
image.png 14Кб, 280x448
280x448
image.png 13Кб, 371x303
371x303
image.png 753Кб, 528x728
528x728
Пришло время расставить точки на i. Какой код в репу запушишь, какой на рефакторинг отправишь?
Аноним 04/12/20 Птн 08:12:16 2346226882
Аноним 04/12/20 Птн 08:18:39 2346228893
>>234622688
Но ведь он самый медленный. getQux() вычисляет вес твоей мамки, и там тонны матана с использованием длинной арифметики. Даже при том, что нужно это далеко не всегда.
Аноним 04/12/20 Птн 08:21:35 2346229724
>>234622889
Ну пиши на эсемблере, любитель скорости ты наш.
Главное, что при взгляде на него мгновенно понятно, что происходит.
Аноним 04/12/20 Птн 08:23:12 2346230235
>>234622972
В первом еще проблема может быть, если любая из переменных 0.
Аноним 04/12/20 Птн 08:23:22 2346230306
If (getFoo() && getBar() && getBaz() && getQux())
/Тред
Аноним 04/12/20 Птн 08:23:53 2346230377
>>234623023
Хотя это в любом и вариантов на самом деле...
Аноним 04/12/20 Птн 08:24:56 2346230808
>>234623037
Какая нахуй проблема? Ну ноль и ноль. Видимо там три варианта: + 0 -
Аноним 04/12/20 Птн 08:25:22 2346230979
>>234623030
Нужно выбрать из сортов говна
Аноним 04/12/20 Птн 08:25:58 23462311810
Аноним 04/12/20 Птн 08:29:05 23462320611
image.png 8Кб, 569x145
569x145
>>234623030
А дальше?
Пикрил еще хуже чем первый вариант - ты всё считаешь по два раза. Сразу в return нельзя, нам нужно получить -1 если в одной из переменных ноль.

>>234623023
В случае если где-то нуль функция должна вернуть -1, очевидно же.
Аноним 04/12/20 Птн 08:31:04 23462327012
>>234623030
Долбоёб не может в нормальный код
Аноним 04/12/20 Птн 08:34:45 23462336613
>>234622640 (OP)
Это че за петушиный недоязык? Жава поди какая-нибудь проткнутая? На нем любой код хуйня обоссаная априори.
Аноним 04/12/20 Птн 08:35:01 23462337314
>>234622972
На нем и пишу, зато я инженер, а не говно которое: "за месяц с нуля до мидлл пайтон программист"
Аноним 04/12/20 Птн 08:36:06 23462341015
>>234623206
>В случае если где-то нуль функция должна вернуть -1, очевидно же.
Тогда первый. Только я б реверснул логику

var foo = getFoo();
...

if (!foo || !bar || !baz || !qux) {
return -1;
}

return foo bar baz * qux;


Но, впрочем, если функции получения объектов долгие, да стоит делать второй вариант.
Аноним 04/12/20 Птн 08:36:41 23462342516
>>234622640 (OP)
Определённо не третий. потому что это пиздец.

Второй от первого ещё отличается ранним выходом из метода при определённых условиях. Где-то это критически важно, где-то это избыточно. Если по перфомансу тут не ударит, то так лучше не делать. Ещё компилятор может заоптимизировать, но это уже совсем неосязаемые материи какие-то, чтобы о них дискутировать.

Первый пушить, но потом ещё джуна кадо будет научить адекватные ошибки возвращать.
Аноним 04/12/20 Птн 08:40:10 23462351717
16068847324250.png 200Кб, 500x498
500x498
>>234623425
>JS
>компилятор
Обосрался в голос нахуй с этого маняпрограммиста
Аноним 04/12/20 Птн 08:40:23 23462352318
>>234623410
> Только я б реверснул логику
А зачем? && точно так же не пойдет проверять дальше, если сразу выхватит false.
Возможно твой вариант даже медленней на пару наносекунд, т.к. ты ! добавляешь, лишняя операция.
Аноним 04/12/20 Птн 08:41:03 23462354719
>>234622640 (OP)
let funcs = [foo, far, baz, qux]
let p = 1

while (funcs.length) {
p *= funcs.pop()()

if (q == 0) {
return -1
}
}

return p


я победил?
Аноним 04/12/20 Птн 08:41:18 23462355120
>>234622972
Зумерское говно вроде тебя начало вкатываться в кодинг и теперь мой старый айпад 4 еле еле порн хаб грузит. Иди на завод лучше а
Аноним 04/12/20 Птн 08:41:20 23462355421
Аноним 04/12/20 Птн 08:42:05 23462357422
>>234623547
хотя с .pop перебор, нужно просто итерацию сделать..
Аноним 04/12/20 Птн 08:44:12 23462363123
>>234623517
Я даже не посмотрел, что за язык, если честно. Думаю, для иллюстрации это не имеет значение. Я на своём C# точно то же напишу, символ в символ, но объявление метода функции другим будет.

Но если уж и правда в вопросе JS, то определённо брать первый вариант.
Аноним 04/12/20 Птн 08:44:13 23462363324
>>234623410
Ага, я не спорю, но я не байтоёб, тики проца не важны на своременных железкахз. Я только с точки зрения удобочитаемости смотрю. И мне удобнее смотреть в конец метода чтобы посмотреть, что функция должна вернуть, а в середине я увижу все отсекающие условия.
Аноним 04/12/20 Птн 08:44:55 23462365725
Аноним 04/12/20 Птн 08:45:48 23462368526
Аноним 04/12/20 Птн 08:45:54 23462369227
Аноним 04/12/20 Птн 08:46:46 23462372428
>>234623657
Интерпретирует только то, что не может скомпилировать на лету в байткод. Что может - компилирует.
Аноним 04/12/20 Птн 08:47:09 23462373529
>>234623657
Там есть оптимизирующий компилятор, ты наступил в жидкое.
Аноним 04/12/20 Птн 08:47:43 23462375430
const operations = [ getFoo, getBar, getBaz, getQux ];
const { error, data } = operations.reduce(({ error, data }, operation) => {
if (error) {
return { error }
}
const result = operation();

return result ? { data: result } : { error: true };
}, {});

return error ? -1 : data;
Аноним 04/12/20 Птн 08:51:23 23462387631
>>234622640 (OP)
function slow() {
const supDvach = getFoo() getBar() getBaz() * getQux();
return supDvach || -1;
}
Аноним 04/12/20 Птн 08:52:11 23462391632
1489202041027.png 11Кб, 638x184
638x184
Аноним 04/12/20 Птн 08:53:38 23462397833
>>234622640 (OP)
function slow(){
return getFoo()getBar()getBaz()*getQux();
}

Но ведь так еще лучше, разве нет?
Аноним 04/12/20 Птн 08:54:23 23462401034
Аноним 04/12/20 Птн 08:55:15 23462405435
>>234623978
Это может вернуть NaN, а ему вроде как надо если там не числовые (ну или вообще не трушные) значения возвратить -1.
Аноним 04/12/20 Птн 08:58:07 23462416136
>>234622640 (OP)
0й вариант, эту хуету v8 разъебет что-то типа варианта 1 или 2.
А читаемость кода сейчас гораздо важней чем все эти скорости хуерости.
Хотя, к слову, кто тут топит за скорость, это блять javascript, вы бы еще на basic или php пример привели каких-то мат. вычислений. Там где нужна скорость современные хипстеры юзают Go или Rust, ну кое-кто альтернативно одаренный D, старики C++, ну а глянцевые яблочники будут топить за swift-о парашу.
Кто-то из девопсов скажет что это все хуйня и это можно напетлять на питоне или руби и будет также быстро ебашить как компилированное, но правда в том что кого ебет какой язык ты юзаешь, решил проблему, денежку получил покрупнее и побыстрее - и заебись, а все тех. долги уплатят пользователи конечные и компании которые крутят железо

Что-то меня вообще не туда понесло, ну, я просто оставлю эту шизу здесь

Аноним 04/12/20 Птн 08:59:08 23462421437
Что делает эта программа? Умножает друг на друга 4 числа? Вы совсем ебанутые это обсуждать?
Аноним 04/12/20 Птн 09:00:54 23462428838
>>234624161
>А читаемость кода сейчас гораздо важней чем все эти скорости хуерости.
Это так, потому что большая часть кода однохуйственно транспилируется бабелем.
Аноним 04/12/20 Птн 09:02:15 23462434739
>>234624054
>ему вроде как надо
На самом деле деле тред навеян выбором между 2 и 3 вариантом, т.к. в реальной задаче оно выглядит скорей так getQux(getBaz(getBar(getFoo()))), и все нужно проверить на трушность прежде чем тащить дальше. Так что варианты вроде >>234623916 не очень применимы, несмотря на элегантность. Ну да хуй с ним - так зато тред живей получился.
Аноним 04/12/20 Птн 09:04:02 23462441740
>>234623754
Мля, забыл умножение и, в следствие, data: 1 при инициализации редюсера. Но, думаю, и так ясно. Тот-же вариант, но с лодашем и более упорото:

const wrapper = operation => previousResult => {
const { error, data: previousData } = previousResult;
if (error) {
return { error };
}
const value = operation();

return value ? { data : previousData*value, error: true };
};
const { error, data }= _.flow([ getFoo, getBar, getBaz, getQux ].map(execute))({ data : 1});

return error ? -1 : data;
Аноним 04/12/20 Птн 09:05:33 23462448141
>>234624347
>в реальной задаче оно выглядит скорей так getQux(getBaz(getBar(getFoo())))
Если кто-то в реальной задаче такую ебанину напишет - его выпнут нахуй в тот же день.
Аноним 04/12/20 Птн 09:05:50 23462449542
>>234624417
return value ? { data : previousData*value } : { error: true };

hotfix
Аноним 04/12/20 Птн 09:06:04 23462450343
>>234622889
Ой, типичные рассуждения джунов о скорости. Скорее всего тебя никто не просит писать код, чтобы экономить милисекунды а ждут читаемый и понятный код.
Вторый и третьй вариант - пиздец, кровь из глаз.
Аноним 04/12/20 Птн 09:07:15 23462454544
>>234624214
ОП интересуется на что дрочить, на читаемость или на "скорость".
Хотя как вариант, я бы предложил вариант где какая-нибудь срань делается вроде обхода 10k елементов DOM и обновляются их коррдинаты, и варианты где используются разные сахарные либы типа jQuery - они здорово сокрощают код, но как заметил один из двачеров - ipad v4 уже не берет без лагов порнхаб хотя я вангуют это связано больше с тем что там прелоадится хуева туча превью параллельно, а еще очень сложный трекинг который по дрожанию курсора может посчитать пульс твоего ануса.
Аноним 04/12/20 Птн 09:07:48 23462457245
>>234624503
Два чаю. Основная ошибка джуна - экономия на спичках
Аноним 04/12/20 Птн 09:09:05 23462462246
>>234624347
Вообще, если считать число ветвлений и тд, все три хуйни неоптимальны. А то, что ты написал, совсем чушь, если опираться на условия оп-поста
Аноним 04/12/20 Птн 09:09:55 23462466147
image.png 16Кб, 279x442
279x442
>>234624481
Смысл в том, что в каждый следующий вызов нужно прокидывать результат предыдущего. А не та ебанина буква в букву. Что-то вроде пикрила.
Аноним 04/12/20 Птн 09:10:45 23462469948
>>234624417
IMHO, это даже более болезненно выглядит чем любой из оригинальных примеров, если есть операция которую не нужно заворачивать во все эти ебучие врапперы, то лучше линейно ее посчитать, хотя твое решение отлично сработает в условиях когда нельзя блочить main-thread.
Аноним 04/12/20 Птн 09:11:05 23462471349
1. Пишешь самый простой, читабельный вариант
2. Сдаешь клиенту
3а. Он говорит: мне норм. -> ПРОФИТ
3б: Он говорит: медленно
4. Оптимизируешь код, стараясь все же не писать совсем сранину
5. Профит
Аноним 04/12/20 Птн 09:12:27 23462476650
>>234624622
То что я описал прекрасно вписывается в варианты два и три. См. >>234624661.
Первый вариант был больше для лулзов. И я очень разочарован что выбирают в основном его. Сраные быдлокодеры, из за который я не могу на своём MMX166 двачи скролить.
Аноним 04/12/20 Птн 09:12:37 23462477851
>>234624481
Я единственный разраб в конторе, и временами я так пишу.
Получаю заебись денег.
Аноним 04/12/20 Птн 09:13:30 23462481552
>>234624661
Смысл в том, чтобы писать читаемый код. Вот эта конструкция это просто пиздец getQux(getBaz(getBar(getFoo()))).
Аноним 04/12/20 Птн 09:14:09 23462484153
>>234624778
>Я единственный разраб в конторе
Тебя только это и спасает, братюнь.
Аноним 04/12/20 Птн 09:14:26 23462485954
>>234624766
>MMX166
Дядя, ну отруби JS, картинки и CSS или вруби какой-нибудь консольный браузер, и будет все заебись летать.
Аноним 04/12/20 Птн 09:14:43 23462486955
>>234624699
Ну это так, упороться. А если точнее, это универсальный вариант когда количество операций неизвестно. У ОПа 4 операции - второй вариант заебись.
Аноним 04/12/20 Птн 09:14:45 23462487256
Аноним 04/12/20 Птн 09:16:42 23462496957
>>234624417
еxecute -> wrapper

hotfix2, переименовал
Аноним 04/12/20 Птн 09:17:29 23462499758
>>234624869
Хотел уже спиздануть, где это пример на неизвестное количество операций, а потом вспомнил всякие графы для обработки видеотракта в веб-интерфейсах...
Аноним 04/12/20 Птн 09:18:23 23462502759
>>234624347
> все нужно проверить на трушность прежде чем тащить дальше
> Так что варианты вроде >>234623916 не очень применимы
Как раз-таки применимы. Если прилетит любое не трушное значение в одной из функций, типа NaN или 0, или undefined, вернется -1.
Аноним 04/12/20 Птн 09:18:57 23462505260
>>234622640 (OP)
var value = getFoo() getBar() getBaz() * getQux;
return (value ? value : -1);


Но на самом деле первый. Если критический участок и после замеров второй вариант действительно makes difference, то второй (но это манясценарий).
Аноним 04/12/20 Птн 09:19:27 23462507161
>>234624815
о мистер программист великий, идите картинку на сайт загрузите. 3 вложенных функции не читаемые ммм, веб макаки вы тут совсем ебанулсь?
Аноним 04/12/20 Птн 09:19:38 23462507862
>>234625052
Макаба съела два умножения, но выпонели.
Аноним 04/12/20 Птн 09:19:42 23462508763
>>234624766
Во-первых, в твоей хуйне нету проверок, во-вторых, передача числового значения, которой не было в оп-условиях. Ты чего, охуiв?
Аноним 04/12/20 Птн 09:21:23 23462516464
>>234624503
Меня по молодости отучали от использования словарей и множеств для быстрых лукапов, все свои маняоптимизации на операции квадратичной сложности переписывал. В бизнес-логике действительно не место вообще любым оптимизациям, один хуй в микросервисной залупе процессор 95% времени перемалывает JSON'ы между микросервисами.
Аноним 04/12/20 Птн 09:22:33 23462522165
>>234622640 (OP)
Все хуйня. Если функции возвращают смешанный тип данных, то falsy-проверка не подойдет, потому что 0 ее провалит. Если только числа, то умножение и так даст 0 и можно обойтись || -1 в конце. Скорее всего это можно свести до изящного однострочника. Алсо, какой нахуй var в 2к20?
Аноним 04/12/20 Птн 09:23:29 23462525966
>>234624766
А ты замерял реальную разницу в производительности до и после? Это классическая болезнь новичков - пытаться везде все оптимизировать, не померяв. А потом оказывается время въебано, быстрее не стало, а читать ебанешься.
Аноним 04/12/20 Птн 09:24:09 23462528967
>>234625221
>какой нахуй var в 2к20
Может ты еще и массивы forEach'ем крутишь, хипстерок?
Аноним 04/12/20 Птн 09:26:31 23462538968
>>234625289
а ты их циклом крутишь? Совсем обдвачевался? Для тебя map, filter, reduce, find, every, some, flatMap придумали
Аноним 04/12/20 Птн 09:27:18 23462542369
>>234625389
Нахуй они нужны, лишний раз стек продрочить?
Аноним 04/12/20 Птн 09:28:24 23462546870
Аноним 04/12/20 Птн 09:28:55 23462549771
>>234622640 (OP)
1 хорошо читаем.
2 и 3 оптимальны.

2 более опрятно выглядит, чем 3.

Так что 2.
Аноним 04/12/20 Птн 09:30:24 23462555272
Последний самый норм
Аноним 04/12/20 Птн 09:30:51 23462556473
>>234625497
Славик, иди принтер настрой стажёр_ке.
Аноним 04/12/20 Птн 09:31:35 23462558974
>>234622640 (OP)
Я не погромист, но второй выглядит более правильным.
Аноним 04/12/20 Птн 09:31:38 23462559375
>>234625423
Чтоб читабельность нормальной была. На твои микрооптимизации всем насрать
Аноним 04/12/20 Птн 09:34:17 23462570976
>>234625593
Всем насрать на твою читаемость, тебе платят за то чтоб софт работал быстро.
И когда появится конкурент который не поленится заморочится с микрооптимизациями - ты пойдешь дворы мести на морозе.
Аноним 04/12/20 Птн 09:35:03 23462574277
>>234625709
> тебе платят за то чтоб софт работал быстро
Лолшто. Иди работу ищи, студент.
Аноним 04/12/20 Птн 09:35:36 23462576078
image.png 5Кб, 435x128
435x128
>>234622640 (OP)
гений в треде, задавайте ответы у функций же нет побочных эффектов?
Аноним 04/12/20 Птн 09:36:59 23462581079
>>234625709
Ты же не работал никогда, лол.
Аноним 04/12/20 Птн 09:37:20 23462582180
>>234625760
Исключения не отлавливаещь, пидор, к тимлиду в долбильню пройди после смены.
Аноним 04/12/20 Птн 09:37:47 23462583881
>>234623023
Так если там ноль, то по условию он просто -1 вернёт. Ведь так?
Аноним 04/12/20 Птн 09:38:29 23462587682
>>234625709
> чтоб софт работал быстро
Это отдельный таск.

А вообще, мы о js. Какая скорость? Боишься стек лишний раз дернуть? Замерь как-нибудь разницу в подходах и погляди насколько она заметна по сравнению с другими инфраструктурными расходами в твоем проекте
Аноним 04/12/20 Птн 09:38:46 23462588183
>>234622640 (OP)
Первый нормальный, но я бы сделал единственный возврат.
Второй плох хотя бы множественными возвратами.
Третий вообще ужесен из-за вложенности условий.
А то что он медленный - мне вообще похуй.
мимо тимлид ява-котлин
Аноним 04/12/20 Птн 09:40:14 23462594584
>>234625709
Допустим мой код выполняется за 5 мс в пике, а у оптимизатора за 0.05. Разница в сто раз, но никто это не замечает, потому что фрейм все равно 16.6.

Только вот первый код легко писать, расширять и поддерживать, а во второй мало того что писался в два раза дольше, так еще и поддерживать никто не сможет кроме автора.
Аноним 04/12/20 Птн 09:40:29 23462595585
>>234625881
Множественные возврат не большое зло. Чем меньше табуляций - проще читать, имхо
Аноним 04/12/20 Птн 09:41:53 23462600686
>>234625881
В первом легко сделать один возврат, просто автор не знает про тернарники.
Аноним 04/12/20 Птн 09:42:54 23462605087
>>234625881
Но ты ведь не знаешь че там в функциях проворачивается, пидор! Если каждая из них какой-нибудь фрактал возвращает, то эти массовые возвраты съедят ресурсы тупо. Вас пидоров в жопу ебать надо на красной площади, чтоб мозги включали хоть иногда!
Аноним 04/12/20 Птн 09:42:54 23462605288
>>234625876
>А вообще, мы о js. Какая скорость?
В современном мира в тормозящий пекарнях чаще всего виноват именно жс(ну и игори, конечно), как ни странно. На беке-то хуле - будет нужно, раздробят на микросервисы, и растащат по инстансам. А фронт так и продолжит нагибать машины пользователей.
Аноним 04/12/20 Птн 09:43:35 23462607889
>>234625955
В js можно так написать?
............if (!foo) return -1;
Аноним 04/12/20 Птн 09:44:23 23462612190
>>234626078
Можно. Только однострочные ифы не пиши никогда, ни в каком языке
Аноним 04/12/20 Птн 09:45:33 23462615691
>>234626006
Сделал тернарку тебе в клюв. Вот как нужно

result = -1
if(condition){
result = doSomething()
}
return result

>>234626050
Да мне похуй что там в функциях.
Аноним 04/12/20 Птн 09:46:45 23462621192
>>234625945
Практика иногда показывает обратное. Гугл потому и победил в войне браузеров, что понабрал олимпиадников, и своими микроптимизациями(эк чо удумали, жс на лету оптимизировать) нагнул все остальные браузеры по производительности.
И не надо про навязчивое впаривание. Это тоже фактор, но не критичный. Яндекс браузер вон соснул, хотя и пытался лезть везде где может.
Аноним 04/12/20 Птн 09:49:10 23462632893
>>234626211
И да, разбабы лисы в результате пошли на мороз. Их активно сокращают...
Аноним 04/12/20 Птн 09:49:27 23462634394
Аноним 04/12/20 Птн 09:51:38 23462645595
Аноним 04/12/20 Птн 09:51:59 23462647796
>>234626211
Хуй с пальцем сравнил. V8 гипероптимизировали потому, что видели, что веб усложняется и ему эти оптимизации критически важны. Это было серьёзное инфраструктурное улучшение, а не микрооптимизация в приватном методе.
Аноним 04/12/20 Птн 09:52:33 23462649497
>>234622889
> Но ведь он самый медленный. getQux() вычисляет вес твоей мамки, и там тонны матана с использованием длинной арифметики
На жс, да, лол?
Аноним 04/12/20 Птн 09:52:36 23462650198
image.png 1504Кб, 1000x758
1000x758
Аноним 04/12/20 Птн 09:56:28 23462667399
>>234626494
А что тебе смущает? В жс нередко используется длинная арифметика, есть куча либ для этого. Да даже целый жанр браузерок только на ней и живущих есть - idle\clicker\incremental, дробящие цифры с сотнями нулей.
Аноним 04/12/20 Птн 10:02:24 234626951100
image.png 10Кб, 360x170
360x170
Аноним 04/12/20 Птн 10:03:12 234626987101
>>234622640 (OP)
function good_n_fast() { return (getfoo() && getbar() && getbaz() && getqux() ) * -1; }
Аноним 04/12/20 Птн 10:03:34 234627005102
Аноним 04/12/20 Птн 10:03:47 234627018103
>>234626951
А ты хорош. Но не читаемо.
Аноним 04/12/20 Птн 10:04:14 234627036104
>>234626156
Да тебе пидору все похуй, а потом выпускаешь хуевый софт.
Аноним 04/12/20 Птн 10:04:28 234627050105
Аноним 04/12/20 Птн 10:05:06 234627076106
Аноним 04/12/20 Птн 10:05:45 234627113107
>>234627050
Ну, не то чтоб нечитаемо, но нужно потратить пару секунд чтоб понять что происходит. Все остальные варианты пробегаются галазами не включая мозг.
Аноним 04/12/20 Птн 10:07:01 234627185108
>>234627113
Кек, вы только поглядите, маньке сложно включать мозг. Иди улицы подметать, если мозговине хватает!
Аноним 04/12/20 Птн 10:09:11 234627301109
>>234627185
А зачем? Нет, и ничего не имею против когда нужно включить мозг и понять какую-то полезную микрооптимизацию. Но тут не тот кейс. Ты сократил функцию, и теперь она работает точно так же, но читать её на пару секунд дольше. В чём смысл?
Аноним 04/12/20 Птн 10:10:12 234627350110
image.png 9Кб, 459x150
459x150
Аноним 04/12/20 Птн 10:14:04 234627529111
>>234627036
Глупо было бы это отрицать.
Аноним 04/12/20 Птн 10:21:41 234627871112
>>234627076
очень надеюсь, что ты диванный и твоего кода в проде нет
Аноним 04/12/20 Птн 10:31:44 234628335113
Аноним 04/12/20 Птн 10:37:53 234628641114
>>234622640 (OP)
Нужно все в WebAssembly обернуть и запускать в воркере.
Аноним 04/12/20 Птн 10:38:03 234628652115
>>234622640 (OP)
Офк третий он же идеально совмещает компактность и остается оптимизированным. Я бы еще больше его сократил типо if (var foo = getFoo()) хз как в JS можно так или нет.
Аноним 04/12/20 Птн 10:43:08 234628926116
Аноним 04/12/20 Птн 10:43:50 234628969117
image.png 6Кб, 405x134
405x134
Аноним 04/12/20 Птн 10:43:56 234628977118
>>234622640 (OP)
Если в getxxx() происходят какие-то тяжёлые операции, то третий вариант оптимальный по скорости, и следует использовать его. На множественные ретурны пох, пока метод влазит в один экран, а клиенту вообще по барабану как там код выглядит.

Лично мне больше нравится вот такой подход с ленивыми вычислениями >>234623547, если язык позволяет такие конструкции
Аноним 04/12/20 Птн 10:45:12 234629037119
image.png 91Кб, 800x1237
800x1237
Аноним 04/12/20 Птн 10:47:46 234629160120
image.png 7Кб, 441x196
441x196
Аноним 04/12/20 Птн 10:50:49 234629313121
>>234629160
for of самый медленный цикл в истории человечества.
Аноним 04/12/20 Птн 10:54:44 234629511122
Аноним 04/12/20 Птн 10:56:28 234629600123
>>234622889
Если у тебя где-то жирное вычисление, то ты не туда воюешь. Ты должен сделать для него адаптер с лейзи-лоадом, а не надеяться на то, что все знают что можно дергать а что нельзя.
Аноним 04/12/20 Птн 11:08:48 234630312124
>>234628969
а одним reduce никак не обойтись? че-то типа:
return [getFoo, getBar, getBaz, getQux].reduce(acc, curr => { let x = curr(); return x ? acc ⋅ x : -1; });
хз, js не знаю
Аноним 04/12/20 Птн 11:10:52 234630415125
Аноним 04/12/20 Птн 11:30:12 234631465126
>>234622640 (OP)
Все три варианта выглядят как говно. И почему просто нельзя сделать?
return getFoo() && getBar() && getBaz() && getQux()
Аноним 04/12/20 Птн 11:41:15 234632032127
image.png 14Кб, 280x448
280x448
Джунов полон тред итт
Аноним 04/12/20 Птн 11:51:00 234632549128
>>234628335
Приводит к глупым ошибкам. Выигрыш от того, что ты две скобки убрал минимальный, а опечатку сделать легко:

if (a) sraka = ochenBolshayaYoba();

Кто-то переформатировал длиннкю строку
if (a)
sraka = ochenBolshayaYoba()

Потом пришел другой и добавил логики не вникая:

if (a)
sraka = ochenBolshayaYoba()
yoba = sraka + 9000;
return yoba;

Ну и отлаживай это говно потом. Пример надуманный и примитивный - в реальности может быть намного более неочевидно
Аноним 04/12/20 Птн 11:51:18 234632563129
>>234631465
Как у тебя функция будет возвращать произведение?
Аноним 04/12/20 Птн 11:53:27 234632672130
Аноним 04/12/20 Птн 11:55:39 234632782131
>>234622889
Ну если lazy eval, то скорость такая же.
Если компилится, то будет оптимизировано.
Ну и читаемость в сотни раз лучше.
Аноним 04/12/20 Птн 12:00:06 234633006132
>>234622640 (OP)
>>234623030

return (getFoo() && getBar() && getBaz() && getQux()) || -1

Вы на хуй такие аутисты то?
Аноним 04/12/20 Птн 12:08:39 234633434133
>>234625821
Исключения в Си? Ты больной бля?
Аноним 04/12/20 Птн 12:10:09 234633508134
>>234633006
Произведение надо, аутист
Аноним 04/12/20 Птн 12:10:22 234633522135
Аноним 04/12/20 Птн 12:12:40 234633659136
>>234622640 (OP)
Сука, как же заебали уёбки, не соблюдающие микропаттерн no-else-return и пишут бля:
if <clause> {
return x;
else {
return y;
}

УЁБКИ СУКА ЕБАНУТО-ГОВНО-ПИДОРСКИЕ, НАХУЙ ВЫ ЭТОТ ELSE ОСТАВЛЯЕТЕ, МУДЕНИ, НЕ ДЕЛАЙТЕ ТАК ГОНДОНЫ СУКА ЁБАНЫЕ, Я ВАС НАЙДУ И ОБОССУ
Аноним 04/12/20 Птн 12:14:49 234633762137
>>234633659
А как делать, дебил?
if (кондишн) {
return x;
}
return y;

Аноним 04/12/20 Птн 12:14:54 234633773138
Аноним 04/12/20 Птн 12:15:26 234633802139
>>234622640 (OP)
если строго выбирать, то взял бы второе - читается легче чем первое и нет проблем с лишними вычислениями.

сам бы написал через список из функций и reduce с проверкой на ноль
Аноним 04/12/20 Птн 12:16:10 234633834140
>>234633762
Да, делать так. Если делаешь по другому — это в тебе быдлокодерка выдаёт.
Аноним 04/12/20 Птн 12:16:17 234633840141
Аноним 04/12/20 Птн 12:16:39 234633858142
>>234633834
А у него там несколько if
Аноним 04/12/20 Птн 12:17:59 234633927143
Screenshot from[...].png 62Кб, 451x530
451x530
Аноним 04/12/20 Птн 12:18:20 234633944144
>>234622640 (OP)
>return -1 при ошибке
Мы вам перезвоним
Аноним 04/12/20 Птн 12:18:44 234633969145
1607073523520.png 78Кб, 1023x637
1023x637
Я победил?
Аноним 04/12/20 Птн 12:19:02 234633986146
>>234622640 (OP)
3-й на рефакторинг отправлю, на 1 и 2 тестировщиков посажу.
Аноним 04/12/20 Птн 12:20:42 234634095147
Аноним 04/12/20 Птн 12:21:07 234634117148
Аноним 04/12/20 Птн 12:22:16 234634187149
>>234633969
надо вот так делать
eval(atob("dmFsdWUgPSBnZXQ=") + name + atob("();"))
04/12/20 Птн 12:22:31 234634203150
image 2217Кб, 251x240
251x240
>>234622640 (OP)
В третьем ебовая вложенность.
Первый выглядит чище, второй - оптимальнее.
Аноним 04/12/20 Птн 12:22:52 234634227151
>>234634187
проебался
eval(btoa("value = get") + " " + btoa("KCk7"))
Аноним 04/12/20 Птн 12:26:02 234634440152
>>234633858
Ты ебанутый? Не занимайся программированием вообще.

if (...) {
return x
}
if (...) {
return y
}
return -1
Аноним 04/12/20 Птн 12:28:27 234634588153
>>234633927

А как же коты????

(getFoo, getBar, getBaz, getQux).mapN(_ _ _ * _).getOrElse(-1)
Аноним 04/12/20 Птн 12:34:24 234634943154
>>234634187
>>234634227
Не, это никак не помогает. А у меня — помогает поочерёдно вызвать функции не снимая свитер не повторяя аналогичные участки кода.
Аноним 04/12/20 Птн 12:35:41 234635032155
>>234622640 (OP)
Перепишу на человеческий C-style код, очевидно же:

function crocks() {
object foo, bar, baz, qux;
if(foo = getFoo() && bar= getBar() && baz= getBaz() && qux= getQux()) {
return foobarbaz*qux;
}
return -1;
}

P.S.: Что ты в SharpDevelop делаешь в 2020 году?
Аноним 04/12/20 Птн 12:39:16 234635249156
Аноним 04/12/20 Птн 12:39:31 234635263157
>>234634588
Коты не идиоматические.
В жябаскрипт тоже можно принести чего-нибудь в духе.
Аноним 04/12/20 Птн 12:39:51 234635285158
>>234632549
Хуйня полная из хуя высосаная. Сокращения ваще и придуманы чтобы упростить читаемочть кода. Кодишь как пидор - соси жопу.
Аноним 04/12/20 Птн 12:40:43 234635346159
>>234633969
П. С.
result лишний, так и не использовал, так что зря объявлял.
Аноним 04/12/20 Птн 12:41:28 234635392160
>>234635285
> чтобы упростить читаемочть кода
Но получается наоборот.
Аноним 04/12/20 Птн 12:43:59 234635541161
>>234633434
У тебя из кода не понятно, может это сишарп. Синатксис однохуйственный. Так что ты пидор получается.
Аноним 04/12/20 Птн 12:45:35 234635632162
>>234635392
У тупых пидоров получается наоборот. У нормальных людей все получается как надо.
Аноним 04/12/20 Птн 12:46:38 234635689163
>>234635285
>>234635632
>Миллионы умных людей понимают, что они люди, и пытаются спасти код от самих себя.
>Мамкина радость пытается играть в непогрешимых профессионалов.
Аноним 04/12/20 Птн 12:51:03 234635943164
>>234622640 (OP)
I don't speak cyka blyat but
accept slow
refactor tall
trash ugly

Speed doesn't matter here.
Аноним 04/12/20 Птн 12:58:11 234636403165
do
foo <- getFoo
bar <- getBar
baz <- getBaz
qux <- getQux
return foobarbaz*qux

Потому что на нормальных языках писать надо
Аноним 04/12/20 Птн 12:58:49 234636442166
>>234636403
С разметкой подобосрался, но вы поняли наверное
Аноним 04/12/20 Птн 13:00:11 234636535167
>>234636403
Нормальные языки не возвращают 0?
Аноним 04/12/20 Птн 13:02:56 234636698168
>>234633659
Это я тебя обоссу, мудила. Выход из функции должен быть в конце. Бранчинг должен делаться средствами if else. А ты предлагаешь в return впихнуть и то, и то, ради экономии 5 символов. Пошел нахуй
Аноним 04/12/20 Птн 13:04:26 234636802169
>>234636535
Нормальные языки имеют Maybe/Optional для сообщения об отсутствии результата вместо -1 и монадные конструкции, которые позволяют спрятать эти проверки
Аноним 04/12/20 Птн 13:13:49 234637354170
>>234636802
А чего ты взял что getFoo() никогда не должен возвращать нуль? Это корректный результат, просто в данном контексте он не нужен.
Может тебе еще и Array.length должен эксепшоны кидать начать на пустом массиве? Вот тогда заживём!
Аноним 04/12/20 Птн 13:14:09 234637381171
image.png 26Кб, 1344x134
1344x134
А разве есть еще варианты?
Аноним 04/12/20 Птн 13:18:21 234637698172
>>234637354
> Array.length должен эксепшоны кидать начать на пустом массиве
Ноль же. А какой-нибудь arr.find(x) лучше пусть опшионал возвращает.
Аноним 04/12/20 Птн 13:20:18 234637824173
Аноним 04/12/20 Птн 13:23:08 234638018174
Напомните мне с каких пор жабаскрипт стал языком программирования?
Аноним 04/12/20 Птн 13:23:44 234638067175
image.png 20Кб, 884x162
884x162
>>234637824
даже если производительно не важна, первый код надо рефакторить, так нельзя пушить.

хотя бы так
Аноним 04/12/20 Птн 13:23:52 234638081176
>>234637698
>Ноль же
Ну вот если getFoo() вернёт ноль, то твой код сделает хуйню. Почему она его вернёт - тебя ебать вообще не должно. Может это обёртка вокруг Аrray.length. Если там нуль - то эта функция должна сфейлится, а не какая-то другая. Можно еще подискуссировать как именно она должна это сделать - вернуть null, -1, родить экспеншон, обернуть свой высер в опшионал, ватэвер. Но вот это >>234636403 говно тут в любом случае мимо кассы, т.к. не делает то, для чего эта функция вообще нужна - отловить тот сраный ноль.
Аноним 04/12/20 Птн 13:29:14 234638434177
>>234622640 (OP)

auto result = getFoo() ⚹ getBar() ⚹ GetBaz() ⚹ getQux()
return result ? result : -1


Аноним 04/12/20 Птн 13:30:07 234638488178
>>234635943
> Speed doesn't matter here.
And what if "get"-functions take a lot of time to process?
Аноним 04/12/20 Птн 13:31:16 234638567179
>>234638488
Тикет есть на проблемы с производительностью? Нет? Приходите когда тикет будет.
Аноним 04/12/20 Птн 13:32:53 234638683180
Аноним 04/12/20 Птн 13:33:55 234638747181
>>234638067
Кстати да, если есть if(int) что есть пиздец то лучше как то так да
Аноним 04/12/20 Птн 13:35:45 234638884182
>>234637381
Норм, но надо потратить на 5 сек больше, что бы разобраться в нём чем в обычных if'ах
Аноним 04/12/20 Птн 13:36:33 234638940183
Кстати в тайпскрипте можно писать if(int)?
Аноним 04/12/20 Птн 13:38:27 234639062184
>>234638940
Тайпскрипт для мартышек копипастящих код со стаковерфлов. Нормальным программистам не нужна искусственная(не помогающая компилятору) типизация, они и сами помнят что писали две строчки назад.
Аноним 04/12/20 Птн 13:39:55 234639161185
>>234639062
А если 2 месяца/года назад другим человеком?
Аноним 04/12/20 Птн 13:40:24 234639198186
Аноним 04/12/20 Птн 13:42:50 234639388187
>>234639198
В том, что код умещается в две строчки, а если пожертвовать читаемостью, то в одну?

Алсо забыл упомняуть, что без приведения кода гет-функций и их трудоёмкости вопрос ОП-поста имеет значение только лишь с эстетической точки зрения. Все эти "а что если гетХуй вычисляет твою мамку" - пустопорожние выдумки находу.
Аноним 04/12/20 Птн 13:42:56 234639400188
>>234639161
Значит прочти код, прежде чем начнешь его дописывать. Иначе тебя ждут куда более весёлые факапы чем проблемы с типизацией.

Да и с типизацией всё равно прочти, как иначе ты узнаешь что вообще возвращает функция?
Аноним 04/12/20 Птн 13:43:30 234639446189
>>234639400
То есть дело не только в компиляторе?
Аноним 04/12/20 Птн 13:44:22 234639506190
>>234639446
С чего ты такой вывод сделал?
Аноним 04/12/20 Птн 13:44:46 234639543191
>>234622640 (OP)
if ((foo = getFoo) && (bar = getBar()) && (baz = getBaz()) && (qux = getQux()))
return foobarbaz*qux;
else
return -1;

Неужели на вашем недо-языке нельзя так сделать?
Аноним 04/12/20 Птн 13:44:55 234639557192
>>234639388
Думал вопрос она именно в скорости (первая ф названа слоу не просто так ведь?)
Аноним 04/12/20 Птн 13:45:27 234639602193
>>234639388
Даже если он 1+1 вычисляет - нахуй ты туда лезешь, если тебе это не нужно?
Аноним 04/12/20 Птн 13:46:04 234639649194
>>234639543
Нельзя уродский огромный if сделать, да.
Аноним 04/12/20 Птн 13:46:55 234639699195
>>234639543
Нойс. Только нахуя else в конце не пойму. Например misra запрещает подобную хуету
Аноним 04/12/20 Птн 13:49:57 234639918196
>>234639400
Ну ясно лол. Тяжело жс макакам, им надо вникать в код чтобы понять какие типы возвращает метод. Заебись котлин господам
04/12/20 Птн 13:50:58 234639990197
Аноним 04/12/20 Птн 13:51:33 234640035198
>>234639918
Не тех ты макаками назвал, если в этом вашем котлине код хуячат не вникая в него.
Аноним 04/12/20 Птн 13:52:18 234640085199
carbon.png 137Кб, 1408x848
1408x848
>>234622640 (OP)
Всё говно ебанное. Var, function, стейтменты, двоеточия, когда давно ES6 на дворе. Ты долбоеб? Пиши нормальный код.
Аноним 04/12/20 Птн 13:52:30 234640099200
>>234639990
Двач на протяжении 200 постов пытается перемножить 4 числа. Много наших полегло.
Аноним 04/12/20 Птн 13:53:04 234640141201
>>234639557
>>234639602
Тогда каким образом была определена скорость выполнения функция?
В таком случае, если так важна скорость, где приведено сравнение трудоёмкости и скорости выполнения гет-функций для кода на втором и третьем скрине? Ведь от этого зависит порядок выставления иф-стейтменов по-отдельности или в ветвлении.


Аноним 04/12/20 Птн 13:54:01 234640222202
>>234640085
Ну и непонятное же говнище.
Аноним 04/12/20 Птн 13:54:42 234640276203
Cтоит ли учить ЖС? Или он только в вебе нужен?
Аноним 04/12/20 Птн 13:55:48 234640360204
>>234640141
Порядок поменять != перелопатить идею
Аноним 04/12/20 Птн 13:56:59 234640450205
>>234623206
>ты всё считаешь по два раза
Ну ты и ебалай, конечно.
Слышал что-нибудь про ленивую логику? А про компиляторную оптимизацию? Кэш, там, например?
Аноним 04/12/20 Птн 13:57:40 234640504206
>>234640141
>Тогда каким образом была определена скорость выполнения функция?
Она больше нуля. Даже если там function getFoo() { return 1; }, то всё равно нужно со стеком как минимум поебаться. Зачем это делать? Тратить тики на пустом месте? Читаемость? Чем тебе второй вариант не читаемый?

>В таком случае, если так важна скорость, где приведено сравнение трудоёмкости и скорости выполнения гет-функций для кода на втором и третьем скрине?
Резонное замечание. Для простоты будем считать что все они выполняются одинаковое время. В любом случае оно больше нуля.
Аноним 04/12/20 Птн 13:58:46 234640567207
>>234640450
Слышать что-нибудь о том, что вызов функций не бесплатный? Даже если там закешированное значение. Компилятор это может заинлайнить... а может и нет, особенно в случае с жс, который оптимизирует по велению левой пятки.
Аноним 04/12/20 Птн 13:58:47 234640568208
image.png 28Кб, 1362x212
1362x212
Аноним 04/12/20 Птн 13:59:06 234640585209
>>234640141
Да пусть даже геты одинаковые по сложности, суть вопроса в том как запилить читаемый элегантный код, который при первом попавшемся нуле скипнет остальные вычисления. Или я не прав?
Аноним 04/12/20 Птн 13:59:37 234640627210
>>234632549
Ну я так и думал примерно. Спасибо, анон.
Аноним 04/12/20 Птн 13:59:53 234640646211
Аноним 04/12/20 Птн 14:00:04 234640657212
1465465608145.png 301Кб, 590x500
590x500
>>234640567
> жс
> оптимизируешь наносекунды
Аноним 04/12/20 Птн 14:01:00 234640718213
>>234640504
Школьник. Второй вариант менее читаемый. Пусть даже незначительно. Разраб на него потратит на несколько секунд больше. Так вот это более важно чем экономия на спичках ресурсов. Поэтому первый вариант лучше
Аноним 04/12/20 Птн 14:01:28 234640743214
>>234640657
> не оптимизируешь наносекунды в жс
> абу! чому у меня борда лагает как псина!
Аноним 04/12/20 Птн 14:02:25 234640802215
>>234640718
Хуёвый из тебя разработчик, если происходящее во втором листинге ты не понимаешь с одного мимолётного взгляда.
Аноним 04/12/20 Птн 14:02:27 234640803216
>>234637381
Он вернет 0 при первом нулевом аргументе?
Аноним 04/12/20 Птн 14:03:41 234640876217
>>234622640 (OP)
>js
>2021
> functions && vars
Тебя как вообще на работу взяли?
Аноним 04/12/20 Птн 14:04:31 234640941218
>>234640802
Много ретюрнов и больше строчек, значит говнокод. Разраб во мне говорит что нужен рефакторинг
Аноним 04/12/20 Птн 14:05:16 234640991219
Си
int ans = 1;
if(ans=get1()) if(ans=get2()) if(ans=get3()) if(ans=get4()) return ans;
return -1;

Ебал я в рот вашу читаемость
Аноним 04/12/20 Птн 14:05:42 234641032220
15918743267421.png 4Кб, 438x264
438x264
Если твой код в 2020 не похож на этот, даже не думай писать в тред.
Аноним 04/12/20 Птн 14:06:29 234641082221
>>234640991
>Ебал я в рот вашу читаемость
Оно и видно, ты ведь даже не прочитал что тот код делает, а срозу побежал обсираться.
Аноним 04/12/20 Птн 14:07:40 234641167222
>>234640803
канечна, в чем вопрос. Умножит 1 (начальное значение) на 0 и протащит нули по списку
Аноним 04/12/20 Птн 14:07:46 234641176223
>>234640991
Сучара везде вместо = стоит *=
Аноним 04/12/20 Птн 14:08:22 234641227224
Аноним 04/12/20 Птн 14:08:27 234641232225
>>234640991
зачем постоянно ставить if если можно ставить логическое и.
Аноним 04/12/20 Птн 14:08:49 234641258226
>>234641167
Так он будет все функции вызывать, а должен выйти при первом нуле.
Аноним 04/12/20 Птн 14:10:02 234641335227
>>234641258
А, пардон, он а берет первое значение.
Аноним 04/12/20 Птн 14:11:29 234641411228
>>234641258
Не будет, смотри условие в лямбе. Как только 0 первый получится, b() вызываться не будет
Аноним 04/12/20 Птн 14:11:46 234641430229
Аноним 04/12/20 Птн 14:12:11 234641463230
Аноним 04/12/20 Птн 14:13:54 234641566231
>>234641463
Только если ленивая логика включена. Я просто по misra угараю, а там это запрещено.
Аноним 04/12/20 Птн 14:14:35 234641618232
carbon (4).png 64Кб, 932x518
932x518
Аноним 04/12/20 Птн 14:14:54 234641644233
>>234641411
Сложна, нипонятна. Как ассемблерный код с этой хипстотой выглядеть будет? Заоптимизирует до уровня как на втором\третьем пике ОПпоста(если его на сях переписать, есесно)?
Аноним 04/12/20 Птн 14:15:44 234641697234
>>234640504
>Для простоты будем считать что все они выполняются одинаковое время.

Иди и составляй нормальную задачу с нормальной формулировкой, а не находу додумывай дерьмо, взятое с говносайта по изучению сойскрипта.
Аноним 04/12/20 Птн 14:16:32 234641747235
Аноним 04/12/20 Птн 14:17:47 234641820236
>>234641697
Какая нахуй разница? Даже если оно не одинаковое, то после перестановки вызовов в порядке возрастания сложности логика не изменится. Вообще никак.
Аноним 04/12/20 Птн 14:18:18 234641855237
>>234641747
Там в конце надо "&" на "&&" заменить. А так код идеален не пизди.
Аноним 04/12/20 Птн 14:18:54 234641895238
>>234622640 (OP)
Второй и третей не читаем, сразу отторжение на ментальном уровне происходит, так что первый
Аноним 04/12/20 Птн 14:19:52 234641948239
Аноним 04/12/20 Птн 14:20:36 234641990240
image.png 16Кб, 733x142
733x142
>>234622640 (OP)
Неужто в этом нетипизрованном псевдокеде не сделать чего-то типа пикрелейтеда, чтобы не писать это нафталиновое говно?
Аноним 04/12/20 Птн 14:20:50 234641999241
>>234641644
питон не компируется, так что вопрос не совсем корректный. Если первая функция вернёт 0, reduce прогонит цикл по всем остальным элементам где будет проверка и присвоение в результат нуля.
Аноним 04/12/20 Птн 14:21:22 234642033242
>>234641820
>Какая нахуй разница?

А какая нахуй разница, как ты код написал? Работает же? Ну вот и всё
Аноним 04/12/20 Птн 14:22:34 234642111243
>>234641990
я хз что это за язык, но у тебя в первой вычисляются все 4 значения?
Аноним 04/12/20 Птн 14:23:23 234642166244
>>234641999
Есть же конпеляторы и к петону. Хуй знает правда насколько они юзабельны, никогда не пользовался.

Вообще вопрос был в том, сколько в этой шляпе оверхеда. Ну хорошо, если переписать 2й пик на питоне, и замерить обе функции, будут ли они выполнятся одинаковое время, или ламбда замедлит?
Аноним 04/12/20 Птн 14:24:19 234642228245
11код.png 245Кб, 2428x1342
2428x1342
Все хуйня. Вот лучший вариант >>234638434

Отдельно горите в аду те кто вводит массивы для такого кода
Аноним 04/12/20 Птн 14:25:27 234642308246
>>234642111
Нет, если список ленивый.
Аноним 04/12/20 Птн 14:25:59 234642345247
>>234642166
ну если к наносекундам и кол-ву операций CPU придираться, то да, второй и третий быстрее
Аноним 04/12/20 Птн 14:26:22 234642366248
Аноним 04/12/20 Птн 14:26:46 234642397249
Аноним 04/12/20 Птн 14:27:09 234642433250
>>234622640 (OP)
Зачем решать такие задачи если можно просто найти библиотеку или скопировать код с stackoverflow
Аноним 04/12/20 Птн 14:28:10 234642509251
1491372187666.jpg 273Кб, 720x540
720x540
Аноним 04/12/20 Птн 14:29:46 234642636252
js devs.png 479Кб, 750x500
750x500
>>234622640 (OP)
Первый вариант, только не считай значения сразу, а делай lazy-переменную, например, в скале это lazy val foo = getFoo(). По-моему в вашем петушином жс-углу есть варик сделать такую ленивость из коробки. Или можешь сделать npm install monet и переписать цепочку ифов на монаде Maybe; без синтаксического сахарка для монад это будет выглядеть, как цепочка вызовов функций, но тут уж увы. Короче, заканчивай жрать говно и вкатывайся в бэкэнд на любом нормальном языке.
Аноним 04/12/20 Птн 14:31:16 234642736253
>>234642345
Да я не придираюсь, мне просто любопытно насколько хорошо оно оптимизируется. Что в ЖСе функциональнища оптимизируется хуёво я знаю - тут это всего лишь сахар поверх императивщины, лишний слой абстракции, и всё эти мап рудьюсы, и прочья малафья хипсторская всегда будут сосать и дедовского цикла.
А насчёт питона не знаю, вдруг он одинаковый байт генерирует. Вот и полюбопытствовал.
Аноним 04/12/20 Птн 14:31:37 234642753254
Аноним 04/12/20 Птн 14:31:53 234642769255
>>234642308
Чего, какой ленивый список? ты туда значение передаёшь, ты же функцию вызываешь в конструкторе

инбифо: в моём псевдоязыке все подругому работает
Аноним 04/12/20 Птн 14:32:34 234642808256
>>234642736
мапы и рудьюсы быстрее обычного цикла.
Аноним 04/12/20 Птн 14:34:04 234642889257
>>234622640 (OP)
ниодин, неявное преобразование к булу - сразу нахуй (null, undefined, 0)
Аноним 04/12/20 Птн 14:35:17 234642964258
>>234642808
Такие-то охуительные истории. В ЖСе мапы и редьюсы люто дрочат стек вызовами функций.
Аноним 04/12/20 Птн 14:35:55 234643000259
image.png 12Кб, 461x166
461x166
image.png 23Кб, 621x233
621x233
>>234642769
Список, который не вычисляет переданные в него значения до тех пор, пока они не понадобятся.
Аноним 04/12/20 Птн 14:37:35 234643099260
>>234643000
Ну я так и написал на питоне, см >>234637381

к >>234641990 я придрался потому что явно написаны вызовы функций, а не ссылки на функции
Аноним 04/12/20 Птн 14:39:31 234643214261
>>234643099
Это в петухоне вызовы функций, а в функциональных языках это неявное создание замыканий, потому что в конструкторе списка будет приём не по значению, а по имени. Это я про call-by-name и call-by-value, если что.
Аноним 04/12/20 Птн 14:39:52 234643236262
>>234622640 (OP)
Тот что легче читается новым сотрудником.
Аноним 04/12/20 Птн 14:40:29 234643271263
>>234643099
Ну я хз как оп-язык работает. На скринах в >>234643000
> [getA, getB, getC]
аналогично питоновскому
> [getA(), getB(), getC()]

А в питоне ведь генераторы есть. Если в конструктор генератора передавать, тоже сначала всё вычислится?
Аноним 04/12/20 Птн 14:40:54 234643296264
>>234622640 (OP)
const result = getFoo() * getBar() ...;

return result === 0 ? STATE.ERROR : result;

С условием строгой типизации конеш.
Щас бы кучей проверок обмазываться, когда умножение ничего не стоит.
Аноним 04/12/20 Птн 14:42:36 234643417265
>>234642228
Мнение андроидомакаки-клинодауна не учитывается
Аноним 04/12/20 Птн 14:42:51 234643440266
>>234643296
Вызов функции стоит 1 час.
Аноним 04/12/20 Птн 14:43:46 234643497267
>>234641999
>питон не компируется
А в .пук файлах что тогда?
Аноним 04/12/20 Птн 14:43:56 234643509268
>>234643440
Отлично, займусь твоей мамкой - у нее как раз окно.
Аноним 04/12/20 Птн 14:43:57 234643511269
>>234643296
Умножение не стоит, а в getBar() может миллионное число Фибоначчи считается.
Аноним 04/12/20 Птн 14:44:51 234643573270
Аноним 04/12/20 Птн 14:45:16 234643594271
>>234622640 (OP)
На всех пиках говнокод какой-то. Почему ты не передаешь foo, bar. baz в качестве аргументов, а пытаешься вычислять их прямо в функции. Если ты уж решил лезть из функции во внешний скоуп, почему не проверяешь что getFoo сущестует в скоупе? Почему ты так боишься вернуть NaN из функции, вместо этого возвращаешь -1. Это противоречит любому здравому смыслу. Кинь уже тогда ексепшен если так хочется.
Аноним 04/12/20 Птн 14:46:04 234643642272
>>234643594
> решил лезть из функции во внешний скоуп
Где?
Аноним 04/12/20 Птн 14:46:17 234643655273
>>234622640 (OP)
второй запушу. по причине что легко читается и удобно поддерживается. можно убрать переменную а можно добавить новую удобно редактируя при этом код
Аноним 04/12/20 Птн 14:46:25 234643664274
>>234623517
Про JIT ты наверное первый раз слышишь. Пиздец.
Аноним 04/12/20 Птн 14:46:47 234643681275
>>234643511
А может и не считается. Я ревью в отрыве от контекста не провожу, а если провожу, то руководствуюсь лаконичностью проверяемого кода.
Аноним 04/12/20 Птн 14:47:53 234643750276
>>234643642
Он вызывает getBar, getBaz и тому подобную шелупонь изнутри функции. Представляю как классно потом будет писать юниты на такую функцию.
Аноним 04/12/20 Птн 14:48:21 234643778277
>>234643681
В getBar() eval'ится сторонний код. Где твой ревью теперь?
Аноним 04/12/20 Птн 14:48:57 234643819278
>>234643750
> Он вызывает getBar, getBaz и тому подобную шелупонь изнутри функции
Так 99.5% всего софта написано.
Аноним 04/12/20 Птн 14:49:25 234643852279
>>234643778
У нас за такое пальцы молотком отбивают, пчел.
Аноним 04/12/20 Птн 14:49:37 234643861280
image.png 46Кб, 738x510
738x510
>>234643271
>А в питоне ведь генераторы есть. Если в конструктор генератора передавать, тоже сначала всё вычислится?

что значит в конструктор генератора? Генератор тебе через yield скармливает последовательность без построения списка зарание, можно так сделать. Чтобы сделать lazy вычисления, тебе все равно надо с указателями на функции работать
Аноним 04/12/20 Птн 14:51:07 234643963281
>>234643214
>Это в петухоне вызовы функций, а в функциональных языках это неявное создание замыканий, потому что в конструкторе списка будет приём не по значению, а по имени. Это я про call-by-name и call-by-value, если что.

а ну ок, лады
Аноним 04/12/20 Птн 14:51:19 234643976282
>>234643819
А потом ябутся с поддержкой. Я бы не принял такой ПР это 100%
Аноним 04/12/20 Птн 14:53:11 234644098283
>>234643976
Хорошее решение, к слову.
ебется с таким кодом
Аноним 04/12/20 Птн 14:53:57 234644141284
>>234643852
Хорошо жить в манямирке с понями. У меня на проде есть даже код который не только эвалит сторонний код, а еще и прогоняет его перед этим через пачку регулярок, переписывая на лету.
04/12/20 Птн 14:54:21 234644165285
function mad() {
const fns = [getFoo, getBar, getBaz, getQux];
let result = 1;
for(let fn in fns) {
result *= fn();
if(result === -1)
break;
}
return result;
}
\thread
04/12/20 Птн 14:54:38 234644183286
Аноним 04/12/20 Птн 14:54:51 234644198287
image.png 4Кб, 902x47
902x47
>>234630312
Обойтись, конечно, просто это менее читабельнее.
Аноним 04/12/20 Птн 14:55:28 234644238288
>>234644141
Более чем уверен, что у вас что-то пошло не так.
Аноним 04/12/20 Птн 14:55:31 234644242289
image.png 3Кб, 901x23
901x23
04/12/20 Птн 14:55:34 234644247290
>>234644165
хотя я объебался немного и там ошибка, но вы поняли суть
Аноним 04/12/20 Птн 14:56:28 234644303291
image.png 4Кб, 900x29
900x29
Аноним 04/12/20 Птн 14:56:34 234644313292
>>234643594
>Почему ты не передаешь foo, bar. baz в качестве аргументов, а пытаешься вычислять их прямо в функции.

Потому что все они тяжелые по производительности и не всегда надо вычислять все, нет?
Аноним 04/12/20 Птн 14:58:00 234644392293
>>234644238
Тонны легаси, которое проще вот так похачить, чем переписать с нуля.
Аноним 04/12/20 Птн 14:58:44 234644437294
>>234622640 (OP)
Запушил твою хуйню в мастер. Смержил. Твои действия?
Аноним 04/12/20 Птн 14:59:27 234644480295
>>234643861
Какой убогий язык, хосспаде.
Аноним 04/12/20 Птн 14:59:48 234644502296
>>234622640 (OP)
Говорю джуну поставить перед переменными лейзи и потом аппрувлю первый скрин
Мимо скалист
Аноним 04/12/20 Птн 15:00:25 234644538297
Аноним 04/12/20 Птн 15:00:42 234644550298
image.png 5Кб, 797x69
797x69
Аноним 04/12/20 Птн 15:02:18 234644654299
>>234644538
lazy
Откладывает вычисление константы/переменной до первого случая когда она понадобится.
Аноним 04/12/20 Птн 15:02:24 234644664300
image.png 30Кб, 732x308
732x308
>>234644480
спокойно, это был пример генератора для анона, так то можно сразу итерироваться по списку из 4 функций
Аноним 04/12/20 Птн 15:03:07 234644716301
>>234644502
>Мимо скалист
ZPupa[Z, L, U, P, A]
Аноним 04/12/20 Птн 15:03:35 234644744302
Аноним 04/12/20 Птн 15:03:43 234644748303
>>234622640 (OP)
Отдам джуну, скажу что бы к техлиду шел за консультациями, мне поебать.

Сам пойду пить кофеек и капчевать. Мимо лидер разработки
Аноним 04/12/20 Птн 15:04:07 234644768304
>>234622640 (OP)
Во втором надо условие в функцию вытащить и можно на прод.
Аноним 04/12/20 Птн 15:04:09 234644771305
Аноним 04/12/20 Птн 15:05:38 234644867306
>>234644768
А, я еблан, второй тогда просто.
Аноним 04/12/20 Птн 15:06:40 234644939307
>>234644768
Не, опять еблан, надо сделать через рекурсию и тогда второй.
Аноним 04/12/20 Птн 15:07:26 234644986308
>>234644664
Выглядит всё равно ка сорта императивного, на мой вкус.
Аноним 04/12/20 Птн 15:08:57 234645083309
Аноним 04/12/20 Птн 15:09:04 234645090310
>>234637354
Если в данном контексте тебе 0 не нужен, то результатом будет None / Failure, если 0 тебе нужен, то результатом будет Some(0) / Success(0).
Аноним 04/12/20 Птн 15:09:16 234645099311
>>234644939
>Не, опять еблан, надо сделать через рекурсию и тогда второй.
поясни?
Аноним 04/12/20 Птн 15:10:57 234645225312
>>234637381
Ты ждешь завершения всех 4 операций, даже если самая первая вернет хуйню и делать уже ничего не надо.
Аноним 04/12/20 Птн 15:13:48 234645413313
>>234645083
Нет, у самого нет идей как в питоне хорошо это написать. Остаётся страдать.
Аноним 04/12/20 Птн 15:15:11 234645496314
>>234645225
>Ты ждешь завершения всех 4 операций, даже если самая первая вернет хуйню и делать уже ничего не надо.

Посмотри код еще раз, если первая функция вернет 0, остальные не будут выполняться
Аноним 04/12/20 Птн 15:17:56 234645660315
>>234645496
Посмотрел. Ты последовательно вызываешь каждую.
Аноним 04/12/20 Птн 15:18:47 234645707316
>>234644392
Как и ожидалось. Ну вон редьюсы выше кидают, в твоем случае это будет нормальный вариант. Но это и значит "контекст есть".
Аноним 04/12/20 Птн 15:20:16 234645794317
>>234645660
условие в лямде посмотри
Аноним 04/12/20 Птн 15:25:50 234646114318
>300 постов в треде
>Опа все ещё не обоссали за нотпад++ в 2021
Лол
Аноним 04/12/20 Птн 15:26:19 234646145319
надо представлять себе этот код в динамике. ну в смысле что он будет расширяться и редактироваться.
очевидно то тут соревнуются 1 и 2 варианты. 1 это классический пример новичка перфекциониста который думает что чем меньше строчек тем лучше. но тут допущена типичная ошибка объединения различных хуетенек общим поведением. потом когда возникнет потребность сделать точно такую же хуетеньку,но ЧУТЬ другую, в варианте 2 это сделать легко. можно вернуть вместо -1 что-то другое или добавить какую-то логику перед return. в первом же варианте это невозможно
кроме того добавление новых переменных будет горизонтально увеличивать строку с if() в варианте 1, а в варианте 2 это просто по вертикали добавится новый блок,что удобнее.
кроме того если перед return foobar... добавится какая-то логика и функция станет очень большой,ключевой return в варианте 1 окажется в середине большой функции,чего я не люблю, а в варианте 2 он будет всегда внизу. единственное до чего можно боебаться в вариант 2,что там -1 нужно бы в контстанту вынести
Аноним 04/12/20 Птн 15:30:14 234646394320
image.png 332Кб, 895x503
895x503
Ну вы и дурни...

return $result = getFoo()getBar()getBaz()*getQux() ? $result : -1;

В одну строку блеать!!
Аноним 04/12/20 Птн 15:31:37 234646465321
Аноним 04/12/20 Птн 15:32:45 234646546322
Аноним 04/12/20 Птн 15:36:49 234646828323
>>234646394
А, фикс, про умножение забыл
return $result = getFoo()getBar()getBaz()*getQux() ? $result : -1;
Аноним 04/12/20 Птн 15:37:19 234646874324
>>234646828
абу стирает его, похуй, думаю понятно, что я мел в виду, дебичи
Аноним 04/12/20 Птн 15:38:13 234646926325
>>234646874
Условия не просто так стояли, они предотвращают вызов следующих функций если предыдущая вернула неправильный результат.
Аноним 04/12/20 Птн 15:38:38 234646951326
>>234646828
в продакшене getBar() возвращает 0 в 95% случаев, а getQux работает 1-2 минуты. Твои действия?
Аноним 04/12/20 Птн 15:38:49 234646961327
Аноним 04/12/20 Птн 15:45:01 234647365328
>>234646114
IDE не делает тебя программистом
Аноним 04/12/20 Птн 15:46:21 234647460329
>>234646951

окей, тогда так

return ($a = getFoo()) && ($b = getBar()) && ($c = getBaz()) && ($d = getQux()) ? $a$b$c*$d : -1;
Аноним 04/12/20 Птн 15:52:26 234647884330
>>234647365
блокнон не делает тебя программистом
Аноним 04/12/20 Птн 15:52:52 234647906331
>>234641855
хуйня твой код, потому что выполняются все инструкции, а так быть не должно. Надо, если где-то false, сразы возвращать -1
Аноним 04/12/20 Птн 15:53:28 234647943332
Аноним 04/12/20 Птн 15:54:34 234647997333
>>234647943
Я промахнулся. Но в этом треде это походу неважно.
Аноним 04/12/20 Птн 15:55:12 234648039334
>>234647943
На чём программируешь, шизик? На кукухе своей?
Аноним 04/12/20 Птн 15:57:33 234648181335
Программирование разрушает мозг
Аноним 04/12/20 Птн 16:03:04 234648553336
>>234648181
if(postId == 234648181) {
post("TI PIDOR");
} else {
post("MAMKU EBAL");
}
Аноним 04/12/20 Птн 16:04:03 234648618337
16070586097711.png 4Кб, 280x448
280x448
Обьясните долбоебику который только кодил в школе на паскале как в этом случае идет проверка с if. Чисто на пальцах
Аноним 04/12/20 Птн 16:05:23 234648706338
>>234647906
Долбоеб? Ладно, если хочешь, могу поместить вызовы функции в and (&&), тогда вычисления станут ленивыми
Аноним 04/12/20 Птн 16:07:53 234648876339
>>234648618
Ну, вот тебе псевдокод

Если (твоя мамка.поза == лицом) {
датьТвоейМамкеЗаЩеку();
уйти;
}

датьТвоейМамкеВСракотан();

как бы выполняется первая инструкция и сразу возврат
Аноним 04/12/20 Птн 16:08:47 234648938340
>>234648706
ты вызываешь функции при инициализации массива, какой смысл, блеать?
Аноним 04/12/20 Птн 16:09:56 234649000341
>>234647365
Зато использование неподходящих устаревших говноинструментов делает тебя студентом-первокуром, причем довольно тупым, или залетным вкатчиком с завода.
Не нравится иде - берешь атом/вскод, на край саблайм, или вообще вим/емакс.
Аноним 04/12/20 Птн 16:10:44 234649049342
>>234648876
Я уже разобрался, стоило только посмотреть как if работает. Но ты немного не то описал, что я просил
Аноним 04/12/20 Птн 16:12:47 234649170343
>>234649049
А так понятнее?

Если (твоя мамка.толщина >= толщинаКорабля) {
уйти;
}

Если (твоя мамка.поза == лицом) {
датьТвоейМамкеЗаЩеку();
уйти;
}

датьТвоейМамкеВСракотан();
Аноним 04/12/20 Птн 16:17:27 234649458344
>>234648938
Массив тут только для лаконичности и читаемости кода. Можно сделать прлще в данном случае: просто пометстить применения функции в оператор умножения. V8 достаточно умен, чтобы понимать, что a * 0 = 0. Если хоть одно из примений функций редуцировалась в 0, то последующие применения в цепочке считать бессмысленно, т. к выражение всё равно будет равнятьсч нулю.
Аноним 04/12/20 Птн 16:17:31 234649463345
>>234649170
Я про if(!foo) спрашивал как работает. Но я уже разобрался, что если false то инструкция не выполняется
Аноним 04/12/20 Птн 16:17:47 234649485346
>>234622640 (OP)
Лучший тот где лучше читаемость . О оптимизации нужно думать только тогда когда есть такая потребность . Правило 90% -10%. По этому более читабельный код номер 1.
Аноним 04/12/20 Птн 16:23:53 234649895347
var x = foo()bar()gaz()*buz()
return x ? x : -1;
Аноним 04/12/20 Птн 16:25:39 234650008348
>Int внутри условия в ифе вместо булеана
>Код компилируется
Боже нахуй мой как вы на этом пишете в 2020
Аноним 04/12/20 Птн 16:26:06 234650034349
>>234648618
Автоприведение к булу. В случае с числами 0 это false, всё остальное это true. Не считая всякой экзотики - NaN станет false, Infinity станет true. Это бесконечный результатов факапов если ты не понимаешь что как кастится.
Ну и дальше ! выворачивает результат. Т.е. на нуле код уходит в return, во всех остальных(кроме всякой нех) случаях продолжает работать дальше.
Аноним 04/12/20 Птн 16:26:15 234650049350
Очевидно никакой, уёбища, юзающие var без необходимости, должны оказаться на обочине истории.
Аноним 04/12/20 Птн 16:27:04 234650094351
>>234650034
>бесконечный источник факапов
Аноним 04/12/20 Птн 16:28:37 234650181352
>>234650049
Если не использовать вар то числа не будет перемножаться.
Аноним 04/12/20 Птн 16:29:34 234650240353
>>234650008
пффф, лаконичней получается, хоть одна есть причина писать "if x == 0" ?
Аноним 04/12/20 Птн 16:29:39 234650244354
>>234650008
Потому что можем. Мы же не мартышки, которых нужно варнингами и эррорами по рукам хуячить всю дорогу, чтоб они рабочий код родили.
Аноним 04/12/20 Птн 16:36:32 234650646355
>>234650240
Есть, называется "явное лучше неявного". Я хочу видя использование переменной четко понимать что в ней может содержаться и какие у нее могут быть свойства, а не так что можно передать собаку в картофелечистку и компилятор нихуя не пукнет в ответ.

>>234650244
Ты конечно жирный, но тут верно подметил
>Рабочий
То есть не выполняющий ПОСТАВЛЕННУЮ задачу, а РАБОТАЮЩИЙ хоть как-то. То что у тебя там слоны с вилками складываются тебе конечно похуй, понимаю, тебе нужно чтобы запустилось и можно было коммитить.
Аноним 04/12/20 Птн 16:37:36 234650711356
Аноним 04/12/20 Птн 16:37:49 234650728357
>>234650034
Анончик, а что вернется после перемножения, если одно число будет infinit? Infinit или машины поработят мир?
Аноним 04/12/20 Птн 16:39:41 234650780358
Аноним 04/12/20 Птн 16:40:44 234650858359
>>234650711
>если ты не понимаешь что как кастится
Не понимаешь - не лезь, сравнивай с нулём. Ктож заставляет-то?
Аноним 04/12/20 Птн 16:41:53 234650931360
>>234622640 (OP)
Меня учат по корпоративным лекалам писать как на 2
Аноним 04/12/20 Птн 16:42:09 234650954361
Снимок экрана о[...].png 9Кб, 286x157
286x157
Аноним 04/12/20 Птн 16:42:32 234650991362
>>234650858
Сразу видно студня, который больше лаба2.js ничего в жизни не писал. Завтра тип, который приходит в переменную из функции, немного поменяется, а твой говнокод с УДОБНЫМ НЕЯВНЫМ ПРИВЕДЕНИЕМ сожрет и не подавится, пока на проде хуйня не вылезет где-нибудь вообще в другом месте.
Аноним 04/12/20 Птн 16:42:50 234651007363
>>234624572
>>234624503
Ну только про хиты к бд не говорите что это хуйня .
Аноним 04/12/20 Птн 16:43:14 234651026364
>>234650931
из предложенных вариантов, 2 - самый лучший
Аноним 04/12/20 Птн 16:43:19 234651032365
>>234650954
Скобкоблядство ненужно
Аноним 04/12/20 Птн 16:44:53 234651123366
>>234651032
Соси длинноскобку, алголохолоп:

))))))))))))))))))))))))))
Аноним 04/12/20 Птн 16:45:02 234651134367
>>234651026
Значит я попал в прекурасную компанию где меня научат делать вещи в бест практикс, но пока я еще не переучился и закомитил говно в виде 3
Аноним 04/12/20 Птн 16:47:40 234651302368
>>234650991
Если какая-нибудь мартышка поменяет тип возвращаемый функцией без проверки где эта функция вообще используется, то сначала всё в любом случае пойдет по пизде, а потому это мартышку будут долго и смачно ебать в задницу.
Аноним 04/12/20 Птн 16:48:16 234651345369
>>234651026
А чем хуже 1 вариант?
Анон-долбаебик
Аноним 04/12/20 Птн 16:49:31 234651431370
Аноним 04/12/20 Птн 16:51:22 234651544371
>>234651302
>Эти маняфантазии студня

Хорошо что в реальном мире на нормальных крупных современных проектах сразу берут язык со статической сильной типизацией, и описанная ситуация с еблей мартышки невозможна в принципе, потому что такой код тупо не скомпилится, а ИДЕ с компилятором мартышке еще и подскажут что он забыл поправить один из 50 кейсов.
Аноним 04/12/20 Птн 16:52:20 234651605372
>>234622640 (OP)
Дебилы в 2020 пишут на подсахаренном ассемблере, мда.

мимо-ленивый-господин-сажаскрыл
Аноним 04/12/20 Птн 16:52:26 234651609373
>>234651431
А если все кроме getQux вернет тру, то код будет однохуйственно медленный или второй быстрее?
Аноним 04/12/20 Птн 16:53:27 234651670374
>>234651609
В этом случае однохуйственно.
Аноним 04/12/20 Птн 16:56:19 234651883375
>>234651544
Ты недооцениваешь мартышек. Запушит некомпилящийся код без задней мысли, и прод вообще встанет раком, из за того что где-то формочку перекосило.
Аноним 04/12/20 Птн 16:58:29 234652017376
>>234651883
>Запушит некомпилящийся код
То есть в твоем манямире в CI/CD не будет банальной проверки компиляции, зато будет инстантный пуш на прод? Орунах.
Аноним 04/12/20 Птн 17:03:25 234652340377
>>234652017
>То есть в твоем манямире в CI/CD не будет банальной проверки компиляции, зато будет инстантный пуш на прод? Орунах.

Последние тенденции - максимально быстрый фидбек от пользователей и клиента
Аноним 04/12/20 Птн 17:38:19 234654859378
image.png 77Кб, 978x368
978x368
>>234650008
тебя, наверное, такое вообще порвёт на куски?

без гугла, что питон выведет в консольке?
Аноним 04/12/20 Птн 17:42:00 234655102379
>>234654859
2, 3, 8, и "хз что в питоне деление возвращает"?
мимо не питонист
Аноним 04/12/20 Птн 17:42:28 234655130380
Аноним 04/12/20 Птн 17:45:18 234655360381
>>234623023
Первый даун подъехал, если ноль, то в первые скобки не пойдет.
Аноним 04/12/20 Птн 17:47:21 234655492382
Аноним 04/12/20 Птн 17:47:27 234655506383
IMG202010231047[...].jpg 31Кб, 346x482
346x482
>>234624503
Бред собачий. Меня на днях выебал Гугл за абсолютно математически верное, но слишком медленное решение.

Пришлось переписывать все с нуля с той же логикой, но иными методами, и только тогда пропустило.

И да, в оп посте такой простой код, что читается он спокойно, причём я вообще питониста, но все прочитал без проблем.

Не париться о скорости - это из разряда вредных советов. Ты даже тест не пройдёшь.
Аноним 04/12/20 Птн 18:03:45 234656716384
>>234622640 (OP)
function slow() {
var badVar = 1;

function run(func) {
var temp = func();
if (!temp) {
badVar = 0;
}
return temp;
}

var foo = run(getFoo);
var bar = run(getBar);
var baz = run(getBaz);
var qux = run(getQux);
if (!badVar) return -1;
return foo bar baz * qux;
}
Аноним 04/12/20 Птн 18:06:46 234656906385
>>234656716
Тащем-то как варик 2, только повторов кода нет.
Аноним 04/12/20 Птн 18:11:25 234657238386
>>234656716
Проебался, там в run еще проверку надо добавить,
function run(func) {
if (!badVar) return 0;
var temp = func();
if (!temp) {
badVar = 0;
}
return temp;
}
Аноним 04/12/20 Птн 18:14:33 234657456387
Аноним 04/12/20 Птн 18:17:58 234657708388
>>234657456
джоб секьюрити, толпа джунов сразу соснула с пробором на таком коде
Аноним 04/12/20 Птн 18:23:17 234658075389
>>234657708
Да ты ж мой мидл лапесный, это в каком ты году находишься, что у вас джуны не знают что такое редьюс?

Сегодня любой джун дрочит кодварс как Библию и в такой забористый код умеет как в отче наш.
Аноним 04/12/20 Птн 18:29:54 234658575390
Аноним 04/12/20 Птн 18:35:59 234659008391
>>234655506
Ты быдло ебаное и пошла нахуй шлюха.
Аноним 04/12/20 Птн 19:02:14 234660814392
>>234640085
Глядите, джуниор открыл для себя fp и сует куда надо и куда не надо. Еще и композы руками пишет. Пиздец.
Аноним 04/12/20 Птн 19:02:50 234660852393
>>234655506
Сиськи или пошла нахуй.
Аноним 04/12/20 Птн 19:12:37 234661518394
image.png 96Кб, 546x713
546x713
Треду не хватает свежих идей
Аноним 04/12/20 Птн 19:17:30 234661895395
>>234622640 (OP)
Что, блять, за говно нетипизированное? TypeScript и Flow для кого изобрели?
Аноним 04/12/20 Птн 19:19:31 234662067396
9354094-1x1-xla[...].jpg 122Кб, 800x800
800x800
Аноним 04/12/20 Птн 19:19:37 234662076397
>>234661895
На интервью так же скажешь?
Аноним 04/12/20 Птн 19:20:31 234662148398
image.png 1568Кб, 2544x1268
2544x1268
Аноним 04/12/20 Птн 19:20:35 234662155399
>>234660852
Питониста - это бесполое название программиста на питоне, долбоеб, neuter gender noun, оно не указывает на пол человека и имеет средний род.
Аноним 04/12/20 Птн 19:21:01 234662195400
>>234662067
Ну смотри, декоратор и враппер один раз написал, потом переиспользуешь и остальной код выразительнее и проще становится! Выгода
Аноним 04/12/20 Птн 19:22:46 234662331401
>>234658075
Выделять знание синтаксического сахара и фреймворков в требование к профессии - причина. почему я от вас дегродов ушёл с JS.
Аноним 04/12/20 Птн 19:24:05 234662437402
>>234662076
>интервью
Не имею нужды их проходить.
Аноним 04/12/20 Птн 19:27:03 234662662403
>>234662331
Чел, я вообще ДС питонист, и на жс даже писать не умею, что не значит что я не могу прочесть твой говнокод.

Сахар нужен потому, что ты не один работаешь, дебич, твое говно ещё читать кто-то будет и материться.

А про фреймворки вообще не понял, знание необходимых фреймов - это половина знания языка, кому ты нахуй со своим голым синтаксисом нужен. Синтаксис и макака выучит... Ах да
Прости. Мы про жаваскрипт. Тогда все верно. Требовать от вас знания фреймов - это уже уровень сеньора наверное.
Аноним 04/12/20 Птн 19:35:43 234663339404
>>234662662
Да нет, на джуна требуют. У меня однажды знакомый спросил у джуна вкатывальщика, чем функтор от промиса отличается. Вот это было весело.
Аноним 04/12/20 Птн 19:36:33 234663400405
>>234662662
Вот, я и говорю, что хорошо, что я ушёл от всего этого ЧСВ-говна. Кто сколько фреймворков выучил, кто макака, а кто нет. А вы там дальше варитесь в своём JS-Pytoohon говне, меряйтесь длинной лычек. И нет, я не слился из профессии. Кстати, самый быстрорастущий проект, который я видел, $10М+ за полгода с нуля, была написан с таким огромным болтом, положенным на best practice, что вы бы тут все охуели. 40 js файлов, подключемых к странице, которая грузилась 10+ сек. 2018 год. Не тралю. Так что думайте.
Аноним 04/12/20 Птн 19:39:13 234663577406
>>234663339
>чем функтор от промиса отличается
Полезное знание для джуна, не поспоришь. Повезло пацану что не попал в вашу галеру адептов фп на js и не стал говноедом.
Аноним 04/12/20 Птн 19:40:33 234663664407
>>234663400
>Кстати, самый быстрорастущий проект, который я видел, $10М+ за полгода с нуля, была написан с таким огромным болтом, положенным на best practice, что вы бы тут все охуели. 40 js файлов, подключемых к странице, которая грузилась 10+ сек.
Прохладная история, бро. Да, $10М - это что? Инвестиции, капитализация, оборот?
Аноним 04/12/20 Птн 19:41:14 234663719408
>>234661895
> TypeScript и Flow для кого изобрели?
Для тех у кого память как у золотой рыбки, и кто без подсказок конпелятора не помнит что у них в переменных?
Аноним 04/12/20 Птн 19:42:24 234663789409
Аноним 04/12/20 Птн 19:43:57 234663895410
>>234663719
Нахуя писать код, когда можно в голове всё подсчитать?
Аноним 04/12/20 Птн 19:44:38 234663934411
>>234663895
Чтоб продавать его тем, кто считать не умеет.
Аноним 04/12/20 Птн 19:44:56 234663956412
Аноним 04/12/20 Птн 19:45:36 234664001413
>>234663789
>Чистая прибыль.
Твоя история всё холоднее и холоднее. B2C рынок я полагаю, и прямо вот за полгода? Полгода с чего? с первой строчки года? А команда сколько человек всего? 10м в год? Какая область то? финансы? Расскажи подробности какие-нибудь, интересно
Аноним 04/12/20 Птн 19:46:41 234664092414
>>234622640 (OP)
В принципе, ugly вполне читаем, я бы его сделал. Другое дело что "по хорошему" - это tall, но тут есть нюанс: некоторым не нравится когда в функции несколько returnов
Аноним 04/12/20 Птн 19:47:36 234664153415
>>234664092
>В принципе, ugly вполне читаем
Это пока переменных всего четыре. А если десяток?
Аноним 04/12/20 Птн 19:47:49 234664168416
>>234663577
Я тоже охуел. Пошел после работы почитал, что такое функтор.
Аноним 04/12/20 Птн 19:48:44 234664230417
Аноним 04/12/20 Птн 19:49:01 234664249418
>>234663956
джувиш технолоджи инкорпорейтед
Аноним 04/12/20 Птн 19:49:14 234664265419
>>234663339
Да я троллю "уверенного мидла", который уверен, что в 2к20 использование редуса - это job security, лол.

Сейчас джуны такие мертвые петли умеют заворачивать, что охуеешь. К счастью, фундаментальных знаний это не добавляет, и конечно на той же математике такие спортсмены сыплются как груши. Но выебываться кодом сегодня - это просто нонсенс. Достаточно зайти и посмотреть решения с кодварс чтобы охуеть. Я сам оттуда регулярно код тырю.
Аноним 04/12/20 Птн 19:50:54 234664392420
Screenshot from[...].png 5Кб, 540x131
540x131
>>234623206
>А дальше?
Блять, как же ты заебал.
04/12/20 Птн 19:52:00 234664469421
>>234622640 (OP)
>var
С динамической типизацией сразу проследуйте на парашу к питонистам, жабаскриптерам, и прочим луа-петухам.
Аноним 04/12/20 Птн 19:52:01 234664470422
image.png 19Кб, 305x536
305x536
>>234664092
>некоторым не нравится когда в функции несколько returnов
Да говно вопрос. Лучше?
Аноним 04/12/20 Птн 19:53:49 234664585423
Аноним 04/12/20 Птн 19:54:58 234664688424
image.png 623Кб, 509x489
509x489
Аноним 04/12/20 Птн 19:55:00 234664693425
Аноним 04/12/20 Птн 19:58:07 234664894426
image.png 483Кб, 800x534
800x534
>>234664470
Некоторым не нравится много брейков
Аноним 04/12/20 Птн 20:00:20 234665044427
>>234662155
Питонисты имеют средний род.
Аноним 04/12/20 Птн 20:01:34 234665125428
image.png 21Кб, 351x549
351x549
>>234664894
Любой каприз за ваши деньги.
Аноним 04/12/20 Птн 20:02:53 234665209429
Аноним 04/12/20 Птн 20:04:07 234665291430
>>234665125
это точно будет работать?
Аноним 04/12/20 Птн 20:04:13 234665298431
>>234664392
В одну строчку без ретурна заебашишь - тогда приходи.
Аноним 04/12/20 Птн 20:05:12 234665370432
Аноним 04/12/20 Птн 20:05:40 234665398433
Аноним 04/12/20 Птн 20:06:07 234665432434
Аноним 04/12/20 Птн 20:07:15 234665508435
>>234665398
Ну не шути плиз, мне рыли интересно.
04/12/20 Птн 20:08:16 234665584436
14206471087733.png 805Кб, 1080x1920
1080x1920
>>234622640 (OP)
Всем малолетним долбоёбам умничающим насчёт читаемости, чистоты, хуеты и прочей дерьмоты, по которой у долбоёбов принято оценивать код, я вам так скажу.
У кода есть всего 2 критерия: производительность и отсутствие багов. Все остальное вторично.

Сажи с картинкой треду малолетних дебилов.
Аноним 04/12/20 Птн 20:08:52 234665622437
Аноним 04/12/20 Птн 20:09:23 234665662438
Аноним 04/12/20 Птн 20:10:00 234665702439
>>234665584
Потом за такими как ты код поддерживать. Умри нахуй.
Аноним 04/12/20 Птн 20:10:16 234665717440
Аноним 04/12/20 Птн 20:10:34 234665735441
>>234622640 (OP)
1 если писать на человеческом ЯП, компиляторы давно такое оптимизируют
Аноним 04/12/20 Птн 20:10:34 234665736442
Аноним 04/12/20 Птн 20:11:31 234665800443
>>234665584
проиграл с хардкор-чухана, в современнах командах:
если твой код глючный или тормозной - это как правило, твоя проблема
если твой код не читаемый - это общая проблема и тебя быстро выебут на MR'ах
Аноним 04/12/20 Птн 20:11:45 234665816444
>>234664001
>B2C
Все рынки b2c. B2B не существует. Решения принимают люди, а не компании.
Аноним 04/12/20 Птн 20:12:07 234665839445
>>234665735
Такие компиляторы ссаной метлой гнать нужно. А что если у getQux() есть сайдэффект? Компилятор завангует нужен ли он мне?
Аноним 04/12/20 Птн 20:13:23 234665914446
image.png 82Кб, 288x288
288x288
Аноним 04/12/20 Птн 20:13:45 234665949447
>>234665816
>Все рынки b2c. B2B не существует. Решения принимают люди, а не компании.
Псевдо-интеллектуальный высер с претензией на опыт и широну знаний.
Аноним 04/12/20 Птн 20:16:21 234666116448
image.png 6Кб, 435x117
435x117
04/12/20 Птн 20:16:26 234666118449
news.1999642.jpg 203Кб, 1920x1080
1920x1080
>>234665800
>>234665702
Малолетним долбоёбам, которые высирают код на десятки мегабутов, используя полновесные либы для того чтобы загрузить картинку на сайте веб-брузера, не приятно.
Аноним 04/12/20 Птн 20:19:37 234666330450
>>234666118
Сказал бы сразу, что грузить картинки твой профессиональный лимит, я бы не реплаил.
Аноним 04/12/20 Птн 20:21:44 234666463451
>>234665949
Сформулировать отличия можешь, чтобы я контрпример привёл и разъебал по фактам?
Аноним 04/12/20 Птн 20:32:00 234667130452
>>234666463
ну давай, вот 2 решения.
Подписка на музыку, 10 баксов в месяц, типа спотифай. Кол-во клиентов - миллионы пользователей.
Система составления расписаний полетов для авиакомпаний. Стоит от 5000 до 50,000 в месяц в завимисти от размера флота. Кол-во клиентов - меньше 100.

Давай поясни что все пункты ниже для них будут одинаковые

1) реклама/маркетинг
2) команда и модель продаж
3) команда поддержки
4) account management
5) архитектура системы (tenancy, scaling)
Аноним 04/12/20 Птн 20:33:37 234667238453
>>234666118
по сути есть что сказать? с твоим кодом никто не работает? merge review не делает?
04/12/20 Птн 20:43:53 234667831454
>>234667238
По сути погромисты в моей сфере умеют читать ассембли код и никто не усирается по поводу "читабельности" в принципе. Код должен быть производительным и без багов, всё.
"Читабельность" для обезьян, которая программистами не является. Поэтому ваш читабельный код, скрытый под тонной абстракций и полновесных либ, дохнет на многоядерных машинах и жрет оперативу как не в себя.
Аноним 04/12/20 Птн 20:47:33 234668049455
Аноним 04/12/20 Птн 20:48:57 234668149456
>>234667831
Оптимизировать абстракции - задача компилятора, а не человека, дубина ты.
Аноним 04/12/20 Птн 20:50:04 234668220457
>>234667831
Что за сфера? Я не подъебываю, интересно просто.
Аноним 04/12/20 Птн 20:51:39 234668324458
>>234665584
ну давай пример своего кода приведи с этой задачей?
04/12/20 Птн 20:54:54 234668534459
>>234668149
Сразу видно тупорылого зумерка, который не знает что компилятор генерирует. Все современные цпу с начала нулевых работают в SIMD для максимальной производительности. Для этого нужно менять расположение данных в памяти из AOS в SOA. Компилятор в принципе не может это делать, это нужно делать руками.

Так же компилятор не может оптимизировать кэш миссы, если у тебя есть какой-то тяжелый луп и вместо того чтобы дать цпу доступ к последовательному массиву данных в памяти чтобы он грузил все это дело в свой внутренний кэш, ты постоянно гоняешь его к оперативке внутри лупа.

Это простейшие вещи, которые нужно оптимизировать руками. И это я еще не затронул сложность с паралельными тредами, что тоже нужно делать руками.

>>234668220
Гейдев, разработка движков.
Аноним 04/12/20 Птн 20:55:06 234668544460
>>234665584
Малолетнему долбоебу с претензиями отвечу так.
У кода есть всего 3 критерия, и это поддерживаемость, производительность и тестируемость.
Аноним 04/12/20 Птн 20:57:08 234668700461
>>234668544
Другом малолетнему с претензиями отвечу так.
У хорошего кода есть всего один критерий — за него зепку в долларах платят.
Аноним 04/12/20 Птн 20:59:48 234668867462
>>234665839
> Такие компиляторы ссаной метлой гнать нужно. А что если у getQux() есть сайдэффект?
FP
04/12/20 Птн 21:00:42 234668913463
>>234668700
Если бы производители железа такой же логики придерживались, у нас бы происходил даунгрейд с каждым годом.
Гордиться зряплатой за говнокод, а сейчас 98% кода это тормозящий забагованный говнокод, удел недалеких обезьян, которых порешает очередной выход бесполезного фреймворка на жабаскрипт.
Аноним 04/12/20 Птн 21:01:42 234668969464
>>234668913
Этот сладкий бугурт 60к нищенки.
Аноним 04/12/20 Птн 21:01:57 234668987465
>>234622640 (OP)
За 1 и 3 очевидно настучу по ебалу на ревью, 2 вполне себе продакшн.
Аноним 04/12/20 Птн 21:03:37 234669080466
>>234667130
Естественно, почти всё будет разное, кроме пятого.

1. В одному случае ты можешь стрелять из пушки по воробьям, запуская рекламу в телеге и смотря конверсию. В другом надо выцеплять лично тех, кто получит выгоду финансовую от внедрения вашего решения.
2. Само собой, под разные задачи, разная команда.
3. В первом случае надо делать расширяемую и заменяемую команду. Во втором, ребят, которые шарят в бизнесе клиента.
4. Бизнесу надо чтобы всё само делалось. Придётся за бизнес вносить самостоятельно данные в систему и вообще быть его секретарём. Для аналоги спотифай вообще не нужно, поставил - должно работать.

Контрпример
Но вот в чём дело, эти все отличия не важны. Вот, скажем, поиск невест для состоятельных людей - это B2B или B2C? Вроде, B2C. Много ли в нём киентов? Да несколько тысяч. Он больше похож на систему управления расписаниями самолётов, в плане продаж, или на спотифай. Думаю, что на систему. То есть, способы маркетинга не являются определяющими того, какой у нас биз B2B или B2C.
Аноним 04/12/20 Птн 21:09:57 234669412467
>>234668913
Чел, ты рогом уперся и не можешь понять что речь идет о разных задачах. В вебне решает скорость и дешевизна разработки. 99.99999% проектов это говностартапы которые хотят опробовать свою говноидею. И могут позволить себе переписать проект с нуля, если он выстрелит. На продуктах ситуация возможно слегка другая. Не надо это сравнивать с написанием кода под железяки.
Аноним 04/12/20 Птн 21:13:52 234669700468
>>234669412
Двущую, кста.

Если стартап не полетит, да и похуй. Потеряем часть клиентов, потом допилим или затестим гипотезу, а потом запустимся под новым бредном. Если железяка не фурычит или драйвер кривой, то всё, пиздец компании, которая это допустилка. Аналогия вв реальном мире: можно перепутать сдачу при покупке трусов, но нельзя перепутать педали при производстве автомобиля.
Аноним 04/12/20 Птн 21:17:03 234669891469
>>234622640 (OP)
Второй бы отправил, но он выглядит не очень. В питуне я бы сделал как-то так

results = []
for func in (getFoo, getBar, getBaz, getQux):
result = func()
if not result:
return -1
else:
results.append(result)

return results[0] results[1] results[2] * results[3]
Аноним 04/12/20 Птн 21:17:30 234669923470
>>234669891
Обосрался и с отступами и с умножением, но суть ясна
Аноним 04/12/20 Птн 21:18:26 234669980471
>>234669923
Суть ясна, и она в том, что ты обосрался.
Аноним 04/12/20 Птн 21:19:10 234670037472
>>234669891
зачем тебе второй список? сразу умножай ёптыть.

>return results[0] x results[1] x results[2] x results[3]
ппц индуский код
Аноним 04/12/20 Птн 21:19:10 234670038473
>>234669980
Но только с отступами и умножением
Аноним 04/12/20 Птн 21:19:19 234670046474
1589489822823.jpg 735Кб, 1616x1639
1616x1639
>>234669923
Вот это обсер, просто пиздец.
Аноним 04/12/20 Птн 21:19:20 234670049475
>>234622640 (OP)
На 1 пикче норм.
На 2 говно.
На 3 пиздец говнище, зачем плодить сущности.
Аноним 04/12/20 Птн 21:20:44 234670128476
>>234670037
Затем, чтобы не умножать зря, если один из последующих элементов выдаст 0

>индуский код
А хули нет, когда количество переменных статично. Если воротить динамику, там будет кода не меньше, а так всё сразу понятно
Аноним 04/12/20 Птн 21:20:58 234670140477
Аноним 04/12/20 Птн 21:21:41 234670182478
>>234670140
Так не ревьювят, давай аргументы или иди нахуй
Аноним 04/12/20 Птн 21:22:36 234670248479
>>234670182
Когда я был джуном, мне писали ревью комменты по типу "wtf, dude?". Так что переделывай.
Аноним 04/12/20 Птн 21:22:55 234670262480
>>234670248
Ну вот и видно, что ты ничему не научился
Аноним 04/12/20 Птн 21:23:43 234670311481
>>234670248
Мне просто звонили в скайпе, и спрашивали зачем я такую хуйню накодил, и сколько времени мне нужно переделать.
Аноним 04/12/20 Птн 21:24:37 234670371482
>>234670248
А меня в жопу ебали, если таб, вместо пробелов коммитил. Давайте всех ебать в жопу.
Аноним 04/12/20 Птн 21:24:37 234670373483
image.png 74Кб, 814x412
814x412
Аноним 04/12/20 Птн 21:25:14 234670412484
>>234670371
Про линтер у вас наверное не слыхали...
Аноним 04/12/20 Птн 21:26:09 234670483485
image.png 286Кб, 474x314
474x314
>>234670262
Научился так же хуево ревьювить.
Аноним 04/12/20 Птн 21:26:10 234670486486
>>234670373
Я в полном ахуе с вас динамобляди - списки функций вы значит итерируете, а блять вместо адекватного типа ошибки вы возвращаете ёбаный -1 как в старом добром-ёбаном 1969 году.
Аноним 04/12/20 Птн 21:26:49 234670540487
>>234670486
пошел нахуй, соблюдаем ебанутые условия задачи в оп посте
Аноним 04/12/20 Птн 21:27:15 234670569488
>>234670540
Ты такой же ебанутый на всю голову как и ОП.
Аноним 04/12/20 Птн 21:27:39 234670595489
image 45Кб, 200x200
200x200
Если три вложенных функции вернут результат 1 и одна -1, то возврат основной функции будет неотличим от ошибочного, а значит сама функция говно и все 3 реализации не пройдут код-ревью.
Аноним 04/12/20 Птн 21:27:58 234670616490
>>234670412
>unttitled.ру
>ру
Чё ещё с Ру. Русский что ли?
Аноним 04/12/20 Птн 21:28:17 234670636491
Аноним 04/12/20 Птн 21:29:12 234670685492
>>234670486
Да погодь, до эксепшенов и проверочных функций они ещё не дошли.
Аноним 04/12/20 Птн 21:30:37 234670783493
>>234670685
Да какие нахуй эксепшены, они навернули слой абстракции который выполняет только функцию сокрытия того какая из функций сфейлила.
Аноним 04/12/20 Птн 21:31:35 234670836494
>>234670373
Если у тебя f4 вернет 0, то ты зря тратил процессорное время на 2 операции умножения
Аноним 04/12/20 Птн 21:32:41 234670906495
>>234670836
>Если у тебя f4 вернет 0, то ты зря тратил процессорное время на 2 операции умножения
Ну на это у меня нечего возразить, разъебал по фактам
Аноним 04/12/20 Птн 21:32:51 234670919496
>>234670486
Щас бы в такой ситуации кидать эксепшен. Пиздец, понанимают по линкедину, а потом разгребайся....
Аноним 04/12/20 Птн 21:33:35 234670966497
Аноним 04/12/20 Птн 21:35:00 234671050498
>>234670783
не надо додумывать, с чего ты решил что 0 не корректный результат функции? из оп поста очевидно, что вопрос в том что функции тяжелые и не надо их вызывать если уже результат 0. писдос
Аноним 04/12/20 Птн 21:36:15 234671119499
>>234670836
>Если у тебя f4 вернет 0, то ты зря тратил процессорное время на 2 операции умножения
вангую, это быстрее чем создавать экземпляр списка, добавлять в него элементы, а потом по индексу получать значения
Аноним 04/12/20 Птн 21:36:56 234671173500
>>234671050
Я рот ебал пользоваться таким кодом и по значению на проде угадывать где и кто обосрался.
Аноним 04/12/20 Птн 21:37:28 234671205501
Аноним 04/12/20 Птн 21:38:38 234671281502
>>234671173
Какой стаж в Айти? Сколько зп?
Аноним 04/12/20 Птн 21:39:18 234671313503
>>234671050
>вопрос в том что функции тяжелые и не надо их вызывать если уже результат 0
И во всем треде никто не вспомнил про воркеры.
Аноним 04/12/20 Птн 21:40:31 234671397504
>>234671205
умножение - это одна процессорная команда маня. IMUL
Аноним 04/12/20 Птн 21:42:38 234671540505
>>234671281
>Какой стаж в Айти?
Примерно твой батя.

>Сколько зп?
Хуй знает, 5800к до налогов в дереве за год.
Аноним 04/12/20 Птн 21:56:06 234672347506
>>234671397
Да, похоже, что ты прав, буду знать на будущее
Аноним 04/12/20 Птн 22:21:12 234673955507
2 в прод, 3 на рефактор
Аноним 04/12/20 Птн 22:26:22 234674280508
Аноним 04/12/20 Птн 22:38:31 234675126509
>>234674280
ТТД в 2к20? Серьёзно. Думал этой хуйнёй уже все переболели.
Настройки X
Ответить в тред X
15000
Макс объем: 20Mб, макс кол-во файлов: 4
Кликни/брось файл/ctrl-v
X
Ваш шидевор X
Стикеры X
Избранное / Топ тредов