2337

Программист с колбасой и яйцами⁠⁠

Программист с колбасой и яйцами

#comment_200167186

Скриншоты комментов

66.3K постов41.9K подписчиков

Правила сообщества

В сообществе можно размещать ЛЮБЫЕ скрины (комментов) с любого сайта!!



ПРИКРЕПИТЬ ССЫЛКУ НА КОМЕНТ ЕСЛИ ОН С Пикабу желательно, но не обязательно!!!

Если скрин не с пикабу, а со стороннего сайта( Твиттер,. Вк, Одноклассники и т.д.) то ссылка не обязательна.

Для сообщества подходит любой скрин, набранный на клавиатуре, даже если это не диалог (под вид Твита) Так же подходит скрин с картинкой и хотя бы одним комментарием под ним, с любого источника.

Вы смотрите срез комментариев. Показать все
41
Автор поста оценил этот комментарий

Ну вообще то правильно.
var  need_kolbasa=1;

if (eagle_exist){

    need_kolbasa=10;

}


buy_kolbasa(need_kolbasa);

раскрыть ветку (95)
30
Автор поста оценил этот комментарий

Нет. Сначала нужно купить палку колбасы И, если будут яйца, то купить десяток неизвестно чего (на этом моменте нужно было выбросить exception и отправить саму жену в магазин)

раскрыть ветку (30)
6
Автор поста оценил этот комментарий

Таки да. Главный вопрос в типизации. Будет у него максимум палка колбасы. А если в fatal вывалится, то и ее не будет

1
Автор поста оценил этот комментарий

item = колбаса;

set_count(item,1)

if (есть яйца) set_count(item, 10)

buy()


Где здесь нужно выбросить эксепшен?

раскрыть ветку (16)
7
Автор поста оценил этот комментарий

А где сказано, что если есть яйца нужно купить колбасу? Жена забыла передать первый аргумент в set_count

раскрыть ветку (15)
Автор поста оценил этот комментарий

Где забыла, я ж код привёл?

раскрыть ветку (14)
1
Автор поста оценил этот комментарий
По тому, что сказано скорее

Buy(count, item){...}

Buy(1, kolbasa)
if(yaitsa) { buy(10, null) }
раскрыть ветку (9)
1
Автор поста оценил этот комментарий

Чтобы был null, жена должна сказать «купи десяток нихуя»

раскрыть ветку (8)
3
Автор поста оценил этот комментарий
Хмм... Мне всегда казалось, что "нихуя" это скорее 0, empty и т.п., а null это такое "нихуя", которое даже не определено как "нихуя".
раскрыть ветку (3)
2
Автор поста оценил этот комментарий
Читаю всегда такие ветки и думаю, что вы на ходу какую-то поеботу придумываете - типа кто краше скажет тот в итоге и выиграл
раскрыть ветку (1)
1
Автор поста оценил этот комментарий
Шерлок, но как?!
1
Автор поста оценил этот комментарий
Тогда null это получается купи то, не знаю что
2
Автор поста оценил этот комментарий

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

Так что всё в норме.

раскрыть ветку (2)
2
Автор поста оценил этот комментарий

так себе интерпретатор, однако...

мой интерпретатор бы в качестве аргумента взял бы «бархатное тёмное 0,5»

раскрыть ветку (1)
0
Автор поста оценил этот комментарий
Пойдете к нам разрабатывать компилятор?
0
Автор поста оценил этот комментарий

он бы тогда десять нихуев и купил...

0
Автор поста оценил этот комментарий

Судя по бороде на аватаре, Вы явно не жена из поста. Жена давала другие инструкции. Вот примерный код на тайпскрипте:


/*продукты из магазина, которые покупают вроде колбасы и яиц*/

interface Product {

name: string

count: number

}


/*магазин с продуктами*/

interface Store {

products: Array<Product>

}


/*муж, который умеет покупать продукты и складывать их в поле purchasedProducts*/

interface Husband {

purchasedProducts: Array<Product>

buyProduct: (productName: string, productCount: number) => void

}


/*определяем мужа*/

const husband: Husband = {

purchasedProducts: [],

buy(productName: string, productCount: number) {

this.shoppingStore.push({ name: productName, count: productCount });

},

};


/*определяем магазин*/

const store: Store = {

products: [

{

name: 'колбаса',

count: 100,

},

{

name: 'яйца',

count: 500,

},

],

};


