杂想

另类MVC模式 - 优势及实现

继续大逆不道系列…… 在上一篇中,提出了一个另类的MVC模型,与经典MVC模型有一些不同,那么自然需要描述这样的另类模型有什么优势,又能在怎么样的场景中使用。 逻辑划分 正如上一篇所说,这种模式下,最大的优势莫过于逻辑的清晰划分。在该模式的作用下,每一个Action都只要处理真正与自己有关的逻辑及数据,而不需要关心一些“通用”的内容,因为这些通用内容也成了独立的Action。 例如,继续引用上一篇中的页面设计,根据经典的MVC模式,我们不得不在一个Action中准备所有数据: public ActionResult ViewPost(int id) { ViewBag.Friends = FriendsRepository.ByUser(CurrentUser); ViewBag.RecentVisitors = VisitorsRepository.

杂想

另类MVC模式 - 思考和雏形

这是一篇大逆不道的文章,其作用就是供大家娱乐以及批斗,因为此文所提及的思想,试图改变现有的著名模式MVC的结构,因此如果认为MVC优秀甚至完美的话,还请直接忽略此文,以免影响心情。 本文将提出一种类似MVC但又不完全是现有的经典MVC的模式,该模式仅基于HTTP的Web系统中对经典的MVC模式进行改造,其特点是将View前置,通过View的切分来切分逻辑,形成多次M-V-C交互,最终生成响应。 经典MVC模式 对于经典的MVC模式,虽然从表面上看完全是个“不需要解释”的问题,但是每个人的理解又不尽相同。在我的理解中,MVC模式可以用下面这张图来表达: 基于HTTP的Web系统里,在经典的MVC模式中,一个请求的处理过程大致分为: Controller处理原始请求,根据请求的数据与系统的配置,寻找到真正处理该请求的逻辑,称之为Action。 Action处理请求提交的数据,与Model进行交互,获取需要反馈的数据,并将这些数据按View的要求组装后交给View。 View根据Action递交的数据,

杂想

BUG平台应该是一个知识库

我很喜欢看各个产品的Bug追踪系统,比如jQuery的Bug Tracker,因为在Bug系统中总能发现一些非常细节的问题,补充自己的知识,慢慢地自己的代码的兼容性会有很大的提高。 但是,在各个Bug系统之中,包括现在公司使用的Trace系统,无一例外地存在一些让我不满意之处,其中最大的原因就是很多Bug系统仅仅是作为Bug的记录系统存在,而没有试图去让一个Bug成为一个知识的积累,让整个Bug系统变成一个丰富充实的知识库。这样的Bug系统,永远都只是提供一个简单的业务流程,不会变成干完人员、产品、甚至是整个团队的进步的天梯。 在我看来,一个Bug系统应该更加全面,管理Bug的生命周期的同时,也用于管理一个产品、团队的知识,更可以与周边系统合作,形成一个真正的集成式管理平台。 Bug的分类 现在的Bug系统,对Bug系统的分类通常有这么几种: 根据性质:Bug、Feature、Enhancement等。 根据危险程度:

用户体验

从热力图上发现细节

百度统计的热力图功能上线了,cnbeta上一如既往的一片骂声,大概在那上回复的都不是什么真正的技术人员吧。 虽然不是同一个项目,但是统计小组为了这功能所付出的努力,也一直看在眼里,虽然热力图功能并不完善,甚至有着相当多的问题(仔细用一用就能发现了,和啥内部消息没有关系),但依旧不失为第三方统计中的一个创举。 确实热力图能反映很多细节和问题,但是发现这些也不是容易的事。本篇主要讲一讲我从百度统计官方空间给出的这张热力图中发现的一些内容。 这个应该是铁血社区的首页,某种程度上来说也是个门户了。接着针对热力图中我比较感兴趣的几个点说一说。 上方导航条 上方导航条每一项都是由4个汉字组成,从点击量来看,多数点击是落在第3个汉字上。 这大概算是网民的一种“中庸之道”的体现吧,不喜欢点头里,也不喜欢点尾部,倾向于中间偏后。 点击如此,是不是可以认为视觉上,一般第一时间也会落在第3个汉字上呢?如果是的话,那么导航条的设计就非常重要了,应当让第3个汉字起到突出全句的核心作用,

杂想

墙与非墙

有自己的房子也已经好几个月了,虽说现在去装修实在没意义,但是看着这个并不豪华甚至有些破旧的屋子,总免不了想一些日后的装修。 当一个人站在客厅的中央,客厅的墙上有着很大的镜子,让这个原本并不大的厅看上去无比宽广。就这样站在没有任何家具的客厅里,突然产生了一个奇妙的想法: 为什么,房子里要有墙呢? 我们不断遵从着社会的标准思想,将一个完整的房子用墙这样的东西隔成一个个小小的空间,客厅、餐厅、梳洗室、卧室……但是如果没有这样的分隔呢? 我的房子,会是一个完整的空间,没有任何的阻隔。在这一片空间之中,各种各样的家具用最合理的方式摆放,这一片用于休息,那一片用于进餐,一片与一片之间有着看上去非常适合的距离感,但是无论在哪里,我可以看到一切。 在这样的空间中,可以毫无阻碍地穿行。在一个角落享受热水的冲淋;在一个角落用餐之后享用甜点和悠闲的下午茶;在窗边看着太阳渐渐落下的金黄;