#SeparationOfConcerns

Why @Annotations Will Eventually Burn You.

Preach annotation voodoo or embrace explicit method calls? Too many still cling to @PreAuthorize, entrusting their fate to framework black magic. But such blind faith is brittle. One innocent Spring Boot update, and suddenly your security vanishes unless you summon an obscure @Enable... incantation.

Prefer the custom preauthorize() method: it’s concrete, predictable, and the compiler screams when something breaks as it should. Just like how constructor injection finally defeated the field-injection cult, it’s time to retire annotation worship elsewhere too.

Consider @JsonProperty("fieldName"): sure, the object mapper might infer names correctly without it, until one day it doesn’t, because the naming strategy changes behind your back. It’s happened. It will happen again. That’s the price of depending on invisible magic. Unreadable, unpredictable, unmaintainable. Same applies to reflection.

Frameworks and their “best practices” are relics of the monolith age. Java has evolved: threads, HTTP services, logging,… all can now be built functionally, fluently, and natively. It’s not Java vs Kotlin or some trendy syntax candy. Languages, especially those that compile, already give you more than enough. The bottleneck isn’t the tool, it’s the one holding it.

#Java #SpringBoot #CleanCode #SoftwareEngineering #CodeQuality #Programming #ModernJava #DeveloperExperience #DevMindset #NoMoreMagic #ReadableCode #ExplicitOverImplicit #SayNoToAnnotations #SeparationOfConcerns #FunctionalProgramming

A medieval wizard casting spells over a confused developer — Caption: “@PreAuthorize… trust me, it just works.” In the background someone continues “until it doesn’t”
2024-10-22

When you have names and forms,
know that they are provisional.
When you have a subsystem,
know where its functions should end.
Knowing when to stop,
you can avoid any danger.

(paraphrasing DaoDeJing ch32 slightly) #separationOfConcerns #singleResponsibilityPrinciple

Jens Oliver Meiertj9t@mas.to
2024-04-21

April 24 Is JS Naked Day:

Every year on April 9 we, a part of our field, do without CSS; from this year on, on April 24, there’s an opportunity to temporarily swear off JavaScript.

meiert.com/en/blog/april-24-is

#javascript #jsnakedday #separationofconcerns

2023-09-28

In case you missed the discussion of project structure with me and Dan Vega on #Spring Office Hours, you can catch up with the recording:

youtube.com/watch?v=aIuZySWPNI

#HexagonalArchitecture #SeparationOfConcerns #SpringBoot #Java

2023-06-05

Get a #calculang number into #python 💞? ✅

Kindof naive but ok.

using Cloudflare STPyV8 package ❤️

#SeparationOfConcerns #PutTheNumbersInCalculang

@pythonhub
@datascience

python code to call an x and y function from a bouncing ball calculang model
casraf 🇮🇱casraf@fosstodon.org
2023-01-10

Had a lot of fun creating the battle system. But now I realized I initially wanted the battle to take place in the 3D world, not entirely on the UI, which is what I've done so far.

Keeping a separation of concerns is important. Luckily, I wasn't too lazy this time and made sure before that logic and UI code are separate, so it'll be easy to swap the UI into a world-space "UI" as long as it has the same functionality.

#gamedev #unity #programming #separationofconcerns #ui #battle

Screenshot of Unity editor, cropped to show 2 scripts on inspector, named "Battle System" and "Battle System UI"A screenshot of C# code, involving one of the UI portions of the logic
2022-10-02

Android 8.1 "Location access is required to be able to read the Wi-Fi's name." W.T.F?

Do you want conspiracies google? Because that's how you get conspiracies!

Way to deliberately fail at #SeparationOfConcerns

(webdev Tory) :emacs:worldsendless@qoto.org
2022-07-19

REST may have originally been meant to respond with HTML, but I disagree strongly with that intention. #DataOrientedDevelopment #SeparationofConcerns orys.us/up

Client Info

Server: https://mastodon.social
Version: 2025.04
Repository: https://github.com/cyevgeniy/lmst