字体:  

框架、模板化开发真的那么重要么?

七月十五 发表于: 2007-9-11 16:52 来源: PHPChina 开源社区门户

经常听到这样的论调:基于什么框架开发,基于什么模块开发,开发速度快,时间短,产品成熟。
于是乎就编程开发对此趋之若鹜。模板与框架之便捷,仿佛可以用鼠标拖拖图标就可以完成件伟大的作品。
然后就一直借用这些模板,框架开发相似的程序。
我这里并不想说框架是坏事。而是说,应该去有开发特色的程序,要有创新。

毛润之先生说过:“没有调查没有发言权。”敝人没有用过通用的框架,所以,本为没有资格在这里对模板、框架评头论足。
但吾所见优秀的程序,基本不是基于某某一框架,某某一模块做出来的。这样的例子太多。
程序开发创新是很重要的,往往一个思想的创新或一个创意的发明会打开一片领域。而新的事物基本用现有的模板框架是不足以量身体现的。需要全新的去开发,之后形不形成这个思想或这个发明的模板框架那是另外一回事。

最新回复

pylong at 2007-9-11 17:06:50
偶的领导说,这些东西,知道就行
Ben at 2007-9-11 19:32:09
你所见的优秀程序始发于何年何月?有些东西之所以是那样是有历史原因的,但这并不说明现在就一定要那样。

另外,估计你说的优秀程序是以面向广众销售的“通用软件”居多。但还有其他类型的软件的~
xiaojia at 2007-9-12 08:24:38
环境不同,所需的开发模式也不同
sanler at 2007-9-12 22:43:44
个人感觉满足需要就好
对一些小项目而言,没有必要用框架
另外每个有经验的程序员都有自己的代码集可以加快开发
框架和模块化主要体现在多人共同开发一个项目,统一标准,便于协同
cator at 2007-9-12 23:01:08
小型网站要不要用这些就看作者喜好了,但是中大型系统个人建议要采用比较符合需求的架构/模式开发,这样不管是开发逻辑还是以后的维护修改都会方便很多,而且程序员的流动不会导致系统无人维护之类的情况
xjxaixxy at 2007-9-13 09:11:09
开发还要计算成本, 举个例子, 大多数开发3D的游戏厂商,都不会自己去开发个3D引擎, 成本高,而且开发出来的并非好用,风险太大
萤火虫 at 2007-9-13 11:01:00
我认为PHP最吸引我的地方就灵活、快速、直接。我是不看好任何PHP框架的,我在java世界用过框架也创造过框架……总而言之我即使喜欢也是喜欢那种有风格,快速、高效、灵活、好用的框架。

PHP做程序我们做的是什么?我们谁也不会说明天给我们的程序换个表现层,前端用客户端的某某程序显示,不再是基于浏览器基于web了~~没有这种需求吧?既然没有为啥要搞MVC分层?分层是为了解耦是为了隔离~~既然没有变化点还要分层那就是自找麻烦。java之所以层是因为java ee在设计的时候就是这样考虑的……没有办法的。这也是它被ror攻击的体无完肤而无法还击的原因。

PHP不需要MVC,PHP不需要java的那些。PHP就是PHP,高效、方面、简单,就够了。保持Unix的风格——简单实用。
Oceanfire at 2007-9-13 12:39:11
我的理解,框架的用途一个是提高效率,另外一个就是方便协同工作。
每一个有经验的程序员都会有一个程序集,我感觉这就算是一个框架,一个简单的框架。当你需要实现一个经常用的功能的时候,就会去调用这个程序集,而你开发一个项目的时候也会有一个自己的模式,使用框架不也就是这样一些事情吗?
但是使用自己的框架,除非你是一个高高手,否则我想安全和性能方面的事情你不可能做得很完善,至少为了他们你要花费大量的精力。而使用一个发布的框架,特别是经过开源社区千锤百炼的框架,不知道大家什么想法,但是我是会很安心的使用,不用担心安全和性能。好的框架也会有完善的插件接口,可以很好的整合进自己的一些改善程序。
以上的论述都是说单兵作战的,国内的程序员单兵作战都是很强的,所以他们可能看不上别人的框架,但是当一个团队要协作的时候,一个大家都熟悉的框架应该是很好的帮手,大的公司有实力去开发自己的框架,制定自己的文档规范,那我们小团队怎么办?最好的方法就是用现成的,“别去重复的制造轮子”我想不光是写“Hello World”的时候需要注意。中国程序员的团队协作很差已经是一个人人诟病的恶习了,希望我们大家能努力除掉这个恶名!

[ 本帖最后由 Oceanfire 于 2007-9-13 13:49 编辑 ]
sanler at 2007-9-13 12:40:15
呵呵,这个很难说,不过我认为至少模板还是要学一下
七月十五 at 2007-9-13 19:30:33
俺的意思是创新为要,模板当然也是好事,只是一概用既定模式模板去开发千篇一律的程序,就失去了程序设计的意义……
萤火虫 at 2007-9-13 19:47:30

QUOTE:

