i dev on main
in teams we build in environments that are very prod like
we have tests that verify code that has been deployed - no matter the location on startup
we build test and deploy from local machines (and test because startup)_- this is very reliable or else our tests woudl regularly fail
because of this we push to main after our deploy has worked
ofc this only works on smallish teams that push / pull very regularly and have good communication around who is deploying when.
it used to be a shout over a desk partition.
we go faster than you and break far far less than you
I feel like you missed the main point of what you are saying.
Whilst existing callers who obey the contract will not be broken by this callers who depend upon this code breaking for null values will no longer do so.
so it is a breaking change for them. You have just extended their behaviour.
That said if we defined the functionality of code as being valid within a scope of input and not defined anything outside of this we are safer in a sense. That said you do require feedback to show you are out of range.
But the point I want to make is that the line of argument that attempts to ascribe changes to behaviour on values that were out of scope as breaking changes is not helpful to anyone who is trying to co-exist via contracts in order to understand what work is expected as a result of change.
most of what developers have to ship is not in their control - very often teams are not responsible for defining what they do or how they do it now.
I wish you were right because it can be fixed by looking at developers but its the entire snake oil industry of deciding what to do that is the problem
its like using the army to watch over kids crossing the road to school
Many other source control systems with far simpler systems
this whole branch and pr into merge process didn't exist 10 years ago like it does now. It started from open source and low trust - but nobody stopped to ask what problem it solves.
If somebody needs to check your code as part of a formal process - rather than some arbitrary invitation you issue in special cases - you shouldn't of been hired with the job of writing code.
Kids wont listen to you
kids don't care how much you have thought about something
the way you are has more to do with who you are not what you think and the way they will be is more like what you are
Your kids spend most of their time with people who are not you
control and choice is an illusion that follows a chain of high pressure, highly emotional situations.
Get a dog - learn to train it. Having kids is like that - except its cleverer than you, doesn't want to make you happy all the time and wages psychological warfare to figure out how to get what it wants at all times. Or at least the fun kids that will make you wish you had a plan in retrospect will.
When you have a second kid you will do things differently - you will be wrong then too.
good luck
your kids wont like what you do - they are not you and they will value different things to you.
Help them discover that and support that - unless they don't want to. they wont.
Amazes me that so many people dont understand that if all things are dependant upon your business logic or on your domain then this is natural. Its natural hex architecture
I actually do not think your code should throw exceptions. It is really just an Either / result and then if something does blow its because you havent anticipated it via wrapping something in an either or result ... and so it should blow and the callers of your library should be submitting a defect..
I would expect wikipedias to be more accurate than teachers.
I am a software engineer who spends his life showing people the origional sources of information to help them unpick collective repeated misunderstandings. That takes me, with more experience that my team combined to do that.
teachers have experience of teaching - not possessing knowledge or the practises of sifting, applying and validating their hypothesis aroudn the veracity of information.
Most curriculums are out of date in ways that don't matter all that much. But i still rekon wikipedia is still more up to date than them.