Долгие годы меня удручает то, что я вижу в индустрии программирования — каждая последующая версия большинства программ или сервисов работает медленнее, жрет больше ресурсов и требует более мощного железа.
Это произошло с моим Macbook-ом, это произошло с моим iPhone-ом, это происходит с каждым апдейтом Windows, Visual Studio, Office, и т.д.
Программы работают медленней, веб-сайты тормозят, телефоны умножают мощность процессора при незаметных на глаз улучшениях производительности.
Мы сейчас работаем над сайтом, предоставляющим полезный сервис, которым будут пользоваться тысячи людей. Разумеется постепенно будет наращиваться функциональность и пользовательская аудитория.
Если идти обычным путем, то сервис будет работать все медленней, и медленней, обычное дело — количество кода и данных не уменьшается, а наоборот — растет с большой скоростью.
Что я решил для себя в этом проекте, и что я предлагаю делать каждому профессиональному программисту, который хочет, чтобы его продукт был лучше и быстрее конкурентов.
Помимо тестирования, ввести в практику измерять профайлером время отзыва методов и функций, записывать их для каждого релиза и требовать, чтобы оно было меньше, или по крайней мере таким же у следующих версий.
Конкретно в MVC — не стоит измерять каждый метод каждого класса проекта, вполне достаточно сделать тесты на действия контроллеров. Это покроет практически всю функциональность и позволит выявить узкие места без предварительной оптимизации.
Ведь это простое требование может помочь сделать мир лучше! Так почему бы не попробовать?
Автор: micbsv