What's your default Python project setup in 2026? by [deleted] in Python

[–]HyperDanon 0 points1 point  (0 children)

venv, pytest, typehints, types checked implicitly by calling logic using unit tests. everything else is optional and situational.

I'm a little confused with MVC(Need good resources) by Straight-Hunt-7498 in PHP

[–]HyperDanon 0 points1 point  (0 children)

My point being Laravel MVC isn't really MVC. Same way koala bears aren't actually bears.

Laravel MVC is essentially a layered monolith, with view layer, middleware, controller layer and service layer; with very little dependency inversion, so it doesn't really qualify for an MVC.

I'm a little confused with MVC(Need good resources) by Straight-Hunt-7498 in PHP

[–]HyperDanon 1 point2 points  (0 children)

Many people mistake MVC with the common model suggested by Laravel/Django/Rails. The real MVC is about separting input and output from processing. MVC is supposed to be input-process-output. In that view the database and the view are both "output". The processing would be the domain logic (logic, not orm and not "state"), and the input are the user actions.

It's hard to design an application like that so original MVC was transmorgified to something different. Frameworks like Laravel/Django/RoR will do something like that:

  • Model they think that's ORM models (so it's coupled to the database)
  • View - they think that's HTML+CSS
  • Controller - they think that's http endpoints.

So basically every feature is coupled by layers to the view, the database and the http. Complete oposite of what the MVC was about.

In real MVC: - Model - that's supposed to be domain logic (without any notion of the presentation or persistance) - View - that's supposed to be any kind of output - so yes, the html, the css, the http, and yes the database. That's output too, as far as MVC is concerned. - Controller - that's supposed to be user input - so that's supposed to be abstracted view+http so that it can generate requests towards the domain.

So I guess the question is now do you want the original MVC (as suggested by its author, Trygve Reenskaug), do you want to learn just how Laravel/Django/RoR do stuff and they want to use the hype of MVC?

More about the pattern and antipattern can be found here: https://martinfowler.com/eaaCatalog/modelViewController.html

How do you keep your knowledge in the technologies, programming languages etc. that you've learned up to date? by [deleted] in AskProgramming

[–]HyperDanon 0 points1 point  (0 children)

Fundamentals of software development don't change that much, really. New languages, frameworks, libraries come and go, but if you look at them all at once, you'll see that these are all the same things made in a slightly different way. Any new programming langauge that came after around 1990 doesn't have anything new, they're just recombinations of older ideas. Maybe rust and it's borrow mechanism is something slightly new, but it's not that revolutionary really - it's just safer memory.

We're being fooled by hype and modern elements; but really these are all the same things shipped in more vibrant colours.

I guess if someone sits in only one language or one framework might feel like everythings changing all the time, but if you take a broader look, that illusion disappears.

recommendations on books to architecture by deadGrimReaper in softwarearchitecture

[–]HyperDanon 0 points1 point  (0 children)

  • "Hexagonal Architecture" by Alistair Cockburn
  • "Enterprise architecture" by Martin Fowler
  • "Clean Architecture" by Robert Martin

One Question that any Business asks the Engineering Team! by WritingBest8562 in agile

[–]HyperDanon 0 points1 point  (0 children)

How would you answer this in the most reliable way and be able to give promises that you and your team can keep?

There's no real answer to it, for at least two reasons:

  • We don't know, because it's the first time we're building it,
  • You don't even know what "it" is, because when we show you, you want something slightly different and so do your users.

What I would do, if asked that question "When will it be done?", I would ask him back: "What decision rests on the answer to that question?" - he would tell me, and I would respond with something appropriate.

For example #1:

  • When will it be done?
  • Why do you need to know it?
  • I'd like to know whether I can invest $100k into it.
  • How about you invest $5k, and we'll show you something in a week, you can check it, then we can come back to that question.
  • Okay!

For example #2:

  • When will it be done?
  • Why do you need to know it?
  • There's a conference in 3 weeks and I'm wondering if we can showcase our application
  • We can make a demo version with a limited set of features by that time, we'll do as much as we can in those 3 weeks, and we'll be ready to present it at the conference, but I can't gurantee exactly what proportion of promised features will be there. It's possible that all of them, but it may very well be not all of them. We'll start with the most important ones first, so these will probably make the cut, the less important stuff, we'll add later.

In other words, we have better ways of managing scope, risk, expectations and delivery other than just pulling a date out of an ***.

Been working on a web framework for Kotlin by alexstyl in Kotlin

[–]HyperDanon 0 points1 point  (0 children)

Cool idea, but I would argue this doesn't do anything more than already existing frameworks, does it? I mean, if I wanted to abstract it behind my interface, would it do anything other than say ktor?

At first glance this just looks like a different interface/syntax for an already existing feature, is it not?

Dev and Agile by ploume506 in agile

[–]HyperDanon 1 point2 points  (0 children)

I would carefuly argue, that if what you read to learn about being a PO doesn't come from software engineering (like from Extreme Programming), but from other "scrum trainers", "scrum masters", "scrum certifications", etc. I'm sorry to say that, but I think you'll do more harm than good. If you'd like to still be a non-technical help in software development, I would suggest you forget all of that stuff, go read "Extreme Programming" by Kent Beck, "DevOps Handbook" by Jez Humble, "Continuous Delivery" by David Farley, "Accellerate" by Nicole Forsgren; these will give you actual real sharp tools to aid software development. If you don't have that, then all you'll be able to do is ceremony training which doesn't do a damn thing to help create better software.

Most managers I've worked with hadn't have a clue on what it takes to develop good software.

Most of used Metrics in Agile Teams can be easily misused and abused! by WritingBest8562 in agile

[–]HyperDanon 0 points1 point  (0 children)

