Re[7]: Просидев на одном предприятии несколько лет...
От: Doom100500 Израиль  
Дата: 12.08.21 05:14
Оценка: -1
Здравствуйте, mgu, Вы писали:

mgu>В конце предложения подразумевалась точка или двоеточие?


mgu>Пропущены 2 запятые. Читаемость!


Т.е. когда сказать нечего, то вполне приемлемо попридираться к запятым и точкам.

mgu>Речь щла о базовом классе "математические операции".


Вот это поворот! (В конце восклицательный знак )

Раз уж здесь принято переводить стрелки, то ловите, уважаемый:

mgu>Я даже техзадания не могу прочитать сходу.


mgu>Автоформатирование появилось не так давно.


Спад умственных способностей и жизнь в прошлом вполне себе являются признаками ранней деменции. Пора начинать беспокоиться.
Спасибо за внимание
Отредактировано 12.08.2021 5:16 Doom100500 . Предыдущая версия .
Re[4]: Просидев на одном предприятии несколько лет...
От: vaa  
Дата: 12.08.21 15:29
Оценка:
Здравствуйте, Kernan, Вы писали:

K>Мне вот не кажется. Идея с парсер-комбинаторами — огонь (признаюсь, первый раз про это слышу). Очевидно, по скорости оно отстаёт от ручного разбора, но читабельность и гибкость решает.

Сразу не увидел, парсер у него готовый. ну да ладно.
я бы наверно просто сплитом разбил на 3 части сначала по пробелу, потом дату по точкам, т.е. раздробил бы на мелкие части.
можно красиво оформить флуентом, формат очень четко описан. стабилен так сказать.
еще бросилось в глаза что год с 2000 начинаться должен. т.е. задание вероятно очень древнее. сравнили со своей реализацией.
свое понравилось больше )))
☭ ✊ В мире нет ничего, кроме движущейся материи.
Re[8]: Просидев на одном предприятии несколько лет...
От: mgu  
Дата: 12.08.21 15:47
Оценка:
Здравствуйте, Doom100500, Вы писали:

mgu>>В конце предложения подразумевалась точка или двоеточие?


mgu>>Пропущены 2 запятые. Читаемость!


D>Т.е. когда сказать нечего, то вполне приемлемо попридираться к запятым и точкам.


Сказать есть что, но сперва нужно понять ваше "казнить нельзя помиловать".

mgu>>Речь щла о базовом классе "математические операции".


D>Вот это поворот! (В конце восклицательный знак )


Логические операции -- это ваша идея.

D>Раз уж здесь принято переводить стрелки, то ловите, уважаемый:


mgu>>Я даже техзадания не могу прочитать сходу.


mgu>>Автоформатирование появилось не так давно.


D>Спад умственных способностей и жизнь в прошлом вполне себе являются признаками ранней деменции. Пора начинать беспокоиться.


"Появилось не так давно" подразумевает сравнение прошлого и настоящего. Начинайте беспокоиться.
Re[5]: Просидев на одном предприятии несколько лет...
От: mgu  
Дата: 12.08.21 15:55
Оценка: :))
Здравствуйте, vaa, Вы писали:

vaa>еще бросилось в глаза что год с 2000 начинаться должен. т.е. задание вероятно очень древнее.


У меня уже скопился архив тестовых заданий, я в них только добавляю современного сахара. Жизнь коротка, тесты вечны!
Re: Просидев на одном предприятии несколько лет...
От: Gradiens  
Дата: 12.08.21 21:09
Оценка: +2
Здравствуйте, vaa, Вы писали:

vaa>https://habr.com/ru/post/571342/

vaa>Читаю комменты второй день и . Парадоксально на мой взгляд, но никто до сих пор(региться не охота)
vaa>не отметил:

Я просмотрел мельком комменты и тут и на хабре.

И парадоксально другое: никто не отметил, что сейчас такая дикая нехватка кадров, что только вывесив резюме спец получает несколько приглашений на собес каждый день. А компании не могут закрыть вакансии месяцами, если они только не вывешивают ценник сильно выше рынка.
Как человек, недавно побывавший как с одной, так и с другой стороны баррикад, недоумеваю, зачем в такой реальности вообще тратить время на тестовые задания?
Re[4]: Просидев на одном предприятии несколько лет...
От: vsb Казахстан  
Дата: 12.08.21 22:26
Оценка:
Здравствуйте, B0FEE664, Вы писали:

