|
1. The lounge is for the CodeProject community to discuss things of interest to the community, and as a place for the whole community to participate. It is, first and foremost, a respectful meeting and discussion area for those wishing to discuss the life of a Software developer.
The #1 rule is: Be respectful of others, of the site, and of the community as a whole.
2. Technical discussions are welcome, but if you need specific programming question answered please use Quick Answers[^], or to discussion your programming problem in depth use the programming forums[^]. We encourage technical discussion, but this is a general discussion forum, not a programming Q&A forum. Posts will be moved or deleted if they fit better elsewhere.
3. No sys-admin, networking, "how do I setup XYZ" questions. For those use the SysAdmin[^] or Hardware and Devices[^] forums.
4. No politics (including enviro-politics[^]), no sex, no religion. This is a community for software development. There are plenty of other sites that are far more appropriate for these discussions.
5. Nothing Not Safe For Work, nothing you would not want your wife/husband, your girlfriend/boyfriend, your mother or your kid sister seeing on your screen.
6. Any personal attacks, any spam, any advertising, any trolling, or any abuse of the rules will result in your account being removed.
7. Not everyone's first language is English. Be understanding.
Please respect the community and respect each other. We are of many cultures so remember that. Don't assume others understand you are joking, don't belittle anyone for taking offense or being thin skinned.
We are a community for software developers. Leave the egos at the door.
cheers,
Chris Maunder
The Code Project | Co-founder
Microsoft C++ MVP
modified 16-Sep-19 9:31am.
|
|
|
|
|
Geek Prank 😈 Windows XP and Other Online Pranks[^]
<laugh type=“evil” />
What do you get when you cross a joke with a rhetorical question?
The metaphorical solid rear-end expulsions have impacted the metaphorical motorized bladed rotating air movement mechanism.
Do questions with multiple question marks annoy you???
|
|
|
|
|
Haven't played minesweeper in years.
To really freak them out, see what the command prompt does!
Software rusts. Simon Stephenson, ca 1994. So does this signature. me, 2012
|
|
|
|
|
Her win10 laptop is right there, but I can't bring myself to do it.
|
|
|
|
|
I just bought a new laptop and was planning on bring it to work to show off...
Might "install" the best version of Windows yet on it now when demoing!
|
|
|
|
|
A small .NET Core API project...
30+ controllers, one for each table.
30+ services, one service per table.
30+ "repositories", one repository per table.
30+ files for constants, basically one constant string definition (ok, maybe 3 or 4) per static class.
30+ files for actual model entities. So why are you using Dapper instead of EF?
The "repositories" are basically passthroughs to the db context for CRUD operations, and because the project uses Dapper, somewhere in the code base is 30*4 SQL statements for each table's CRUD operations.
And given that the controllers, services, and "repositories" are manipulating tables, and it seems like they were hand coded rather than generated by a tool...
And it seems so bassackwards to me. To me, controllers and services should be based on function, not table CRUD operations.
And while I haven't looked at the Angular front-end, I suspect, from what I see of the back-end, that all the business rules are coded in the UI.
So, given that:
No integration testing to validate business logic.
It's actually quite clean, given it all follows a repeated coding style and practice. On the other hand, the lack of abstraction and the lack of any architecture other than the "controller-service" architecture baked into ASP.NET Core API just leaves me feeling sad and depressed.
And you do NOT want to know how much budget this project was given, that has been completely used up and the project is not anywhere near finished. (We're talking just shy of six figures here.)
|
|
|
|
|
Well, while I totally agree with what you imply... I have been non stop fighting most time in most of my workplaces, to avoid this kind of over engineering, which seems to be a powerfully widespread gospel... And not just with junior devs...
To this day I still can't understand why people emphatically still "need" a (home made) "Per table Data Repository", when we have EF that take care of it all for you already!
In a way you can't blame the junior dev here, maybe he was using the (socially) safest architecture...
|
|
|
|
|
Super Lloyd wrote: o this day I still can't understand why people emphatically still "need" a (home made) "Per table Data Repository", when we have EF that take care of it all for you already!
Exactly!
|
|
|
|
|
I've seen "senior devs" do this exact thing.
“That which can be asserted without evidence, can be dismissed without evidence.”
― Christopher Hitchens
|
|
|
|
|
Super Lloyd wrote: I have been non stop fighting most time in most of my workplaces, to avoid this kind of over engineering,
Please refer to this as pseudo-over-engineering or pseudo-engineering.
This is the type of "architecture" which is actual artifice or facade layer that is totally useless.
If the architecture doesn't somehow enable :
1) less code to be written (thus making enhancements and fixes easier)
2) make the code more reusable (and is actually going to be re-used)
then it is Crapitecture.
Just because some took a doghouse and placed it at the top of a 300 foot tall concrete tower does not make it a skyscraper.
|
|
|
|
|
raddevus wrote: it is Crapitecture
This new pattern deserves a book written about it!
|
|
|
|
|
Marc Clifton wrote: it seems like they were hand coded rather than generated by a tool...
No, they were generated by tools.
Marc Clifton wrote: No integration testing to validate business logic.
IOW, they have no idea whether the code implements the required business logic!
I'll bet that connection strings, passwords, etc. are all hardcoded, as well.
I'm certain that we all wrote bad code when starting out, but this is exceptional!
Freedom is the freedom to say that two plus two make four. If that is granted, all else follows.
-- 6079 Smith W.
|
|
|
|
|
Daniel Pfeffer wrote: IOW, they have no idea whether the code implements the required business logic! I might have missed it in all the other boilerplate stuff.
Daniel Pfeffer wrote: I'll bet that connection strings, passwords, etc. are all hardcoded, as well. Thankfully not.
|
|
|
|
|
Which is correct?
Egg Storage[^]
I am sooo totally a B person myself. And you put the carton in so the eggs are in the side closest to the person. So when you grab them they aren’t over balanced away from you and onto the floor.
I dislike A intensely. and I really do not know why.
My family is just wrong though. They don’t have a system. Grab them out of the middle half the time.
To err is human to really elephant it up you need a computer
|
|
|
|
|
You raised a very interesting and extremely controversial topic right there!
|
|
|
|
|
Yes! It kind of reminds me of the "big endian / little endian" argument in the mythical Lilliput!
Get me coffee and no one gets hurt!
|
|
|
|
|
rnbergren wrote: Which is correct? I'm a D (Don't Care) person, it's all the same to me.rnbergren wrote: I dislike A intensely. and I really do not know why. Symmetrophobia?
"the debugger doesn't tell me anything because this code compiles just fine" - random QA comment
"Facebook is where you tell lies to your friends. Twitter is where you tell the truth to strangers." - chriselst
"I don't drink any more... then again, I don't drink any less." - Mike Mullikins uncle
|
|
|
|
|
Take it to the Soapbox!
Freedom is the freedom to say that two plus two make four. If that is granted, all else follows.
-- 6079 Smith W.
|
|
|
|
|
HE can't - he'll have to take it to the Eggbox ...
"I have no idea what I did, but I'm taking full credit for it." - ThisOldTony
"Common sense is so rare these days, it should be classified as a super power" - Random T-shirt
AntiTwitter: @DalekDave is now a follower!
|
|
|
|
|
What kind of crack was that? Not much of a yoke, for sure.
Ravings en masse^ |
---|
"The difference between genius and stupidity is that genius has its limits." - Albert Einstein | "If you are searching for perfection in others, then you seek disappointment. If you seek perfection in yourself, then you will find failure." - Balboos HaGadol Mar 2010 |
|
|
|
|
|
I wasn't joking: I was thinking inside the box.
"I have no idea what I did, but I'm taking full credit for it." - ThisOldTony
"Common sense is so rare these days, it should be classified as a super power" - Random T-shirt
AntiTwitter: @DalekDave is now a follower!
|
|
|
|
|
yes, if you think outside the box all the eggs end up cracked. and that is no yolk folks.
To err is human to really elephant it up you need a computer
|
|
|
|
|
A-sort of. I would line up the two rows of eggs, not liking the "wings" on there.
Reason: it doesn't matter which direction the carton is put back in the fridge; the center of gravity will always be close to the middle so the balance is predictable.
|
|
|
|
|
A.
Everything else is psychopath territory.
I'd rather be phishing!
|
|
|
|
|
Use a smaller eggbox: 6 eggs makes it more manageable.
"I have no idea what I did, but I'm taking full credit for it." - ThisOldTony
"Common sense is so rare these days, it should be classified as a super power" - Random T-shirt
AntiTwitter: @DalekDave is now a follower!
|
|
|
|