|
21 / 19 / 7
Регистрация: 14.03.2014
Сообщений: 249
|
|
Тестовое задание от компании Exness07.08.2017, 22:55. Показов 9444. Ответов 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 | |
|
Помогаю со студенческими работами здесь
40
Тестовое задание на Junior C++ dev
Тестовое задание для трудоустройства Написать ответы на тестовое задание при приёме на работу (исключения, sizeof, mutex) Тестовое задание Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
||||
|
Новый ноутбук
volvo 07.12.2025
Всем привет.
По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне:
Ryzen 5 7533HS
64 Gb DDR5
1Tb NVMe
16" Full HD Display
Win11 Pro
|
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
|
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
|
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов
На странице:
https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/
нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
|
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов.
. . .
|
|
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
|
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
|
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут.
В век Веб все очень привыкли к дизайну Single-Page-Application .
Быстренько разберем подход "на фреймах".
Мы делаем одну. . .
|
Фото: Daniel Greenwood
kumehtar 13.11.2025
|
Расскажи мне о Мире, бродяга
kumehtar 12.11.2025
— Расскажи мне о Мире, бродяга,
Ты же видел моря и метели.
Как сменялись короны и стяги,
Как эпохи стрелою летели.
- Этот мир — это крылья и горы,
Снег и пламя, любовь и тревоги,
И бескрайние. . .
|