工大后院

 找回密码
 加入后院

扫一扫,访问微社区

QQ登录

只需一步,快速开始

搜索
楼主: sasadong

别小看PHP,之框架设计篇。

[复制链接]
发表于 2006-9-9 03:57 | 显示全部楼层
原帖由 sasadong 于 2006-7-15 06:22 发表
写在最后,
如果你喜欢php,请继续往下看,否则,你可以离开了。

如果你是初学者,你先回去看php的语法,去别的php网站去看别人如何写的程序,或者干脆下载一个Discuz!研究一下其中的一些代码文件。当你觉得 ...


你的设计还不能说是框架,因为你没考虑哪些常用的功能应该通用化(例如查询条件输入怎样与功能挂钩),页面与罗辑怎么分离也没实现(java是用标签,php我知道常用就是先把所有变量取出来,然后套到模板中去),如何做到用配置文件实现功能。
你认为系统缓存很重要,那你错了,可能你要缓存只是因为php模板需要替换进去,你的框架连快速开发都还做不到,谈性能未免太早了。
可以说,你的框架只是入门级,可能你会不服,那我提几点,相信你如果看得明白,对你会有很大帮助的。
你扔掉MVC最精华的东西,自己写几个增删查改的方法,那么你得对应每一个表重复拷贝这些方法,并且,你不得不为一个表中的外键关联去考虑增加删除的问题。
快速开发,你能看得出一个系统哪些工作是经常重复的,可以用统一的方法实现吗?
还提一点,sql语句最好不要用*代替所有字段。
你说对了一点,大多功能都只是select一下,但你的功能能否做到多条件查询,多条件排序,能否随心所欲控制显示哪些字段?

太晚了,明天还要去玩,睡了.
回复

使用道具 举报

发表于 2006-9-16 03:28 | 显示全部楼层
楼上说得好,说得妙,免得楼主这么狂妄,哈哈,楼主真是自以为很聪明,搞些小工具以为可以飞天了,哈哈
回复

使用道具 举报

发表于 2006-9-24 21:54 | 显示全部楼层
原帖由 sasadong 于 2006-9-21 00:00 发表
www.ydnet.cn

就这个也拿出来?你还没见过超大的数据处理。
回复

使用道具 举报

发表于 2006-9-24 22:05 | 显示全部楼层
看你签名,忙?是因为你的系统还没能快速建设,我设计的系统只要配置好cdm数据库结构,功能名称,就可以自己生成全部代码,一个项目10来分钟就生成了。要做的只剩写sql了
回复

使用道具 举报

发表于 2006-9-24 23:09 | 显示全部楼层
闻到点火药味

不知是不是处鼻子过敏。。。。

有问题就讨论下吧,几位都是高人

说句不好听的:说LZ在得意忘形的同时,你的其它话不也有点炫耀的味道吗??

  本人道行还很浅,但比我强的我会尊为“高手”,
  比我知道些东西迟点的,也不至于会穷追猛打式地打击
  因为我知道,只要努力,
  如果他真有误区的话,他总会意思到

还有,我没看出楼主有 "狂妄" ,  "自以为飞上天" 的感觉
论坛是个交流的地方,如果把自己的东西发上来就算狂妄的话,
那论坛就没有存在的必要了


我相信在这张帖出现的老人家都是业界高手,但,谁都有入门的时候吧
(没有贬低SASADONG的意思,事实上这张帖说的概念我还不能完全明白)

总而言之,这里欢迎交流
回复

使用道具 举报

发表于 2006-9-24 23:44 | 显示全部楼层
首先我是十分赞赏楼主这种分享精神的。

同时也十分欢迎大家来讨论,这也是论坛的目的之一。

但讨论归讨论,如果一味地抨击别人的观点而又拿不出有力的论据去支持你的观点的话,我觉得这样并不适合这里的讨论氛围。对这我们也会持续关注。请各位自重。

不论你是高手还是菜鸟,我们都是欢迎的,这里是很开放自由的,但也请遵守这里的游戏规则,谢谢合作!
回复

