木野狐(Neil Chen)

Focusd on Silverlight

B-List 中 James :Django 中没有一个终极的 blog 程序,也许永远也不会有。

他的理由是,像 Word Press 那样流行的 blog 程序,都体现一种 "all-in-one" 的理念,说白了是给非专业用户使用的;相比而言,Django 鼓励的是最大化的重用,比如 Django 中的 auth 和 admin,想在所有项目中能通用这些东西。所以,他们的开发理念是 Blog 程序应该由很多个独立的、可复用的程序组成:通用的评论系统、通用的后台管理、通用的身份验证、。。。
(在 Django 中,可复用的单元是 application. 一个 project 可由多个 application 组成)。
而 Blog 程序本身的内容,则由他们组合而成。

我要说的是,这种想法过于理想化,并且会把 Django 带向错误的方向
每个项目的需求都是十分定制化的,想把其中一些东西拿出来成为独立的插件,想法是好的,但是 Django 本身缺乏类似组件这样的复用机制。其结果是,永远只能做一些玩具级别的东西。比如 Django 的 admin, 除了做简单的新闻发布之类的应用,有几个严格的项目能用上它的?

而 Blog 的需求看似简单,其实复杂,做一个 all-in-one 的 Blog 程序非常必要。我们已经在邮件列表或网上看到太多的玩具级 'blog' 程序了,难道还要继续这么错下去吗?

其实从语言特性讲,PHP 一点都比不上 Python/Django, 可是为什么 PHP 的市场占有量更大,我想这跟 Python/Django 的开发过于理想化有一定的关系。

该帖的回复中倒是有一个人在用 Django 做 Blog 程序,叫做 Banjo. 看特性还不错。可以保持关注:
http://coderseye.com/2007/banjo-blog-nearing-01-release.html
可惜还没有发布。
posted on 2007-12-05 12:49 木野狐(Neil Chen) 阅读(1155) 评论(11)  编辑 收藏 所属分类: Python

Feedback

我本来想将我的各个功能模块做成单独的APP,以后开发的时候重用。
后来发现太难了:)。
各个APP很难做到足够的纯洁。
  回复  引用    

#2楼  2007-12-05 13:43 guotie [未注册用户]
最近django更新太慢了。

您的文章是否可以引用转载?

  回复  引用    

#3楼  2007-12-05 13:54 vicalloy [未注册用户]
django没有一个成熟的blog我想这并不能归结为django的设计思想。
设计一个"all-in-one"的东西是需要很多精力和时间的。
主要还是django的普及率太低,而且缺乏独特性(没什么的东西是只能django做的)。
不单没有终极blog,django几乎就没什么终极应用(BLOG/BBS/WIKI)。
  回复  引用    

#4楼  2007-12-05 13:57 vicalloy [未注册用户]
django还是一直有在更新的,可能想在年末发布一个较大些的里程碑,所以最近都没太大动静吧。
前些天django的blog上说要招募自愿者进行年末的冲刺。
但看SVN上的更新速度似乎没我想象快。
  回复  引用    

#5楼 [楼主] 2007-12-05 14:07 木野狐(Neil Chen)      
@guotie
可以,没问题的啊。
  回复  引用  查看    

#6楼  2007-12-05 14:09 Enzo      
Django
  回复  引用  查看    

#7楼 [楼主] 2007-12-05 14:13 木野狐(Neil Chen)      
@vicalloy
赞同你的看法,all-in-one 的东西是很难做的。
可是我觉得,Django 为什么难做这种程序,在于它所主导的这种思维方式不支持,或者说骨子里有那么一点高傲,认为开发这种程序不符合“最小复用”的原则。这个思想只要存在,对 Django 的推广就会不利。
另外,Django 缺乏好的组件机制是一个软肋。比如每个 app 所用的资源文件都非要放到 media 里面去,虽然说这植根于 Django 的设计理念:应用服务器能更好的处理静态资源。但是对程序复用非常不利。
而我们在其他语言比如 PHP, ASP.NET 里,都可以做出像 FCKeditor, FreeTextBox 这样的组件,他们的资源都是自包含的,使用也很方便。
  回复  引用  查看    

#8楼 [楼主] 2007-12-05 14:17 木野狐(Neil Chen)      
现在我甚至怀疑,其实很多 web 程序用 mvc 的架构根本就不适合。而 asp.net webform 那样的架构倒更有用。
Django 里一直没有 UserControl 一样的东西,做很多功能非常别扭。
  回复  引用  查看    

#9楼  2007-12-06 01:04 vicalloy [未注册用户]
没太用过PHP和.NET,不是很清楚他们的组件机制是怎么样的。
JAVA也是不支持楼主说的组件机制的。
Django里静态文件是否是放在一起的,但是只要组织好是不会有冲突的。
资源文件也可以按照app进行存放。
至于资源文件的路径前缀可以在配置文件中配置(不过我似乎没看到那个应用有这么做)。
django的app在整合应用的时候其实还是挺方便的。如果blog是一个独立的app。
只要将blog的url转发配置上就可以。由于django基本上都是用的自带的验证模块,在和其他应用整合的时候工作量应当会比较小。
但如果你想将app细化,将类似个人自主管理等小模块独立出去,那就会很痛苦。
这些模块无法做到足够的纯洁(独立)。对于不同的网站,个人中心是不一样,你很难将公共的东西抽取出来。
django的o/r map很好用,但感觉太黑。我无法对评估他的性能,而且现在django缺乏杀手级的应用。当流量上去后,优化的难度有多大,这也是一个很没底的问题。
  回复  引用    

#10楼  2007-12-06 16:22 guotie [未注册用户]
django是有这个问题,各个组件结合太紧密了,很难拆分开
  回复  引用    

#11楼  2007-12-12 18:39 sheboss      
你好,我是正辅公司的负责人,别个向我推荐了你,希望你能加入我们公司,下载是我们的介绍

本公司为开发人员提供上海市中上水平的薪金保障,有能力进入公司者将优先成为公司的创业者,优先拥有公司期权等。 本公司是新兴的互联网公司,已取得上海市两个科技基金的支持,公司提供第三方网上交易商品即时防伪验证服务(“正虎远程防伪”),确保网民在网络购物通过“正虎远程防伪”所买到的商品为正品。远程防伪技术可解决中国网上购物怕买到假货的瓶颈难题,处于国际领先地位,此技术公司拥有知识产权,已经被Ebay易趣,淘宝,政府相关部门等看中,权威机构新华社,每日经济新闻等有其相关报道。公司简单的项目介绍:www.zhenghoo.com


  回复  引用  查看    


标题  
姓名  
主页
Email (只有博主才能看到) 
验证码 *  看不清,换一张 [登录][注册]
内容(请不要发表任何与政治相关的内容)  
  登录  使用高级评论  新用户注册  返回页首  恢复上次提交      
该文被作者在 2007-12-05 14:40 编辑过


相关链接: