|
已锁定 主题:我喜欢Ruby的原因
精华帖 (0) :: 良好帖 (11) :: 新手帖 (0) :: 隐藏帖 (2)
|
|
|---|---|
| 作者 | 正文 |
|
时间:2008-04-25
robbin 写道 自言200801 写道 我们以前写PHP的时候从不关心disconnection是否正常关闭的,现在系统用了5年啦,还在用, disconnection相关的问题没碰到过。 数据库不是长连接,一般都是在<body>前放个connection(),在</body>后放个disconnection, 具体细节我不清楚啦,都3年不去搞PHP啦,即使是这样反反复复的connection()与disconnection, 系统性能还是很快的。 你这种代码是有严重的问题的,一旦程序执行到中间出错退出,数据库连接就无法被正常关闭。你之所以一直没有碰到问题是因为你开发的系统没有遭遇大并发和高负载,算是走狗屎运罢了。 昨天对这个“走狗屎”的数据库问题挺纳闷的,robbin说走狗屎运罢了, 但我就觉得怪了,5年啦都没碰到过问题,难道当初真没想到这么个问题? 呵呵,即使本人对PHP不感冒啦,也说过讨厌看PHP的代码, 不过呢,今天中午还是花了1个时去深究了一下,同时呢,也让robbin吃一次“狗屎”。 先注意上面的红色字体: 再看:http://www.php.net/manual/zh/features.persistent-connections.php 引用 第一种方法是将 PHP 用作一个“外壳”。以这种方法运行,PHP 会为向 web 服务器提出的每个 PHP 页面请求生成并结束一个 PHP 解释器线程。由于该线程会随每个请求的结束而结束,因此任何在这个线程中利用的任何资源(例如指向 SQL 数据库服务器的连接)都会随线程的结束而关闭。 再看:http://www.php.net/manual/zh/ref.oci8.php 引用 oci_connect() 使用的连接缓冲区会在脚本执行完毕后或者明确地关闭了连接句柄时被清空。 注:ocilogon 是 oci_connect() 的别名,离开PHP好久啦,想不到都有别名啦。 |
|
| 返回顶楼 | |
|
时间:2008-04-25
偶看了几天,觉得很是无聊。偶现在从事asp.net。但是用过rails后就不想再用asp.net,个中原因我就不说了。其实大家争论的一个焦点是: rails到底有没有前途。无论是攻击还是嘲讽!!!,我个人希望攻击的人有空去学习下,自己去做一个小网站,亲身体验下。没有调查就没有发言权。这句话在计算机学科也适用。至于robbin,我个人感觉他太过于激动了。他根本就没有必要加入这场争论。就算以后不用rails,我个人觉得学习也是大有益处的。
还有几个人,不要攻击rails了,你不学习有你的自由。我学习有我的自由。知之为知之,不知为不知。 |
|
| 返回顶楼 | |
|
时间:2008-04-25
liusong1111 写道 看你的php项目和开发者数量,初步估计php比较费代码,估计开发过程中复制粘贴的情况较多,同时也是后期维护费力的一个原因。推导一下:复制粘贴是产生重复代码的主要根源,重复代码是坏味道的主要表现,去除坏味道是重构的主要目标,重构是增强易维护性的主要手段。很多情况复制粘贴并不是开发者内心想做的,而是由于语言、库、框架的限制,或者评估成本收益后最终选择复制粘贴(是什么因素造成权衡过后还要这样做呢?大可想想前面贴的使用java的JGL,为什么不是每个人都会选择用它呢?甚至大多数人不用它或不知道),或者根本无法做到通过封装等手段消除重复。 呵呵,刚刚还是花了点时间翻了翻以前的代码, 还是感叹以前还是写得挺用心的, 分页功能有一个通用函数, 还有一个很通用的多表查询模块,用户能够永久自定义(或取消)自己想要查看的字段,还能自由组合查询条件,查询结果还能生成Excel表。 还有很多自己封装的html的控件,如radio、checkbox、select、textarea、button、input等等, 连日期时间都有div形式的统一函数, 对oralce数据库的操作函数自己也做了封装如insert、del、update、select、fetch、result 代码量多,主要原因是数据库表太多,最大的有300多个表, 表中的字段最大的有120多个字段, 因为数据库查询、取结果这些操作都在同一php文件中, UI中的html控件一般都很多, 还有业务流程复杂一点的,php文件中就是无数的IF分支。 我们用php开发时,php还没加入OO,之后有OO啦,反正运行稳定,也没去重写代码, 现在想想吗,即使有OO啦,一个对象对应一条数据库记录,你要把每个字段显示在UI上, 同样得分解字段,代码量不会少到哪去。 |
|
| 返回顶楼 | |
|
时间:2008-04-25
zsbfree 写道 偶看了几天,觉得很是无聊。偶现在从事asp.net。但是用过rails后就不想再用asp.net,个中原因我就不说了。其实大家争论的一个焦点是: rails到底有没有前途。无论是攻击还是嘲讽!!!,我个人希望攻击的人有空去学习下,自己去做一个小网站,亲身体验下。没有调查就没有发言权。这句话在计算机学科也适用。至于robbin,我个人感觉他太过于激动了。他根本就没有必要加入这场争论。就算以后不用rails,我个人觉得学习也是大有益处的。
还有几个人,不要攻击rails了,你不学习有你的自由。我学习有我的自由。知之为知之,不知为不知。 呵呵,我想zsbfree这位老兄没听过明斯基等人所写的<<感知机>>与联结主义认知心理学的网络模型研究之间的趣事吧, 说“攻击”吗,算不上,有些人就爱说不好听的,有些人就爱说好听的, 社会心理学不是有个从众心理吗, 大众人群多数对偶像、名人、专家还有盲从趋向, 说好听的说到极致,以前爱说不好听的也变得爱说好听了。 说不好听的说到极致,以前爱说好听的都闭嘴啦。 回到学术上,一本专说不好听的书能让某一学科的发展停滞10年(或更久或消亡)。 |
|
| 返回顶楼 | |
|
时间:2008-04-25
引用 第一种方法是将 PHP 用作一个“外壳”。以这种方法运行,PHP 会为向 web 服务器提出的每个 PHP 页面请求生成并结束一个 PHP 解释器线程。由于该线程会随每个请求的结束而结束,因此任何在这个线程中利用的任何资源(例如指向 SQL 数据库服务器的连接)都会随线程的结束而关闭。
说你走了狗屎运,你还不信。以你描述的这种方式运行PHP的确不会导致连接池泄漏问题,但是会导致一个更严重的问题,就是很容易被DOS攻击。因为你这种运行方式是每个请求过来创建PHP进程(注意不是线程),页面执行完毕就销毁进程。只要我瞬时发送上千个并发请求,你的Web服务器就会因为忙于大量创建PHP进程的开销而瘫痪。 再纠正你一个常识性错误,PHP不是线程安全的,所以Apache要跑PHP的话,不能用多线程方式跑,PHP是一个纯进程的解释器,压根不支持线程,很难想像一个号称有多少年PHP经验的人连这个常识都不清楚。 BTW: 一帮人没幽默感,这么极品的帖子我添点油浇点火想烧旺点吧,非板着脸说你robbin着急上火了想和人家拼命。你们也不想想,ruby又不是我大爷,我现在代码都不写了我,又不靠它吃饭,我犯得着? |
|
| 返回顶楼 | |
|
时间:2008-04-25
自言200801 写道 zsbfree 写道 偶看了几天,觉得很是无聊。偶现在从事asp.net。但是用过rails后就不想再用asp.net,个中原因我就不说了。其实大家争论的一个焦点是: rails到底有没有前途。无论是攻击还是嘲讽!!!,我个人希望攻击的人有空去学习下,自己去做一个小网站,亲身体验下。没有调查就没有发言权。这句话在计算机学科也适用。至于robbin,我个人感觉他太过于激动了。他根本就没有必要加入这场争论。就算以后不用rails,我个人觉得学习也是大有益处的。
还有几个人,不要攻击rails了,你不学习有你的自由。我学习有我的自由。知之为知之,不知为不知。 呵呵,我想zsbfree这位老兄没听过明斯基等人所写的<<感知机>>与联结主义认知心理学的网络模型研究之间的趣事吧, 说“攻击”吗,算不上,有些人就爱说不好听的,有些人就爱说好听的, 社会心理学不是有个从众心理吗, 大众人群多数对偶像、名人、专家还有盲从趋向, 说好听的说到极致,以前爱说不好听的也变得爱说好听了。 说不好听的说到极致,以前爱说好听的都闭嘴啦。 回到学术上,一本专说不好听的书能让某一学科的发展停滞10年(或更久或消亡)。 牛人真多,啥都懂。 但如果就是不懂ruby,那,您的分析也就只能采用诸如隐马尔可夫模型了。 |
|
| 返回顶楼 | |
|
时间:2008-04-25
liusong1111 写道 自言200801 写道 zsbfree 写道 偶看了几天,觉得很是无聊。偶现在从事asp.net。但是用过rails后就不想再用asp.net,个中原因我就不说了。其实大家争论的一个焦点是: rails到底有没有前途。无论是攻击还是嘲讽!!!,我个人希望攻击的人有空去学习下,自己去做一个小网站,亲身体验下。没有调查就没有发言权。这句话在计算机学科也适用。至于robbin,我个人感觉他太过于激动了。他根本就没有必要加入这场争论。就算以后不用rails,我个人觉得学习也是大有益处的。
还有几个人,不要攻击rails了,你不学习有你的自由。我学习有我的自由。知之为知之,不知为不知。 呵呵,我想zsbfree这位老兄没听过明斯基等人所写的<<感知机>>与联结主义认知心理学的网络模型研究之间的趣事吧, 说“攻击”吗,算不上,有些人就爱说不好听的,有些人就爱说好听的, 社会心理学不是有个从众心理吗, 大众人群多数对偶像、名人、专家还有盲从趋向, 说好听的说到极致,以前爱说不好听的也变得爱说好听了。 说不好听的说到极致,以前爱说好听的都闭嘴啦。 回到学术上,一本专说不好听的书能让某一学科的发展停滞10年(或更久或消亡)。 牛人真多,啥都懂。 但如果就是不懂ruby,那,您的分析也就只能采用诸如隐马尔可夫模型了。 哈哈,我说liusong1111啊,都说过两次让你等等啦,我正在构思一篇叫“炮轰Ruby/Rails”的文章, 只要不被封号就保证会让各位看到, 要是有人也像我那么极端,想不停的争论技术细节问题, 说不定我会花两三个月把C Ruby的实现源码与Rails的源码翻个低朝天, 就怕JavaEye上跟我争论的人老是停留在应用层次,一说细点,别人就马上闭嘴啦,那是多么扫兴的事。 我不牛,我还很菜,只是爱走极端,不过要是你也想知道我的研究领域的话,也请你看看: 一门天生就能损害人眼视力的语言->Erlang http://www.javaeye.com/topic/179337 里面有提到我的研究领域,呵呵,可惜我已请求管理员锁贴啦。 |
|
| 返回顶楼 | |
|
时间:2008-04-25
自言200801 写道 哈哈,我说liusong1111啊,都说过两次让你等等啦,我正在构思一篇叫“炮轰Ruby/Rails”的文章, 只要不被封号就保证会让各位看到, 要是有人也像我那么极端,想不停的争论技术细节问题, 说不定我会花两三个月把C Ruby的实现源码与Rails的源码翻个低朝天, 就怕JavaEye上跟我争论的人老是停留在应用层次,一说细点,别人就马上闭嘴啦,那是多么扫兴的事。 我不牛,我还很菜,只是爱走极端,不过要是你也想知道我的研究领域的话,也请你看看: 一门天生就能损害人眼视力的语言->Erlang http://www.javaeye.com/topic/179337 里面有提到我的研究领域,呵呵,可惜我已请求管理员锁贴啦。 哈哈,急切期待你的炮轰文章和那个底朝天,估计不但不会被封号,还会被评为良好贴(不过我只是个人估计而已,我不带钻石不能给你评...) 其实我是很希望很希望看到真正严肃讨论技术的贴子,用代码说话,用事实说话。要是泛泛而谈,空对空,要事先声明,免得像我这种不搞政治的人白浪费时间。 本来这个帖子,楼主开篇就用代码说话,没想到会讨论到这个程度,呵呵~ |
|
| 返回顶楼 | |
|
时间:2008-04-25
自言200801 写道 liusong1111 写道 自言200801 写道 zsbfree 写道 偶看了几天,觉得很是无聊。偶现在从事asp.net。但是用过rails后就不想再用asp.net,个中原因我就不说了。其实大家争论的一个焦点是: rails到底有没有前途。无论是攻击还是嘲讽!!!,我个人希望攻击的人有空去学习下,自己去做一个小网站,亲身体验下。没有调查就没有发言权。这句话在计算机学科也适用。至于robbin,我个人感觉他太过于激动了。他根本就没有必要加入这场争论。就算以后不用rails,我个人觉得学习也是大有益处的。
还有几个人,不要攻击rails了,你不学习有你的自由。我学习有我的自由。知之为知之,不知为不知。 呵呵,我想zsbfree这位老兄没听过明斯基等人所写的<<感知机>>与联结主义认知心理学的网络模型研究之间的趣事吧, 说“攻击”吗,算不上,有些人就爱说不好听的,有些人就爱说好听的, 社会心理学不是有个从众心理吗, 大众人群多数对偶像、名人、专家还有盲从趋向, 说好听的说到极致,以前爱说不好听的也变得爱说好听了。 说不好听的说到极致,以前爱说好听的都闭嘴啦。 回到学术上,一本专说不好听的书能让某一学科的发展停滞10年(或更久或消亡)。 牛人真多,啥都懂。 但如果就是不懂ruby,那,您的分析也就只能采用诸如隐马尔可夫模型了。 哈哈,我说liusong1111啊,都说过两次让你等等啦,我正在构思一篇叫“炮轰Ruby/Rails”的文章, 只要不被封号就保证会让各位看到, 要是有人也像我那么极端,想不停的争论技术细节问题, 说不定我会花两三个月把C Ruby的实现源码与Rails的源码翻个低朝天, 就怕JavaEye上跟我争论的人老是停留在应用层次,一说细点,别人就马上闭嘴啦,那是多么扫兴的事。 我不牛,我还很菜,只是爱走极端,不过要是你也想知道我的研究领域的话,也请你看看: 一门天生就能损害人眼视力的语言->Erlang http://www.javaeye.com/topic/179337 里面有提到我的研究领域,呵呵,可惜我已请求管理员锁贴啦。 呵呵,我这么没耐心呢?看来去MSN、QQ拯救那些失足沦落文学女青年的时机到了,美女们,等着我,我来了!~ 你还没研究,就定了“炮轰”的课题,牛人就是不一样。 Ruby源码我没研究,我想你分享出来会有像dreamhead这些人跟你讨论。 Rails源码我读了不少,很多实现说起来也是一脸的伤心泪啊。要是你有理有据的跟大家分享经验,robbin在那边就偷着乐了,封号这种傻事他能干? |
|
| 返回顶楼 | |
|
时间:2008-04-26
potian 写道 ajoo 写道 要是让我说我为什么喜欢ruby,closure可能是马上会从脑子里跳出来的咚咚。不知道为什么,好像别的特性都无法说服自己why ruby。
ruby的everything is a statement对我这种不可救药的形式主义者也很有吸引力,我喜欢语言有一个大一统的抽象模型,而不是象c++那样spec里面充满了if-else。 但是始终不是很喜欢open class和一些meta programming的功能,比如define_method什么的,感觉太hack了,确实有不好维护的感觉和担忧。 ——————一个二把刀的自白 有是有一点的,但Objective-c也一样 open class,mata programming也很强,苹果用得好好地 要说meta programming ,LISP有过之无不及,Yahoo当年就是买了Paul Graham的web store(?),大发其财,也算是互联网上电子商务开山之作之一了 什么刀要看什么人拿的,拿不好的刀越锋利就越伤自己,拿的好的刀越锋利越好使 不要没拿就害怕,拿拿这样的刀你还不是手到擒来,呵呵 话说我那会写rparsec(我通共就写过那么一点点ruby代码),当时感觉很爽地用了几个define_method,因为确实一些method的定义有重复模式可寻,而重复性的东西不就是坏味道么?不过过了这么长时间回头一看,我不应该呀。这代码反而更晦涩(或者说更聪明了),读代码总要隔着那么一层动态的东西来读,就象隔靴搔痒。很有一种读c++的宏代码的感觉——脑子要当解释器跑一遍。(俺当年可是很写过些变态的宏的,比mfc的要变态一些)。rdoc也不给面子,楞是不给我define出来的方法生成文档,奶奶的! 当然,跟java这种语言一比,很多时候你被迫要很傻很傻地写代码,也是很折磨人的。建议城管抓住外地闲散ruby/perl程序员,不用费力气揍,就让他用java写些东西,这惩罚度也大概就够了。 |
|
| 返回顶楼 | |