使用道具 举报

发表于 2006-9-27 13:05 | 显示全部楼层
原帖由 iptton 于 2006-9-24 23:09 发表
闻到点火药味

不知是不是处鼻子过敏。。。。

有问题就讨论下吧,几位都是高人

说句不好听的:说LZ在得意忘形的同时,你的其它话不也有点炫耀的味道吗??

  本人道行还很浅,但比我强的我会尊为“高 ...

4个月之前,我用它来实现了我按照自己设计的网络爬虫,这时候它扮演着后台程序的角色。2个月之前,我用它来实现了自动标签的核心分词算法,这是它作为关键组件的定位。而现在,我的电脑里储存了大量的脚本文件,只要我打开浏览器的书签(ie叫收藏夹),然后我可以在半小时内把百度的中文歌曲排行榜前100强下载到我的共享文件夹,也可以连接到某公司网站的一个短信接口帮我下发多达200多条节日问候短信。


这些还不是狂妄吗?呵呵,可笑!
还有你们这些所谓的版主,只会这样附和的顶几贴,问深一句,你们从这里学到了什么,看出了什么吗?
别人给你指出了错误,还说没依据,你看看24楼的贴,我看你们还没真正看完这贴吧,没看完请别作声。
有些东西贴出来不一定就是好的,别人能给出意见,你才有进步,不然被你赞几句,心里不就漂漂然了,
别人袋钱进你袋,你应该感激!
回复

使用道具 举报

发表于 2006-9-27 13:20 | 显示全部楼层
首先
在我发那帖前
24楼的帖我看完了
事实上24楼一发帖时我就看了

24楼有依据,但他没像你这样的语气

请问你的帖有半点讨论的味道吗?

如果你认为做的东西功能小就算狂妄的话
我无话可说



还有你们这些所谓的版主,只会这样附和的顶几贴,问深一句,你们从这里学到了什么,看出了什么吗?
必需承认我不会样都懂样样都精通,
但作为版主,在这里人气很低的情况下,
对在此发的原创帖必需有所表示
回复

使用道具 举报

发表于 2006-9-27 13:34 | 显示全部楼层
看来是个高手.
和高手说话,就不说技术了.
本版是个学习交流的平台,目的就是学习交流.
技术的争论可是很激,平静后大家还是朋友(??)
希望有不同意见的时候也能用平缓的语气来交流.

我常常觉得,文字的交流就是缺少语气或者说文字表达语气有缺陷.
我相信没人在技术论坛上发帖是为了炫什么,或是骂骂人.那种不会有什么成绩的.

作为版主,我只会顶几帖,有些新手问安装JDK之类的问题我也会答,有高手在讨论,我不懂的,只好在一旁看了.
回复

使用道具 举报

 楼主| 发表于 2006-10-7 10:28 | 显示全部楼层
不骂你你就一辈子井底之蛙。



QUOTE:
原帖由 sasadong 于 2006-9-21 00:00 发表
www.ydnet.cn
就这个也拿出来?你还没见过超大的数据处理。


什么是超大型的数据处理?你以为用个高深的词语超大就有了鄙视一切的资本了?拿出你超大的数据处理例子出来让大家看看什么是真正的高手!!!
回复

使用道具 举报

 楼主| 发表于 2006-10-7 10:37 | 显示全部楼层
看你签名,忙?是因为你的系统还没能快速建设,我设计的系统只要配置好cdm数据库结构,功能名称,就可以自己生成全部代码,一个项目10来分钟就生成了。要做的只剩写sql了




把你cdm系统拿出来让我批判吧,不要再说什么10分钟了。
回复

使用道具 举报

 楼主| 发表于 2006-10-7 10:58 | 显示全部楼层
