Я ищу способ как-то пометить код, который можно оптимизировать, чтобы я или любой, кто придет за мной в проект, знал, что и как можно оптимизировать, когда производительность становится проблемой.
Причина, по которой я не оптимизирую в данный момент, заключается в том, что ясность кода в большинстве случаев важнее, чем оптимизация кода, основываясь на моем и многом другом опыте (например, проверьте «Эффективное программирование на Java» Джошуа Блока). Поэтому я предпочитаю, чтобы код был ясным и легким для понимания (что в основном означает, реализуйте вещи так, как это сделал бы любой, не пытайтесь делать какие-то фантастические вещи, пока они действительно не понадобятся). Хотя, когда производительность становится проблемой, полезно точно знать, где искать и выполнять оптимизации за счет потери из-за ясности кода.
Я хотел бы иметь возможность пометить места, где код может быть оптимизирован, и дать несколько советов о том, как.
Я думал об этом, используя аннотацию вроде:
public class UserDao {
@Optimizable (hint="cache returned data; ")
public List<User> getUsers(int userType) {
//some code getting user and checking if user is of that type.
}
}
Существует ли стандартный для всего сообщества способ пометить ваш код для таких целей? Или у вас есть лучшее представление о том, как это сделать?
Использование аннотации позволяет инструментам проверять оптимизируемый код и создавать для этого некоторые отчеты. Другим способом может быть использование тега, подобного javadoc, но не уверен, насколько легко инструмент сможет это обнаружить.
Спасибо,
Стеф.
ДОБАВЛЕНО:
Хорошо, похоже, что ответ Рика охватывает все способы сделать это в комментариях.
Как насчет аннотаций, хотя? Я считаю, что это имеет некоторые преимущества, поскольку вы можете обнаружить проблемы с кодом / варианты оптимизации, даже если у вас нет исходного кода и вы оптимизируете, предлагая новую реализацию для этих методов / классов и используя преимущества полиморфизма. Знаете ли вы, есть ли какие-либо стандартные аннотации для таких?