/*Выполняем инструкцию жены: "Дорогой, купи, пожалуйста, палку колбасы*/

husband.buyProduct('колбаса', 1);


/*"и, если будут яйца..."*/

if (store.products.find(product => product.name === 'яйца')) {

/*"купи десяток" - это последняя инструкция. Десяток чего нужно купить не было указано*/

husband.buyProduct(10);

}


Компилятор выдаёт ошибку Expected 2 arguments, but got 1, указывая на husband.buyProduct(10);. Да, ещё жена не проверила наличие денег у мужа на товары, не проверила открыт ли магазин, не проверила хватит ли у мужа грузоподъёмности, чтобы донести покупки и вообще, можно ли выходить на улицу, вдруг там вместо воздуха серная кислота.

раскрыть ветку (3)
Автор поста оценил этот комментарий

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


husband.parse(`Дорогой, купи, пожалуйста, палку колбасы и, если будут яйца, купи десяток`);


И дальше все завистит от того, насколько хорошо парсер справляется с пониманием хотелок жены.

раскрыть ветку (2)
0
Автор поста оценил этот комментарий

спор не о чем, вся шутка строится на том, что программист неправильно интерпретировал задачу, а вы тут предлагаете чтобы это правильно сделал парсер, а другие считают, что нужно было интерпретировать по другому, но тоже не правильно(11, null, error).

Я считаю задача поставлена не корректно))

0
Автор поста оценил этот комментарий

Можно и так, но хотелки нужно правильно формулировать. Жена, в данном случае, повела себя как типичный заказчик и плохо сформулировала хотелку, а потом искренне удивилась результату. Впрочем, ничего нового для мужа

0
Автор поста оценил этот комментарий

ограничение торговой системы (неявное): операция покупки проводится по одному товару за раз

Исполнение задания жены

товар-перечислимый тип (колбаса, яйца);

количество_штук - целый тип.

поехали

товар=колбаса;

количество_штук=1;

купить товар(количество_штук);

товар=яйца;

если товар есть, то количество_штук=10;

иначе количество_штук=0;

купить товар(количество_штук);

оплатить покупку

получить чек

принести домой

готово

0
Автор поста оценил этот комментарий

Может это хранимая процедура? INSERT одной палки колбасы в начале процедуры, и UPDATE до 10 палок при условии, что яйца не равны 0 или NULL

раскрыть ветку (1)
0
Автор поста оценил этот комментарий

INSERT INTO mycart VALUES (‘bologna’,1);

If (@eggs <> NULL)

BEGIN

UPDATE mycart SET number = 10 WHERE items='sausage';

END

0
Автор поста оценил этот комментарий

Я выбрасываю exception, когда меня приглашают на собеседование и задают вопрос: "Почему Вы хотите работать именно в нашей компании?"

0
Автор поста оценил этот комментарий

я вообще десяток, бинарно 10 (1 и 0), то есть купить палку колбасы и 2 яйца. Чет впервые мозг прогрузился не доконца с этим десятком

Автор поста оценил этот комментарий
Это же коллбек. Выбросит ексепшн, когда проверит наличие яиц
раскрыть ветку (6)
1
Автор поста оценил этот комментарий
Это вообще не коллбек
раскрыть ветку (5)
Автор поста оценил этот комментарий
В смысле не коллбек? Думаешь, это синхронные действия и программист полностью блокируется, пока идёт в магазин?
раскрыть ветку (4)
1
Автор поста оценил этот комментарий

Коллбеки только а ассинхроннщине бывают? И как ты умудрился связать коллбек с выбросом исключения?

раскрыть ветку (3)
0
Автор поста оценил этот комментарий
Пожалуйста, раскрой свою мысль - я не понял вопросов
раскрыть ветку (2)
0
Автор поста оценил этот комментарий

все, за исключение я проебался, сорян

ну а где там коллбек я в упор не вижу) пришел в магазин, проверил наличие яиц, купил что надо. Просто последовательность действий. Ну, если в таком виде, как в анекдоте

раскрыть ветку (1)
0
Автор поста оценил этот комментарий
Я фронтендер, я так вижу
Ну и хуй с ним)
11
Автор поста оценил этот комментарий
Вот именно десять, с чего они одиннадцать решили.
раскрыть ветку (6)
3
Автор поста оценил этот комментарий
Команды ж последовательно выполняются. Сначала купи, а потом проверь
раскрыть ветку (4)
8
Автор поста оценил этот комментарий

