I do make my own DBI wrapper, which looks like DBIx::Class, simply because I don't like Class::DBI and I didn't know about DBIx::Class.
What other factors do you reckon could be causing your "more maintainable" classes to suffer? Do you use complicated inheritance? Perhaps then you could recode to use composition instead, which legend has it is often a win. (I've found this to be so from personal experience.)
I don't use complicated inheritance. I think, it is not the class structure that makes it suffer, but the way I structure them that makes it suffer. What I mean is I want each class to represent one business entity, which usually is represented in one or two related tables. When a class wants to access a table outside its responsibility, it should not use that table in a query, but should call a method of the class for that table. Sometime I break this rule to gain performance, but I don't do it liberally because it degrades the class maintainability. Is my approach right? Am I just too paranoid about getting the code too messy?
I hope it answers your question. Thanks for your reply
badaiaqrandista