网址
1. 项目需要一个好的结构
https://www.kennethreitz.org/essays/repository-structure-and-python
https://github.com/kennethreitz/samplemod
2. 组织糟糕的项目的一些标志(Some signs of a poorly structured project include):
2.1 多重和混乱的循环依赖(Multiple and messy circular dependencies)
furn.py
class Table():
def isdoneby():
pass
class Chair():
def isdoneby():
pass
workers.py
class Carpenter():
def whatdo():
pass
如果table.isdoneby()依赖import Carapenter才能执行;相反地,carpenter.whatdo()又要依赖import Table和Chiar。如果一开始就import,出现循环引入。
一个能解决问题但是不好的技巧是在方法或者函数里import。
2.2 隐藏的耦合(Hidden coupling)
如果Table内部的改变都使Carpenter的某些test cases不通过,那么Table和Carpenter的耦合性过大,Table的内部改变影响到Carpenter。
2.3 重度使用全局变量、状态、上下文(Heavy usage of global state or context)
2.4 面条代码(Spaghetti code)和馄饨代码(Ravioli code)
https://blog.csdn.net/godsme_yuan/article/details/6594013
面条代码:冗长,控制结构复杂(例如充满if,for),混乱而难以理解的代码。本人觉得,在编辑器里这些代码有非常多的guidelines垂下来,非常形象的”面条“。
馄饨代码:程序由许多小的,松散耦合的部分(方法,类,包等)组成。没有遵循高内聚,低耦合。书中举了个例子:如果你不知道什么时候用必须用FurnitureTable,AssetTable和TableNew,那么这些代码就是混沌代码一块一块的,很松散。