原帖由 Oceanfire 于 2007-9-13 12:39 发表
我的理解,框架的用途一个是提高效率,另外一个就是方便协同工作。
每一个有经验的程序员都会有一个程序集,我感觉这就算是一个框架,一个简单的框架。当你需要实现一个经常用的功能的时候,就会去调用这个程序 ...
这里有几个问题:
1.开源社区的代码的质量并不是很高,特别是一些初期的版本,质量是比较差的,而且改动频繁。一般来说1.0之后就相对比较稳定了。
2.框架的作用是束缚人的思维,让一百个人严重的哈姆雷特变成一个人(框架设计者)眼中的哈姆雷特。你说的那个不是框架而是一组工具集够不上框架的分量,框架是一种横向的设计,而工具集是一种纵向的设计。框架设计的时候要考虑的是怎么让别人往里面填东西的时候方便,怎么让他们的做法统一起来。而工具集的设计是考虑接口的灵活性。虽然框架也考虑但是这不是重点。
3.一个好的框架是能够束缚人的思维让人民做一些机械式的劳动。但是如果一些东西本身就已经很像框架就没有必要做一层包装了。对于一个web程序来说做的最多的就是从数据库里面读数据显示出来,从页面中得到数据放到数据库中。而我上面提到PHP天生就是为web准备的所以做些事情任何一个程序员都能写出一些sql语句来,也就说纵向的已经非常的简单唯一了你甚至找不到第二种做法~。java要框架是因为java ee在设计的时候就是考虑到各个不同地方都有变化这个需求,也就是说java本来就不是为web准备的,只不过恰巧是一个web表现的而已。所以要处处做分离,你不分离java ee还会惩罚你。
4.分工的问题,一般对于一个基于web的应用来讲就两种工种——美工,程序员(DBA之类的暂不考虑。)这已经不需要再分了,程序员大家都是用PHP,大家的对待一件事情的做法又都是一样的,那么就没有必要分工了。java程序员来讲也很少有分工非常细的。
姜运涛 at 2007-9-13 21:49:53
楼上的各位同样是在把自己的思想强加于人
对一过两样东西应该看个人喜好,加上项目的需求
没有一个固定的答案说谁好谁不好的
netwenk at 2007-9-13 23:12:40
不管是否强加与人,有想法总归是好的!

至于框架嘛!个人理解不一样!而且项目的需求也不一样

有过开发经验的人都知道,开发并不难,难的是后期的维护以及二次开发!
netwenk at 2007-9-13 23:14:41
姜运涛貌似认识你啊!哈哈!村子里的吧
wangchun at 2007-9-13 23:27:27
爱用就用,不爱用就别用,我就不用,别说你框架搞开发块,不用更块,别说你框架维护简单,不用更简单。很多人以为写几个class就牛逼了。能简单的事情干嘛要做复杂。
萤火虫 at 2007-9-14 12:03:03

QUOTE:

原帖由 姜运涛 于 2007-9-13 21:49 发表
楼上的各位同样是在把自己的思想强加于人
对一过两样东西应该看个人喜好,加上项目的需求
没有一个固定的答案说谁好谁不好的
这里也是有问题的~
好的框架能让一个入门级别的小鸟写出像大鸟一个的程序,这正是框架迷人的地方。但是还是要重复那句话PHP本身就是一个框架,只要理解了其中的一些陷阱就不管是什么鸟写出的程序几乎是差不多的。
七月十五 at 2007-9-15 14:21:52
感觉框架就像楼上说的,把房子的主承重骨架给你,然后程序员往里面添砖加瓦抹灰加水。
俺没用过框架,不知道是不是胡扯
tl12 at 2007-9-17 08:59:31
其实框架,聪明的人都知道那只是一个固定的模式,看起来并不自由.但是实用,这点不假,至于在什么情况下用框架,还得看你所在的环境而定,了解了解就行了.不管什么样的语言,崇尚的是自由与创新,实用.大家不必为这个问题而争执不休.
特蓝克斯 at 2007-9-17 11:58:14
框架也就是所谓一种设计模式,根据本身的规则更简单完成项目的开发。

当然了这种模式也给你框的很死,相反的也提供了很多helpers和CRUD等的操作

最主要的还是看你实际的工作需求,在讨论PHP框架的好坏,有意义吗?
挠痒痒 at 2007-9-17 12:19:53

QUOTE:

原帖由 萤火虫 于 2007-9-13 19:47 发表


这里有几个问题:
1.开源社区的代码的质量并不是很高,特别是一些初期的版本,质量是比较差的,而且改动频繁。一般来说1.0之后就相对比较稳定了。
2.框架的作用是束缚人的思维,让一百个人严重的哈姆雷特 ...
回答上述的问题:

1.不知道你这句“开源社区代码质量不高” 是从哪里得出的,LAMP阵营最大的特点是什么?难道不是开源么? www.apache.org 里面的哪个开源项目质量很差?
2. 如果你觉得框架只是在统一做法只能说明你还是部代码机器,现代的软件工程告诉我们软件的最大开销已经不是一期开发了而是后期的维护升级,为什么要分层?为什么要解耦合?为什么会有框架的出现?框架真是一种横向设计么?仔细钻研过Spring么?
3. PHP如果想走的更远 分层是一个大趋势。为什么asp会被淘汰?当你看到一大堆逻辑脚本和页面脚本嵌套在一起的时候 难道没有一种想抓狂的感觉么?J2EE不是为Web准备的,难道J2EE的优势在C/S?需求是无穷的我想这点对于PHP也是一样的,没有一个良好的设计后期维护的成本开销就会非常大。
4. 最后一点讲讲你说的分工,不知道你们公司规模有多大或者你们的项目有多大。真正的大公司分工其实是非常细化的。在这里还想纠正一个概念J2EE Coder 和 JAVA Coder严格意义讲是不一样的。

PHPer应该多去java社区看看,一个没有思想的Coder永远都只是一部机器。
有时间了 多看一些 设计模式 重构 和 极限编程 方面的书籍。:)