公告栏里写到:Dojo的高门槛一旦跨过,必将别无所求。含义有二:第一,Dojo难学;第二,Dojo很强大。

这也揭示了本博客的目标:帮助大家用好Dojo这个优秀的Ajax框架。

在回答为什么选择Dojo之前,我们看看哪些人已经选择了Dojo:

既然能被众多著名IT公司支持,Dojo必然有它的独特之处,那就是:架构。

一个稳定、可扩展、可维护的架构是所有高质量应用的基石。如果所有人都按自己的思路随心所欲的写代码,那就不会有那么多软件方法学,设计模式的存在。Dojo在一定程度严格规定了这样的开发规则,这也是很多人难以上手的原因。

以典型的数据,逻辑,表现的三层架构为例,来看看Dojo中树(Tree)是如何设计的:

树形结构是各种开发最常用的一个组件,其本质是:一种数据表现视图,负责处理用户交互(逻辑)和内容展示(表现),不存储任何数据。Dojo中的树完全符合这样的本质,所有数据的存储和对数据的操作都是通过专门的DataStore来实现。

因此,当我们习惯性的想用Tree.addNode(text)这样的方法去增加一个节点时时,却发现方法不存在。而正确的做法是:通过DataStore来增加一条数据,Tree会自动的更新数据的变化到界面。修改删除节点也是同样的逻辑,甚至节点的按需载入(Lazy Load)也是DataStore的逻辑,而不是Tree的。这实现了数据层的分离。

同样,当我们习惯性的想给一个树节点的icon属性指定一个图片路径,来改变节点的图标,这在我们需要根据节点内容决定图标时很常用。但我们却会发现无法找到这样的API。正确的做法是派生一个新类,重写getIconClass方法去改变节点的CSS Class,再通过CSS来指定节点的图标。这实现了表现层的完全分离。

显然,这个Tree很难用。要创建一个树,我们首先得学会DataStore,熟悉它的API;还得知道如何从Dojo的Tree去派生新类来重写方法,这又要去了解整个Dojo的类的继承机制。很多人开始抱怨,Dojo真难用。但其实只要前进一步,就会海阔天空。

表面上看,这些架构和模式,增加了开发难度。而实际上,它却增加了代码的健壮性和可维护性。在这样一个实际开发代码只占整个项目时间10%的没有银弹的时代,架构才是提升整个软件质量的关键。良好的架构,可以大大降低整个项目的风险。而从Dojo中,我们能够潜移默化的学习到Ajax应用应该如何去设计。

很多时候,最好的选择就是自己最熟悉的工具。但如果恰好这个最熟悉的工具又是一个强大的工具,那将事半功倍。当你需要去开发一个长期的或者大量使用Ajax的应用,Dojo将是最好的选择。

从熟悉到习惯之后就会发现,Dojo的门槛其实并不高。

by Nate,2010-6-12

转载于:https://www.cnblogs.com/springside6/archive/2010/06/12/2525430.html

为什么选择Dojo - 记Dojo中文博客正式开张相关推荐

  1. 庆祝Dojo中文博客成为CSDN博客专家!

    去年此时,我们正式开设了Dojo中文博客.目标很明确,就是能够让有需要的人在搜索Dojo中文资料时能看到最新最专业的技术文章. 一年来,我们持续的关注Dojo社区的最新进展,或者将最新的教程翻译成中文 ...

  2. 本文可能是国内第一篇介绍C/4HANA Foundation的中文博客

    SAP C/4HANA从去年发布已经过去了一年多的时间,C/4HANA的从业者,对于这五朵云里包含的产品集,想必都有了一些了解. Jerry注意到,SAP C/4HANA Foundation这个概念 ...

  3. 较高Google PR中文博客

    Google PR7中文博客: 毅博客 :淡泊明志,宁静致远 JunChen::Wish Room 1906 Promoting Usability, Accessibility and Web St ...

  4. 【转载】2005中文博客排名报告

    2005 中文博客排名报告 发布机构:时代财富科技公司 摘要: 2004年11月时代财富科技公司推出了中文Blog排行榜,得到了大众及媒介的广泛关注,也成为众多同行和资本市场了解中文博客网站的重要参考 ...

  5. 历史上最全的中文博客搜索网站介绍

    历史上最全的中文博客搜索网站介绍 以下是2006年5月11日各博客搜索网站排名: (1)Bloaa http://bolaa.com ALEXA1172 不知道该不该把他也算作博客搜索,就算是吧,或者 ...

  6. 战神 中文博客(附图)

    经过一个半月的学习,博客终于完成了. 从最开始的静态页面,学习了servlet,后来使用MVC模式,今天终于把项目放在了服务器上. 这一个多月中,通过学习了MySQL.JDBC.HTML语言.div+ ...

  7. 2005中文博客排名报告

    2005 中文博客排名报告 发布机构:时代财富科技公司 摘要: 2004年11月时代财富科技公司推出了中文Blog排行榜,得到了大众及媒介的广泛关注,也成为众多同行和资本市场了解中文博客网站的重要参考 ...

  8. WebLogic中文博客

    http://www.beansoft.biz/ 转载于:https://www.cnblogs.com/zhangliang0115/archive/2012/02/26/2368500.html

  9. 《国内十大中文博客托管网站排行榜》

    AnyP排行榜大全(http://Top.AnyP.cn)正式发布<国内十大中文博客托管网站排行榜>,本榜针对国内的综合性博客(Blog)托管网站进行遴选分析,以各博客主站点在搜索引擎中的 ...

最新文章

  1. ssh首次连接时提示yes/no
  2. 帧中继更具体配置信息
  3. axios vue 回调函数_VUE使用axios调用后台API接口的方法
  4. 利用Gtmetrix检测你的网站载入速度!
  5. 金融数据分析与挖掘实战1.7-1.8
  6. 计算机网络 第二章 物理层
  7. Tkinter Frame size
  8. VMware OVF 协议
  9. VK Cup 2018 Round 2: B. Three-level Laser(二分)
  10. mysql5.6.31安装及配置
  11. 网络编程核心概念与模式
  12. matlab做南丁格尔玫瑰图,用VBA做个南丁格尔玫瑰图模板!
  13. RabbitMQ的ack和nack机制
  14. matla图像处理基本操作
  15. 中国移动通信互联网短信网关接口协议CMPP2.0(普通文本短信、二进制数据短信)
  16. Relative Ranks问题的两种实现
  17. tkinter如何绑定鼠标和键盘等事件
  18. xcode will continue when iPhone is finished iPhone is busy:Processing symbol files
  19. Linux部署dns服务器(dnsmasq方式)
  20. dnf强化卷代码_DNF4.9日魔盒更新内容详解_全强化卷概率一览_52pk

热门文章

  1. 以外的文件 删除_原来C盘还可以删除这五个文件,难怪电脑越来越卡!
  2. sap abap开发从入门到精通_SAP开发-ABAP数据字典(锁)
  3. c语言中continue语句的作用是什么
  4. 卸载ncurses_linux中使用ncurses出现中文乱码解决方法
  5. wps生成正态分布的随机数_量子计算与机器学习: 量子生成对抗网络QGAN
  6. ios多线程Android,iOS 关于多线程
  7. java 设置文本颜色_在Java中更改文本的颜色
  8. 微软电脑适合什么人用_#微软surface pro使用心得# 大学生挑电脑参考/平板与电脑二合一到底买的是什么...
  9. 多层陶瓷电容器用处_【科普贴】多层陶瓷电容器的制造工序,你知道吗?
  10. 光端机图像出现噪点或者数据有时不通的情况