by matjazdrolc on 5/22/21, 8:07 AM with 2 comments
Type system in Java, C++ or C# helps the process immensely. Automated tooling can do most of the heavy lifting there.
In Python type hints are optional. Additionally, many libraries are written such that typing is hard (example: Flask's g object, or SQLAlchemy's models).
How to anticipate refactoring in Python and write code that is easy to refactor?
Things that worked well so far:
- verbose names. Longer variable or function name is less likely to collide with others within a project. Helps to quickly find all places in the project where the variable or function is used.
- ending variable names with _type. Example: `current_user`. Searching for `user.last_login_date` will surface `current_user.last_login_date` too.
by afarrell on 5/22/21, 2:42 PM
The books by Harry Percival on this are good.
by rajacombinator on 5/22/21, 5:53 PM
- Use black to format your code. No exceptions.
- Very modular code.
- Tests, although this costs time of course. Focus on meaningful rather than trivial ones if needed.
- Write comments explaining reasoning for particularly dense pieces of logic.
If you practice most of the above, hard to see where you can go wrong.