摘要:
前天看了南都的这篇文章http://www.infzm.com/content/46119一解困扰我心中很久的疑惑。如文章所讲,总认为好书就是经典的、口碑相传的,哪怕读的云里雾里还是得装逼的啃下去。其实好书的定义很简单:在你读过之后能引起你的思考,思考后有助于你的生活和工作,有助于个人的提升,这就是好书。经典书也许是好书的必要条件,但不见的是充分条件。更不可能有一本书能使你读过之后能立马醍醐灌顶,灵魂升华,然后道路一片平坦,这就是我为什么一直恶心成功学书籍的原因。 按照这样的定义,自己去年读过的好书应该是 《重构》,今年读过的好书应该是《代码大全》和《暗时间》。代码大全里面有一段话... 阅读全文
摘要:
抽象,在百度百科里面的定义:从众多的事物中抽取出共同的、本质性的特征,而舍弃其非本质的特征。从这个定义上看,抽象是一个过程,因此抽象似乎是一个动词。但是经常能听到这样的定义就是,XX太抽象了,设计时要依赖于抽象。抽象又成了形容词和名称。噢,这个似乎扯远了。桌子有很多种,圆桌,四脚桌子,思酌,木桌,但是统一叫做桌子,这其实就是一个抽象的过程。抽象的目的:1.通过找出共性的东西,帮助人类更好的认知客观事物;2.实现区分,通过抽象将桌子和椅子,筷子分离开。 那么程序设计中的抽象又是什么,目的又是为何?在设计过程中,我们经常提到的就是抽象出一个类,接口,要依赖于抽象。事先撇开这个先谈软件设... 阅读全文
摘要:
核心提示:网络营销成功与否的最终衡量标准就是实现成交,不管是网络直接成交还是线下的成交。对于中小企业大部分网络营销模式来说,成交的关键就在于网站(网店)的转化率,这主要由两个关键因素决定:一是网站的客户体验;二就是流量的质量度。 网络营销成功与否的最终衡量标准就是实现成交,不管是网络直接成交还是线下的成交。对于中小企业大部分网络营销模式来说,成交的关键就在于网站(网店)的转化率,这主要由两个关键因素决定:一是网站的客户体验;二就是流量的质量度。流量的质量度主要取决于网络传播推广时的策略是否精准,是否吸引的是目标受众,传播信息设计是否符合受众心理预期,传播载体是否目标受众圈等。而网站的客... 阅读全文
摘要:
先从所有类型的基类object说起。object类有两个equal方法,一个是静态的方法,一个是实例方法。那么这两个方法有什么联系吗?用Reflector查看便知。View Code 1 public static bool Equals(object objA, object objB)2 {3 return ((objA == objB) || (((objA != null) && (objB != null)) && objA.Equals(objB)));4 }5 6 从上面的代码可以看出,静态的方法是(两个对象引用相等)||(都不为空的情况下,调用实 阅读全文
摘要:
计算机科学是研究将现实系统“抽象”为计算机可以理解和运算的系统.这时最原始的解释。但是现实系统中那些东西需要抽象:信息+处理信息的操作+业务。 抽象的过程:共性的抽象思维将信息归类,划分。形成不同的信息类型,而这个信息类行其实就是:包含着各个信息项的集合。这些信息项之间的组织方式和对这些数据可施加的操作=》数据结构。 前面两者抽象后成数据结构(数据结构:现实世界的信息,数据抽象后、建模后的数据之间的组织方式),而最后一项的业务其实也就是操作这些信息的前提条件和操作这些信息之后的所造成的影响。在通常的数据库驱动软件项目里面,其实我们选择的就是线性组织数据的方式,而数据结构决定着算法... 阅读全文
摘要:
Understanding .net CLR garbage collection引言内存管理是计算机科学中一个相当复杂而有趣的领域。在计算机诞生的这几十年间,内存的管理的技术不断进步,使系统能够更加有效地利用内存这一计算机必不可少的资源。一般而言,内存管理可以分为三类:硬件管理(如TLB),操作系统管理(如Buddy System,Paging,Segmentation),应用程序管理(如C++,Java,.net的内存管理机制)。鉴于篇幅和笔者水平的限制,本文只涉及了内存管理的很小一部分,即.net中的内存管理方法。.net是一个当代的应用程序框架,采用了内存自动管理技术,就是通常所说的内 阅读全文
摘要:
作者 Bruce Laidlaw and Michael Poulin 译者 侯伯薇 软件产业目前的状态很混乱,开发成本越来越高,质量却越来越差。云计算所给出的承诺和具体实现还有相当大的差距: 最近,在Batler小组的讨论会中举行了一场题为“业务流程管理和面向服务的架构”的座谈,得出的结论认为,只有公有云才是真正能够节省成本的方法,但是它还不够透明,中型和大型企业暂时还无法考虑把它作为节省IT成本的解决方案。当前在行业中有很多这样的宣传性的说法,但是它们能够解决真正的问题吗? 真正的问题又是什么呢? 对于意识到软件开发生产力缺乏的开发者,以及当前各家公司雇佣的大量技能较差的开发者,业界已.. 阅读全文
摘要:
前言 新技术层出不穷。过去十年时间里,我们经历了许多激动人心的新技术,包括那些新的框架、语言、平台、编程模型等等。这些新技术极大地改善了开发人员的工作环境,缩短了产品和项目的面世时间。然而作为在软件行业第一线工作多年的从业者,我们却不得不面对一个现实,那就是当初采用新技术的乐趣随着项目周期的增长而迅速减少。无论当初的选择多么光鲜,半年、一年之后,只要这个项目依然活跃,业务在扩张 —— 越来越多的功能需要加入,一些公共的问题就会逐渐显露出来。构建过慢,完成新功能让你痛不欲生,团队成员无法很快融入,文档无法及时更新等等。 在长期运转的项目中,架构的腐化是怎么产生的?为什么常见的面向对象技术无... 阅读全文
摘要:
在asp.net webform有三种跳转方式。Response.Redirect输出到客户端实现跳转。Server.Transfer是直接在服务器端实现跳转到指定的页面去执行。Server.Execute是跳转到指定的页面执行,然后再跳转回原来的页面继续执行。假定是由A跳转到B页面。 注意:1.Server.Transfer和Server.Execute对于页面的跳转是在服务器端实现的,A页面和B页面的执行是在同一个线程内执行的。在使用Server.Transfer和Server.Execute时,如果在A页面和B页面通过cookie传递值。会遇到两个很有趣的现象。1.下面的代码,B页面能. 阅读全文
摘要:
在Mvc2.0中,新增加了一个特性就是Areas。在没有有使用Areas的情况下,我们的Mvc项目组织是下面这样的。当项目庞大的时候,Controllers,Model,View文件下下面势必会有很多文件。项目将难以管理。 通过使用Areas使我们可以很好的组织项目,通过单机添加Areas(区域),使用Areas来组织项目。可以得到新的项目组织结构。 First,Second对应着我们项目的子模块(First,Second命名不是很好)。在这两个文件夹下,有各自独立的Controllers,Models,Views。此外还多了个文件AreaRegistration为后缀的.cs文件. 这个文. 阅读全文