Возможно, не самый умный экземпляр для линча, но хотелось с чего-нибудь начать)
Для красоты кода и удобства написания модулей, реализовал классы по работе с отдельными информационными сущностями. К примеру, такая вещь как язык интерфейса имеет свой ID, и для большинства операций этой информации вполне достаточно. В то же время, возникают редкие ситуации, когда требуется получить дополнительные сведения о нём (RFC-код, к примеру, узнать который можно, обратившись к отдельной таблице или файлу). Не особо задумываясь, поставил инициализацию переменных в конструктор класса… Проблемы начались, когда переехал на машину с тормозящим SQL-сервером (очень полезное занятие, как оказалось) – тестовая машина падала в таймаут при совершенно безобидных операциях. Не комильфо – процессорное время и SQL-соединения хотелось бы использовать более рационально :) Но использовать специальные методы для подгрузки вроде Fill() тоже не особо хотелось. В итоге пришел к наиболее простому (на мой взгляд) решению из доступных:
Таким образом, практически не производится изменений кода (при создании свойства с именем старой переменной, и последующем переименовании переменной), и в отдельных случаях избыточная нагрузка снижается до нуля. Но сомнения насчёт рациональности всё же остались.
Для красоты кода и удобства написания модулей, реализовал классы по работе с отдельными информационными сущностями. К примеру, такая вещь как язык интерфейса имеет свой ID, и для большинства операций этой информации вполне достаточно. В то же время, возникают редкие ситуации, когда требуется получить дополнительные сведения о нём (RFC-код, к примеру, узнать который можно, обратившись к отдельной таблице или файлу). Не особо задумываясь, поставил инициализацию переменных в конструктор класса… Проблемы начались, когда переехал на машину с тормозящим SQL-сервером (очень полезное занятие, как оказалось) – тестовая машина падала в таймаут при совершенно безобидных операциях. Не комильфо – процессорное время и SQL-соединения хотелось бы использовать более рационально :) Но использовать специальные методы для подгрузки вроде Fill() тоже не особо хотелось. В итоге пришел к наиболее простому (на мой взгляд) решению из доступных:
public class Лентяй
{
private String коллектор;
public String Значение
{
get
{
if (коллектор == null)
{
коллектор = РесурсоёмкийКодПолученияИнформации();
}
return коллектор;
}
}
}
Таким образом, практически не производится изменений кода (при создании свойства с именем старой переменной, и последующем переименовании переменной), и в отдельных случаях избыточная нагрузка снижается до нуля. Но сомнения насчёт рациональности всё же остались.