• 0 Posts
  • 7 Comments
Joined 1 year ago
cake
Cake day: July 8th, 2023

help-circle


  • Congress has the power to declare war. The president being commander-in-chief does not mean he can do whatever he please with the U.S army as its own personal force. The president is meant to follow the constitution, even as commander. If the president ignores treaties and war declarations, I would argue the president is the one violating the separation of powers, and not congress by hypothetically enforcing the powers given to them by the constitution. By this logic, whoever controller the army should have absolute power, being commander-in-chief and all. I like how you slipped past my initial post by completely ignoring that the constitution grants congress influence over foreign policies by citing the president control over the armed forces as this unalienable right. Why have treaties then? Why have declaration of war? I think you might be slightly biased in your argument. The president was never the sole responsible for foreign policies, even though the executive branch had a lot of influence over those in recent times.




  • What you seem to be describing is one big class with lots of responsabilities, and not circular dependency. Personally, I don’t think it is ideal, and I don’t know about your specific case so I could be wrong, but I have never seen a legit case for bloated classes. That being said, making a big class is still much better than splitting it into inter-dependant classes. Classes that know each other are so cohesive that they might as well be the same class anyway.

    To add onto the circular dependency problem, it is not just about readability and cognitive load (though there is some of that), but cyclic dependencies actively break things, and make it much harder to manage the lifecycle of a program. No dependency injection, poor memory management, long compile times. It is a huge hack, and I understand that you think it can be the proper solution sometime, but it is really just a bad thing to do, and it will bite you some day. And I am assuming here that you’re using a language that is friendly, in some languages you won’t even compile past a certain point, and good luck cleaning up that mess.


  • It does not get more complicated to split your example. What gets more complicated is giving all sort of unrelated responsabilities to a single class, simply because it is the path of least resistance.

    In your example, all you need is an extra module listening for configuration changes and reacting to it. This way you leave your context-specific logic out of your data model, no need for cyclic dependency. There are so many downsides to cyclic dependency, to justify it because splitting your logic is “too complicated” really isn’t a strong argument.