Сообщение [CodeJam] Code review, план действий по исправлению от 18.04.2016 10:06
Изменено 19.04.2016 19:34 Sinix
Просмотрел код, список будущих исправлений ниже. Замечания приветствуются
1. Memoize<T>
Надо бы сделать кодогенерацию + оставить только одну перегрузку с optional args.
См гадлайны.
2. CollectionsExtensions. Вот тут не надо params?
3. EnumerableExtensions.Index() Идея ок, реализация хромает.
IndexedItem не реализует equals/gethashcode/equality operators.
Имя метода — может, что-то типа items.Indexed() ?
4. QueryableExtensions — nameof вместо строк в перегрузках OrderBy()/...
5. Для позаимствованного кода ОБЯЗАТЕЛЕН коммент BASEDON: + url на исходники.
Как минимум для ObjectPools и для файлов в Targeting надо добавить.
6. InterlockedOperations — надо добавить generic update на базе CAS loop,
по аналогии с кодом, что генерит компилятор для подписки событий.
7. Перенёc в соседний топикXNodeExtensions — Required/Optional переименовать в стандартные Get/TryGet/XxxOrDefault.
8. Fn<T> — Identity переименовать в стандартный Self.
В остальном приятно удивлён — код
1. Memoize<T>
Надо бы сделать кодогенерацию + оставить только одну перегрузку с optional args.
См гадлайны.
2. CollectionsExtensions. Вот тут не надо params?
public static void AddRange<T>([NotNull] this ICollection<T> source, [NotNull] T[] items)
3. EnumerableExtensions.Index() Идея ок, реализация хромает.
IndexedItem не реализует equals/gethashcode/equality operators.
Имя метода — может, что-то типа items.Indexed() ?
4. QueryableExtensions — nameof вместо строк в перегрузках OrderBy()/...
5. Для позаимствованного кода ОБЯЗАТЕЛЕН коммент BASEDON: + url на исходники.
Как минимум для ObjectPools и для файлов в Targeting надо добавить.
6. InterlockedOperations — надо добавить generic update на базе CAS loop,
по аналогии с кодом, что генерит компилятор для подписки событий.
7. Перенёc в соседний топик
Автор: AndrewVK
Дата: 18.04.16
. Дата: 18.04.16
8. Fn<T> — Identity переименовать в стандартный Self.
В остальном приятно удивлён — код
[CodeJam] Code review, план действий по исправлению
Просмотрел код, список будущих исправлений ниже. Замечания приветствуются
UPDATE: all fixed.
1. Memoize<T>
Надо бы сделать кодогенерацию + оставить только одну перегрузку с optional args.
См гадлайны.
2. CollectionsExtensions. Вот тут не надо params?
3. EnumerableExtensions.Index() Идея ок, реализация хромает.
IndexedItem не реализует equals/gethashcode/equality operators.
Имя метода — может, что-то типа items.Indexed() ?
4. QueryableExtensions — nameof вместо строк в перегрузках OrderBy()/...
5. Для позаимствованного кода ОБЯЗАТЕЛЕН коммент BASEDON: + url на исходники.
Как минимум для ObjectPools и для файлов в Targeting надо добавить.
6. InterlockedOperations — надо добавить generic update на базе CAS loop,
по аналогии с кодом, что генерит компилятор для подписки событий.
7. Перенёc в соседний топикXNodeExtensions — Required/Optional переименовать в стандартные Get/TryGet/XxxOrDefault.
8. Fn<T> — Identity переименовать в стандартный Self.
В остальном приятно удивлён — код
UPDATE: all fixed.
1. Memoize<T>
Надо бы сделать кодогенерацию + оставить только одну перегрузку с optional args.
См гадлайны.
2. CollectionsExtensions. Вот тут не надо params?
public static void AddRange<T>([NotNull] this ICollection<T> source, [NotNull] T[] items)
3. EnumerableExtensions.Index() Идея ок, реализация хромает.
IndexedItem не реализует equals/gethashcode/equality operators.
Имя метода — может, что-то типа items.Indexed() ?
4. QueryableExtensions — nameof вместо строк в перегрузках OrderBy()/...
5. Для позаимствованного кода ОБЯЗАТЕЛЕН коммент BASEDON: + url на исходники.
Как минимум для ObjectPools и для файлов в Targeting надо добавить.
6. InterlockedOperations — надо добавить generic update на базе CAS loop,
по аналогии с кодом, что генерит компилятор для подписки событий.
7. Перенёc в соседний топик
Автор: AndrewVK
Дата: 18.04.16
. Дата: 18.04.16
8. Fn<T> — Identity переименовать в стандартный Self.
В остальном приятно удивлён — код