Re[2]: тестовое задание
От: Хэлкар  
Дата: 05.12.13 17:25
Оценка:
Р>Ты не понял что такое составной ключ и на кой черт он нужен.

Я тоже по заданию не понял на кой черт здесь нужен составной ключ.
Re[3]: тестовое задание
От: Хэлкар  
Дата: 05.12.13 17:25
Оценка:
Здравствуйте, Хэлкар, Вы писали:

Р>>Ты не понял что такое составной ключ и на кой черт он нужен.


Х>Я тоже по заданию не понял на кой черт здесь нужен составной ключ.


Можете объяснить?
Re: тестовое задание
От: Nuseraro Россия  
Дата: 05.12.13 17:33
Оценка:
Здравствуйте, mig84, Вы писали:

Вы серьезно? не троллинг?

Полкода лишние и он не делает то, что должен. Даже близко. Много очевидных опечаток. Общий хаос в коде.

Рекомендую внимательнее прочесть задание и сделать значительно больше усилий над разработкой.

А вы уже работали программистом?
Homo Guglens
Re[4]: тестовое задание
От: Mystic Украина http://mystic2000.newmail.ru
Дата: 05.12.13 18:14
Оценка:
Здравствуйте, Хэлкар, Вы писали:

Х>>Я тоже по заданию не понял на кой черт здесь нужен составной ключ.

Х>Можете объяснить?

Спроектируйте и реализуйте класс-коллекцию для хранения элементов, имеющих уникальный составной ключ [Id, Name] (Id и Name – компоненты ключа, могу быть произвольного типа).

Получаем в сишной терминологии
template <typename A, typename B, typename C>
  class our_magic_container_t: private std::map<std::pair<A, B>, C>
{
};


а так же методы для эффективного по скорости получения элементов по их Id ИЛИ Name.

Получаем два метода
template <class Iterator> 
  void our_magic_container::copy_into(const A & id, Iterator pos);
template <class Iterator> 
  void our_magic_container::copy_into(const B & name, Iterator pos);
Re: тестовое задание
От: robin_of_the_wood Россия  
Дата: 05.12.13 18:22
Оценка:
Здравствуйте, mig84, Вы писали:

M>Предоставьте необходимые с вашей точки зрения методы для этой коллекции, а так же методы для эффективного по скорости получения элементов по их Id ИЛИ Name.

...
M>Этот вариант решения, как видно, не понравился проверявшему.
M>Буду признателен, если "ткнете носом" в ошибки. Понимаю, что, возможно подошел к решению довольно формально, но по требованиям вроде все реализовал. Или чего-то не так понял.

Я не очень силен в C# и возможно чего и не понял в коде, но мне показалось что выделенная часть условия не была реализована.
Для уточнения задам простой вопрос.
Допустим я добавил в Вашу коллекцию миллион элементов.
Какое максимальное количество итераций потребуется для поиска элемента по Id и какое по Name?
Проектирование велосипедов для слепых жирафов
Re[5]: тестовое задание
От: Хэлкар  
Дата: 05.12.13 18:49
Оценка:
Собственно в дотнете мы получаем ровно тоже самое. Вопрос — зачем нужен "составной ключ", если мы всегда запрашиваем данные по одному или по другому параметру?
Re: тестовое задание
От: dasha19  
Дата: 05.12.13 19:01
Оценка: -1
о боже, это полный дотнет головного мозга
Re[6]: тестовое задание
От: Mystic Украина http://mystic2000.newmail.ru
Дата: 05.12.13 19:05
Оценка:
Здравствуйте, Хэлкар, Вы писали:

Х>Собственно в дотнете мы получаем ровно тоже самое. Вопрос — зачем нужен "составной ключ", если мы всегда запрашиваем данные по одному или по другому параметру?


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

public MyElement GetElementById(UserType _id)


должно быть заменено на

public IEnumerable<MyElement> GetElementById(UserType _id)


познания в C# не позволяет мне указать произвольный контейнер, куда будут вставлены элементы типа MyElement.
Re: тестовое задание
От: john100  
Дата: 06.12.13 05:06
Оценка:
Здравствуйте, mig84, Вы писали:

M>Здравствуйте. Не так давно выполнил (во всяком случае так считал) тестовое задание. Описание задачи:

M>Спроектируйте и реализуйте класс-коллекцию для хранения элементов, имеющих уникальный составной ключ [Id, Name] (Id и Name – компоненты ключа, могу быть произвольного типа). Вы можете использовать любую встроенную коллекцию .NET Framework.
M>Предоставьте необходимые с вашей точки зрения методы для этой коллекции, а так же методы для эффективного по скорости получения элементов по их Id ИЛИ Name.
M>Программа должна содержать пример использования коллекции с идентификатором ключа в виде пользовательского типа (т.е. Id в ключе – UserType, объекты UserType должны сравниваться по значению).
M>Дополнительно: Создайте потокобезопасную реализацию этой коллекции (не использовать коллекции из пространства имён System.Collections.Concurrent).
M>


