经验中感受原则性
1. 前端显示与后端数据不能强偶合(不能认为数据一定有), 尤其是通过非自身程序制造数据的情况(如通过网络与另一程序通信, 通过数据库获得, 等通过不太可靠的手段获得数据).[@more@]
什么问题最重要 --- 与频率关系密切
频率,一个经常会遇到的词,对它的数学接触是在大学的概率课程上,均值的计算式。某种事的重要性是每次重要性*频率值决定, 简单的说频率与这件事的重要性是一样的重要,甚至更重要. 我认为起它确实很是在软件的问题上, 很多时候,软件大都是只在某些功能上, 而另外一些则很少,甚至基本没有用过. 在修补大量bug的时候, 往往没有多少时间而很急, 所以必须要确定先改哪些. 这时候, 很自然的就把很少用的功能排在后面改. 太紧的时候甚至不改. 这里就是优先频率高的部分.还一个更明显的就是做性能优化的时候, 在软件中有个2-8规则, 20%的代码处理
symbian怪异问题集
1. 某些第三版用makesis any.pkg 出现unknown line的错误提示.解决方法: 在最结尾加分号.理由: 怪异问题,无理由2. 某些perl的版本不行. 将提示don't know how to make '""'(ActivePerl-5.6.0.611.msi就是这样)3. void OnDataRequest(const TDesC8& aInfoId, TInt aDirection)和函数void OnDataRequest(const TDesC8 aInfoId, TInt aDirection)的怪异区别, 前者对*iInfoId = aInfoId;这样的语句可以正确赋值, 而后者不可以.4. TTime 的 Set 函数中 日期的月份从0开始,而不是1月就是01,而是00, 所以20080911表示2008年10月
用perl 正则表达式处理文本(二)
注意: &&代替反斜线3. 合并操作 join $glue, @pieces 把@pieces数组合并,元素间加$glue字符串 例8. my $x = join ":", 4, 6, 8, 10, 12; # $x is "4:6:8:10:12" 例9. my $y = join "foo", "bar"; # gives just "bar", since no fooglue is needed my @empty; # empty array my $empty = join "baz", @empty; # no items, so it's an empty string 例10. my @values = split /:/, $x; # @values is (4, 6, 8, 10
用perl 正则表达式处理文本(一)
注意: 符号&&表示反斜线1. s/pattern/new string/ 文本替换. 把$_用模式pattern匹配,匹配到的用new string替换.成功替换返回true, 否则false例.1 $_ = "green scaly dinosaur"; s/(&&w+) (&&w+)/$2, $1/; # Now it's "scaly, green dinosaur" s/^/huge, /; # Now it's "huge, scaly, green dinosaur" s/,.*een//; # Empty replacement: Now it's "huge dinosaur" s/green/red/; # Failed match: still "huge
perl 的正则表达式匹配(二)
续一5. 变量匹配 a. 内置分组变量, 能保存小括号内的匹配值.而且是持久存储.直到下次成功匹配才改写分组变量 例. $_ = "Hello there, neighbor"; if (/(&&S+) (&&S+), (&&S+)/) { print "words were $1 $2 $3"; #$1==Hello, $2==there, $3==neighbor } b. 内置自动变量匹配. $` 匹配部分前面的部分 $&匹配部分, 是模式/pattern/ 中的所有内容,不同于$1, $2 $' 匹配部分后面的部分 c. 重复量词表达式 (string){a, b}匹配string的a到b次所
perl 的正则表达式匹配(一)
注意: 由于此blog不能显示反斜线,故用&&代替反斜线.1. Matches with m//.匹配操作(m/string/) 的简写形式 /string/, 也可以用m/string/的等价式m(string), m, m{string}, m[string],m,string,,m!string!,m^string^,等. 如果匹配,返回true,否则为false2. Matches Option Modifiersa. 大小写不敏感选项 /i如果没有/i,是大小写敏感的.print "Would you like to play a game? ";chomp($_ = );if (/yes/i) { # case-insensitive matchprint "In that case, I recommend that you go bowling.n";}b. 匹配任何字
软件过程的基本想法
很多软件公司都是围绕产品来进行工作的,有些软件公司专门开发软件,就像软件外包公司;有的是为自己开发自己经营,像瑞星。对于他们需要关心的软件产品的过程大致像这样产品设计<<-------->>软件架构-------->>编码及白盒测试<<----->>黑盒测试--------- >>发布----------->>维护。产品设计的结果是明确及细化产品的功能要求。这是当产品呈现在客户前,客户看到的产品样子,和通过产品得到的新能力。这个步骤的成果就是产品说明书。软件架构是根据产品说明书来进行软件结构设计。对产品说明书
想象中的推理
很多时候出现了状况,有了问题,总会让很快让人陷入对原因的追寻!就像,我好久没有来这里发点东西,大多会寻找一个可以搪塞的理由做为对此的解释,这次,我感觉到了一个新的理由,这个理由让我不需要解释任何!我要说的这个理由,其实对于脑爱想或者说老爱想的人,应该都是有点用处的。我经常会很容易就陷入莫明的推理之中,即使任何的小事情,或者对我毫无意义的一个路边小现象,都可能成为启动推理的神经。对一个刚开始有这样行为的人也许并不会觉得有什么不好!然而,时间在继续,生命在继续,我们的习惯也是继续的,一旦成为习惯,它