Тоесть каждую позицию нужно отдельно пробивать на кассе, сверять со списком и идти за следующей?


Вы случайно не фанат запросов к БД в цикле?

раскрыть ветку (3)
1
Автор поста оценил этот комментарий

какое тз, такой и результат) четко сказано: купи.(ТОЧКА) проверь

раскрыть ветку (2)
0
Автор поста оценил этот комментарий

Вы ТЗ внимательно читали, я вот не заметил точки после «купи»

Иллюстрация к комментарию
0
Автор поста оценил этот комментарий

Где там точка? Там запятая.

1
Автор поста оценил этот комментарий
Просто все нормальные программисты сейчас пиздят код на форумах, а не эту дичь читают.
4
Автор поста оценил этот комментарий
А орел- то здесь причём?!)
2
Автор поста оценил этот комментарий

скорее так:

buy_colbasa(1)

if egg:

    buy_colbasa(10)

т.к. в тз не сказано о том сколько колбасы нужно семье, сказано о том, сколько купить

2
Автор поста оценил этот комментарий

Отвратительно

2
Автор поста оценил этот комментарий

Кто вас так код писать то учил?


const sausage_count = eags_count > 0 ? 10 : 1;

раскрыть ветку (47)
7
Автор поста оценил этот комментарий

Что за eag? И  при чем тут орлы

раскрыть ветку (2)
4
Автор поста оценил этот комментарий

У Орлов не бывает яиц?

раскрыть ветку (1)
1
DELETED
Автор поста оценил этот комментарий
Их не видно)
4
Автор поста оценил этот комментарий

Это псевдокод) ваш тернарный может быть не понятен многим.

И константу кто использует? И почему булеву сравниваете с нулем?

Тогда уж

var kolbasa = !eags ? 1 : 10

раскрыть ветку (43)
1
Автор поста оценил этот комментарий

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


Почему булева то? Согласно правилам хорошего тона, булева должна называться is_*, а в *_count обычно int лежит.


Почему не использовать константу, если не собираешся изменять значение?

Кстати, если немного по другому трактовать ТЗ, то можно получить 11 колбасы.

const sausage_count = 1 + (eggs_count > 0 ? 1 : 0)  *  10;

раскрыть ветку (8)
0
Автор поста оценил этот комментарий
Почему булева то?

А зачем вам считать количество яиц? Вы по всему магазину собираетесь их пересчитывать? Вам нужно знать есть ли они ли нет. Для этого лучше is_ использовать

Почему не использовать константу, если не собираешся изменять значение?

Ну а дальше будет условия что если есть кофе, то купи еще 5 колбас.

раскрыть ветку (7)
1
Автор поста оценил этот комментарий

Как условие появится, так и изменю на let. Да и если всё-таки придётся хранить количество яиц, то переменная с int уже заведена и рефакторить  ее не нужно.

раскрыть ветку (6)
0
Автор поста оценил этот комментарий
Как условие появится, так и изменю на let.

Спорное утверждение. Но да ладно, имеет место быть. Оставим так.

Можно вообще хранить список покупок в массиве, так возможно правильней будет. Или в объекте

Да и если всё-таки придётся хранить количество яиц,
И считать их? То есть постоянно выполнять ненужную функцию, которая отнимает много времени.
раскрыть ветку (5)
1
Автор поста оценил этот комментарий

eggs_count не функция же. Или кто-то в тихаря туда уже геттер захерячил?

раскрыть ветку (4)
0
Автор поста оценил этот комментарий

Ну раз там число яиц, то чо-то их туда должно посчитать и положить?

раскрыть ветку (3)
0
Автор поста оценил этот комментарий

По идее запрос через открытое api магазина.

раскрыть ветку (2)
Автор поста оценил этот комментарий
Такое ощущение, что твой собеседник о программировании впервые под этим постом узнал
раскрыть ветку (1)
0
Автор поста оценил этот комментарий

тернарный может быть не понятен многим.

ага, прям рокет сайенс

раскрыть ветку (33)
0
Автор поста оценил этот комментарий

Мне пару раз приходилось объяснять, как работает китайская подделка под тернарный оператор в lua


local sausage_count = eggs_count > 0 and 10 or 1

раскрыть ветку (32)
0
Автор поста оценил этот комментарий
Объяснять то, что пишут в любой книге/гайду/курсу/тд по этому языку? Что это за программисты такие?
раскрыть ветку (31)
0
Автор поста оценил этот комментарий

