Archive for the 'WEB开发' Category

Rails Cache + SSI 再 续。

Monday, October 8th, 2007

写完”Rails Cache + SSI 续。”后老是感到很不好意思(虽然没几个人看我的博客),其实那天我想到了很多的办法,不过最后写了一个最差的..为的是展示一下ruby的某些特性.
其实lighttp处理rails cache第一次不能解析include指令的问题是因为lighttpd 1.4不处理fastcgi,proxy的返回数据.
1.5有response filter以及新的mod_proxy了(没测试过ssi的问题,不知道是否可用).不过前几个月我花了1整个晚上时间吧1.4的conf改到1.5跑了几天.不过似乎这个版本没发布正式版还很不稳定程序老是退出,又改回1.4了.(哦.最近访问量增大lighttp 1.4也老是退出,其实也不是很多访问了.看awstats的统计一天就100G的数据传输).
其实解决cache+ssi的最简单的方法就是换服务器吧.apache没试过.不过我的服务器跑apache还真是跑不动,preforker什么的都不行,太慢,太占资源了…
用nginx吧.最近这个很火,说是最好的rails应用部署组合了.
在我的开发机器上测试了cache+ssi,完美通过.正式环境还没改,如果lighttpd还是老掉的话就换上去看看了.
国庆这几天测试cache+ssi的时候顺便完成了mini-cms,啊,感觉真好.其实这种东西更多的是看解决方法了.认真看了cache和routes的api文档的每一个字节后找到的解决办法让我自己都觉得”太美妙了”呵呵..建测试站ing…..
很久没写,废话很多还带上吹牛..

Ruby on Rails Security Cheatsheet

Tuesday, September 25th, 2007

Ruby on Rails Security Cheatsheet
没有什么新内容,但是都是些重要的内容。
不考虑安全的开发过程就是不完整的过程。

这样开发WEB应用真的没问题吗?

Sunday, September 23rd, 2007

在之前的几年我所写的C/java程序在逻辑上基本不数据库打交道,所有参数加载到共享内存,所有的数据通过输入模块从数据库或文件中读取到内存(链表或二叉树)操作完后通过输出模块写回到数据库或是文件。因为数据库是非常慢的(比起内存或是写文件操作-指和insert相比),而且数据库是不可控的,在应用中应该把不可控的东西尽量限制在有限的地方(比如仅仅是输入输出),当然这样的系统比较多的是批处理系统,当然不全是,比如鉴权或是重单检查。
这几天在写代码和检查代码的时候发现所有程序几乎都是这样的

def some_method
@result = XXX.find(:all)
end

甚至连去一个数据的几个类别都是用几个find,比如不同类型的用户,当然了这可能只是我的个人问题。
User.find_by_user_type(type_a)
User.find_by_user_type(type_b)
猛然间发现,为什么我不一次性从数据库将这些用户取出来在对结果集进行过滤呢?反正这些数据都有用到至少一遍?
我这些年的学习和工作中得来的东西竟然在WEB开发上一点都用不上,甚至根本都没意识到这个问题?
想来想去可能是因为我对web开发的理解还停留在99年用php是形成的习惯和思想上吧。
这是个问题?
其实对于web这种要求快速反应的应用真的适合这种方式吗?
对于那种每次取10条数据取3次,和一次取30条数据循环3次(也可能是1次或是4次),应该使用哪种方式去操作其实是很明显的。
那么memcache吗?在遇到真正的性能问题前,使用memcache并不一定是什么很好的事情,那不是万金油,从程序逻辑抓起可能比什么都重要。
相关阅读(以前自己写的,现在看起来怎么感觉有点…):
节约内存是一种罪恶?
呵呵。记得这个当时还上了CSDN的首页,跟一个人在回复中大干了一天,也是我接触网络这么多年,唯一一次在网上和人家进行长时间的辨论。
数据库很慢?程序很快.