2ГИС детектед . Тут generic конечно был нужен.
Могу показать код для этой задачи который они приняли
Re[4]: тестовое задание
От: alzt  
Дата: 06.12.13 10:36
Оценка:
Здравствуйте, mig84, Вы писали:

Х>>Охм, посмотрел GetElementById и GetElementByName — зачем там dynamic???


M>А почему бы и нет? ))) Просто поменять на MyElement забыл.

Там ретурна ещё нет. Можно добавить ещё myFavouritVar, которую не инициализировать, но от этого код станет только хуже.
Re[7]: тестовое задание
От: alzt  
Дата: 06.12.13 10:39
Оценка:
Здравствуйте, Mystic, Вы писали:

M>
M>public IEnumerable<MyElement> GetElementById(UserType _id)
M>


M>познания в C# не позволяет мне указать произвольный контейнер, куда будут вставлены элементы типа MyElement.


Скорее всего нужен был ещё метод, который ищет по MyId.
Re[2]: тестовое задание
От: alzt  
Дата: 06.12.13 10:41
Оценка: +1
Здравствуйте, samius, Вы писали:

тоже про equals напишу.

public override bool Equals(object obj)
{
    if (!(obj is MyElement))
    {
        MyElement el = (MyElement)obj;
        return Id == el.Id && Name == el.Name;
    }
    else
    {
        return false;
    }
}

Может я совсем C# уже забыл, но что вернёт obj is MyElement если obj имеет тип MyElement?
mig84, ты код запускал хоть раз?
Re[8]: тестовое задание
От: Mystic Украина http://mystic2000.newmail.ru
Дата: 06.12.13 10:54
Оценка:
Здравствуйте, alzt, Вы писали:

A>Скорее всего нужен был ещё метод, который ищет по MyId.


А еще возможен вариант проверки коммуникативных навыков, задание в общем-то составлено витиевато, посему вполне могли проверять, насколько соискатель будет уточнять задание.
Re[9]: тестовое задание
От: alzt  
Дата: 06.12.13 11:32
Оценка:
Здравствуйте, Mystic, Вы писали:

A>>Скорее всего нужен был ещё метод, который ищет по MyId.


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


Это вряд ли. Людям ответить лень, а уж что-то уточнять и тем более.
Re[2]: тестовое задание
От: IncremenTop  
Дата: 06.12.13 11:35
Оценка:
Здравствуйте, dasha19, Вы писали:

D>о боже, это полный дотнет головного мозга


Это жуниор или задание выполненное после трудного рабочего дня за 5 минут. Причем здесь платформа?
Re: тестовое задание
От: Sharov Россия  
Дата: 06.12.13 11:39
Оценка:
Здравствуйте, mig84, Вы писали:

В качестве правила хорошего тона (собственно и кода), предостваили
бы за одно и юнит-тесты для Вашего кода. Уже был бы неплохой плюс к карме.
Да и сами тесты помогли бы Вам лучше понять код и требования.
Кодом людям нужно помогать!
Re[2]: тестовое задание
От: Vzhyk  
Дата: 06.12.13 11:54
Оценка:
12/6/2013 2:39 PM, Sharov пишет:

> В качестве правила хорошего тона (собственно и кода), предостваили

> бы за одно и юнит-тесты для Вашего кода. Уже был бы неплохой плюс к карме.
> Да и сами тесты помогли бы Вам лучше понять код и требования.
Так это ты задачку давал? А что ж человеку не ответил, а отвечаешь
только здесь?
Posted via RSDN NNTP Server 2.1 beta
Re[3]: тестовое задание
От: Sharov Россия  
Дата: 06.12.13 12:05
Оценка:
Здравствуйте, Vzhyk, Вы писали:

V>Так это ты задачку давал? А что ж человеку не ответил, а отвечаешь

V>только здесь?

как всегда, мимо
Кодом людям нужно помогать!
Re[4]: тестовое задание
От: Vzhyk  
Дата: 06.12.13 12:07
Оценка:
12/6/2013 3:05 PM, Sharov пишет:

> как всегда, мимо

А откуда ты тогда знаешь, что от ТС хотели?
Posted via RSDN NNTP Server 2.1 beta
Re[5]: тестовое задание
От: Sharov Россия  
Дата: 06.12.13 12:09
Оценка:
Здравствуйте, Vzhyk, Вы писали:

V>А откуда ты тогда знаешь, что от ТС хотели?


ТС привел описание задачи, Ваш КО.
Кодом людям нужно помогать!
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.