Habilelabs-Logo
Blog

What makes you an expert Python developer?

November 3rd, 2021 . 6 minutes read
Blog featured image

Hi all, my name is Dheeraj, and I am a software engineer. I am working in the industry as a Python developer for more than 3 years and have worked on many projects in Python and Django.

I want to share few points which will make you a better Python developer and help you to get a better opportunity.

So let’s jump into the topic-

Tips to become a better Python developer-

If you are someone who is familiar with coding, then the concept of coding standards is nothing new to you. You may be a strong supporter of these guidelines or a freedom fighter who believe that code is a form of expression.

Whatever the case may be, it doesn’t hurt to look at some of the best practices when it comes to write a good piece of code.

Here are a few coding standards every Python developer needs to follow while writing code to make it more effective-

Always follow PEP8 conventions

As a good Python developer, you should follow coding guidelines and PEP 8 is for you to write better Python code. PEP stands for Python Enhancement Proposal. This is a kind of document that provides coding guidelines and best practices for C implementation of Python. This document was adapted from Guido’s original Python Style Guide essay, with some additions from Barry’s style guide.

  • It will improve code readability, so other developers can understand your code easily, and it’ll also save a lot of time while debugging because more readability means easy to understand.
  • Following PEP 8 is particularly important if you’re looking for a development job. Writing clear, readable code shows professionalism.

PEP8 includes naming conventions for variables, functions, classes and packages. Code Layouts like vertical whitespace or blank lines between classes, one line space between functions, maximum line length or line break, indentation and many more. You can also use the extension with your IDE which can save your time.

Always write docstring

A docstring is the first statement that occurs in every module, class and function. Basically, it is a string representation of your code to explain what it’ll do while execution. 

It’ll improve your code readability and anyone can understand it by reading docstring without going deep down into logic.

Example:

With docstring, anyone can understand the function and its input parameters and expected outputs. Your code editor/IDE will also show docstring while you hover on a function.

Always Use Linters

Lint is a small mistake that makes our code ugly like mistyped variables names, inconsistencies in style, forgetting a closing bracket, incorrect tabbing in Python, calling a function with the wrong number of arguments, the list goes on and on. Linters help to identify those problem areas.

Linters analyze code to detect various categories of lint. I am using Pylint for Logical and Stylistic lints like code errors, unintended code and convention errors. MyPy for optionally enforced static types checks.

Python Type annotations

Most programming languages include some kind of type system that allows developers to define types when writing code, but we all know Python is a dynamically typed language. This means that the Python interpreter checks types at runtime, and we can also change variable type over its lifetime.

In Python, we can also use type hints. It’s just providing hints to your IDE’s/Linters. It’s not giving a variable to a static type. I recommend you to use this because it’ll make your code more readable and anyone can easily understand. It’ll also save you time because your IDE/Linter will show you an error before running the code.

Example: Here is an example of a function that will give you an error at runtime.

As you can see, IDE is not showing an error. Now let’s use type hints with the same example-

You can see VSCode gives us an error before running the code. Check more here for Python typing.

– Write proper test cases for your Python code

We have two ways for testing our code to check whether it’s working as expected or not-

Manual vs Automated Testing

Manual testing

Suppose we’re developing a project which has thousands of functions, classes and a lot of features. Now every time you add a new feature or change existing code, you need to test every part of your code that it is still working. For this, we need to make a list of features, different types of inputs and expected outputs, then test one by one. This approach will take more time than development, which is not advisable.

Automated testing

To overcome the above problem we can use automated testing. For this, I always use unit testing. Unit testing means you’re writing test cases that will test every unit of your project with possible inputs and expected outputs. After this, you can run tests by just one single command, and it’ll test all your code.

Example-

I prefer Pytest for Unit testing.

Use Pre-commit hooks

You can understand by the name pre-commit that it’s the kind of hook that will run before commit. As a developer, everyone uses Version Control System. So if you want to use all or any of the best practices mentioned above, you should try pre-commit hook.

It’ll check your code according to installed hooks and enforce best practices. This saves you from accidental commits of code that is not following conventions.

Conclusion

Coding standards help to develop less-complex software programs, thereby reduce the potential errors. If the coding standards are followed, the code is consistent and can be easily maintained. This is because anyone can understand it, can modify it and scale it at any point in time.

In short-

  • Write comments and documentation
  • Write readable yet efficient code
  • Use helper methods, If avoidable, do NOT hard-code!,
  • Write test cases.

Happy coding!!

Author: Dheeraj Kumar
Share: