Aboutafter years and years in state-of-the art software builders, i ran into a SAP using company in 2019. and stayed. and became lead dev. what the actual fuck? whole story: https://github.com/devnulli
Skillsc# (wpf, ef, di, tdd, ...) c# devops, c# azure, c# microservices asp.net, dotnetcore. sap cloud platform abap sapui5 openui5 service architecture software architecture sap cloud foundry software architecture trainer
Joined devRant on 3/29/2019
Do all the things like ++ or -- rants, post your own rants, comment on others' rants and build your customized dev avatarSign Up
From the creators of devRant, Pipeless lets you power real-time personalized recommendations and activity feeds using a simple APILearn More
so the new hotshop "optimized data access" by bringing the database guids into the public signature of our domain objects...
rip, app layers2
you know, i really enforce unit testing. i like having a good coverage, and such.
one might say it costs a lot of time, but its really worth it, we come out pretty clean.
theres only ONE thing that REALLY costs my time: explaining to some newcomer unit-test hotshots why they should not overdo it so much. they come, show me some goddamn blogs where this and that is injected, and start injecting and de-coupling my fucking domain model to a point where they test god-fuck know what but not the actual productive code..
so listen in DDD, we inject to
- service layer
- domain services
- and factories
we DONT inject every dependency to every single domain object, they ARE newable and have no dependencies to other domain objects PER DEFINITION, except via model
(and aggregates via root)
my theory, they fuck around with that tests because they dont actually know WHAT to PROGRAM... so STOP FUCKING AROUND, and WRITE YOUR CODE, and refine the requirement if you dont know what it should actually do3
whoever thought that its a good idea for ctrl+c to be "copy" in some but also "abort" in some other consoles is a goddamn troll.11
play your best programming mixes, play them loud and blend out of your environment. then get things done3
over the years it became clear to me, that writing great software is a matter of language., not of being a super programmer/architect.
its well defined words, in an exact language, where that guy who needs something can describe exactly what he wants to happen.
by having well defined problems, in a well defined context, and slim and fucking simple architecture, problems and changes can be solved quickly.
no matter what stack you finally use. its trivial now. but getting that message to every person involved in the process was not
so, i want to say thanks to mr. evans and all who took his book and created a readable substrate (no offence, eric). thanks.
DDD is great, both tactical and strategical.5
"could you send that paint again from the last meeting where you explained <some specific thing>?"
"no! - ITS what i do while talking, so you GET IT, its not a document for you to show someone, ITS THE STORY not the picture. when you show it to someone. it doesnt MEAN ANYTHING in its finished state"11
people who think theyre so cool and brag that they "turned off updates on their windows machine"..
i almost forgot how it felt back then, when i was in their position, far up there on dunning-krugers mount stupid
when you hit Ctrl+F5 (run without debugging) in Visual Studio, and it fails, because windows defender quarantines and removes a dll you _just created_ .. all words you can have for that is WTF
come on defender. i WILL sign it with my , fucking expensive btw, certificate.. when i release it.. will you PLEASE let my test it first?1
I was asked if could do a presentation, to explain why I refuse to let UIs directly go through to the data, and about why we should discontinue good old working things, just for this this ah, this ah... "Business Layer" ...
sometimes im not sure whats worse
- the fact that I am working in a legacy code hell
- or the kafkaesque feeling I sometimes get when I realize that no one else seems to notice that anymore2
when it comes to fixing printers, and laptops, i recently ceased talking to anyone with less than 500 reputation on stackoverflow1
Today was the first time I received a donation for one of my git repositories. Good feeling. Gonna buy me a beer for it.2
I think the greatest hack I ever made was when we lost source code, and ended up importing an .EXE file as if it was a DLL.
One might think thats easy but its NOT, it was a fucking ridiculous HACK, including faking Win Main CRT, and fucking around with the linker, base adresses, initialisation etc...
Turns out, we never found the original source and eventually rewrote it. BUT it was productive almost 3 months hhaha4
designing a SOAP backend in 2020....
i hate it, its wrong.
i hate it, because mounting technical debt ties a system to the past.
i also hate it, because i dont want to shit around with jurassic things. or short:
i hate everything about the fact that i am sitting here, designing a SOAP backend, in the year 20204
- foreach pdf in a directory, appending a text line to the index file, which has the same name but a different extension
- me, writes the code real quick
"you tried it?"
"nah trust me"
- appended text to pdf instead of index files, all files were destroyed10
To all "I hate microsoft" weepers out there. :)
Well, I like the way Microsoft moved. I LOVE Nuget, I like Github. I like how you they moved to open source!
I like Visual Code, love Visual Studio Community Edition, hell yeah some dont do that I heard. About Dotnetcore: (asp)dotnetcore is a fucking miracle. I LOVE it, I LOVE the conventionmodelbuilder, I LOVE how they allow DI. I like the easy shipping, I like the cutting of dependencies. I also like Azure, And to be honest:I like the C# language. I even think it's the best I ever had to use. And I love LINQ, I love Entity Framework, and WPF!
I like the way all that works together, integrated, without having to fuck around, (think of maven+gradle and crap conventionless plugins).
I like their documentation, I like how they keep you up to date. I like their feedback programme, which actually gets issues done.
I like their developer-first approach. I like their focus on SOLID, code quality and development guidelines.
I like a lot about them. frankly, I would still prefer them to all this linux and java crap, even if they took away my favorite shortcuts..
Lets be honest... You rant about that? Then you never seriously tried big scale software engineering with that. Its a charm,
Universities.. stop teaching people that java bullshit.
Now burn me.20
"Hi, can you help me? I accidentially removed some coding in this method. See version 23, line 2150. Is there a way to bring it back?"
...wait....method line two THOUSAND one hundred and fifty?..13
So there was an initial meeting how this new feature can be done..
Developers and Software Architects decided quickly that it is technically not a real effort. But the problem is, its not the correct way to do it, and it should be solved in a clean way, or we will be fucked for the years to come.
I just got an email, that in the WebEX just held, between Project Lead and Customer, it was decided to do it anyway. Well thanks Project Lead.. Your project ends in 2 years and will be considered feature complete. Congratulations. Fuck whats coming after that, right. The fucks in the support and maintenance we will be having in the years to come arent on your budget, right, so who cares. Enjoy your bonus. Why dont we just go and write IFs everywhere the software needs a feature in the future from now on?
Dude i wish that ONE day, project success will be measured considering the costs following the project, so that all these fucks gotta pay back their success fees. Fucking YOLO i guess1
Ok. So someone is creating a class member called "injection", and a setter for it, with "injection" being of type: IInjection and IInjection being a completely empty interface
i think of that guy like that :2
Watching a TV series, where somebody stole a "quantum processor" that can "break every binary code".
Why dont they fuck up so much with all the other sciences? I mean, its 2019, ppl should know that thats b$!.
They never steal a perpetuum mobile, or a time machine? Or the complete PI constant, Nooho sir! They always steal some IT thingy that's not existing or makes no sense!20
OK, listen, this is not a lie.
For every sentence here, i collected a valid evendence i can show to proof, should you refuse to believe the sentence to be correct. Not one of the sentences down there is opinion but provable fact.
All of this is not a compendium of all mistakes i ever seen, but it is all present in ONE project:
- The codebase isn't a well thought out structure. In fact, it doesn't follow any defined standard, but is, instead, a bunch of spaghetti code. (provable by the fact that every class is public and globally visible)
- Where every one who worked at, failing to find or understand the existing code, added his personal universe of tools and objects. That despite that every class being globally visible. (provable by finding multiple implementations for same things)
- Also, it is remarkable that this happend even though the code is mostly young, the oldest parts only 3 years old and it still follows some or most of the major antipatterns there are. (provable by this was when the project started)
- There was not once a refactoring task issued in the runtime of that project. (provable by refactoring tasks not existing)
- Justified by just wrong reasoning like "it's optimised for mass data", or "it's how we work here, because it's always worked", the code does not follow
any design principles, let alone Michael Feathers and Robert C. Martins S-O-L-I-D principle, which is, while being taught and studied, improved and used in the rest of the world,
not even mentioned in one of the over 3000 pages of documents. (provable by full text search and asking the programmers about SOLID)
- Also, there is no state of the art Software Design process (provable by not having product owners, not having requirement engineers, nor design tools for that)
- nor is there distinction between business process and software solutiong in documentation, which, by the way has over 3200 pages (provable by having the functional documentation mixed with implementation details and process descriptions)
- There is no dev ops in place.
- Not a single Unit test has been created.
- The Code Inspection that could run at check in has been disabled.
- There is no dependency graph between packages
- There is no branching or encapsulation of changes nor association between code change and respecting task
- Everyone who works with that legacy code, where such a lot of things are not determinable, your check ins are a shot in the dark, provable by a direct correlation between commits, shortly followed by one-line commits to the same task.
- Also, it is internally communicated and believed there, that this is a high-end, object oriented, state of the art way of getting things done.
- Just yesterday, we stated an effort of 9 days (3 people work 3 days each) do let a modal dialog save the changes when coming back with OK Result.
- Also, training the existing programmers into transitioning to better software architecture and SOLID concepts is considered low priority because of it being too expensive3
The moment when the legacy system programmer told you they program object oriented, and all you see is a class with hundreds of static methods. and 2 protected static methods9
we just removed a parameter check in function bool f(). because its actually raised exceptions. that in the case when data is inconsistent.
sooo. in a function that returns a bool, we now return false when data we need to determine the result is missing.
i wonder when the first guy will find out what that means for calling the function with NOT f() and undefined data, its always gonna be true.. *facepalm*.