你的设计还不能说是框架,因为你没考虑哪些常用的功能应该通用化(例如查询条件输入怎样与功能挂钩),页面与罗辑怎么分离也没实现(java是用标签,php我知道常用就是先把所有变量取出来,然后套到模板中去),如何做到用配置文件实现功能。
你认为系统缓存很重要,那你错了,可能你要缓存只是因为php模板需要替换进去,你的框架连快速开发都还做不到,谈性能未免太早了。
可以说,你的框架只是入门级,可能你会不服,那我提几点,相信你如果看得明白,对你会有很大帮助的。
你扔掉MVC最精华的东西,自己写几个增删查改的方法,那么你得对应每一个表重复拷贝这些方法,并且,你不得不为一个表中的外键关联去考虑增加删除的问题。
快速开发,你能看得出一个系统哪些工作是经常重复的,可以用统一的方法实现吗?
还提一点,sql语句最好不要用*代替所有字段。
你说对了一点,大多功能都只是select一下,但你的功能能否做到多条件查询,多条件排序,能否随心所欲控制显示哪些字段?

太晚了,明天还要去玩,睡了.



这是24楼吧

本来这段话我花了半小时写了一篇回复的,后来想想,如果我真的这么抵赖,似乎真的是狂妄了,似乎我写的程序真的就那么好了。最后我没有发,留下。。。,
对于你的这些批评,有一些是错的,有一些是正确的,总体来说,是对我对大家都有帮助的。



我很讨厌像thiswwww 这样的人,这种才是真正的狂妄者,你高手就高手嘛,你另开一帖把你最骄傲的设计写出来不是很好吗?有眼光的人一对比就能看出是你的好还是我的好,如果我的不好我不服气自然会改进我的作品,这样一个良性的环境不就产生了?

你搞砸了我的心情,以后我有更好的作品,想发上来都得要考虑一下你这种鸟人的存在,干脆不发的好。

thiswwww 你这样的人其实是见不得别人出风头,对吧?你说谁是狂妄者?
你所回复的这些话对这里的人有帮助吗?除了这么一个意思:“别太出风头,否则我就会出来用超大的数据处理来踩死你”。
回复

使用道具 举报

发表于 2006-10-7 13:45 | 显示全部楼层
我比较同意楼上的观点。

所谓闻道分先后,术业有专攻。我很敬佩高手们的技术和他们的学习能力,但对于那种扼杀新手(或者高手们认为的所谓菜鸟)的做法我是相当鄙视(况且看了几位的回帖,我还找不到证明楼主的设计很“垃圾”的所谓有力依据)。如果诸位对于楼主的意见相左,请发表自己意见,并拿出能说服人的论据。论坛本来就是个充满意见冲突的地方,有冲突,有讨论的论坛才能为我们这些访客带来点什么(要不还去论坛干嘛?)。


我曾经跟楼主有过激烈的讨论,当时也是源自各自的向左意见,但是我觉得当时我和楼主相对成熟的态度,让我们的讨论有了比较好的结果,我相信当时的讨论让我和楼主都有所受益,这也是我们本身泡论坛所想要得到的。论坛就是需要这些因素存在,而不是一味的扼杀和嘲讽。

同时我看到了楼主的热心,楼主在这个论坛很无私的分享自己的经验和学习体会(我敢对天发誓在本版发原创贴是不会有钱派的^_^),无论楼主的经验和体会是否正确(或许某些人觉得很“垃圾”),做为斑竹的我都应该表示支持和鼓励。

请各位本着对自己负责的态度,让这个论坛有更多的讨论,而不是嘲讽。

[ 本帖最后由 wool王 于 2006-10-7 13:47 编辑 ]
回复

使用道具 举报

发表于 2006-10-7 13:51 | 显示全部楼层
OK。继续讨论技术。

我本身做的系统也是大数据量处理(虽然我还只是个入门者),我想跟诸位交流下诸位的设计。
回复

使用道具 举报

发表于 2006-10-7 13:59 | 显示全部楼层
看了op1op 的留言,我觉得我现在所用的架构在设计上跟op1op说到的很像。

对于通用的增删改查,只需要写三个文件(而且这些都是通过自己写的代码生成工具来生成),并且可以定制查询条件。

期待op1op出现继续讨论这个话题。
回复

使用道具 举报

