Информация об изменениях

Сообщение Re[2]: Трансформация коллекции от 29.05.2015 6:54

Изменено 29.05.2015 9:05 tyomchick

Здравствуйте, Sinix, Вы писали:


S>Пара замечаний:

S>1. Я бы поменял имя метода на Update. Transform обычно используется как "чистая" функция, которая возвращает новый результат. Вариант с Replace тоже неплох.

Да, пожалуй Update более удачное название.

S>2. Неплохо бы добавить дебаг-ассерты для индексов и для проверки на null. Всегда лучше, когда ошибка всплывает сразу, а не в середине перебора.


Это решается атрибутом [NotNull], решарперским анализатором, и административным запретом на комиты с решарперскими варнингами.

S>Ну и на отрицательный count ассерт нужен в любом случае, это баг. И checked() на вычисление endIndex.


Да, вы правы, но наверное я всё таки не дебажные ассерты, а исключения ArgumentOutOfRangeException кидать буду.

Я бы добавил ассерт и на count == 0 (или возвращал бы false, если перебор не удался). Если окажется, что большинство случаев с count==0 — не ошибка, всегда можно будет убрать.

Думаю всё же не буду. Вроде бы все функции что я знаю, лояльно относятся к нулевой длине, не хотелось бы рвать шаблон.
Re[2]: Трансформация коллекции
Здравствуйте, Sinix, Вы писали:


S>Пара замечаний:

S>1. Я бы поменял имя метода на Update. Transform обычно используется как "чистая" функция, которая возвращает новый результат. Вариант с Replace тоже неплох.

Да, пожалуй Update более удачное название.

S>2. Неплохо бы добавить дебаг-ассерты для индексов и для проверки на null. Всегда лучше, когда ошибка всплывает сразу, а не в середине перебора.


Это решается атрибутом [NotNull], решарперским анализатором, и административным запретом на комиты с решарперскими варнингами.

S>Ну и на отрицательный count ассерт нужен в любом случае, это баг. И checked() на вычисление endIndex.


Да, вы правы, но наверное я всё таки не дебажные ассерты, а исключения ArgumentOutOfRangeException кидать буду.

S>Я бы добавил ассерт и на count == 0 (или возвращал бы false, если перебор не удался). Если окажется, что большинство случаев с count==0 — не ошибка, всегда можно будет убрать.


Думаю всё же не буду. Вроде бы все функции что я знаю, лояльно относятся к нулевой длине, не хотелось бы рвать шаблон.