Недавно у меня был проект, в котором я должен был получить некоторые данные из конкретной системы программного обеспечения в портлете. Программное обеспечение использовало базу данных, и я потратил довольно много времени на моделирование данных, которые я хотел, а затем на создание веб-службы, чтобы портлет мог захватить информацию.Отчетность против кодирования - мысли?
Тогда мне внезапно показалось, что я трачу свое время. Я схватил BIRT, бросил его в портлет, а затем просто написал несколько отчетов, которые непосредственно захватили необходимые данные из базы данных. Я сделал это днем.
Я понимаю, что отчетность - это улица с односторонним движением, но это заставило меня задуматься. Инструменты отчетности могут быть очень эффективными для создания отчетов (duh) из ваших фактических данных, но когда вы делаете это, вы обходите свою модель, которая, за исключением простых случаев, не является прямым представлением ваших данных, как она существует в вашей базе данных.
Если вы пишете приложение, интенсивно использующее данные и требующее возможности выполнять нетривиальные отчеты, вы обходите свое приложение и используете что-то вроде BIRT или Crystal Reports? Как вы управляете этими инструментами как часть вашего общего процесса? Рассматриваете ли вы отчеты, которые вы пишете как часть своего приложения, и рассматриваете их как таковые? Отчет - это представление и модель и контроллер (если хотите) все в одном большом беспорядке, как вы справляетесь, интерпретируете и планируете это?
Пересмотренный вопрос: возможно и даже распространено, что отчет будет выполнять некоторые бизнес-вычисления, которые в идеальном мире вы хотели бы иметь в своем приложении. Это может привести к несоответствию информации, предоставленной пользователю. С другой стороны, инструменты отчетности позволяют легко собирать и отображать информацию, что трудно использовать подход пуриста и делать все из приложения. Существуют ли какие-либо хорошие методы для обеспечения того, чтобы данные в ваших отчетах соответствовали данным, которые вы могли показывать в обычном графическом интерфейсе?