发表于 2006-10-7 18:23 | 显示全部楼层
据可靠消息,op1op由于不小心删除了论坛的数据,被admin封为游客了,不会再上来讨论的了。
回复

使用道具 举报

 楼主| 发表于 2006-10-30 05:42 | 显示全部楼层
你的设计还不能说是框架,因为你没考虑哪些常用的功能应该通用化(例如查询条件输入怎样与功能挂钩),页面与罗辑怎么分离也没实现(java是用标签,php我知道常用就是先把所有变量取出来,然后套到模板中去),如何做到用配置文件实现功能。
你认为系统缓存很重要,那你错了,可能你要缓存只是因为php模板需要替换进去,你的框架连快速开发都还做不到,谈性能未免太早了。
可以说,你的框架只是入门级,可能你会不服,那我提几点,相信你如果看得明白,对你会有很大帮助的。
你扔掉MVC最精华的东西,自己写几个增删查改的方法,那么你得对应每一个表重复拷贝这些方法,并且,你不得不为一个表中的外键关联去考虑增加删除的问题。
快速开发,你能看得出一个系统哪些工作是经常重复的,可以用统一的方法实现吗?
还提一点,sql语句最好不要用*代替所有字段。
你说对了一点,大多功能都只是select一下,但你的功能能否做到多条件查询,多条件排序,能否随心所欲控制显示哪些字段?



  1. 你的设计还不能说是框架,因为你没考虑哪些常用的功能应该通用化(例如查询条件输入怎样与功能挂钩),页面与罗辑怎么分离也没实现(java是用标签,php我知道常用就是先把所有变量取出来,然后套到模板中去),如何做到用配置文件实现功能。
复制代码


我想你所理解的应该是叫做开发环境而不是框架。框架,故名思义,就好像要做高架桥,你得首先用钢筋做一个框架出来,然后往这个框架灌注混凝土。

  1. 因为你没考虑哪些常用的功能应该通用化(例如查询条件输入怎样与功能挂钩)
复制代码

这是类库设计上的问题,可以是系统库也可以是用户库的职责。当然好的系统库考虑到了这个需求并会有一个很好的设计,如果要把这个系统库考虑进框架的话,这个系统库要照顾您很多需求的,例如静态化、缓存、分布式、多语言支持。 就好像java的框架一样,弄得异常庞大。我更喜欢把这些额外功能看成是组件或者插件(可以不断扩充、是框架的有力补充),而框架表达了一种核心思想。

  1. 页面与罗辑怎么分离也没实现(java是用标签,php我知道常用就是先把所有变量取出来,然后套到模板中去),如何做到用配置文件实现功能。
复制代码

php的页面与逻辑分离如您所说,这个是一开始设计就实现了的。 至于配置文件的问题,唉,我只能说是需求不同,做一个好的网站,是不可能使用配置文件来实现功能的(除非是页面单一的网站、或者是web界面的企业应用,这里的网站指的是,你可以看看www.sharera.com,或者最简单,www.gdutbbs.com就是这么一个网站,难道工大后院能通过配置文件实现?打死我都不信)。只有企业应用才这么干,也只有j2ee才普遍应用了这个设计,这必须归结在平台范畴了。



  1. 你认为系统缓存很重要,那你错了,可能你要缓存只是因为php模板需要替换进去,你的框架连快速开发都还做不到,谈性能未免太早了。
复制代码


你认为系统缓存不重要?那你错了。快速开发的问题是平台考虑的重点。如果说出“不谈性能”这个观点,那你还不是一个真正的程序员。
我的看法与你不一样,我很看重性能的问题,我做出的每一个功能首先是质量,尽可能的测试出bug并改正,然后优化到性能很好,最后才慢慢考虑外观的问题。  快速开发在我的应用当中并不是那么的重要,因为网站应用并不像企业运用那么的有规律可寻,简单的来说,企业应用的页面似乎都能归结为以下3个页面,EditView,DetailView,ListView。而网站,例如新浪网,哪个页面可以这么清爽?
回复

