Re:Dr. Software: An unfinished journey starting from dirty c...
by bob1029 on Monday June 28, 2021 @03:35PM
(#27666739)
The trick between imperative/functional programming is that there is a balance involved. Some things make a lot of sense to put in a for loop and wrap with a try/catch. Interfacing with the real world is where I write the most of my dirty code. In software I am responsible for, the closer you get to the domain model, the more functional it becomes.
In my mind, the entire point of imperative programming is to construct a sort of "matrix" in which the functional programming can exist without having to be aware of the uncertain nature of the outside world.
If you want to build something complex really quickly, start with the domain model. And start with excel, not visual studio. Sit down with a spreadsheet in the conference room with all your business stakeholders. Iterate that document until every business person AND developer agree that it covers the needs on both sides (facts + normalization). Once you have that document completed, write the quickest & dirtiest MVP you can tolerate against it. Convene another meeting with the stakeholders. Check your gaps. Make another spreadsheet. Do this about 4-5 times, and then you can write "the one".
In my mind, the entire point of imperative programming is to construct a sort of "matrix" in which the functional programming can exist without having to be aware of the uncertain nature of the outside world.
If you want to build something complex really quickly, start with the domain model. And start with excel, not visual studio. Sit down with a spreadsheet in the conference room with all your business stakeholders. Iterate that document until every business person AND developer agree that it covers the needs on both sides (facts + normalization). Once you have that document completed, write the quickest & dirtiest MVP you can tolerate against it. Convene another meeting with the stakeholders. Check your gaps. Make another spreadsheet. Do this about 4-5 times, and then you can write "the one".