
编程心得
iteye_18009
这个作者很懒,什么都没留下…
展开
-
程序员是需要纸和笔的,至少是我
前段时间代码写完了,上面又来话了:把代码中可能出现的异常都捕获一下。写吧!经过一段狂热的工作后,工程初步告捷,回头检查一下吧。不检查不要紧,一检查要抓狂:不少地方都给漏掉了,但它们之前都已经被我给发现了。 我觉得不是自己的记性不好,而是工作方式不对。 假如有5个地方要改,按现在的方式来做就是:一个挨一个地做,每完成一个都要在心里提醒自己还有若干个在等着。 这太难...2008-12-24 09:49:47 · 363 阅读 · 0 评论 -
想明白了,什么都是浮云
完成任务、解决问题的能力才是最重要的。技能只是手段,使用技能实现预定目标才是目的。所以人家更关注你能做出什么成果,而不是你会什么技能。这更加坚定了我之前的想法:必须扩大自己的业务领域,而不是仅仅沉溺于技术本身;要是这个技术还被认为是屠龙之术那就杯具了。 有人在踩...其实不是在否定技术,而是强调在学习技术时要时时关注它能给自己带来什么。...2011-07-27 17:36:36 · 162 阅读 · 0 评论 -
DOM事件传播模型
参考了如下链接,备忘一下:[url=http://jonsion.iteye.com/blog/1095853]DOM事件模型[/url]见下图:[img]http://www.w3.org/TR/2010/NOTE-xml-events2-20101216/images/event-flow.png?[/img]标准DOM2的事件传播模型分2个阶段:首先是捕获阶段(captu...原创 2011-07-31 22:15:41 · 197 阅读 · 0 评论 -
近期学习新得--重构/设计模式
之前对于设计模式的理解就是减少变化点,并以此判断模式是否适用得当。一个问题来了,假如只是转移而没有减少变化点,那还有必要使用该模式吗? 比如策略模式,如不使用它,单纯用if/else,变化点不会更多。策略无论增、减、改,两者都只需要修改一处。区别只有一个,使用了模式后一旦需求变化,改起来“貌似”更容易,毕竟人家把代码分成一小块一小块,且建立了良好的封装,可读性更强;如果涉及的策略众多...2010-11-11 19:45:36 · 108 阅读 · 0 评论 -
每日设计思想总结
参考《java与模式》,纯回忆,想起来多少写多少,每天都会添一点。 一、建造模式 1、适用范围: 创建的产品包含多个子部件,各个部分之间相互联系,具有一定的逻辑关系。 举例:发送邮件。需要输入收件人、邮件内容、附件等。 2、代码概述 本来用UML描述最清晰,暂时用文字。 产品:被创建的对象; ...2010-11-18 10:07:39 · 154 阅读 · 0 评论 -
最近感悟:TDD与设计
TDD到底是什么,它是怎么做到演进出一个优良的设计的?这些疑问驱使着自己不断地思考,并看了很多讨论,下面是自己的一点心得。 testCase反映的应该只是需求,不能把设计掺杂进来,设计不是它考虑的问题,它只提出你要做什么,至于怎么做,它不管。TDD是需求驱动,在读kent的《tdd》时这样的想法若隐若现,没想到还真有人也这么说,与偶暗合。 设计,由重构来负责。每次让testC...2010-12-21 00:41:04 · 177 阅读 · 0 评论 -
代码分层、分模块的好处
第一条,也是最根本的一条:抽象出了代码的整体框架、脉络,同时也隔离了具体的变化。没有分层,把逻辑都写在一个方法里面的代码就好比是一本没有目录的电子书,要找哪一章哪一节全得凭感觉,得点进去看,得结合上下文来分析。 良好的代码层次结构则相当于给这电子书创建了目录,而且按住Ctrl+鼠标就能点进去。它可以让维护人员迅速地掌握代码的整体架构,因为它把功能点都显式地列出来并很好地组织在一起了。...2011-09-28 16:09:55 · 1639 阅读 · 0 评论 -
Struts2包引用问题
今天自己重新建了工程,想测试点东西,为图方便,直接把现成的工程里面的jar包复制了进来,没想到竟然报了这个错误:[code="java"]java.lang.NullPointerException at com.opensymphony.xwork2.spring.SpringObjectFactory.getClassInstance(SpringObjectFactory.jav...2011-03-01 17:17:27 · 139 阅读 · 0 评论 -
涉及页面展示尽量少用js
用js操作DOM元素会引起页面频繁的reflow和repaint,加重页面负担。能用html和css达到效果的,就不要用js。2012-07-04 10:42:04 · 200 阅读 · 0 评论 -
编码就是在做一棵树
请看图: [img]http://dl.iteye.com/upload/picture/pic/86380/18426fa0-11a5-3919-9ee7-9da2e02f3878.jpg[/img]这是一个典型的树形结构,层次分明,结构严谨。想查找什么东西费的劲比较而言少得多。我看着看着就发觉编码跟这个很相似。 我们最忌讳的就是铁板一块,试图一个方法搞定所有功能的代码;说到本质上...2011-04-08 00:23:55 · 130 阅读 · 0 评论 -
学习感悟--编程语言
从前觉得学校的教材太浅,只讲语法,根本不讲一种语言能用来做什么。后来不论学习什么语言都要认真钻研一番,看它到底有哪些功能。时间长了,就发现,现在感兴趣的又回到了语言本身的语法、特性上。因为,每种语言能做的事都差不多,语言之间的差异最大的部分反而就是它的语法规则。要掌握一门语言,首要掌握的,也是这个。至于功能,翻翻资料,大同小异。比如,网络编程,c、java、ruby、python,这些功能...2012-08-12 02:10:48 · 144 阅读 · 0 评论 -
感觉重构成了笑话
从开始编程到现在,呆过的公司,呆过的每个项目组,几十上百行的函数都比比皆是。以此为美的还不在少数,认为这是“紧凑”;变量太多也不认为是问题,统统提到函数开头就行了,认为这样“更易读”;变量命名也很简短,一个字母的,两个字母的大行其道,也不认为是问题,可能认为这样并不影响阅读,相反还使得代码更简短。代码嵌套太深也不认为是问题,反对分拆函数,认为不是公用的代码就不用分拆,是否分拆与函数长...2013-12-13 11:05:08 · 239 阅读 · 0 评论 -
面向抽象编程通俗理解
程序要隔离变化:首先要抽象、剥离出固定的部分,即使剩余部分再怎么变化,它也是不变的;做到这一点就必须使程序依赖于抽象,而不依赖于实现;这里的“抽象”应该从广义上理解,它可以是interface也可以是抽象类,可以利用ioc,甚至一个方法都行,总之,这部分不能使用具体的实现。 举个生活中的例子:小明接到一个电话找他爸爸,但恰好他不在家,于是小明告诉对方晚点再打过来。过一会儿爸爸回来了,...原创 2011-07-18 21:37:58 · 641 阅读 · 0 评论 -
SQLServer数据文件监控
如果需要查看数据文件的信息,一般的做法是执行以下语句:[code="java"]EXEC ('DBCC showfilestats')[/code]当然,只有它还是不够的,但它所查出的数据是不可缺少的。现在的问题是,执行该语句需要的权限过高,用户很可能拒绝提供拥有这些权限的账号,那么它就无法执行了。怎么办?只有找出能替代它的语句。 在网上搜了不少地方,确实有不少人也遇到...2009-08-06 09:28:40 · 148 阅读 · 0 评论 -
网页宽、高大全
好记性不如贴上来...IE中:document.body.clientWidth ==> BODY对象宽度document.body.clientHeight ==> BODY对象高度document.documentElement.clientWidth ==> 可见区域宽度document.documentElement.clientHeight ==> 可见区域高度F...2010-03-16 11:12:48 · 134 阅读 · 0 评论 -
JavaScript代码执行顺序初识
两个要点:不要执行还未定义的函数;如果代码里含有文档对象,则要确保该代码被[color=orange]执行[/color]前,其包含的文档对象已经全部被解析完毕。第一点:[code="java"] try{ show(); }catch(e){ alert("no function defined!"); }function show()...原创 2009-01-17 17:23:13 · 129 阅读 · 0 评论 -
设计模式初步了解
看了不少帖子,应该说算是明白了一个道理:设计模式是被逼出来的,谁?需求,需求的不断变化让程序员不得不经常修改代码的结构,当这个结构比较完善且具有一般的代表性后,它就有了一个名称,##模式。 这里就有一个问题了,如果根本就不知道需求会如何变化,那该怎么用设计模式呢?没法儿用,或是生搬硬套地用。这是像我这样的新手碰到的最大的问题。“知己知彼百战不殆”,现在我就是不知彼,对方下一步要干什...2009-12-17 11:14:03 · 117 阅读 · 0 评论 -
背景图片的疑惑
很多朋友都喜欢写些比较大气的话题,职业呀、前途呀、人生呀,感觉博客好像就是应该写这些东西的,但我实在是写不出那些,只会谈点鸡毛蒜皮的技术,当然更多的是表达自己的困惑 :D 。 今天想说这前台界面的设计,很多时候都要用到背景图片,我多数时候也只是用用现成的而已,至于它们为什么有那样的格式,比如gif/png都搞不太清,两者都有人用,具体什么时候该用哪种不清楚;至于那些神奇的图片怎么制...2009-12-24 12:00:45 · 146 阅读 · 0 评论 -
Ext问题总结
刚接触Ext不久,问题碰到不少,幸好也解决了些,记在下面,以后还会添加。 1、打不开Ext的API。 部署Ext源文件,启动tomcat,输入对应的url进入---初学者最容易碰到的问题。 2、Grid的排序组件显示不正常,图标重叠: 新建一个css文件,写入三条语句: [code="java"].ext-ie .x-menu-item-icon {l...2009-06-18 12:57:37 · 108 阅读 · 0 评论 -
非常不错的JS日期转换工具
[code="java"]Date.prototype.format = function(format){ /* * eg:format="YYYY-MM-dd hh:mm:ss"; */ var o = { "M+" : this.getMonth()+1, //month "d+" : this.getDate(), //day "h+...原创 2009-06-29 18:33:41 · 269 阅读 · 0 评论 -
Ext诡异的问题
以下是碰到的解决不了或理解不了的问题,不嫌烦的话还请达人赐教。1、页面不能引入如下信息,否则Grid的显示会出现异常,比如,排序菜单左边的小图标都会消失,去掉后又正常了。[code="java"][/code]...2009-07-02 13:25:19 · 144 阅读 · 0 评论 -
关于Extjs的store的使用
文章是别人写的,url在下面:[url]http://www.cnblogs.com/fmxyw/archive/2009/06/16/1504403.html[/url]原创 2009-07-07 15:58:56 · 131 阅读 · 0 评论 -
可能又是一次升华
技术能力到了一定的深度,研究它的用途就比研究它的细节更重要。抬头看路,尝试掌控大局,然后才有可能做到取舍得当、收放自如。有人说一味钻研技术的程序员最后会变成孔乙己,“茴”字的四种写法他的确记得很清楚,但又有什么用呢? 自己的一个例子是jsp的taglib,自从认为它就是用来解决view层的显示方式问题后,就对它不怎么感冒了,和刚开始接触时简直是天壤之别。java语法需要理解,tag就...2010-08-19 11:13:54 · 123 阅读 · 0 评论 -
也谈谈什么叫面向对象
听说面试的时候有人被问到什么叫面向对象,根据自己的理解,我也来说说。先声明下,说得不对请拍砖,免得误人误己,不过稍微轻点哈。。 面向对象只是一个基础,作用是支持对变化的封装。应该追求的是那个作用的目的,而不是基础本身。对象编程具有三大特征,说面向对象编程,就是说要用符合那三大特征的方式来做到很好地封装变化。 单纯地讲面向对象是什么还真不好说,能说的就是那三点呗,不如问面向对象...原创 2010-01-05 15:37:39 · 144 阅读 · 0 评论 -
优化代码的目的分类
偶然的想法,还请拍砖。 1、易读。就这么简单,最原始的需求。有些时候实在找不出把一段代码分出去一部份的理由,这就是最合适的解释。 2、复用。把可能在多处使用的代码写在一个公用的方法里,好处有2个:避免大段的重复;代码变化时只需修改1处。 3、解耦。划清功能模块,各自独立。反面例子:一个类包含了2个功能毫无联系的方法m1,m2,分属于两个功能模块A、B,由于A模块的变更使其修改...2010-09-10 15:14:20 · 1134 阅读 · 0 评论 -
Spring问题记录
带着问题学习是最高效的学习方法;当然,不同阶段能够提出问题也不一样,但一定不能忘记提。否则无论看多久都会混混沌沌,直到某一天清醒了,回头一想,之所以变清醒还是因为突然向自己提了一个或几个恰到好处的问题。 一、眼下着手研究Spring的AOP,问题列表如下。基本的配置流程已经掌握了,但还有一些功能不知道如何实现。 1、切面类(命名为Aspect)如何、在何处获取被代理类(...2011-06-06 21:53:02 · 99 阅读 · 0 评论 -
编程的核心在于抽象
抽象是软件体系结构的灵魂。一个“优秀”的软件体系,必然是抽象层次恰到好处的结构。软件需要抽象,就如同书籍需要目录和章节一样;又好似茂盛的树木需要树干和枝丫。任何具备面向抽象编程意味的动作,都使软件体系朝质变迈出实实在在的一步,虽然不见得一定是变好。 面向过程语言与面向对象语言最大的区别就是,对抽象的支持不一样。两者都可以抽象,只是后者容易多了,它专为抽象而生。 但最重要...2012-12-26 01:49:51 · 237 阅读 · 0 评论