mgu>>Приоритет математических операций изучают во втором классе школы. Судя по правописанию, автор закончил только первый.

BFE>Я не знаю, как там оно в C#, поэтому мне со скобками проще читать. А как надо?

А надо выучить язык, который используешь и не использовать скобки там, где они не нужны, чтобы не путать людей.
Re[2]: Просидев на одном предприятии несколько лет...
От: vaa  
Дата: 13.08.21 01:40
Оценка: :)
Здравствуйте, Gradiens, Вы писали:

G>Как человек, недавно побывавший как с одной, так и с другой стороны баррикад, недоумеваю, зачем в такой реальности вообще тратить время на тестовые задания?

верхи не могут низы не хотят

или наоборот.
☭ ✊ В мире нет ничего, кроме движущейся материи.
Re[3]: Просидев на одном предприятии несколько лет...
От: B0FEE664  
Дата: 13.08.21 08:27
Оценка:
Здравствуйте, mgu, Вы писали:

scf>>На хабре выложили интересный разбор решения и предложили "как надо" https://habr.com/ru/post/572052/


mgu>Я наверно пропустил, там конкурс на лучшего говнокодера?

Похоже на то.
mgu>Говнокодерство заразно!
Ещё два-три таких улучшения и код станет совершенно невозможно прочесть.
И каждый день — без права на ошибку...
Re[4]: Просидев на одном предприятии несколько лет...
От: B0FEE664  
Дата: 13.08.21 09:00
Оценка:
Здравствуйте, Тёмчик, Вы писали:

scf>>>P.S. И, конечно, сначала посмотрел бы, как умные люди это уже реализовали

БП>>Не-не-не, не нужно смотреть. Там точно такая же простыня, но с регулярками.
Тё>Код на лиспе. Функции достаточно короткие. Сравни это с кодом автора, где 1 метод- гигантская простыня с кучей вложенных if-ов — else-ов.

А ещё надо время выполнения сравнить...
И каждый день — без права на ошибку...
Re[6]: Просидев на одном предприятии несколько лет...
От: B0FEE664  
Дата: 13.08.21 09:50
Оценка:
Здравствуйте, rosencrantz, Вы писали:

R>Это мифы и легенды. И регулярками пользуются, и парсеры пишут. В данной конкретной ситуации нет каких-то реальных причин, их не использовать. Можно додумать нереальные конечно.

Пользуются, только потом таким софтом пользоваться не приятно. К примеру, что будет если задать расписание:
"2021.12.12 00:11:99999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999.5555"
Приложение не упадёт? А если строку увеличить до магабайта? Отработает корректно? Ну ладно, это строка не корректна. Возьмём корректный пример. Так... Длина строки не ограничена никак, тогда... Используем список:
"2021.12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12.12 00:11:22.999"

Таких ",12" можно задать, скажем, 12 миллионов. (Если, например, выдумать, что расписание генерируется скриптом на основе данных взятых из базы, то почему бы и нет?) Вы всё ещё уверены в своих регулярках?

R>>>Про тормоза не стоит так вопрос ставить. Тормозит не код, тормозит система в конкретном ворклоаде.

BFE>>Т.е. вы считаете, что для задачи которая оперирует с миллисекундами скорость не важна?
BFE>>Или, может, точно известно, что это не мобильное устройство и батарейку экономить не надо?

R>Глобальное потепление ещё забыли.

Если задача выполняется на сотнях тысячах компьютеров десятки лет...

R>Ваша мифическая система 99% времени занимается разбором расписаний и 1% времени — вычислениями таймстемпов следующих/предыдущих ивентов? Мы поэтому обсуждаем тормоза регулярок, да?

