Frank Carver wrote:
Frank Silbermann wrote: we have hundreds of thousands of line of code the implement problem-domain rules, checks and computations.
All of which would have to be modified line by line to refer to persistent objects and data transfer objects that have a different API.
I'm trying to avoid the need to "cure our technical debt" -- since most of it is nothing more than "having written it using libraries and methods that are no longer fashionable."
I sympathise with your situation, having been in in one form of this conundrum many times.
If I can offer anything, it would be to suggest that your biggest technical debt is not the use of unfashionable libraries and methods, but the way business code is tangled in with infrastructure code, with no clear "seams" where obsolescent sections can be replaced in either area. Unfortunately this is one of the side-effects of the "vertical" DTO pattern compared with a more "horizontal" storage facade approach.
However you look at it this will be a tricky system to modernise. I hope you have good test coverage!
Tim Holloway wrote:
You're not doing yourself any favors hanging on to an ancient DIY DAO system. Unlike JPA, you can't hire people who already know its quirks, there's probably minimal documentation, and of course no training courses.
And if it's anything like the ones I've seen, it's vastly less functional than JPA. Last one I worked with couldn't even handle transactions involving more than one table.
Tim Holloway wrote:
JPA is relatively painless to migrate to. There are tools that can take an existing database and automatically generate JPA Entity classes from it. The Spring Data module can provide DAOs that can do full CRUD with as little as this (...):
That's the entire code for the DAO!
Tim Holloway wrote:
You might very well be able to collapse your code base down to a nice clean modern 2000 lines or so, depending on where your complex logic lies.
Tim Holloway wrote:
OK. Made my pitch for JPA. Be aware that Spring Boot doesn't require Spring Data in any of its variant forms. You want ugly brute force, it will allow ugly brute force. You want Spring JDBC, fine (but why???).
Tim Holloway wrote:
What Spring Boot is is a system that allows you to encapsulate a web application and a web server into a single executable JAR, making for "serverless" deployments and ideal for running in containers,
Tim Holloway wrote:
And it definitely won't magically cure your technical debt internal to the application.
Yeah, it's difficult to provide context in two words. Otherwise, better than "Buy Apple" would be to provide a date and a PowerBall number.Matthew Brown wrote:
Bear Bibeault wrote:"Buy Apple"
Young Bear goes along to greengrocer's with puzzled look on face...
I always hated use of the word "code" to describe computer programs. To me, the word "code" implies objuscation, as in "We encoded the message so the enemy can't read it."Bear Bibeault wrote: I wanted to like Scala, really I did. But what I found off-putting was the community attitude of applying shortcut after shortcut to find the least amount of characters to express a statement. At that point, it's complete gobble-dee-gook to all but the Scala veterans. Cleverness trumps clarity. And I felt that newbies are sneered at. Others may have had a different impression, but that's what I felt and so gave up on Scala.
Sure you can write impenetrable code in any language*, but the impression I got from the Scala community is that (what I call) Obfuscation Through Brevity is an honored tradition. That is so not me.
Campbell Ritchie wrote:No, if you want seven time you write bars with seven beats.
You are unlikely to fit 7 notes without stems into most bars. 7-1 time, anybody? A septuplet would divide one (or two or three) beats into seven equal parts. It is possible to have a septuplet dividing the entire bar into 7 too; there was an example in the Wikipedia link somebody posted earlier in this discussion.
Jeanne Boyarsky wrote:Frank: I live in Queens. Was that snow in 83? My parents have a picture of me it. I was very small so the snow mountains looked even bigger.