作为一个新手的疑问?是否框架的目的是不一样的?thinkphp框架感觉目的是是简化代码提高码农工作效率,然而java的经典框架组合SSH感觉没有简化代码,提高码农工作效率,只是不停的分层,配置,只是看起来充满设计感。
回复内容:
看来你还需要好好看看SSH
有的语言天生为web而生,比如PHP。有的语言提供web方面的相关东西但不天生,比如Python/Node
天生的这种没有框架就能容易的写一个小网站了,非天生的这种需要稍微的封装才能让大家觉得不是很恶心的写一个小网站
框架大体分为两种,一种是大而全,比如rails,django;一种是小而精,比如express(不是官网那个生成器),koa。
大框架需要成熟的体系与庞大的社区支持,即对常用场景都有成熟的解决方案,这样才能活下来。一般包含路由,渲染模板,model 映射,ORM,session,socket 方案解决等常用的东西。基本上只要遵循框架规则即可
小框架只提供基础 server 搭建,甚至连路由,渲染模板等都会去除。想要使用可能需要官方或者民间的一些中间件,当然这不能说是属于框架本身拥有
在上个时代,都是服务器渲染,当然这也很符合正常人思想,所以框架在路由,模板引擎方面不能有太多割舍。现在比较推崇前后分离,数据渲染可以直接交给前端,路由控制也是,这个时候框架就可以割舍这两个东西,如果比较懒,提供好中间件的接口就不用管其他的了
框架设计初衷应该有很多吧,但是常见的就那几个,一个语言热的也不会有几个。比如python的django大而全,flask精而简; ruby 的存在或许真的是因为 rails; Node 的express koa 精而简, 国内奇舞团团队的 thinkjs 则提供了一整套的解决方案
解决的都是封装,拆分,划模块,组件,兼容的问题吧
解耦合,分层是为了让程序员面相接口编程,而不是面向实现。
如果你指的是SSH与ThinkPHP的目的是否相同,我没接触过ThinkPhp,不太好说。但个人觉得,所有框架的目的应该都是相同的:1、封装,简化开发 2、解耦,可复用,易修改维护
如果你指的是SSH这三个框架的目的,那的确是不同的。你后面自行学习会有体悟的。
Anyway,清楚要记住一项技术或框架的目的是什么,出发点是什么,才不会学着学着就迷糊了。
(本来要上传一张 装完逼就跑真特么刺激 的表情图,结果一看知乎的图片规范,吓cry了。。。
请自行联想熊本熊的那张图。。。)
举一个简单的小栗子【
不黄!!!不黄!!!不黄!!!】:
有一天,你突然想来一场说走就走的大保健,可是世界上的大保健这么多,该去哪儿呢?
嗯,问问老司机,老司机义正言辞:东莞!
并举出一大堆诸如服务好、质量高、一条龙巴拉巴拉等各种优点!
好吧,你跋山涉水奔赴东莞!
可是到了东莞之后,是去小巷子里淘宝?是去小旅馆里捡小卡片?还是去大场子里一条龙?
嗯,问问老司机!
老司机恨其不争:你可是有理想、有道德、没节操,肩负着崇高使命的优质少年郎,是要去见识大场面的!
好吧,去大场子!
可是这么多大场子,去哪一个呢?
老司机微微一笑:去TSRJ呀,巴拉巴拉一大堆优点!
来到了华丽的TSRJ大场子,美丽的前台妹妹通过大数据平台知道你是第一次光临,非常友好的给了你一份大保健菜单:
看着菜单,你欣慰的笑了,温柔的对前台妹妹说,我都要!
___________
后记你也可以这么理解:
1. 想去大保健 == 想做一个网站
2. 大保健的地方这么多,该怎么选 == 做网站的编程语言这么多,该怎么选
3. 问问老司机 == 问问老司机
4. 东莞 == PHP
5. 为什么选东莞 == 为什么选PHP
6. 服务好、质量高、一条龙 == 简单、粗暴、一条龙
7. 去小巷子里淘宝?是去小旅馆里捡小卡片?还是去大场子里一条龙! == 使用原生PHP?封装一些常用方法?还是使用框架!
8. 大场子那么多,该怎么选 == 框架那么多,该怎么选
9. 选TSRJ == 选ThinkPHP
10.给你一份大保健菜单 == 给你一份祖传的新手文档
11.[图]中各服务项 == ROUTE、MVC、ORM、CACHE...
12.我都要! == 我都要!
以上!
通常框架的目的是可复用,接口化,就相当于一个个组件,代码层面上已经比正常编码要少很多了,试想一下,假设j2ee模式中没有合适层面的框架进行组装,那样的代码量有多大呢?