官术网_书友最值得收藏!

Summary

In this chapter, we looked at the architectural quality attribute of modifiability and its various aspects. We discussed readability in some detail, including the readability antipatterns along with a few coding antipatterns.

We looked at various techniques for improving readability of code and understood the different aspects of commenting of code such as function, class and module docstrings. We also looked at PEP-8, the official coding convention guideline for Python.

We then looked at some rules of thumb for code comments and went on to discuss the fundamentals of modifiability, namely, coupling and cohesion of code. We looked at different cases of coupling and cohesion with a few examples. We then went on to discuss the strategies of improving modifiability of code such as providing explicit interfaces or APIs, avoiding two-way dependencies, abstracting common services to helper modules, and using inheritance techniques. We looked at an example where we refactored a class hierarchy via inheritance to abstract away common code and to improve the modifiability of the system.

Toward the end, we listed the different tools, providing static code metrics in Python such as Pylint, Flake8, Pyflakes, and others. We learned about McCabe Cyclomatic complexity with the help of a few examples. We also learned what code smells are and performed a refactoring exercise to improve the quality of the piece of code in stages.

In the next chapter, we'll discuss another important quality attribute of software architecture, namely, testability.

主站蜘蛛池模板: 南乐县| 武强县| 乃东县| 孝昌县| 鄯善县| 佛学| 灵丘县| 深泽县| 山西省| 喀什市| 阜南县| 怀仁县| 久治县| 绥江县| 万安县| 南华县| 嘉鱼县| 星子县| 汉沽区| 景宁| 攀枝花市| 安丘市| 崇礼县| 神木县| 曲阜市| 逊克县| 乌苏市| 敦煌市| 舞钢市| 历史| 兴海县| 平湖市| 民乐县| 桦川县| 黄浦区| 辽阳县| 进贤县| 三台县| 武威市| 临泽县| 会宁县|