我正在Django中编写一个项目,我发现80%的代码都在文件中models.py.这段代码令人困惑,经过一段时间后,我不再明白究竟发生了什么.
这是困扰我的:
User,但从技术上讲,它应该统一创建它们.这是一个简单的例子.起初,User模型是这样的:
class User(db.Models):
    def get_present_name(self):
        return self.name or 'Anonymous'
    def activate(self):
        self.status = 'activated'
        self.save()
随着时间的推移,它变成了这样:
class User(db.Models):
    def get_present_name(self): 
        # property became non-deterministic in terms of database
        # data is taken from another service by api
        return remote_api.request_user_name(self.uid) or 'Anonymous' 
    def activate(self):
        # method now has a side effect (send message to user)
        self.status = 'activated'
        self.save()
        send_mail('Your account is activated!', '…', [self.email])
我想要的是在我的代码中分离实体:
实现可以在Django中应用的这种方法有哪些好的做法?
python django model-view-controller business-logic-layer data-access-layer
似乎许多OO讨论使用Java或C#作为示例(例如Head First Design Patterns).
这些模式是否同样适用于Python?或者如果我遵循设计模式,我最终会用Python编写Java(这显然是一件非常糟糕的事情)?
不同的编程语言具有不同的功能或缺少某些功能.设计模式是解决这些缺点的一种方法.我已经看过有关静态,面向对象语言(Java,C++)中的设计模式的书籍和列表,还有关于Python中设计模式的视频.
我有兴趣在其他语言中看到一些常见的设计模式,如Forth,Icon,Lisp等.简短描述它们的外观以及为什么它们需要一种语言才会很好.也许是对另一种语言的简短比较,可以在没有设计模式的情况下解决这个问题.
我有两个问题:
我正在尝试在Python中实现Observer设计模式.最简单的实现是什么?
我需要它来观察我正在构建的渲染农场中的机器状态.
那里有没有好的Python设计模式书?