Как стать автором
Обновить
82
0
Отправить сообщение
Массовость обычно снижает издержки. Опять-таки, сейчас идет отбив затрат на разработку\подготовку техники\персонала.
Да, советы вполне в стиле Фаулера.
Насчет причин… они могут быть разными.
Возможно, автор не читал Фаулера.
Возможно, автор не помнит, что именно он прочел.
Возможно, автор просто осознал, что именно он делал уже 3\5\7\42 лет, и решил поделиться этим.
Возможно, автор захотел написать отличную статью, путем (относительно) простого рерайта.
Возможно, автор захотел добавить связности в книгу Фаулера. В ней, как правило, описываются типовые ситуации и пошаговый способ излечения. В статье же есть некая общая нить, как код из одного состояния переходит в другой.
Ваши аргументы понятны, но есть пара моментов.

  1. Каждый модульный тест должен тестировать одну проблему (в идеале). В нашем случае — проводить сравнение одной пары методов.
  2. Классы с "замеряющими" методами выглядят схоже, но начинка у них может быть разная. Где-то тестируются методы с аргументами, где-то проводится инициация. В одной из веток комментариев Вы упоминали про желание определить, при каких параметрах распараллеленный метод работает быстрее обычного. То есть, настраивается поле с Params атрибутом. Для других методов этот Params будет лишним, и тогда вынос этих методов в отдельный класс становится необходимостью.

Но желание получить сводную таблицу по всем методам понятно. Попробуйте все десять тестов совместить в один, а статистическую информацию выдирать из результатов каждого запуска.
Что-то вроде

        [TestMethod]
        public void TestMethod1()
        {            
            Summary result1 = BenchmarkRunner.Run<Benchmark_Method1>();
            Summary result2 = BenchmarkRunner.Run<Benchmark_Method2>();
            ...

            Console.WriteLine(ExtractInfoFromSummary(result1));
            Console.WriteLine(ExtractInfoFromSummary(result2));
            ...            
        }

Думаю, Вы сможете отрефакторить пример парочкой foreach, избавившись от копипасты.
Промахнулся.
В комментарии выше дан разумный совет.
У вас есть Method1, Method2… Method10 методы, которые реализуются классами OldClass, NewClass. Нужно сравнить OldClass.Method1 с NewClass.Method1, OldClass.Method2 с NewClass.Method2, etc.

По факту, нужны 10 бенчмарков (по бенчмарку для каждого из методов). Вы же не хотите сравнивать быстродействие OldClass.Method3 с NewClass.Method4, например. Так что вам нужен код вроде

    public class Benchmark_Method1
    {
        [Benchmark(Description="OldClass_Method1", BaseLine = true)]
        public void OldClass_Method1()
        {
            new OldClass().Method1();
        }

        [Benchmark(Description="NewClass_Method1")]
        public void NewClass_Method1()
        {
            new NewClass().Method1();
        }
    }

    // Тут еще 9 похожих классов
    [TestClass]
    public class Benchmarks
    {
        [TestMethod]
        public void TestMethod1()
        {            
            BenchmarkRunner.Run<Benchmark_Method1>();
        }

        [TestMethod]
        public void TestMethod2()
        {            
            BenchmarkRunner.Run<Benchmark_Method2>();
        }

        // Тут еще 8 похожих тестов
    }
Только зачем это делать со всем написанным кодом?

Никто не требует делать это со всем написанным кодом.

Так, в самом начале 2 пункта указано, когда его (пункт) применять:
Как только вы заметите, что скопипастили какую-то часть программы достаточное количество раз, значит, возможно, пришло время написать на ее основе функцию.

Видимо, автор предполагал видимыми противоречиями привлечь внимание к статье.
Промахнулся
А как планетарную RTS на планшет перекинуть? Полагаю, управление не позволит.
А почему польза сомнительна? Быстродействие?
SSL повсюду — самое важное в вашем сервисе, т. к. без SSL авторизация и аутентификация бессмысленны.

Из последних 7 API, с которыми я работал, 3 обходились без SSL, ибо шифровать данные было незачем. Аутентификация была, ломалась "на раз", но никто не парился — слишком малые суммы крутились. Так что, называть SSL важным для произвольного сервиса несколько категорично.

Методы POST и PUT должны возвращать обратно объект, который они изменили или создали, — это позволит сократить время обращения к сервису вдвое.

В некоторых сценариях достаточно вернуть ID созданного юзера\продукта. Формирование и\или сериализация только что созданного объекта может занимать немалое время (кстати, результат надо еще десериализовать на клиенте).

Поддержка фильтрации, сортировки и постраничного вывода — очень желательно, чтобы это было стандартно и работало «из коробки».

Золотые слова (с точки зрения клиента).
Коты гуляют сами по себе. Кто-то решил в данной выборке не гулять.
Усложнится жизнь рекламщиков. Дополнительный гемор устроителю. Меньше скандалов (читай, событий). «Справедливости» больше.
Может, им просто термин незнаком? Сейчас загуглил, оказалось, я эту свертку много раз делал.
Раз пошла такая пьянка, книга от SergeyT. Причины использования паттернов, применение языковых средств при реализациях, плюсы-минусы реализаций в наличии. Хотя для «Введения» будет сложновато.
Пожалуйста, не говорите за всех. Лучше объясните, зачем уходить обратно.
Если комменты пропадают (я уже написал выше), то наверно и количество кармы уменьшится?

Есть мнение, что «за статьи плюсуют, за комментарии минусуют». Из него следует «меньше комментов — больше кармы».
Комментарии? Ваш профиль у меня ассоциируется исключительно с ними (хотя, как выяснилось, большинство статей тоже читал). С JetBrains Luxoft никак не связаны?
А плашки постоянные? Если кто-то из легенд уйдет в минус до тролля, обе плашки будут?
Если память не изменяет, было идея «расчета»: если А слил карму Б, а Б слил карму А, с перерывом менее 3 суток, карма снижается на 0,5 у каждого.
Можно сделать аналогично, если все сотрудники Microsoft начали сливать Milfgard (не публикующего «Шакал» в WinStore), каждый следующий голос теряет 25%. Не будут же ребята из MS «таймер слива» делать.
Она же не обесценивается. Хотя, R&C аккаунты несколько снижают её ценность.
А можно еще узнать, сколько суммарно кармы у тех, кто может голосовать за карму (5650 человек из комментария выше)?

Информация

В рейтинге
Не участвует
Зарегистрирован
Активность