![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Новичок
Джуниор
Регистрация: 20.03.2013
Сообщений: 1
|
![]()
Уважаемые сеньоры, просьба оценить код:
// Вакансия: Ведущий программист СSharp (senior СSharp dev) using System; using System.Collections.Concurrent; using System.Threading.Tasks; namespace Vacancy { class ModernInventmentTechnologies { private readonly BlockingCollection<ICandidate> _queue; public ModernInventmentTechnologies() { _queue = new BlockingCollection<ICandidate>(); Task.Factory.StartNew(MonitorCandid ates); } void Enqueue(ICandidate c) { _queue.Add(c); } void MonitorCandidates() { const string responsibility = @"- активное участиe в разработке интеллектуального ПО (позитронные роботы) – разноплановые задачи - от понимания требований заказчика и построения архитектуры систем до непосредственной реализации идей в виде кода; const string terms = @"- уровень, разнообразие и динамика задач способствуют обогащению проф.багажа - творческая атмосфера процесса разработки помогает обнаружить новые уровни креатива в проф.мастерстве - эквивалент усилий и вклада в разработку - достойная оплата и другие интересные возможности, которые можно обсудить непосредственно на собеседовании - на собеседование можно подъехать в любое удобное время по предварительной договоренности, офис расположен в центральном районе Москвы; foreach (var candidate in _queue) { if (CandidateSatisfies(candidate)) { if (candidate.AgreesForTermsAndRespons ibilities(responsibility, terms)) { candidate.WelcomeOnBoard(); continue; } candidate.ThankYouForYourTime("Спас ибо за Ваше время!"); continue; } candidate.ThankYouForYourTime("Вы-профессиональный программист? Хотите стать ещё профессиональнее? Ждём!"); } } bool CandidateSatisfies(ICandidate c) { if (c.Patterns_of_Enterprise_Applicati on_Architecture_Мартина_Фаулера_и_C LR_via_CSharp_Джеффри_Рихтера_внима тельно_изучены() && c.Опыт_разработки_бизнес-приложений_на_СSharp _или_C_PlusPlus_от_3_4_х_лет() && c.Практические_навыки_работы_с_мног опоточностью() && c.Знание_современных_методов_создан ия_ПО() && c.Представление_о_СУБД() && c.Высшее_техническое_образование() && c.Английский_на_уровне_Intermediate ()) { return true; } return false; } } internal interface ICandidate { void WelcomeOnBoard(); void ThankYouForYourTime(string message); bool Patterns_of_Enterprise_Application_ Architecture_Мартина_Фаулера_и_CLR_ via_CSharp_Джеффри_Рихтера_внимател ьно_изучены(); bool Опыт_разработки_бизнес-приложений_на_СSharp _или_C_PlusPlus_от_3_4_х_лет(); bool Практические_навыки_работы_с_многоп оточностью(); bool Знание_современных_методов_создания _ПО(); bool Представление_о_СУБД(); bool Высшее_техническое_образование(); bool Английский_на_уровне_Intermediate() ; bool AgreesForTermsAndResponsibilities(s tring responsibility, string terms); } } с вопросами и предложениями hr.sigma.ru at gmail.com +7 968 7924658 |
![]() |
![]() |
![]() |
#2 | |
Старожил
Регистрация: 25.10.2011
Сообщений: 3,178
|
![]() Цитата:
Опять же, условие выхода из цикла MonitorCandidates с высокой вероятностью не соответствует ТЗ. И почему позитронные роботы - ПО? |
|
![]() |
![]() |
![]() |
#3 | |
Дружите с Linq ;)
Форумчанин
Регистрация: 15.10.2008
Сообщений: 823
|
![]()
1)
Код:
2) Согласен с Abstraction в Цитата:
4)От CandidateSatisfies тошнит, упаковал бы каждое поле bool в ICandidate в класс с единым интерфейсом IЗнание, аля название-уровень знания. В интерфейсе ICandidate получал коллекцию IЗнание. Плюсы каждый кандидат имеет свои знания, есть требования со своими коллекциями IЗнание, можно спокойно уйти от таких if в linq. Так же гибкость повыситься в разы, код мониторинга будет проще и не зависеть от переменных величин. Минус-больше классов, необходимость для каждого из требований создавать коллекции IЗнаний. 5) Настораживает большое количество continue в foreach , но без форматирования текста фиг разберешь почему, может я мнителен. Итог: Архитектура полное УГ. Реализацию перевести в linq.
Не давай организму поблажки, каждый день тренируй его в шашки..
![]() |
|
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
вопрос для проффесионалов | sveshulek | Фриланс | 2 | 02.12.2011 20:59 |
Вопрос для людей, кто реально «шарит» в сфере VPN. Очень важно для меня. | Sorus_Nomad | Безопасность, Шифрование | 5 | 27.10.2011 11:22 |
Вопрос для сообразительных. | СисТемникс | Компьютерное железо | 2 | 22.06.2010 23:27 |