php大力力:技术排错过程中,关键点总结和心情历程(2015-10-19)

9:40 2015/10/19
技术排错过程中,关键点总结和心情历程

有一个按照标题进行内容分类的函数似乎不起作用,这叫人沮丧。

在页面显示图片地址时候,在源系统和目标系统中,包含图片地址的页面代码格式,需要转换。这个函数今天又改了改。

然后,遇见不止一个新的问题。

首先排查出,因为之前写了一个同义词替换功能,导致,图片的html代码,失效。原因是,同义词替换配置文件中,有“/”代码的替换,这导致一个指向在线图片的网站无效:所有字母粘接在一起。

然后,在生成insert sql语句后,入库在线测试过程中,发现,如果在线图片是中文汉字,我们还需要做一个代码转换工作:

如下:
_url:=AnsiToUtf8(_url);
_url:=HTTPEncode(_url);
_url:=StringReplace(_url,'%2F','/',[rfReplaceAll]);
_url:=StringReplace(_url,'%3A',':',[rfReplaceAll]);
Result:=_url;

看到这几行代码,明眼人自然知道我所使用的编程语言。

这代码是ok了,在测试这个代码的时候,专门写了一个小程序,试一下。
找了一个图片网址,如下:
http://www.xxxxxx.cn/wp-content/uploads/2014/11/视频网站.jpg
上面网址,又给技术人员,暴露了这个网站的应用类型,没关系,继续说,

这个图片名字是“视频网站.jpg”
转换后,正确的预期是“%E8%A7%86%E9%A2%91%E7%BD%91%E7%AB%99.jpg”
我却总是得到“%E8%A7%86%E9%A2%91%E7%AB%99”这样一个短了一截的结果。找来找去,

闹明白,我做的测试环境,其实执行的是
“__myChineseInPic_To_Url('视频站.jpg');”

就是说,少写了一个字,得到的结果和预期对不上。这个过程也到账我很痛苦,
这个痛苦就是,永远没有结束,很累,放不下,不敢休息和睡觉,睁着眼睛在我的T420笔记本却效率不高。

把以上这个问题搞定,终于搞定以后呢,发现,我的整个系统中的内容分类又不对头。
永远是 分类=0

断点追踪以下代码
if cbArticleType.Checked then begin
i_log_CateID:=__getRandom_Log_CateID;
i_log_CateID:= i_log_CateID;
end else begin
//i_log_CateID:=1;
tmptmp:=s_log_title;
__GetArticleType(tmptmp,(ExtractFilePath(ParamStr(0))+glb_FileName_ArticleType),i_log_CateID);
i_log_CateID:=i_log_CateID+1;
end;

i_log_CateID的数值正确啊。
但是不断入库测试,结果很崩溃。最后发现i_log_CateID是正确, s_log_CateID缺总是0,
原因是未赋值!
赶紧数值转换:
s_log_CateID:=IntToStr(i_log_CateID);

此外,在中间还发现有个很不起眼的代码错误。界面上有两个勾选控件,分别名称为:
cbArticleType
cbAticleType
很显然,我打错一个拼写,所以,赶紧删除了多余的一个控件。

以上,基本都ok,我也倦极且饿,测试一下,啊啊,都ok。

但是在线的大部分数据图片,都正常,只有个别有问题。
深入检查,原来,我处理jpg的都正常。我没有处理png的图片。

这种感觉就是一直撑着要游向岸边,拼着耗尽最后气力以为到了岸边,发现,还不是真正的岸边!

写代码很累,做吧,经常冒错,好比人类研究天文学,时刻都能发现新的未遇到的现象,
心里就知道,指不定哪个环节有幺蛾子,失败难受是必然的,成功太偶然。

一个简单功能的代码实现都简单,堆叠之后,太复杂。常出错,还尽是张冠李戴这种貌似弱智的错。
全网很多在线工具,不管是否是收费,不能满足需求。很糟的是,学习成本还很高,甚至高过新开发。

一个最简单的时候,外行认为简单的,往往最艰难。
一个突然的问题,就拖延时间,极度拖延时间。
越做越着急,貌似遥遥无期。

在一个地方的卡壳,就是全盘卡壳。当然要是穷对付,最简单,这会让开发时间最短,
但是会让结果呈现出很粗糙的样子,内心的细致需求没办法达成。

上面写的一点过程,其实就耗掉了我今天将近10个小时的通宵达旦。好在我一边看电视一边写写代码。
今天看的是一个国内的众人演讲题目,叫做《一席》,很有意思,我也不寂寞。

写程序的时候看看《笑傲江湖》《嘟嘟》等等,也很休闲。

以上做啥工作,干啥的,意义是啥,都按下不表,说来也很简单,一句话就能说清楚。
但不是要去解释这个事儿要做啥,啥意义。核心是说说这个过程,写下来给自己回顾一下。
经常是做了无穷尽的事情,解决了一大堆的问题,一天就耗尽了。
或者是几天时间,连续是每天就解决掉一个小问题,大部分时间发呆和拖延症。

今天白天要么回家睡觉,要么在办公室写完png图片处理问题,然后,这就告以段落,从十一放假前,
或者说从十月一号开始,偶就是忙碌这个看似简单的工作。居然连轴转了19天的开发。
作为技术熟练高手我都这么慢,这说明任何一个机构或个人,如果细致处理这个问题一定都很缓慢。
不可能更快的。我这速度已经很快(当然,看起来慢而已)。
各个公司之间都是技术壁垒。例如,美团的外卖系统是一群人做,饿了么的外卖系统也是一群人开发。
功能是一样的,代码和软件不一样,两边的软件,还真不能立刻替换调换使用,
况且这事不现实,任何一方也绝对不允许。
如果,一个机构也需要这个外卖软件系统,那么既不能找现成购买,
也不能让谁白给你,这时候只能自己开发。

写完这个程序,找个仪式庆祝一下,纯粹休息两天。
如果一个公司有足够的、合适的技术,老板一声令下,程序猿感谢代码实现,这样才是最幸福的。
ok,就说到这里。

10:30 2015/10/19

上一篇:jmeter "you cannot switch bacause data cannot be converted to target Tab data,empty data to switch"报错


下一篇:Android系统应用Mms之Sms短信发送流程(Mms应用部分)二