Допустим нам надо сэкономить память, потому что у нас десятки тысяч таких расписаний.
Как это сделать?
Есть простой способ: вместо того, чтобы хранить массивы _years, _months, ... можно хранить только строку расписания, а при каждом вызове для следующих/предыдущих ивентов разбирать эту строку в массивы лежащие на стеке. Тогда, если разбор быстрый — то всё получится, а вот если медленный — придётся переписывать.

BFE>>Автор ошибается. В условиях сказано:

BFE>>

BFE>>класс должен быть эффективным и не использовать много памяти и ресурсов даже тогда, когда в расписании задано много значений.


R>Не использовать много памяти — это сколько? Много значений — это сколько? Я из написанного этого прочитать не могу, поэтому интерпретирую как "используйте здравый смысл". Вы прямо микроконтроллер c 4кб памяти разглядели?


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

R>>>>>Чтобы можно было красиво ругаться "что qwerty не выглядит как число от 1 до 12".

BFE>>>>И что с этим потом делать?
R>>>Падать с эксшепшном "плохое выражение: qwerty не выглядит как число от 1 до 12" вместо "плохое выражение".
BFE>>Не стоит забывать, что это тестовое задание, а не рабочий код.
R>"Ну это же тестовое задание, поэтому плохой код допустим",
В нормальной программе падение вообще не допустимо.

R>"ну у нас же дедлайн завтра, поэтому плохой код допустим", "демо через 15 минут, поэтому я буду коммитить в мастер без пулриквестов".

К чему это написано?

R>Это ведь каким токсичным засранцем надо быть, чтобы требовать возможности проговорить требования и послать всех подальше, если отказываются обсуждать, да? Прикинуть сколько займёт нормальное решение задачи — за которое не стыдно, которое можно читать и расширять, удивиться, что выходит неделя и снова — либо предложить нанимающей компании оплатить это по адекватному рейту, или послать нафиг компанию, если отказываются? Это ведь совсем отморозком нужно быть, в цивилизованном обществе 21 века у нас так не принято, да?

Ну да, компания "токсичная". С такими просто: сначала договариваешься о такой зарплате, при которой сделать бесплатный тест не лень, а потом делаешь тест. Только так, не наоборот. Впрочем, в таких компаниях как только слышат о том, сколько хочешь получать, так сразу отказывают, без тестового задания.

R>Но автор статьи не такой — товарищ согласился забесплатно без нормальной постановки задачи что-то изобразить за 1 день.

Автор тренируется перед началом нормального поиска. Обычное дело.
И каждый день — без права на ошибку...
Re[7]: Просидев на одном предприятии несколько лет...
От: rosencrantz США  
Дата: 13.08.21 14:13
Оценка:
Здравствуйте, B0FEE664, Вы писали:

BFE>Здравствуйте, rosencrantz, Вы писали:


R>>Это мифы и легенды. И регулярками пользуются, и парсеры пишут. В данной конкретной ситуации нет каких-то реальных причин, их не использовать. Можно додумать нереальные конечно.

BFE>Пользуются, только потом таким софтом пользоваться не приятно. К примеру, что будет если задать расписание:
...
BFE>Приложение не упадёт? А если строку увеличить до магабайта? Отработает корректно? Ну ладно, это строка не корректна. Возьмём корректный пример. Так... Длина строки не ограничена никак, тогда... Используем список:

вот не знаю зачем я вообще писал: "можно додумать нереальные конечно". Анекдот про суровых сибирских мужиков.

BFE>Таких ",12" можно задать, скажем, 12 миллионов. (Если, например, выдумать, что расписание генерируется скриптом на основе данных взятых из базы, то почему бы и нет?) Вы всё ещё уверены в своих регулярках?


Чего уж там, давайте сразу 10^1234

R>>Ваша мифическая система 99% времени занимается разбором расписаний и 1% времени — вычислениями таймстемпов следующих/предыдущих ивентов? Мы поэтому обсуждаем тормоза регулярок, да?

BFE>Допустим нам надо сэкономить память, потому что у нас десятки тысяч таких расписаний.
BFE>Как это сделать?
BFE>Есть простой способ: вместо того, чтобы хранить массивы _years, _months, ... можно хранить только строку расписания, а при каждом вызове для следующих/предыдущих ивентов разбирать эту строку в массивы лежащие на стеке. Тогда, если разбор быстрый — то всё получится, а вот если медленный — придётся переписывать.

