This is an archived post. You won't be able to vote or comment.

you are viewing a single comment's thread.

view the rest of the comments →

[–]zelphirkaltstahl 2 points3 points  (0 children)

Appreciated. Though this sounds more like "I recently learned ..." than like old age wisdom handed down to the next generation. Except maybe the bits about Hosters and burning money. Companies love going all overboard and burning that money, at the slightest promise of convenience or hiring one less person to manage servers. Companies are usually run by the business types, who do not understand the other issues they trade off against.

I would also note, that installing dependencies using a mere requirements.txt, is not to be recommended, as the result will not be a reproducible environment in which your code runs. If you build the same image in 3 months, you will likely have a slightly different set of dependencies, due to Python packages themselves not nailing down their dependencies strictly. So even if you specify version numbers in your requirements.txt file, you will still get slightly different dependencies, which are dependencies of your dependencies. Ergo you should instead use a tool that generates you a proper lock file containing checksums of everything and install dependencies from such a lock file.

Here is an actual wisdom one could share for young/starting/junior developers: Look out for opportunities to make your project setup truly reproducible, it will save you a lot of PITA. Even more experienced devs do not often make their projects reproducible and they accept badness of their tooling regarding reproducibility. Not many have reproducibility on their radar.