Об ИТ из Канады

Блог Михаила Флёнова - программист, блогер, автор нескольких скандальных книг какими-то глазами...

Решение задачи на алгоритм с помощью LINQ

2016-08-20 08:08:40 / Программирование

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

На прошлой работе у меня в команде работал хороший программист и я решил его посоветовать. Он пришёл на тест, и как он мне сказал, решил его с помощью LINQ выражения. 

Я то знаю, что он хороший программист, но не уверен, что LINQ - это правильное решение. Если бы я принимал тест, я бы заставил переделать все без использования LINQ.

Что ты думаешь по этому поводу? Правильно ли принимать решения задачи, если она решена с помощью LINQ? Может ли это показать профессионализм программиста?


Понравилась статья?

Комментарии

Таблицешлеп

Молодец, я бы тоже попроще вариант сделал.

2016-08-20 10:13:52

Евгений

А разве Linq чем-то хуже в производительности, чем традиционный перебор элементов 2-х массивов?

2016-08-21 04:19:54

urumchic

Если цель в том чтобы определить умеет ли человек реализовать какой нибудь алгоритм сортировки или поиска то конечно стоит попросить переписать решение без использования Where или OrderBy.

2016-08-21 06:24:54

Евгений

Лучше уточнить, что желательно использовать. А то ведь это говорит о том, что он хорошо знает linq, что само по себе является плюсом для него.

2016-08-21 09:08:41

eqr

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

2016-08-21 14:39:49

СкульРидер

Хитрый код красноглазых бородачей, любителей чтива K&R, все равно необходимо изолировать и выпилить в отдельные сущности и библиотеки.

Ибо подобное спагетти == мина замедленного действия.

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

Если в задании не указано, что его нужно сделать в unsafe и через указатели, то какие вопросы могут быть по реализации.

И третье, если уж говорить о хайлоаде, то нет никакой гарантии в том, что красноглазый спагетти код из десяти вложенных массивов будет быстрее, чем код сгенерированый Linq после оптимизации.

2016-08-23 02:27:10

Опечатка

* десяти вложенных циклов

2016-08-23 02:30:03

Владимир

Заговорили за массивы и сортировки чего то вспомнился вопрос - как часто Вам приходится использовать алгоритмы сортировки? Во время изучения программирования, наверно все, изучали несколько вариантов сортировок, но на практике как часто это используется?

2016-09-02 09:01:08

Михаил Фленов

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

2016-09-02 10:56:21

Оставить комментарий


Умеешь пользоваться BB кодами? Прекрасно, здесь можно использовать [quote] для цитирования, а так же [b] и [i]. Остальные коды пока использовать запрещено. Я думаю по поводу их использования. В комментариях нельзя выяснять крутость каких-либо продуктов, нужно уважать собеседников и не грубить и нельзя ничего додумывать (читайте мои посты внимательно). Нарушение этих простых правил ведет к удалению комментариев без предупреждения.

О блоге

Программист, автор нескольких книг серии глазами хакера и просто блогер. Интересуюсь безопасностью, хотя хакером себя не считаю

Внимание!

А ты уже читал мою последнюю книгу о больших сайтах и приложениях? Узнай, что это такое здесь

Обратная связь

Без проблем вступаю в неразборчивые разговоры по e-mail. Стараюсь отвечать на письма всех читателей вне зависимости от страны проживания, вероисповидания на русском или английском языке.

Пишите мне