一些让我悲催编程经历

Life/Work 2013-06-21 经历,编程,工作

rm命令

有一次,项目出了点问题,为了图方便就直接ssh上去了。问题解决后准备delete测试文件,结果不小心直接使用rm -rf命令把项目整个程序删除了,而备份文件不是最新的程序。结果花了将近一周才把程序重新部署到线上,恢复访问。从那以后,我每次登陆服务器时,不轻易敲rm这个命令,心里有恐惧感。

升级程序版本

我一直喜欢把软件升级到最新的版本,有一次我发现MySQL又出新版本了,我于是赶紧下载,解压,编译,安装。但总是在某个地方出错安装始终进行不下去,而每一次编译MySQL都需要十多分钟特别耗时。最终我是放弃了最新版本的安装,而站点也因为我的升级操作停止运行了将近一天的时间。其实因为升级程序导致站点不能访问的状况已经有好几次,升级服务器软件的操作要谨慎,因为极有可能不兼容导致环境出问题。

list的for循环

我习惯这样使用for去遍历list,如:

for($i = 0, $k = count($list) ; $i<$k ; $i++){
	...
}

但是for里面再有一个list需要遍历时,我习惯性又这么写:

for($i = 0, $k = count($list1) ; $i<$k ; $i++){
	for($i = 0, $k = count($list2); $i<$k; $i++){
		...
	}
}

结果服务器被跑宕机了。

form表单上传

有一次做一个上传功能,却怎么也接收不到file的数据,代码看了N遍就在快要崩溃放弃的时候才发现原来是我漏写了enctype="multipart/form-data"

滥用http接口

当时正在做一个项目,老大说为了划分模块应该都采用谁负责模块谁出接口的模式进行开发工作,后来程序如期开发完成,测试也通过并上线。有一天收到产品邮件说某些用户打开一个要好几分钟,开始我怀疑是那用户的网络有问题,最后深入调查才发现原来这个用户数据量太大,for循环300多次请求接口数据。。。后来优化后,再打开那个需要五六分钟时间才能打开的页面时直接是秒开。

js字符串拼接

这是我在上家公司的同事发现的一个问题,当时是遇到站点在IE6下执行速度很慢,其它浏览器都很正常。js脚本在IE6下也不报错,肉眼一行行检查也没发现有什么问题。最后做测试时才发现当你使用js拼接大量的字符串时,这种写法

var html = '';

for(var i = 0 ; i< 100000; i++){
	html += i + ',';
}

document.write(html);

这种写法是最慢的,而最好的写法是这样:

var html = [];

for(var i = 0 ; i< 100000; i++){
	html.push( i );
}

document.write(html.join(','));

这两种方式有很大的效率差距

注意缓存

刚开始学程序的时候,并不知道浏览器会有缓存这一事,结果我明明是修改了程序,但刷新后还是旧的内容。于是我只好改一次,然后关闭浏览器重新开启。这种调试模式程序了很长时间,后来我才发现再调试的时候可以关闭浏览器的缓存,或者直接在访问的url加个时间戳就轻松解决被缓存的问题。

服务器端与客户端

刚开始学习PHP的时候因为总是在本机安装appserv集成环境开发,因此对服务器端与客户端的概念还不是很清楚。有一次我写一个功能,使用opendir出本机某个目录下的图片文件列表时,为了更直观一点,我竟然直接把遍历出来的文件地址写到img的src属性里,结果调了大半天,图片就是没显示..,做WEB开发得要明白服务器端与客户端的区别!

断点

刚写JS的时候,糊里糊涂,当时甚至都看不起JS(后来证明我这个观点是多么愚昧)。每次出错调试时就在需要调试的行数alert阻断查看,如果遇到object甚至for in挨个alert看。后来开始接触一些调试工具后,发现原来断点调试时那么的棒,想起之前的调试艰辛内牛满面。

文字链接:《一些让我悲催编程经历

文章地址:http://www.qttc.net/201306341.html

除非标注,琼台博客所有博文均为原创,转载请加文字链接注明来源

乳名?小名?昵称?网名?均可

email,放心,我不会给你乱投广告的

想获得回访就把你的站点URL写上(没有留空)

[NOTICE]木要投放广告
[NOTICE]木要骂人,说不该说的话
[NOTICE]自由言论,但要遵纪守法

Comments 13

  • q
    2015-04-12 13:27:21 [ 跟帖 ]
    1 #
  • for(var i = 0 ; i< 100000; i++){ html += i + ','; } 改成 for(var i = 0 ; i< 100000; i++){ html += i ; html += ','; } 性能会有提升吧。
    2014-04-15 15:03:40 [ 跟帖 ]
    2 #
  • 字符串拼接比数组join快,
    2013-12-07 16:25:21 [ 跟帖 ]
    3 #
  • 相关博文换一组没效果,按钮也没了? url的http://www.可否默认给出哈哈 http://www.draem0507.cnblogs.com 这个地址会太长?
    2013-10-09 11:15:10 [ 跟帖 ]
    不好意思,只支持顶级域名,暂不支持二级域名
    2013-10-09 20:22:43 [ 跟帖 ]
    soga 站长开发贵站的速度另外钦佩。有点不科学一周搞完。
    2013-10-10 08:59:30 [ 跟帖 ]
    4 #
  • 相关博文换一组没效果,按钮也没了? url的http://www.可否默认给出哈哈 http://www.draem0507.cnblogs.com 这个地址会太长?
    2013-10-09 11:14:56 [ 跟帖 ]
    5 #
  • 相关博文换一组没效果,按钮也没了? url的http://www.可否默认给出哈哈 http://www.draem0507.cnblogs.com 这个地址会太长?
    2013-10-09 11:14:42 [ 跟帖 ]
    6 #
  • 相关博文换一组没效果,按钮也没了? url的http://www.可否默认给出哈哈 http://www.draem0507.cnblogs.com 这个地址会太长?
    2013-10-09 11:14:04 [ 跟帖 ]
    7 #
  • 果然,很悲催的教训哈,特别是第一条
    2013-07-11 22:32:21 [ 跟帖 ]
    8 #
  • 有些东西我也遇到过。希望您能分享http接口的问题。
    2013-06-28 14:32:37 [ 跟帖 ]
    预加载、CGI、脚本,或者直接查库
    2013-07-02 16:49:50 [ 跟帖 ]
    9 #
  • 很棒,学习了
    2013-06-24 11:50:56 [ 跟帖 ]
    10 #