|
21 / 19 / 7
Регистрация: 14.03.2014
Сообщений: 249
|
|
Тестовое задание от компании Exness07.08.2017, 22:55. Показов 10265. Ответов 69
Метки нет (Все метки)
У меня нет никакого вопроса, но я так и не понял в какую ветку надо написать (все изучил внимательно), поэтому пишу сюда.
Я просто хочу поделиться своим опытом трудоустройства на тот случай если это кому нибудь поможет и узнать мнение общественности. Я получил тестовое задание от компании Exness и решил сделать его рефакторинг, а потом выполнил его и получил рецензию. Всё во вложении. Аннотация: TA.2017.refactoring-optimization (2) (1).pdf - тестовое задание MultiQueueProcessor.zip - код для рефакторинга Описание_задачи.docx - моя версия рефакторинга самого задания exness_testwork.zip - мой результат выполнения Рецензия от lyubov.belogrudova@exness.com>: вот: Юрий, добрый день! В пятницу не успела Вам написать. Вас благодарим за внимание к нашей компании, за уделенное на тестовое задание время. Но, к сожалению, по результатам тестового задания делать оффер мы не готовы. Пишу feedback от коллег: Есть несколько основных проблемы присланного кода: 1. Читаемость и понимаемость кода стремится к нулю 2. Нет краткости, элегантности, какой-то красоты в присланном решении 3. Технически код выглядит очень старомодным: a. Встречаются new/delete, unique_ptr/shared_ptr не найден b. Обилие малооправданных "велосипедов" c. С++11 очень мало по проекту Вам успехов. Еси решение изменится, дам Вам знать.
0
|
|
| 07.08.2017, 22:55 | |
|
Ответы с готовыми решениями:
69
Тестовое задание от работадателя. Хотелось бы услышать критику.
Тестовое задание |
|
21 / 19 / 7
Регистрация: 14.03.2014
Сообщений: 249
|
|
| 09.08.2017, 12:48 [ТС] | |
|
Croessmah, Там выводиться сообщение об ошибки, потом идёт посылка события о завершении потока, которое будет передано в главный поток. После того как главный поток получит событие, весь процесс будет убит. Освобождать память при её нехватки и продолжать работу плохая идея, так как ситуация с нехваткой памяти в общем случае - это признак неудачной программной архитектуры, и тут главное вовремя исправить ситуацию.
Так что нахрена козе баян ?
0
|
|
|
21 / 19 / 7
Регистрация: 14.03.2014
Сообщений: 249
|
|
| 09.08.2017, 13:11 [ТС] | |
|
Croessmah, send_exit_event сама по себе не убивает процесс, но запускает цепочку событий, окончанием которой является завершение процесса. Ваш упрёк не по адресу, так как я точно также могу сказать, а нафига я тут привёл программный код ? Её реализаия там приведена.
0
|
|
|
Неэпический
|
||||
| 09.08.2017, 13:23 | ||||
|
Оно может создать злополучный файл, который потом не убьет, и получим какое-нибудь "проге не удается получить доступ к файлу блокировки". И ладно если прога упала (линуксоидам знакома ситуация), но если она не позаботилась об этом файле из-за того, что кто-то забыл написать delete - то это ужас. Ради чего, спрашивается? Тем более сегодня оно приводит к завершению процесса, а завтра, решили что процесс должен устоять и продолжить работу, возможно, запустив новый поток или еще как-то. Процесс выжил, ресурсы утекли. Я же написал - потенциальная утечка. В задании сказано: но при этом в другом утекать ресурсы начали. Поддерживать и расширять такой код затруднительно. В общем, смысла продолжать не вижу.
0
|
||||
|
21 / 19 / 7
Регистрация: 14.03.2014
Сообщений: 249
|
||
| 09.08.2017, 19:38 [ТС] | ||
|
Croessmah, Но за желание потратить время на изучение моего программного кода большое спасибо. Я это очень ценю.
![]() Добавлено через 11 минут
Croessmah, TLN не нужно развивать. Там много разных требований к реализации. Я выбирал программные решения которые учитывают всю совокупность требований. Добавлено через 6 часов 1 минуту А кто нибудь напишет тут: 1) почему умные указатели для многопоточной очереди это плохо 2)почему дублирование кода это не всегда плохо 3)почему "велосипеды" очень даже обоснованы в случае многопоточной очереди А то совсем тоскливо както.
0
|
||
|
Неэпический
|
|||
| 09.08.2017, 19:42 | |||
|
В остальном всё нормально с ними, если они применяются там, где нужны. а вам нужна узкоспециализированная приблуда под конкретный случай, то можно и навелосипедить. Кликните здесь для просмотра всего текста
0
|
|||
|
1550 / 877 / 179
Регистрация: 05.12.2015
Сообщений: 2,555
|
||
| 09.08.2017, 21:16 | ||
|
Croessmah, ТС писал:
0
|
||
|
21 / 19 / 7
Регистрация: 14.03.2014
Сообщений: 249
|
|
| 10.08.2017, 12:34 [ТС] | |
|
Croessmah, Ну вот в том месте где вы показали применение умных указателей и тем способом для данной конкретной задачи, вы считаете они уместны ?
Добавлено через 1 минуту avgoor, Вы меня разоблачили))) Добавлено через 14 часов 2 минуты Единственный пункт, где мне возможно стоит посмотреть как это делается у других это читаемость и понимаемость кода. Что надо сделать с кодом ? Только не говорите про комментарии. Их там не хватает потому что времени не было больше на данное тестовое задание.
0
|
|
|
21 / 19 / 7
Регистрация: 14.03.2014
Сообщений: 249
|
|
| 27.10.2017, 22:41 [ТС] | |
|
ЧуднО будоражить старые темы, но всё же вопрос timeoverhead-a не давал мне покоя всё это время и я наконец, причесав код, и сделав рефакторинг всей архитектуры, хотел бы выложить новую версию, а заодно и статиситику. Собственно дело в том, что работодатель запросил максимальную производительность, а когда увидел код начал плеваться, мол где умные указатели.
остальные претензии про велосипеды тоже не в кассу(ИМХО). новая_версия статистика
0
|
|
|
21 / 19 / 7
Регистрация: 14.03.2014
Сообщений: 249
|
|
| 27.10.2017, 23:03 [ТС] | |
|
Забыл...
чтобы работало надо буст пропатчить. Файлы во вложении.
0
|
|
|
|
|||
| 28.10.2017, 14:51 | |||
|
Добавлено через 11 минут
0
|
|||
|
21 / 19 / 7
Регистрация: 14.03.2014
Сообщений: 249
|
||
| 28.10.2017, 15:04 [ТС] | ||
|
Kastaneda, Смотhя что. Тестбенч не оформлял. Остальной код написан аккуратно с комментариями. Не самую удачную архитектуру выбрал с самого начала и это наверно затрудняет читаемость кода. Чтото ещё кроме архитектуры и стиля кодирования может существенно повлиять на читаемость кода ?
Патч в последнем сообщении.
0
|
||
|
21 / 19 / 7
Регистрация: 14.03.2014
Сообщений: 249
|
|
| 28.10.2017, 15:34 [ТС] | |
|
Kastaneda,
Наверно не тот случай когда важна терминология. Патч, в переводе на русский - заплатка. Заменить файлы проще, но если надо просто посмотреть, то см. вложении. сделал 2 .diff файла
0
|
|
|
21 / 19 / 7
Регистрация: 14.03.2014
Сообщений: 249
|
|
| 28.10.2017, 15:40 [ТС] | |
|
Только надо пути подправить. Утилита создала патч с абсолютными путями.
0
|
|
|
|
||
| 28.10.2017, 19:42 | ||
|
А зачем понадобилось буст патчить? Решение с патчем явно попахивает.
0
|
||
|
21 / 19 / 7
Регистрация: 14.03.2014
Сообщений: 249
|
|
| 28.10.2017, 19:46 [ТС] | |
|
Kastaneda, А вы попробуйте, без патча. Может и не нужен он)))
0
|
|
|
21 / 19 / 7
Регистрация: 14.03.2014
Сообщений: 249
|
|
| 28.10.2017, 20:20 [ТС] | |
|
Croessmah, патччи бесполезны когда уже иная архитектура. Там почти всё по другому.
Добавлено через 7 минут Croessmah, Я уже думую код вполне себе зрелый, хотя критика интересна, но интересно уже и куда эту самую многопоточную очередь впихнуть чтобы вышел программный продукт. Наверно в каких то серверах нужна, но вот в каких и где большой вопрос. времени и сил потрачено много так что есть интерес найти ей применение.
0
|
|
|
Неэпический
|
||||||
| 28.10.2017, 20:33 | ||||||
2) Вызов деструктора в конструкторе? 3) А деструктор еще и виртуальный. Ух! Всё полетит классно в случае исключения. ![]() Не, не буду портить Boost.
0
|
||||||
| 28.10.2017, 20:33 | |
|
Тестовое задание на Junior C++ dev
Тестовое задание для трудоустройства Написать ответы на тестовое задание при приёме на работу (исключения, sizeof, mutex) Тестовое задание Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Про "Windows must die!"
kumehtar 04.11.2026
Знаете, чет накатило. . . .
Когда-то это было почти боевым кличем: мол, нормальный человек сидит на DOS, OS/ 2 или Linux, а вот это вот - Must Die. А теперь человек произносит «мастдай» с усмешкой - и. . .
|
Красочные поля с номером страницы svg+background-image
russiannick 04.11.2026
Красочные поля с номером страницы не менее важны чем в эпоху бумажных книг.
Посему спешу представить почтеннейшей публике этот важный инструмент который эти поля и формирует.
В процессе разработки. . .
|
Вступаем в новую фазу генерации favicons, векторную.
russiannick 02.11.2026
Теперь нет нужды скрывать что используется простой svg. Исходный код изображения помещаем в поле и жмем кнопку. Исходник преобразуется в вид корректный для помещения в favicon или в url(). Нажатие. . .
|
Генератор паролей (вариант №4)
Maks 01.11.2026
После публикации 3-го варианта генератора паролей, разослал его своим коллегам (с целью оценки), в итоге были получены следующие рекомендации:
1. Вернуть возможность использования знаков | 1 l I;. . .
|
|
Генератор паролей (вариант №3)
Maks 30.10.2026
Финальная версия генератора паролей 1С.
Доработка решения в этот раз коснулась только визуальной части, а именно, добавлен реквизит ДопПараметры (тип Булево), который скрывает/ отображает реквизиты:. . .
|
Магическое мышление и магия, современная наука не отличима от магии (говорит ИИ Джемени)
zorxor 30.10.2026
Джемени, расскажи, пожалуйста, что такое магическое мышление, что такое магия, почему современная наука чем-то напоминает магию?
Фраза «Любая достаточно развитая технология неотличима от магии». . .
|
За какое время ИИ может подобрать пароль по хешу (рассказывает Джемени ИИ)
zorxor 30.10.2026
Расскажи, Джемени, если известен хэш МД5, например, за сколько ИИ сможет подобрать соответствующий пароль?
Искусственный интеллект (ИИ) может подобрать простой или средний по сложности пароль по. . .
|
Кто убил Suno? Почему наше солнышко погасло? (диалог с ИИ Джемени)
zorxor 30.10.2026
Как убивали Suno. Хронология.
«Убийство» музыкальной нейросети Suno — это затяжной процесс, в котором технологический хайп стартапа разбился о жесткую реальность судебных исков от гигантов. . .
|