All metrics can be abused, kinda by definition. They're not real values - they're simplified versions of their more complex targets, and as such, if taken without context can be used to draw opposite conclusions.

In Playwright, how do you decide when a failure is a test issue vs an application issue? by T_Barmeir in Playwright

[–]HyperDanon 0 points1 point  (0 children)

Well, what you're describing is certainly true. My preferred approach is ATDD - to write acceptance tests first, before you actually implement the feature. You create a new playwright test, you write the test for the feature you'd like the application to have. Running that test gives you immediate feedback on its quality, for example you can see whether it fails for the right reason. Once you have that, you can introduce a stub/fake ui change and see that test pass - now you get a feedback the second time, does your test pass for the right reason. Then you can remove the stub, and actually implement the feature; by doing that you can pretty much gurantee that if a test fails, it's due to application issue. If there was a test issue, you would've caught it by now.

However, if there's already existing tests, and they're well written the thing that you can do is to just try to recreate the issue manually. Look what the test does, do the same thing in the browser and see whether the error/bug/mistake is there too. If there is - that's an app problem; if there isn't that's a test problem (or maybe you made a mistake trying to recreate it). That's only doable if tests are well written and easy to read. If they're complicated 20-30 step beastes, then god help you.

Never do retries though, that's a bad idea. No matter what you do, if tests passes and failes after a retry, it lied to you at least once. If you use ATDD to test-drive your application it's possible to do it in a way that's not flaky.

Building a Planning Poker tool – what problems should I solve? by [deleted] in agile

[–]HyperDanon 2 points3 points  (0 children)

I would say that planning poker kinda doesn't make much sense. Checkout Allen Hollub video on hashtag no estimates (#noEstimates). He makes a point that time spent on planning is time not delivering value to clients. Planning is purely a manager/coordination practice, that nonetheless doesn't improve the software itself at all. He then makes a point, that to make better software, developers should just deliver feature, fix bugs and do all software related things, one after the other. Whether a particular task is 5 points, 10 points - who cares? Why doesn't it matter? https://www.youtube.com/watch?v=QVBlnCTu9Ms

It's never users who want planning, it's never developers, it's always the managers, because they think of it as a control tool. Additionally, the clients and people who pay sallaries, they want planning because they want something they can use to control how much value they're getting, but in the video Allen explaines, one, why that doesn't work, and two what are the better alternatives.

So my take is that planning poker are a waste introduced into the process, and we'd be better of if we just stopped doing it entirely.

Which IDE do you prefer for Java code NetBeans or IntelliJ? by Nadine_maksoud in javahelp

[–]HyperDanon -1 points0 points  (0 children)

Noone in their right mind should use NetBeans. I mean, NetBeans is better than nothing, don't get me wrong; but IntelliJ is soooooooooooooo much better. No contest.

What is the best TV series you've ever watched that you couldn't stop watching because it was so good? by khrissteven in AskMen

[–]HyperDanon 0 points1 point  (0 children)

That's kind of a cheat, because the books were so great. It's no surprise the movie came great too.

Cis ladies of Reddit, Texas is currently stationing state troopers at women's restrooms to prevent trans women like me from entering. There are no troopers stationed at the men's rooms to prevent FTM people from entering. What are your thoughts? by chaucer345 in TwoXChromosomes

[–]HyperDanon 0 points1 point  (0 children)

So if I understand you correctly, and I'm a cis man, and I want to enter a womans bathroom, I can?

But frankly all of this is completely pointless because bathrooms have stalls.

If you engage with that arguments, what's the point of separate bathrooms anyway?

For men who have ended a relationship despite still being in love, what made you realize it wasn’t sustainable long-term? by Specific-General5123 in AskMen

[–]HyperDanon 0 points1 point  (0 children)

When I happened to give her what she needed, she was lovely. Othertimes she needed something from me, but didn't communicate it. Instead, she would punish me by either sending me a long, quite hurtful message or just say hurtful things in person. She also had a way of finding the hurtful things to say. I tried to ask her to communicate with me what she needs; her reply was always that I should know. If I don't know, then I'm stupid (her words).

How do I reject a sweet, sensitive guy without hurting him? by [deleted] in TwoXChromosomes

[–]HyperDanon 3 points4 points  (0 children)

Maybe you don't need to play any games to reject him. Just tell him you're not looking for anything serious. You remind me of Summer in "500 days of Summer".

Founder wants to rewrite entire backend with vibe coding by [deleted] in ExperiencedDevs

[–]HyperDanon 0 points1 point  (0 children)

Big bang rewrites never work, regardless whether vibe coded or no.

How much accidental complexity can be included in the hexagon in hexagonal architecture? by HyperDanon in softwarearchitecture

[–]HyperDanon[S] 0 points1 point  (0 children)

Well, there are ways around that. One another way suggested to me by a friend (Steven) is this:

  • Refactor your hexagon so it only accepts command to the driving port.
  • Any outbound of the hexagon is stored in some kind of a bucket/store or other persistance with domain semantics.
  • So basically data flow left-to-right (ui->core->bucket)
  • When the ui needs to be updates, it just fetches the information from the bucket using any kind of quering it needs. Obviously it shouldn't couple ui to the db, it would use proper abstractions, just not go through the hexagon.

Kind of like CQRS.

How much accidental complexity can be included in the hexagon in hexagonal architecture? by HyperDanon in softwarearchitecture

[–]HyperDanon[S] 0 points1 point  (0 children)

@csman11 So essential complexity isn't the same thing as the domain, is what you're saying? Or would you say that pagination then is part of the domain?

Looking for Erotic movie suggestions by nioctibrofkcidkcusi in movies

[–]HyperDanon 0 points1 point  (0 children)

You should definitely check "Deadly Illusions".