Школьники, которые решили делать заклинания в Warcraft 3, сложнее чем «нанести x урона всем вокруг»

раскрыть ветку (30)
0
Автор поста оценил этот комментарий

тернарный может быть не понятен многим.
ну я изначально на это отвечал. Не юзать тернарный оператор из-за того, что он может быть непонятен школьникам?)

раскрыть ветку (29)
Автор поста оценил этот комментарий

Как вы поняли что я не использую его?

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

Некоторые люди вообще когда-то спрашивали как сравнивать два числа...

А так я вижу лишь то, что у многих нет опыта коммерческого программирования. Глупое понимание стандартного ТЗ и общепринятых практик, использование лишнего никому не нужного функционала.

раскрыть ветку (28)
0
Автор поста оценил этот комментарий
В теме достаточно не программистов, которым не понятно это будет.

может, им еще основы программирования преподать, чтобы все шутку поняли?

Некоторые люди вообще когда-то спрашивали как сравнивать два числа...
ага. 5 лет назад. только я не лез с тупыми домыслами, что какой-то код может быть кому-то непонятен. Давайте дженерики и лямбды не использовать, а то мало ли, кто-то не поймет

А так я вижу лишь то, что у многих нет опыта коммерческого программирования. Глупое понимание стандартного ТЗ и общепринятых практик, использование лишнего никому не нужного функционала.

о чем ты, болезный?

раскрыть ветку (27)
Автор поста оценил этот комментарий

Понял. Не особо ты и толстый оказался.

раскрыть ветку (26)
0
Автор поста оценил этот комментарий

colbasa.Buy();

if(eggs.IsExist()) {

    for(int i = 0; i < 10; i++) {

        colbasa.Buy();

    }

}


colbasa.Count(); 

0
Автор поста оценил этот комментарий
В ТЗ не уточнялось что именно нужно купить при наличии десятка яиц, так что скорее так:

buyObject = "kolbasa";
buySize = 1;

if (ObjectIsExists("eggs)) {
buySize =10
};

Buy(buyObject);
0
Бездна взывает
Автор поста оценил этот комментарий
Я кстати тоже подумал. Что количество колбасы которую нужно купить вынести переменную, и если условие сработает, то она просто перкзапишется.
кароче тут уже по разному можно. Либо заранее проверить, и только потом переходить к действиям, либо выполнять все последовательно.
0
Автор поста оценил этот комментарий

eagle_exist
а про орла в анекдоте ничего не было ))

0
DELETED
Автор поста оценил этот комментарий

Ну корзина не равняется каждому новому продукту, это скорее лист.
Внимание! Индуский код. За вашу психику ответственности не несу. Не ставились пробелы, заменил стрелочками

basket = [kolbasa]
if eggs == True:
>>for I in range(10):
>>>>basket.append(kolbasa)

0
Автор поста оценил этот комментарий
А то что 100 процентов зачем-то приплетено никого значит не смутило? Пиздец программисты пошли.
Вы смотрите срез комментариев. Чтобы написать комментарий, перейдите к общему списку

Темы

Политика

Теги

Популярные авторы

Сообщества

18+

Теги

Популярные авторы

Сообщества

Игры

Теги

Популярные авторы

Сообщества

Юмор

Теги

Популярные авторы

Сообщества

Отношения

Теги

Популярные авторы

Сообщества

Здоровье

Теги

Популярные авторы

Сообщества

Путешествия

Теги

Популярные авторы

Сообщества

Спорт

Теги

Популярные авторы

Сообщества

Хобби

Теги

Популярные авторы

Сообщества

Сервис

Теги

Популярные авторы

Сообщества

Природа

Теги

Популярные авторы

Сообщества

Бизнес

Теги

Популярные авторы

Сообщества

Транспорт

Теги

Популярные авторы

Сообщества

Общение

Теги

Популярные авторы

Сообщества

Юриспруденция

Теги

Популярные авторы

Сообщества

Наука

Теги

Популярные авторы

Сообщества

IT

Теги

Популярные авторы

Сообщества

Животные

Теги

Популярные авторы

Сообщества

Кино и сериалы

Теги

Популярные авторы

Сообщества

Экономика

Теги

Популярные авторы

Сообщества

Кулинария

Теги

Популярные авторы

Сообщества

История

Теги

Популярные авторы

Сообщества

Недвижимость и ремонт

Теги

Популярные авторы

Сообщества