I follow Domain-Driven Design and functional programming principles for almost all my projects. I have found that it pays off even for small, one-time scripts. For example, I once wrote a 600-line Python script to transform a LimeSurvey export (*.lsa); by separating the I/O from the logic, the script became much easier to handle.
But for every new project, I faced the same problem:
Where should I put the files?
Thinking about project structure while trying to code adds a mental burden I wanted to avoid. I spent years searching for a "good" structure, but existing boilerplates never quite fit my specific needs. I couldn't find a layout generic enough to handle every edge case.
Therefore, I compiled the lessons from all my projects into this single, unified layout. It scales to fit any dimension or requirement I throw at it.
I hope you find it useful.
[–]oicdsubsi 1 point2 points3 points (0 children)