DEV Community

Cover image for Some Software engineering Concepts
Anita Okoh
Anita Okoh

Posted on

Some Software engineering Concepts

Lately, I have been taking some software engineering classes to combine the knowledge with my data science skills

These are some of the concepts I have picked up so far

  • Refactoring: This means restructuring your code to improve the internal structure without changing external functionality. In other words, rearranging your code to improve efficiency and readability without change the purpose or the original functions of the code. This includes cleaning your code by using descriptive but concise variable names and decluttering the lines of codes in a function as well as using appropriate white spaces. It also includes proper documentation, be it an inline-level, function/module level or project level

  • Modularization: This means converting your codes into modules based on their functionalities. Someone once told me that "similar functions should be grouped together". This helps for each module to be independent in function, improve readability and reusability for future references

  • Test-Driven Development: This is the process of writing tests for tasks before developing or writing the code to implement those tasks. This is such an abstract technique in data science and it would be nice to practice this.

One thing to keep in mind is: Classes, inheritance, object, attributes, and methods are common to all object-oriented programming language

If one were to think about python concepts ( like packages, modules, functions, etc) in a hierarchical method, I would say it would look like this below (from small to big)

Alt Text

Top comments (0)