05 2017 档案
摘要:前不久刚刚通过租房网站的开发学习了MVC,并随后学习了单元测试相关的基础,现在开始健身网站的开发,该项目将结合MVC与单元测试,在开发实践过程中,趁热打铁,巩固并运用之前的内容。 一 健身网站功能描述 关于健身网站的需求,主要从个人日常锻炼的需要出发,以达到辅助锻炼的目的。各应用商店中健身相关的AP
阅读全文
摘要:之前学习了单元测试的基础知识,以及桩对象和模拟对象的不同作用。但在实际应用中,往往不会直接手写桩对象或者模拟对象,而是使用隔离框架动态的创建这些对象,这可以让测试变得更简便、快捷,还可以更好地应对复杂的测试。这里学习的便是隔离框架的一种——Nsubstitute。 一 开始使用NSubstitute
阅读全文
摘要:前面使用了桩对象来解除被测代码对外部的依赖,以便于独立地测试代码的内部逻辑。但桩对象只能测试系统的返回值或者状态的改变,如果要测试对象之间的交互,则需要使用模拟对象。 1 三种测试类型 a) 三种类型的测试分别为: Value-based testing测试方法的返回值 State-based te
阅读全文
摘要:在单元测试时,难免会碰到一些外部依赖,外部依赖是指在系统中代码与其交互的对象,而且无法对其做人为控制,比如文件系统、线程、内存、时间、数据库结果集等,这时可以使用伪对象(fake)来替代外部依赖,桩对象(stub)便是其中之一 一 桩对象 a) 桩对象是对系统中现有依赖项的一个替代品,可人为控制。通
阅读全文
摘要:单元测试作为提高代码和软件质量的有效途径,其重要性和益处自不必多说,虽然我没有实践过TDD之类,但坚信单元测试的积极作用。作为一种开发方法,单元测试早在上世纪70年代就已经在Smalltalk语言被运用了,这么多年来,单元测试一次又一次证明了自身的价值,在各种开发方式此起彼伏的浪潮中,经受住了时间的
阅读全文
摘要:在上一篇<学习MVC之租房网站(十一)-定时任务和云存储>学习了Quartz的使用、发邮件,并将通过UEditor上传的图片保存到云存储。在项目的最后,再学习优化网站性能的一些技术:缓存和页面静态化。 使用缓存可以降低数据库的压力,而使用页面静态化则可以降低Web服务器的压力。 一 缓存 ASP.N
阅读全文
摘要:学习MVC之租房网站(十一)-定时任务和云存储 在上一篇<学习MVC之租房网站(十)-预约和跟单>完成了用户的预约看房以及后台操作员对预约看房的跟单操作。接下来会做定时发邮件的功能,并且用云存储进行上传图片的保存。 一 定时任务和邮件发送 a) 通过实现定时发邮件这个功能,在学习Quartz.Net
阅读全文
摘要:在上一篇<学习MVC之租房网站(九)-房源显示和搜索>完成了房源的显示、检索,然后是用户的预约看房,以及后台操作员对预约看房的跟单操作。 预约看房仅有将预约信息保存到对应表的操作,预约表有字段标识一条预约是否被受理,接下来后台操作员对未受理的预约请求进行跟单时,会对这个字段的状态做修改,为了防止高并
阅读全文
摘要:在上一篇<学习MVC之租房网站(八)- 前台注册和登录>完成了前台用户的注册、登录、重置密码等功能,然后要实现与业务相关的功能,包括房源的显示、检索等。 一 房源显示 房源显示内容较多,涉及到的有House、Attachment、HousePic,处理的信息包括房屋类型、朝向、楼层、装修状态、家具等
阅读全文
摘要:在上一篇<学习MVC之租房网站(七)-房源管理和配图上传>完成了在后台新增、编辑房源信息以及上传房源配图的功能。到此后台开发便告一段落了,开始实现前台的功能,也是从用户的登录、注册开始。 前台模板使用MUI,一套用于手机端的HTML5模板,但开发期间仍然使用Chrome、FireFox等PC浏览器。
阅读全文
摘要:在上一篇<学习MVC之租房网站(六)-用户登录和权限控制>完成了后台用户登录和权限控制功能的开发,接下来要完成的是房源的管理,用户在后台新增、编辑房源信息,供前台用户操作。 一 房源管理 1 房源列表的显示和删除比较常规,但事后也有一些需要注意的地方 a) 关于分页,因为很多地方都会用到,于是封装好
阅读全文
摘要:在享受了一场充溢着哲思与务实的盛宴后,两位作者还在最后给我们奉献了一个荡气回肠的结尾——“这是我编写的,我为自己的工作负责!”。反观自己,真是路漫漫啊……
阅读全文
摘要:没能满足可用性标准就像是除零错误,是重大bug
阅读全文
摘要:第七章 在项目开始之前 你是否曾经有过的你项目注定要失败的感觉,甚至是在项目启动之前?有时它也许会这样,除非你先建立某些基本准则。否则,也许你现在就可以建议结束它,并且给出资人省下一些钱。 1 需求之坑 a) 完美,不是在没有什么需要增加,而是在没有什么需要去掉时达到的。 b) 不要搜集需求——要挖
阅读全文
摘要:*续 第六章 当你编码时 2. 重构 a) 把软件开发比喻为修建建筑是不恰当的。因为修建建筑暗示了以下步骤: 建筑师绘制出蓝图;承包商挖掘地基,修建上层建筑、装修;房客入住,如有问题,就找维修人员。 但软件开发中,随着程序的演化,需要重新思考早先的决策,并重写部分代码,软件不是静态的事物。 软件开发
阅读全文
摘要:*续 第五章弯曲,或折断 4 它只是试图 a) 以一个电子表格应用举例,除了显示表格,还要能把数值显示为柱状图,还有总计功能。实现的大概过程为:首先创建一个模型(数据自身),以及用于对其操纵的常用操作;然后创建不同的视图,以不同方式显示数据,作为表格、柱状图、总计框,每个视图都有自己的控制器。 b)
阅读全文