使用道具 举报

 楼主| 发表于 2006-10-30 06:08 | 显示全部楼层
  1. 你扔掉MVC最精华的东西,自己写几个增删查改的方法,那么你得对应每一个表重复拷贝这些方法,并且,你不得不为一个表中的外键关联去考虑增加删除的问题。
复制代码


这一点在文章中早已经解释过,扔掉M是因为在php里面不适合使用这个层。php并不像java,php的对象拥有先天性的面向对象缺陷,我们没必要这么食古不化的完全MVC化,至于增删改的问题,很简单的一个技巧就可以避免重复拷贝方法了。 至于外键关联,如您所说,我必须让设计人员考虑。


  1. 快速开发,你能看得出一个系统哪些工作是经常重复的,可以用统一的方法实现吗?
复制代码


我没有看不起“企业应用”的想法,快速开发只适合一些有规律的应用平台。 开发一套适合需求的应用平台是很吃力的,我有同学在工行里面开发,他们用的就是这样的一套平台,是工行开发人员花了好多年心血开发成功的,开发一个企业功能只要配置一下功能、写一下存储过程就实现了一个业务。


  1. 还提一点,sql语句最好不要用*代替所有字段。
复制代码


用*自然有它的好处。 没有完全不能用的理由。功能是固定的话,就不用*,例如查询网站首页某一栏目的文章,我就要标题和文章ID好了。但返回文章列表,那用*是没错的,因为返回文章列表的话,每一列都可能被使用到。


  1. 你说对了一点,大多功能都只是select一下,但你的功能能否做到多条件查询,多条件排序,能否随心所欲控制显示哪些字段?
复制代码


不知道怎么说,似乎没有做不到的吧? 难道这很难吗?
看来看去,好像又是企业应用的需求。   


下面是我对这些概念的理解,也许大家就了解了我说的是什么。

框架  =  在某一种类型的应用中总结出来的一套模式设计。例如MVC,例如三层结构。

开发平台 = 框架 + 系统库 + 用户库 + 辅助性的工具(例如VC6的窗体向导能帮你生成一个单文档页面包含MVC3个类以及界面文件) + 辅助性的支持模块(例如大家讲的能实现快速开发的、按照配置文件功能设置生成功能)

开发环境 = 开发平台 + IDE + 工具


[ 本帖最后由 sasadong 于 2006-10-30 06:09 编辑 ]
回复

使用道具 举报

发表于 2006-10-30 16:03 | 显示全部楼层
框架  =  在某一种类型的应用中总结出来的一套模式设计。例如MVC,例如三层结构。

我相对比较同意前半部分.对后半部分持保留意见...

架构确实是经验的总结,或者说是模式的总结...

我个人认为框架是更具体的东西,或者说是摸得着的东西...更具体来讲是一些实体,甚至是一些代码...而不仅仅是一堆文章和UML图形...

个人认为MVC,三层结构这些概念跟我理解上的"架构"是抽象度不同的东东...

欢迎大家继续拍砖...
回复

使用道具 举报

发表于 2006-11-13 14:51 | 显示全部楼层

严重崇拜中ing

看了楼主的文章,受益非浅。我近段时间也在学习php,也先后自学一些相关技术(smarty,css,javescript)。可惜都是自己一个人学,熬了几个月,总算慢慢看见阳光了,虽然同楼主这些高手比起来还很菜,呵呵。

php不好学,学的人不多,相关书籍也少(经常去扫荡,广工的图书馆也就那么基本,而且都是挺老的书。去了购书中心,居然偌大的广州也只有几本,而且翻两番感觉也不好。)不像asp,多得泛滥。还好,现在总算磕磕碰碰坚持了下来。
楼主是个高手,能不能收小弟为徒啊,呵呵,教教菜鸟怎么飞,希望认识更多的php朋友。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 加入后院

本版积分规则

QQ|Archiver|手机版|小黑屋|广告业务Q|工大后院 ( 粤ICP备10013660号 )

GMT+8, 2024-4-30 20:02

Powered by Discuz! X3.5

Copyright © 2001-2024 Tencent Cloud.

快速回复 返回顶部 返回列表