分类存档: 转载

安居客的网站架构-转

做个备份。

原文地址:http://erning.net/blog/2012/06/18/the-architect-of-anjuke-inc/

javascript实用模板引擎

John Resig 开发的一个简易模板引擎,配合json非常的实用。

// Simple JavaScript Templating
// John Resig - http://ejohn.org/ - MIT Licensed
(function(){
  var cache = {};
 
  this.tmpl = function tmpl(str, data){
    // Figure out if we're getting a template, or if we need to
    // load the template - and be sure to cache the result.
    var fn = !/\W/.test(str) ?
      cache[str] = cache[str] ||
        tmpl(document.getElementById(str).innerHTML) :
     
      // Generate a reusable function that will serve as a template
      // generator (and which will be cached).
      new Function("obj",
        "var p=[],print=function(){p.push.apply(p,arguments);};" +
       
        // Introduce the data as local variables using with(){}
        "with(obj){p.push('" +
       
        // Convert the template into pure JavaScript
        str
          .replace(/[\r\t\n]/g, " ")
          .split("<%").join("\t")
          .replace(/((^|%>)[^\t]*)'/g, "$1\r")
          .replace(/\t=(.*?)%>/g, "',$1,'")
          .split("\t").join("');")
          .split("%>").join("p.push('")
          .split("\r").join("\\'")
      + "');}return p.join('');");
   
    // Provide some basic currying to the user
    return data ? fn( data ) : fn;
  };
})();

很少的一点代码。但功能非常实用。

准备json和一个模板即可

jquery simple template demo

JSP学习笔记(转载)

开始学习JSP,必要的是给自己一个计划,需要学什么,要怎么学,下面是一个比较常规的学习方法:

1、 建立并且配置好你的Web Server。
  安装并学新使用的时间:半天 。
这是之前讲过的了,初学者推荐TomCat或Resin

2、 保证你理解 HTML / XHTML 。
  你将需要了解html基础, 特别是 HTML 布局中的table的使用。XHTML 不久将代替 HTML ,学习 XHTML 的基础是一个好主意。许多程序员通过 HTML IDE 学习 HTML ( 集成开发环境 ) 。因为大多数 HTML IDE产生混乱的HTMl语法,所以花时间学习手工写作html是很有必要的。因为你将会使用 JSP 和 HTML 混合编程,精通HTML语法是重要的。所以,你必须能流利地写 HTML 。
  训练时间:半个星期。

3、开始学习 Java 。
  开始学习 Java 1.3 理解 Java 基础是很重要的。不用担心学习Swing或 Java 的图形方面,因为在JSP 中你不会使用这些特征。集中精力在 Java 工作的细节,学习 Java 的逻辑,也在 Java Bean上花时间。学习Applet是好的, 但是就象Swing, JSP 的大多数应用将不使用小程序。
  训练时间:1 个星期。

4、学习并且理解你的Web Server的更好的细节。
  熟悉Web Server的特征,这是很重要的。
  训练时间:2 天。

5、建立你的 JSP Server
  我推荐以Tomcat开始。它可以很好地运行JSP程序。当你不能在生产使用Tomcat时,学习尽可能多的知识以便于更好的运行程序。另外, 许多 JSP 程序员使用Tomcat。因此当你遇到一个问题时,你将容易发现帮助。
  安装时间:半天。

6、开始学习 JSP 。
  基本的 JSP 学习通过的步骤 1到步骤6可以完成, 然后使用 JSP 对象和脚本写 JSP 程序来联系学习 JSP 的另外一个方面可以学习怎么创建一个分布式的应用程序。
  训练时间:2 个星期。

7、学习更多的 JSP server。
  没有关于更多的 JSP Server当然也可以运行jsp程序。然而, 许多 JSP server都由自己特殊的特征,可以让你更好的理解你的JSP 工程。

  学习更多的Jsp server如何处理jsp程序是有必要的。同样也可以优化你的 JSP 应用程序,并且使之运行得更快而不出任何问题
训练时间:2 天。

8、 学习 JDBC 。
  JSP 大多数应用将使用数据库,JDBC 被用于数据库连接。经常忽略的一个事实就是,每个 JDBC Driver 所支持的东西是相当不同的。了解并熟悉在jsp工程上被使用的 JDBC driver的细节是很重要的。
  (有时这部分的学习被包含在前面 Java 或JSP的学习中了 。)
  训练时间:1个星期。

  到现在,你已经成为了熟练的 JSP 程序员。仍然有很多需要学习,你可以考虑扩展你的知识比如 DHTML , XML ,java证书, JSP Tag Libraries 或 Servlets , 看你想要造什么类型的网站而决定了。

  这些训练是JSP 的核心。你不必都学习上面所有的, 取决于你在工程中分配到什么任务和你已经有什么知识。但是这是我成功地训练程序员的时间表。关键的单元是时间。平均的说, 5 个月时间确实能够训练一个人 ( 从开始到完成 ) 成为一个对jsp熟悉程序员。几个月时间似乎很长,但要成为一个资深的WEB程序员所学的东西远远不止这一些。

  也许你认为这样学习一种语言花费的时间太长了,因为学 ASP 会更快、时间会更短。 但是学习 ASP 不需要学习java的。 但是你要知道,JSP拥有很多ASP没有的优点哟~以后你自己会领会到的!

优秀ASP.NET程序员修炼之路(转载)

“为人写程序”

初级的程序员或经验不足的程序员往往只意识到自己的程序是写给计算机的,而不会在意程序其实也是写给人的,或在意得不够、不全面。

写给机器的程序,往往追求的是运行正确、执行效率能满足要求。但程序员的任务仅仅就是把业务逻辑转成机器能编译的计算机语言吗?

其实,程序首先(注意,是首先)是写给人的。第一,程序是写给看代码的人的。第二,程序是写给用程序的人的。了解这一点,才能理解写程序为什么要有代码规范,为什么要有各种文档,为什么写子程序时要命好名,为什么要分层,为什么要学设计模式,为什么要写测试用例,为什么要推敲按钮的摆放,为什么要按XHTML标准写Web界面,为什么要用AJAX … …理解了这一点,才能更好的做好上面种种事情。

谁都在说“细节决定成败”,谁都知道要注意细节。为什么大家都在讲细节,有的人能通过细节打败对手,有的人连细节在哪一方都不知道,这就是水平的高低所在。我们要有心理准备:细节不是喊一声就会出现在你面前的。感知到细节,这是一个需要不断学习和实践,甚至有人指导的过程。这个过程有长有短,要看个人的学习能力,领悟能力。但最起码,我们首先要有一个方向。找程序的细节,方向就是“为人写程序”,在你做设计,写代码,摆弄界面的时候,心里时刻记住这一点,几个项目下来,你自然能看到很多细节了。

“内外兼修”

武侠电影里的高手,往往都是通过奇门心法,内力陡增而成为高手的。但我们做程序的,要成为高手,“内外兼修”才能事半功倍。内,指的是需求把握,设计思想,设计模式等。外,指的是写代码时的规范,做界面时的严谨等。

看武侠看多了的我们,偏内轻外的特点是很明显的。看看书店里写设计模式主题的书籍和指导代码规范的书籍的数量和销量对比就是一个很好的证明。但是就算设计模式一套一套,但写的类却给人看半天也看不出思路的话,一两年之后,你仍将陷入一个个泥潭中。

再举个例子,有的人自称ASP.NET程序员,而且他写出来的后台代码也层次清晰,条理清楚,但是做出来的界面,结构与表现混杂,一大堆IDE自动生成的垃圾代码充斥其中,该用单选框的用文本框,按钮放在谁都想不到的地方,不该用户操作的要用户操作,一步可操作完的搞成几步也不能完成操作……很显然,他不可能做出成功的产品。也许他也知道界面要合理,但是就是因为他不修外功,认为我是搞.NET这种先进技术的,去补习什么HTML、JavaScript、CSS不是自贬身价吗?其实,认真研究过HTML、JavaScript这些技术的人都会体味到,运用这些技术比流行的.NET、Java更有挑战性,而且你获得直接操作用户界面元素的能力后,以前那种做界面效果、接口功能时有心无力的情形将一去不返,这是很痛决的!

如何学习ASP.NET

要成为一个优秀的ASP.NET程序员,不仅要掌握.NET框架,理解ASP.NET的原理,而且要对DHTML架轻就熟,甚至对各种浏览器之间的差异也要有所了解,所以做ASP.NET程序员是一件很有挑战的工作。那么如何学习ASP.NET,并最终成为优秀的ASP.NET程序员呢?

我认为可以分为两个步骤来走:首先,熟悉ASP.NET各种标准控件的用法,了解ASP.NET工作原理。接着,朝“内”和“外”两个方向扩展自己的知识和技能。

在Visual Studio .NET这样优秀的IDE帮助下,我们使用各种ASP.NET控件,掌握ASP.NET基本的工作原理应该是比较容易的。如能辅以几个简单的项目练习一下比较复杂的DataGrid、DataList等数据绑定控件的话,基本掌握ASP.NET是应该没有多大问题的。

之后,我们就可以朝两个进阶方向前进了。“修内”的话,深刻理解面向对象的编程思想是必修的,然后是各种的B/S框架的模式(比如MVC)的理解,最后是设计模式等等软件工程的概念和技术。“修外”则更重实践。首先,做项目时注意把一些可以实现在客户端的逻辑用DHTML在客户端实现出来,以此掌握结合服务端、客户端技术的方法,加深对HTML的DOM对象的理解,熟练常用的JavaScript技巧。进而练习对Web界面的结构、数据、表现三者进行分离的规划、设计与实现。

如此看来,学习ASP.NET也并不是一件很难的事情,注意“为人写程序”,“内外兼修”,自然就能做出合格的应用程序。

你活得比他好,就是對他最大的報復

昨晚看一篇文章,大概內容是這樣的:LU人的博客*F)r4U(g%O:V m

她出生在一個幹部家庭,他是她從小到大的同學。LU人的博客5F b6B r!w |+c

他想開金礦,可家裏拿不出錢,於是她父母把退休後開的公司賣了,得來的錢一半借他開金礦,一半買房養老。LU人的博客,v O a q

她們家對於他可謂是恩重如山。LU人的博客 ^+w Z q {

他亦爭氣,金礦運營蒸蒸日上,甚至準備再買一個金礦,她幫他打理。LU人的博客+F"q+m2u!R6s"K

朋友知道他們有錢,紛紛來借,而且經常拖著不還。年底,兩人決定去討債。
5[/| i I h Y+Q0

朋友謝某欠下5萬塊債款不肯還,他與謝某發生衝突,將謝踢下山崖。崖深百米,謝某命保住但終身癱瘓。
a+{ o P P2z r N4M%Q0

他與她同時被拘留。謝某只指控了他。他通過律師給她傳紙條:金礦你一人無法支撐,如果你替我進去,我來經營,你出來後我們起碼有一百萬的家產,可以立即完婚,兩人未來都有保證。LU人的博客 ~)p M1c E d c

癡情的她答應了。被判入獄8年。LU人的博客 E,c y I B m v O

入獄期間他從未探監,還將她年邁的父母養老的錢以請律師爲由全部騙光,其父後來得知女兒被冤且花出去的錢全入狼口,氣急之下撒手人寰。辦喪事欠下三萬多元債務。LU人的博客 d v [*j H d ^

她決定出獄後要殺了他。LU人的博客+Q t u T g `&s w

因他的自私,朋友們紛紛疏遠他。她被判8年,他卻像判無期徒刑,壓力之下,隱姓埋名。逃至西安。
;Y f’e&x#F;V!d P/[ L0

他沒料到這個結局。
:L |$`6i5Y l-x0

8年後,她出獄。找到當初深愛的那個男人。他身體已有些發福,住高級住宅小區,有個胖兒子及頭髮捲曲的摩登老婆。看到自己與他生活的天壤之別,仇恨像烈火般在她心中燃燒。
q z:S+L;M o0

但是她並未殺他。因爲另一個男人的出現。LU人的博客2h P y b*F1^)A’L z

他對她說:人不是爲了一口氣活著,是爲了更多口氣活著。LU人的博客1C ] | Z T$V

他還說:你活得比他好,就是對他最大的報復。LU人的博客 ~ K t a+S k |

咦,好男人原來是一所好學校,嘿!