`
gdpglc
  • 浏览: 87808 次
  • 性别: Icon_minigender_1
  • 来自: 长春
社区版块
存档分类
最新评论
文章列表
有时一个方案在掉到它的细节当中后发现行不通,然后被迫找其它的方法,这时却能发现非常高明的方案。那么为什么不在找方案时就尽量多选几个方案来比较呢?
在Kicknote项目中多次用到了判定树来分析复杂的逻缉判断,但在把判定树转化为代码时,我发现代码并不需要和判定树的判断过程保持一致,具体说就是当判定树的叶子结点的处理方法相同时,则可以在代码中归并到一个地方处理,而在判定树中是分别考虑的。 这使我想到,在问题的不同层次,问题的表现形式是可以不同的。在画出判定树的时候并不会考虑实现,目的就是把所有的情况搞情楚,而在实现时判定逻辑已经清楚了,就可以以最简的形式加以实现。 由此我想到,需求和设计的关系、设计和实现的关系也是类似的。它们之间都是一种转换关系。即然是转换关系,转换本身就是一种学问,不同的转换方法导致了不同的实现。转换的结果可以和原来的 ...
1.验证和补充需求。注意:补充的需求,需要重新确认。为什么会在设计时还要搞需求工作呢?原因是,需求分析人员是从用户的角度来考虑问题,给出的是用户直接想要的需求部分,而对于和用户关系不是很紧密的部分,可能并没有给出完整的方案;用户对软件的主要使用过程比较简单,但由此而引起的相关处理过程比较复杂,并且起到的是辅助作用,这时需求分析人员会考虑到什么程度,用户对它们的关心程度,都可能对最终的需求产生影响,而有些复杂的问题在没有形式化工具的帮助下也不易考虑清楚,返而在设计时一并考虑会更好,还有就是需求分析人员会有遗漏的需求和有错误的需求。 2. 对软件进行全局考虑,以软件设计相关方法论为指导(MVC、耦 ...
如果在web开发时的某个页,使用的是后台校验则有这样一个需求,当用户提交的数据不能通过校验时,则数据不能被保存到数据库,此时应该回显,并在页面指出错误的位置。 对于上述需求,如果没有使用MVC则通常会把从数据库中读取数据的逻缉和HTML中的显示逻缉混合到一起,这样,在页面做错误数据的回显,就会比较乱。而对于使用了MVC的情况则会比较好处理,因为页面中要显示什么数据,可以在Controller中设定,而从view的角度可以假定不知道所显示的数据的来源。 从上例可以看出,MVC增强了界而逻缉的灵活性。
   以前就在哲学里学过事物是相关联系的理论。一直以为哲学无用,这两天发生了一些事,让我突然发现,我出现的问题,早就写在哲学里了。那就是事物间可能具有某种联系,这种联系可以是非常直接的。以前我经常遇到这样的情况,总觉得很神奇,但一直想不通,现在想通了。比如:你在出门的时候,如果把钥匙落家里了,你就回不了家了。原理就在于拿钥匙和回家是相互联系着的。以前的理解是生活中的一些小事决定了大事,应该注意某些小事。现在想,不过是事物间存在着某种联系,把握这种联系,是非常重要的。    如果能分析明白一件事情以及和它相联系的事情(也许有联系的事情可能在将来发生),利用这种联系就能使你作起事来得心应手。
  在做Web程序时常会需要Web页上的在线文本编缉器。在简单的情况下用HTML的<TEXTAREA>就可以,但是如果需要功能比较全的在线文本编缉器,那就需要专门的程序来支持了。FCKeditor是一个开源的功能强大的在线文本编缉器。现在csdn的博客和百度的博客用的都是这个,可见它的功能非同一般。   FCKeditor的信息可以在http://www.fckeditor.net得到。在http://sourceforge.net/project/showfiles.php?group_id=75348这下载两样东西:FCKeditor 2.4.3和FCKeditor.JAVA ...
怎样才算是一个合格的程序员呢,我想要从三个方面来研究这个问题。 知识:写在书本上的都是知识,无论它怎么来的,在书上的就都是知识。程序员需要掌握大量的知识才行。作为java程序员,你需要学习: java 的基础知识 ...
这条代码可以把cpu利用率达到100% :for(;true;); 通过cpu的主频,和程序的代码行数,和一行代码对应的机器指令数可以估算出,1ms可执行的代码行数。(机器一秒能执行多少指令可能不仅和cpu主频有关。) 对于现在的计算机,500ms并不短,这只是个结论,在实际中要根据用户需求而定并要留下余地。 在hp-ux+oracle+hibernate下,一次1M数据量左右的操作,如果同时有三到五个的调用,操作时间有时可以达到19秒左右,好的时候在0.03秒左右。同样的条件下,如果一次操作的数据量更大,同时调用的次数更多,则可能使DB操作长时间不响影,导致软件瘫痪。 DB取一条数据和 ...
需求、需求分析和设计的概念,对我来说很抽象。在我做了几次相关的工作已后,它们在我的头脑中才逐渐清晰起来。我曾试图从别人的书中,了解它们的真帝,可是大家众说分云,和实际工作都挨不上。通常书里会说:“需求 ...
有些关注点 有些关注点,随然离复杂的合心逻缉比较远,但它可能会迁扯到,核心中的重要概念,有时这样的概念,恰好是你从核心的角度,不易发现的。 这时离核心较远的关注点,就成了发现这些重要概念的线索了。 就象宝物在树叶下藏了起来,但却有一条线,连接到它的上面。 这样的概念是很有用的,因为围绕它的逻辑可能很多。这此逻缉可能是,本来就有,但你在关注核心时没有想到,或是潜在的。 按重要的概念来组织设计,也使得设计清楚,减少设计中没有根据的东西,和随意的东西。 全面考虑关注点 让每一个关注点,和核心代码相关的内容,都是最合理的。这样,核心代码才是比较合理的。这样可以挖掘出最多的在设计中需要体现的概念,而 ...
当对设计不理想时 不要做界面时就只想着用界面解决问题。 只在局部想问题是一个毛病。 应该这样,当遇到问题,要从局部抽出思维,从大处着眼解决问题。如果设计不理想,而当前又想不到其它的解决方法,可能就是陷到局部了,从而看不到整体上的解决方案。这时,一定要清醒,把视角放到全局上,在全局上寻找解决方法,而不是设计界面,就只想着加一个CheckBox让用户选。道先,可以基于不理想的设计,想想不得不这样做的根源,然后从这个根源出发,看看能不能通过更好的途径,将不好的设计清除掉。 设计要善于跳出 千万不要陷入一个不合理的设计方案。当你陷入时,你可能会感觉到不对,于是就试图对不合理的方案进入修修补补来 ...
1.类中的私有变量前加上‘_’可以避免方法的参数与属性相同时可能引起的问题。 func(a) { _a=a; } 以下代码错误: func(a) { a=a; } 必须这样写: func(a) { this.a=a; } 2.以下的代码用哪个? func() { if(ret==Constants.NAME) { return Constants.NAME; } } func() { if(ret==Constants.NAME) { return ret; } } 前者返回值明确,但是前一行代码即可说明ret的值是什么,因此意义不大。 ...
Global site tag (gtag.js) - Google Analytics