Вот она — конкретная система с конкретным ворклоадом. Только ведь вы её с потолка взяли — к исходной задаче это отношения не имеет.

Что будете делать если быстрый разбор в реальности оказажется недостаточно быстр ("у нас тут миллисекунды же")?

R>>Не использовать много памяти — это сколько? Много значений — это сколько? Я из написанного этого прочитать не могу, поэтому интерпретирую как "используйте здравый смысл". Вы прямо микроконтроллер c 4кб памяти разглядели?


BFE>Тут без включения телепатии и знания области в которой работает контора узнать не возможно. Однако, обычно, известно что делает контора в которую пытаешься устроится, поэтому можно сделать некоторые предположения.


Чего уж там, давайте сразу зашпионим проверяльщика задания и выясним какие книжки он читал за последние полгода
Re[3]: Просидев на одном предприятии несколько лет...
От: Gradiens  
Дата: 13.08.21 14:48
Оценка: 12 (1) +1
Здравствуйте, vaa, Вы писали:

vaa>Здравствуйте, Gradiens, Вы писали:


G>>Как человек, недавно побывавший как с одной, так и с другой стороны баррикад, недоумеваю, зачем в такой реальности вообще тратить время на тестовые задания?

vaa>

vaa>верхи не могут низы не хотят

vaa>или наоборот.

А причем тут это?

Смотри, я как соискатель просто не хочу тратить время на задание. Потому что за это время смогу пройти 2-3 интервью.
Я как работодатель не хочу тратить время на разбор чьих-то каракуль. Мне и на моем проекте хватает код-ревью. Я лучше дам человеку пример кода на 1 экран и попрошу проревьювить. И за 10-15 мин станет ясно, имеет ли смысл дальнейший диалог.

Так что никто не хочет ))
Re[4]: Просидев на одном предприятии несколько лет...
От: sergey2b ЮАР  
Дата: 13.08.21 16:07
Оценка:
Здравствуйте, Gradiens, Вы писали:


G>Смотри, я как соискатель просто не хочу тратить время на задание. Потому что за это время смогу пройти 2-3 интервью.

G>Я как работодатель не хочу тратить время на разбор чьих-то каракуль. Мне и на моем проекте хватает код-ревью. Я лучше дам человеку пример кода на 1 экран и попрошу проревьювить. И за 10-15 мин станет ясно, имеет ли смысл дальнейший диалог.

G>Так что никто не хочет ))


говорят что те читает и понимает
не всегда могут писать нормально
Re[4]: Просидев на одном предприятии несколько лет...
От: Venom  
Дата: 13.08.21 16:14
Оценка:
Здравствуйте, Gradiens, Вы писали:

G>Так что никто не хочет ))

Никто не хочет думать, да, потому что как говорил, кажется, Форд: "Думать — это самое сложное (трудное)".
И продолжение цитаты: "Вот, наверное, почему так мало людей этим занимается".
Всё сходится.
Re: Просидев на одном предприятии несколько лет...
От: Vladek Россия Github
Дата: 16.08.21 13:45
Оценка: +2
Здравствуйте, vaa, Вы писали:

vaa>https://habr.com/ru/post/571342/

vaa>3. почему-то все крутые прогеры пока только накидывают критики, но никто не показал образцовое решение.

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

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

Задание конечно же совсем не на сутки — думаю, за неделю можно что-то изобразить. Но зачем? Чтобы удостоиться чести быть приглашенным на дальнейший разговор? Разговор до задания в любом случае необходим — может там такая контора и так организована процесс/работа, что тебя это не устраивает любом случае.
Re[4]: Просидев на одном предприятии несколько лет...
От: SkyKnight Швейцария https://github.com/dmitrigrigoriev/
Дата: 30.08.21 11:09
Оценка:
Здравствуйте, elmal, Вы писали:

E>Во первых там не все 5 дней на фултайме делали. Уверен что на альтернативный вариант максимум час потратили, ибо неимоверно лень.

6-8 часов по словам автора "как надо"
github.com/dmitrigrigoriev/
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.