存档

‘挨踢(IT)’ 分类的存档

《Agile Web Development with Rails》抄书笔记(14):购物车靠边

2013年6月27日 没有评论

《Agile Web Development with Rails》抄书笔记系列

  “《Agile Web Development with Rails》抄书笔记系列”目录

  上一节提到,客户希望我们的网店使用Ajax来实现。那么神马是Ajax呢?

  在过去(2005年以前),浏览器被我们当作一个聋哑人。当我们开发一个基于浏览器的应用时,我们会发送一个页面到浏览器,然后忽略这次会话。曾几何时,用户填写一些表单信息,然后点击链接,接着应用被进来的请求唤醒,开始处理请求。最后,应用返回一个完整页面给用户,冗长的处理过程还要再度开始。在此之前,我们的Depot应用也是如此。

  但是,事实上浏览器并非是一个聋哑人。浏览器也可以运行代码,几乎所有的浏览器都可以运行JavaScript。另外,经试验证明,JavaScript可以在幕后和服务器进行交互,更新页面。 Jesse James Garrett将 阅读全文…

《Agile Web Development with Rails》抄书笔记(13):清空购物车

2013年6月18日 没有评论

《Agile Web Development with Rails》抄书笔记系列

  “《Agile Web Development with Rails》抄书笔记系列”目录

  上一节,我们介绍了如何进行错误处理。另外,既然可以向购物车中添加商品,那么清空购物车也是一个必要的功能。我们这节来实现清空购物车的功能。

D呱呱

  关于这节内容的代码:

  1. 这节开始之前:https://github.com/diguage/depot/tree/v-10.2
  2. 这节完成之后:https://github.com/diguage/depot/tree/v-10.3

  要实现清空购物车的功能,那么我们必须 阅读全文…

“《Agile Web Development with Rails》抄书笔记系列”目录

2013年6月18日 没有评论

《Agile Web Development with Rails》抄书笔记(12):错误处理

2013年6月13日 没有评论

《Agile Web Development with Rails》抄书笔记系列

  “《Agile Web Development with Rails》抄书笔记系列”目录

  上一节,我们介绍了如何将购物车中相同的商品合并到一条记录中。还让大家寻找购物车实现的缺点。大家有木有什么发现啊?

  请大家注意,向购物车添加商品后,购物车页面的URL,格式是否如cart/nnn,其中,nnn是购物车的ID。如果我是一个居心叵测的捣蛋鬼,我填入一个非法的字符,会显示什么结果呢?D瓜哥试验的结果是, Active Record 会报一个 RecordNotFound 的异常,进一步会显示应用的调用信息、框架信息以及服务器相关信息。有了这些信息,那些别有用心的捣蛋鬼就可以实施有针对性的攻击,甚至破坏我们的应用等。所以,要针对这些错误做一些特殊处理。这就引出了我们这节的主要内容: 阅读全文…

《Agile Web Development with Rails》抄书笔记(11):优化购物车

2013年6月12日 没有评论

《Agile Web Development with Rails》抄书笔记系列

  “《Agile Web Development with Rails》抄书笔记系列”目录

  虽然上一节,我们创建了个一个初步在购物车,也通过了功能性验证。但是,这个购物车还有很多不完善的地方,比如,如果顾客添加了多个同一件商品,那么我们就需要重组这个购物车。这一节,我们将从这方面着手,来完善这个购物车。

D呱呱

  关于这节内容的代码:

  1. 这节开始之前:https://github.com/diguage/depot/tree/v-09.3
  2. 这节完成之后:https://github.com/diguage/depot/tree/v-10.1

  解决上面提到的这个问题,其实很简单只需要给 line_items表增加一个表示数量的列即可,我们将 阅读全文…

《Agile Web Development with Rails》抄书笔记(10):创建购物车

2013年5月24日 4 条评论

《Agile Web Development with Rails》抄书笔记系列

  “《Agile Web Development with Rails》抄书笔记系列”目录

  上一章节,我们讲解了商品的展示。这一节,我们将向大家介绍购物车的创建。同时,这一节也将向大家展示如何在Rails中创建Session?如何建立Model直接的关联关系?

D呱呱

  关于这节内容的代码: 阅读全文…

《Agile Web Development with Rails》抄书笔记(09):商品列表展示

2013年5月23日 没有评论

《Agile Web Development with Rails》抄书笔记系列

  “《Agile Web Development with Rails》抄书笔记系列”目录

  正如上一节所说,这节我们将美化Product的展示。这节的主要工作是,把产品按照一定的列表进行展示出来。

  上面的章节中,已经创建了Product相关的Controller,这个是方便商品的卖家管理商品使用的。现在,我们创建一个新的Controller,用于向买家展示商品。创建Controller很方便,可以直接rails命令的generate工具来完成。命令如下:

rails generate controller Store index

  请观察输出,这里会显示都创建了哪些文件。创建完成后,启动Rails服务器,访问 阅读全文…

《Agile Web Development with Rails》抄书笔记(08):单元测试

2013年5月3日 没有评论

《Agile Web Development with Rails》抄书笔记系列

  “《Agile Web Development with Rails》抄书笔记系列”目录

  随着JUnit的普及,”测试驱动开发” 程序开发方法的推广,同时伴随着敏捷开发、极限编程的流行,可以从”技术”上保证产品质量的单元测试,深刻影响着现在的任何软件开发。受此影响,Rails中就内部集成了测试功能,方便大家进行各种类型的测试。本节,我们就详细介绍一下Rails中集成的测试功能。

目录结构介绍

  打开%Depot%/test/目录,你会发现,这个目录下有五个目录:fixtures、functional、integration、performance、unit,还有一个文件test_helper.rb。另外,D瓜哥看Rails的文档中说明中,没有提到 阅读全文…

《Agile Web Development with Rails》抄书笔记(07):数据校验

2013年5月1日 3 条评论

《Agile Web Development with Rails》抄书笔记系列

  “《Agile Web Development with Rails》抄书笔记系列”目录

  上两节,我们简单创建了一个商品维护的应用。但是,在想应用中添加商品信息时,我们必须确保商品信息的正确性!那么,如何来实现呢?也许你已经想到了,数据校验!这节我们就给大家介绍一下数据校验。

  对于任何程序来说,数据校验都是必须的。比如,我们注册邮箱,邮箱名不能为空;在论坛注册账号,注册名不能为空,当然有些是邮箱等不能为空。同样,对于,我们这个学习程序”Depot购物网”,也有同样的要求。比如,产品名称不能为空;产品价格不能为0,否则只能”赔钱”!

  这样,问题就来了: 阅读全文…

《Agile Web Development with Rails》抄书笔记(06):美化商品列表

2013年4月24日 4 条评论

《Agile Web Development with Rails》抄书笔记系列

  “《Agile Web Development with Rails》抄书笔记系列”目录

  在看了产品相关的应用后,我们的客户有一个要求(客户似乎总有提不完的要求。对吧?):商品列表太丑了。提议我们进行美化,看能否将商品图片一起展示出来?

  这让我们有点进退维谷。作为开发人员,我们职业性地深吸一口气,带着不置可否的摇头,低声问道”你想要什么?”同时,我们也想想炫耀一下,Rails可以轻松应付这些变化。我们打开我们信赖的编辑器。

  在我们进行更深入的开发之前,最好使用一组测试来确保应用的可行性。我们可以使用 阅读全文…