随笔分类 - 9-k 软件工程
摘要:云计算时代——本质、技术、创新、战略(一线云计算布道师历时6年力作,透析云计算本质、简述云计算关键技术、分析主要云服务架构、解剖云计算巨头策略,既有广度又有深度,云计算2.0时代必备)刘黎明 王昭顺 著 ISBN 978-7-121-23187-22014年6月出版定价:59.00元 320页16开...
阅读全文
摘要:Netty权威指南(异步非阻塞通信领域的经典之作,国内首本深入剖析Netty的著作,全面系统讲解原理、实战和源码,带你完美进阶Netty工程师。)李林锋 著 ISBN 978-7-121-23343-22014年6月出版定价:79.00元 524页16开编辑推荐- 资深一线专家诚意之作,总结多年实践...
阅读全文
摘要:传统MVC模式对于大部分面向最终用户的应用来说,它们都需要具有一个可视化的UI界面与用户进行交互,我们将这个UI称为视图(View)。在早期,我们倾向于将所有与UI相关的操作糅合在一起,这些操作包括UI界面的呈现、用于交互操作的捕捉与响应、业务流程的执行以及对数据的存取,我们将这种设计模式称为自治视图(Autonomous View,AV)。自治视图说到自治视图,很多人会感到陌生,但是我们(尤其是.NET开发人员)可能经常在采用这种模式来设计我们的应用。Windows Forms和ASP.NET Web Forms虽然分别属于GUI和Web开发框架,但是它们都采用了事件驱动的开发方式,所有与U
阅读全文
摘要:MVC的变体通过采用MVC模式,我们可以将可视化UI元素的呈现、UI处理逻辑和业务逻辑分别定义在View、Controller和Model中,但是对于三者之间的交互,MVC并没有进行严格的限制。最为典型的就是允许View和Model绕开Controller进行直接交互,View可以通过调用Model获取需要呈现给用户的数据,Model也可以直接通知View让其感知到状态的变化。当我们将MVC应用于具体的项目开发中,不论是基于GUI的桌面应用还是基于Web UI的Web应用,如果不对Model、View和Controller之间的交互进行更为严格的限制,我们编写的程序可能比自治视图更加难以维护。
阅读全文
摘要:IIS 7.0与ASP.NETIIS 7.0在请求的监听和分发机制上又进行了革新性的改进,主要体现在对于Windows进程激活服务(Windows Process Activation Service,WAS)的引入,将原来(IIS 6.0)W3SVC承载的部分功能分流给了WAS。通过上面的介绍,我们知道对于IIS 6.0来说W3SVC主要承载着3大功能。HTTP请求接收:接收HTTP.SYS监听到的HTTP请求。配置管理:从元数据库(Metabase)中加载配置信息对相关组件进行配置。进程管理:创建、回收、监控工作进程。IIS 7.0将后两组功能实现到了WAS中,接收HTTP请求的任务依然落
阅读全文
摘要:Controller的激活与URL路由ASP.NET路由系统是HTTP请求抵达服务端的第一道屏障,它根据注册的路由规则对拦截的请求进行匹配并解析包含目标Controller和Action名称的路由信息。而当前ControllerBuilder具有用于激活Controller对象的ControllerFactory,现在看看两者是如何结合起来的。通过第2章“URL路由”的介绍我们知道,ASP.NET路由系统的核心是一个叫做UrlRoutingModule的HttpModule,路由的实现是它通过注册代表HttpApplication的PostResolveRequestCache事件对HttpH
阅读全文
摘要:使用Ext.grid.Panel显示远程数据对于Ext.grid.Panel而言,它只是负责显示Store数组中心的数据,至于Store保存的数据到底是浏览器本地数据,还是远程服务器的数据,Ext.grid.Panel并不关心。因此,使用Ext.grid.Panel显示远程数据也非常简单,只要在配置Ext.data.Store时通过proxy选项指定加载远程服务器数据即可。如下示例示范了使用Ext.data.Store来加载远程服务器数据,使用Ext.grid.Panel显示Store所加载的远程数据。程序清单:codes\06\6.8\Ext.grid\Ext.grid.Panel_remo
阅读全文
摘要:使用Ext.grid.Panel生成表格Ext.grid.Panel继承了Ext.panel.Panel,因此它的很多地方都类似于Ext.panel.Panel,但定义Ext.grid.Panel时必须指定如下两个选项。Ø store:该选项指定的Store对象负责为该表格提供数据。Ø columns:指定Ext.grid.column.Column数组或一个包含items属性(该属性值为Ext.grid.column.Column数组)的对象,该Ext.grid.column.Column数组指定Ext.grid.Panel生成的表格包含的所有列。如下代码示范了如何使用E
阅读全文
摘要:使用Ext.grid.column.Column定义列正如从前面的示例中看到的,创建Ext.grid.Panel时,必须指定columns选项,该选项要么是Ext.grid.column.Column数组,要么是JavaScript对象,该对象中必须包含一个items属性,该属性值依然是Ext.grid.column.Column数组——总之,定义Ext.grid.Panel时,必须传入Ext.grid.column.Column数组来定义各数据列。使用Ext.grid.column.Column定义列定义可以指定如下常用选项。Ø text:指定该列的列名。Ø sortab
阅读全文
摘要:利器何以为先铁比铜坚硬,这是常识。在春秋战国时期,燕国的铁剑,锋刃部分已经达到了今天高碳钢的硬度。这已经非常可观了。中原地区,则以棠溪剑为九大名剑之首。棠溪地处西平,春秋属楚,战国归韩。铸剑名师曾有欧冶子、干将、莫邪等,工匠曾达七千之众。《史记》中说:“天下之剑韩为众”,说的就是棠溪。所以燕、楚等地,都以利剑著称。但在另一个方面,从兵马俑坑中出土的四万件兵器,几乎全由青铜铸成。然而,大家都知道结果:秦国用武力统一了中国。是铁剑砍不过铜剑?当然不是。从史料和实物中,我们都可以发现:秦军的青铜剑比其他国家的更长。经兵器专家分析,产生这种需求的原因,可能与一种实战技法有关系:以相同的力量,刺比砍更致
阅读全文
摘要:语言只是工具我曾经是非常执著的开发人员。我有连续几天几夜 Coding 的经历,也曾经为了一个技术问题耗上三四个星期而导致项目一再延迟,还曾经为了一个实现细节与项目相关的人员逐一争论。我也曾经像大多数的开发人员一样热衷于争论语言之间孰优孰劣。我在“Delphi大富翁论坛”上写过一个简介,其中个人特长是“擅长 TurboPascal、Delphi、TASM 系列语言,痛恨 C/C++。(凡见有价值之 C 代码,先读通,后写成 Pascal/Delphi,最后骂一句:C 写得真笨!)”。我至今保留这段文字,因为那的确是真实的经历。如今我已经不再专注于语言,正如我在第一章中写到的一样:成天讨论这门语
阅读全文
摘要:周爱民著ISBN 978-7-121-17790-32012 年8 月出版定价:49.00 元16开228页内 容 简 介本书提出了审视软件工程的全新视角和软件工程的体系模型(EHM,软件工程层状模型)。本书用非工程的方式重新解析软件工程现象,全面、细致而深刻地分析了工程中各个环节的由来、价值及其内在关系。综合论述开发、工程二者的现状,例如对程序员“工匠思想”的起源进行广征博引的分析,也对工程中“敏捷过程”的经验主义本质进行深至髓质的论证。全书语言轻快,可读性强,薄且有味。本书是在“思想方法学”这一软件工程尚未涉足过的领域中的实习之作。作者亲历国内软件工程的英雄时代、泡沫时代,从失败中醒觉而创
阅读全文
摘要:我让你的脚玷污我的嘴唇,让你的肖像玷污我的眼睛,让你的每一部分玷污我的心,等候着你的答复。你的最忠实的……——威廉•莎士比亚,《空爱一场》(Love’s Labor’s Lost)去年我被邀请为 Andy Oram和 Greg Wilson 的 Beautiful Code一书写一篇文章,这是一本以计算机程序的表达之美为主题的选集。我负责的章节将介绍 JavaScript,通过那一部分来证明 JavaScript不虚其名,它的确是抽象、强大且有用的。然而,我想避开不谈浏览器和其他适合使用 JavaScript的地方。我想要强调其更有分量的内容,以显示它是值得尊敬的语言。我立即想到 Vaughn
阅读全文
摘要:JavaScript语言精粹(修订版)(美)克罗克福德(Crockford,D.)著赵泽欣,鄢学鹍译ISBN978-7-121-17740-82012 年8 月出版定价:49.00 元16开172页宣传语深入挖掘JavaScript精华内 容 简 介JavaScript 曾是“世界上最被误解的语言”,因为它担负太多的特性,包括糟糕的交互和失败的设计,但随着Ajax 的到来,JavaScript“从最受误解的编程语言演变为最流行的语言”,这除了幸运之外,也证明了它其实是一门优秀的语言。Douglas Crockford 在本书中剥开了JavaScript沾污的外衣,抽离出一个具有更好可靠性、可读
阅读全文
摘要:这里,\\.\g就是U盘的设备名,当配置文件中添加写入U盘时(目标文件为U盘设备名),我们可以插入U盘到真实机器去运行。接下来,需要编写自己的boot代码,下面是简短的示例片断:; set BOOT_SEG environmentmov ax, csmov ds, axmov ss, axmov es, axmov sp, BOOT_SEG ; 设 stack 底为 BOOT_SEGcall clear_screenmov si, hellocall print_messagemov si, 20 ; setup 模块在第20 号扇区里mov di, SETUP_SEG - 2call l..
阅读全文
摘要:在实际工作中接触到一些与x86/x64平台底层的问题时,往往是遇到不懂的就翻翻Intel或AMD提供的手册,这样掌握并不牢固,下次重遇问题时还要翻手册。现在让我们一起来系统地学习x86/x64体系知识,然后需要温故而知新。实验的重要性在学习过程中,我们以探索为目的,以实验为依托。要透彻地对一个知识点进行理解,显然经过测试实验的论证是最好的方法,也只有经过全方位的测试才是最为真实可靠的。Intel和AMD官方手册某些描述上存在着隐晦难懂的地方,甚至可能还会出现错误。因此测试实验起的作用是:验证真伪和去除疑惑。下图是在Intel64软件开发者手册里截取到的一段有误的描述:截图中描述的是INT指令在
阅读全文
摘要:探索式测试实践之路(国际大师JamesBach题词推荐之探索式测试唯一本土著作)史亮,高翔著ISBN 978-7-121-17713-22012年8月出版定价:65.00元16开316页宣传语:国际大师JamesBach题词推荐之探索式测试唯一本土著作内 容 简 介探索式测试是一种重要的软件测试思想。随着测试行业的发展,其高效性、机动性和实用性受到了广泛的关注、讨论和实证,但是仍有许多测试人员对探索式测试充满疑问,甚至误解。本书的目标就是回答疑问,澄清误解,分享作者们在探索式测试领域的实战经验和反思总结,并介绍业界专家的相关见解。 本书内容可分成4个部分。第1章介绍了探索式测试的定义和理论基础
阅读全文
摘要:Jolt大奖精选丛书代码质量(权威精选植根于开发实践的最佳读物)(希)斯宾耐立思(Spinellis,D.)著左飞,吴跃,李洁译ISBN 978-7-121-17421-6 2012年7月出版定价:89.00元16开512页宣传语:一项技术产品只有在获得了Jolt奖之后才能真正成为行业的主流,一本技术图书只有在获得了Jolt奖之后才能真正奠定经典的地位。内 容 简 介Jolt大奖素有“软件业之奥斯卡”的美称,本丛书精选自Jolt历届获奖图书,以植根于开发实践中的独到工程思想与杰出方法论为主要甄选方向。Diomidis Spinellis首部著作《代码阅读》(Code Reading)旨在阐明程
阅读全文
摘要:程序员职业规划哲理思想本文选自《我也能做CTO之程序员职业规划 》一书 程序员的成长,只有在学习过程中首先要读到好书,然后交到好朋友,找到好老师,在这三个外围的前提条件下,找到合适的工作环境,结合自己的特点,再在一些重要的环节上遇到适合的人和合适的项目,并经过正确的职业规划,才能成功。 我非常赞同保尔的这段名言:“人最宝贵的是生命,生命对于人只有一次。一个人的一生应该这样度过:当他回首往事的时候,不因虚度年华而悔恨,也不因碌碌无为而羞愧。”所以,你应当选择一个你真心热爱的事业,不断地挑战自我,完善自我,让自己的一生过得精彩和充实。 让我们——好好规划自己的路,不要跟着感觉走! 面试碰壁之...
阅读全文
摘要:程序员的职业生涯像一盘棋 行棋者由谁?本文选自《我也能做CTO之程序员职业规划 》一书 职业生涯——尤其是程序员的职业生涯——是理性的,就像一盘棋。任何一种棋,棋子、棋盘和行棋规则都是固定不变的;然而,每一局棋的局面演进和最终结果都不尽相同。这其中的差别,就在于行棋的套路不同。 只了解棋子、棋盘和行棋规则,就期冀依靠聪明才智成为职业棋手是远远不够的。职业棋手和业余棋手的区别就在于,职业棋手除了聪明才智之外,还熟记了大量的棋谱。 很多程序员朋友都掌握了计算机程序开发领域中各方各面的技术和技巧,但对于职业生涯这一整盘棋来说,充其量只不过是一些棋子。要想下好这一盘棋,让自己成为职业人士,并不断进步.
阅读全文