Yeo*_*Yeo 11 django frameworks design-patterns web-frameworks software-design
我一直在使用Django多年(自Django 1.2以来).在过去,我使用了不同类型的Web框架(例如CakePHP,Rails,ASP.NET MVC和其他一些全栈框架).Django不是我的第一个框架.
不同的框架在方法和利益上存在差异.我喜欢这些框架的某些部分,但我不喜欢.在这种情况下,我想更具体地看一下Django Framework的设计.
在转换到Django之后,我喜欢它如何设计它的框架.在学习一门新语言(如Go,Scala,Ruby,Haskell)时,我试图寻找一个在设计上有一些相似性的框架,特别是我后面提到的那些框架.
以下是2个Django框架设计决策的不同之处:
我不相信Django先锋这样的功能.我相信这种模式在框架设计中非常普遍.只是我不知道,这个(设计)模式叫什么?这个概念在其他框架中应用非常有用.我相信知道模式的名称可以帮助我理解甚至用相同的概念构建不同语言的新框架.
目前有大量的Web框架,其中大多数都遵循经典的MVC模式.有些人使用插件的概念来添加某些功能.然而,插件根据上下文解决了不同方法的可重用性.
所以我确实尝试了尽可能多的框架,以便找到不同语言的替代框架.希望我能找到Django使用的模式.但是,我很难学到所有这些.事实上,到目前为止我还没有找到一个.
我一直在寻找:
不幸的是,它们都没有真正突出我感兴趣的概念.
在这个Q&A中,我想知道人们称之为这样的框架是什么?(或者Django使用什么模式?)如果你能在这个设计中给出一个其他框架可能也在使用它的参考文件,那会不错?
有什么是django你用其他语言无法做到的?
SQLAlchemy;红宝石有Active Record...Flask、Pyramid、rails、php...提供意见Jinja;mustache, Liquid...admincontrib 包吗?- 不,你有phpmyadmin,workbench...django有很棒的工具,有很多可以使用的包;它是一个平台,这意味着它有足够的核心作为许多项目的起点,并且背后有足够的社区拥有许多软件包,可以轻松集成到交钥匙解决方案中。
django使用DRY(Don’t Repeat Yourself)原则作为设计理念。从可重用性的角度来看,为每个部分/应用程序保持明确的职责可以轻松重用组件。但这并不需要一个精心设计的平台;而是需要一个精心设计的平台。重点应该放在以可重用的方式编写的组件上。例如通用标记、配置/数据驱动组件......
| 归档时间: | 
 | 
| 查看次数: | 874 次 | 
| 最近记录: |