`
chenshuang1227
  • 浏览: 26689 次
  • 性别: Icon_minigender_1
  • 来自: 大连
最近访客 更多访客>>
社区版块
存档分类
最新评论

web开发框架以及分层

阅读更多

    前两天,我们经理总是问软件分层有什么好啊,使用那些struts、hibernate、spring又有什么好啊。这里我作为一个日志说说我自己的看法。

  当然,即使不分层,也能做出软件来,但我们应该思考怎么做才能最好?如果说分层不好,那么不分层的优势又在哪里呢??如果说分层有性能的损耗,那么性能损耗在哪里呢??如果不分层,软件工程思想中的“分而治之”的原则启不受到了质疑?

  有人说,分层是为了减少代码量,如果分层是为了减少代码量,那怎么能减少,代码的重用也许会减少一些,但是程序更多的是业务,我们关心的也只是业务,试问分层的意义就是为了减少代码量?

以下是我的观点:我的一般分层思想是:action、service、dao。如果将来业务有什么变动,只需要关心service就可以了,有人问为什么。如果你说dao经常需要变动,那意味着你数据库经常需要变动,很显然,是你设计有问题;如果你说数据库连接之类的异常,那是你应该怀疑你自己的编程能力,因此dao是不会有变化的。在看action,action就是一个控制器,调用service和将service处理的结果返回前台,会改变吗?显然也不会。最后就是service,如果出问题,基本上可以直接定位到这里。如果不分层,那将会是灾难性的后果。<o:p></o:p>

  我们经理的观点做web开发很简单,提交标单-〉响应-〉后台处理-〉返回。难道真的就这么简单吗?还认为使用一个框架之前必须知道他好在哪里。以下是我的看法:

  如果web开发真的那么简单,要这些框架做什么?如果你能在不使用这些框架的情况下开发出自己的好框架而且项目能按时完成,如果你能说你能做到,那恭喜你,你可以不用。如果你在使用每一个框架之前都要说他好在哪里,那你还是不要用好了。早期CGI出来的时候,人们觉得他好;后来servlet出来的时候,觉得编程简单,否定了CGI;再后来JSP出来了,可以在页面写代码,避免了很多重复性的工作,于是否定了servlet;再后来自定义标签出台,觉得在JSP写太多java代码,不太好;后来看到ASP.NET的组件化技术很好,于是JSF出来了,人们说他好;再后来Spring MVC框架设计的完美,说他也很好;再后来webwork和servlet API相分离,又说他好;最近struts2流行起来,又说他好。如果当你能说出他到底好在哪里,也许这个技术已经不再是他的核心优点。

  我认为实践是检验真理的唯一标准,既然有很多人有成功的案例,我们为什么不去使用这个东西。不要忘记,生产率是我们一直追求的目标。但是不排除市场上有炒作的成分,比如说dojo。这个东西你要是说他的优点,你最少可以说出50个,但是谁在实际项目中使用?也许有,但至少我没有看到是怎么用的,我尝试过dojo的0.4版本,性能的问题实在叫人无法忍受。我觉得dojo就有市场炒作的成分。比如说hibernate,也许有很多人知道他的优点,即使你不知道,你完全可以使用,因为成功的案例太多了,性能更是没得说。如果你认为hibernate不应该使用,那EJB3.0你是不是也觉得不应该使用了呢?

   总之我的观点就是:软件分层是必须做的。至于框架,不应该问用不用,而应该问用什么?要选用实践检验过的框架,毕竟实践是检验真理的唯一标准。

 

分享到:
评论
14 楼 hyhongyong 2007-10-25  
分层技术是为了简化复杂性,如果是复杂的系统当然要考虑分层。
框架可以选择通用的框架,适当的时候配套开发一些自己的工具。自己做框架,除非领域很特殊,公司能力强。
13 楼 malionzjt 2007-10-25  
现在JAVA的WEB技术年年更新,如果追着技术跑,你永远都跑在技术的后面
掌握基础最重要,你们经理说的不能说是错误
一个公司如果是外包性质的或者是仅仅短期类项目的话,掌握一种大家都熟悉的框架无疑是最正确的,可以减少技术难度和开发周期
但是从长远角度看,公司要根据自身所在的领域,开发适合自身的框架结构,否则开发方式和开发架构都无法做到规范化,这也将影响对员工的评级等一系列问题
12 楼 horror 2007-10-25  
我很喜欢你的观点,实践最能体现
11 楼 horror 2007-10-25  
讲的实在太好了!!!~非学同意思
10 楼 chenshuang1227 2007-10-25  
引用
Web开发进行分层,主要是由项目的复杂程度而定的。每一层之所以能够成为一层,都和项目的具体情况而定。

所谓的表示层、业务逻辑层和持久层的划分,是众多软件前辈根据多年的经验总结出来的最佳实践。要说理由,可以说上3天3夜也说不完。这和项目的大小没关系,而是一个综合的考虑。当一个项目非常简单,也无需什么扩展性,你硬要引入那么多的框架,分那么多的层次,那就是没事找事,对吧。


完全同意这样的说法,但是现在的软件开发要求没有扩展性我觉得太少见,但我个人认为项目的大小也存在着一定的制约,如果项目很大,不分层的话,后果是不可设想的。毕竟开发阶段分层的目的就是为了分工明确,如果一个比较大的项目没有分工,后果也是不可想象的。当然可以按照模块进行划分,但公司是为了提高生产力,随着xp开发的流行,我们需要权衡是按层划分职责还是模块。
9 楼 downpour 2007-10-25  
Web开发进行分层,主要是由项目的复杂程度而定的。每一层之所以能够成为一层,都和项目的具体情况而定。

所谓的表示层、业务逻辑层和持久层的划分,是众多软件前辈根据多年的经验总结出来的最佳实践。要说理由,可以说上3天3夜也说不完。这和项目的大小没关系,而是一个综合的考虑。当一个项目非常简单,也无需什么扩展性,你硬要引入那么多的框架,分那么多的层次,那就是没事找事,对吧。
8 楼 瞬间爱情 2007-10-25  
谢谢,学习中
7 楼 chenshuang1227 2007-10-25  
引用
其实各种设计模式都是在解决一个问题-解耦


说的一点没错,这就是我们选用框架的标准之一。传统的ASP将所有代码写在页面中,对于小的项目而言,是可以实现功能的,但对于大的项目而言,那将是灾难性的。更何况后期维护也是我们必须考虑的因素。
6 楼 chenshuang1227 2007-10-25  
引用
事实上,真正能深刻理解这个过程的所谓B/S程序员并不多。

----
另外,这种争论其实很无聊,不用/用了又怎样?

还不是整天有人争论这个好,那个不好?
还不是天天都有新的框架不断涌现,长江后浪推前浪,前浪死在沙滩上?
还不是被所谓的IT巨头忽悠来忽悠去?


---------------------------------------------

照你这么说,那什么也别用了,直接开发一个tomcat或者jboss,然后自己发明一种语言去做。如果没有IT巨头的话,那我们今天就不是程序员,而是在街上乞讨。如果程序员连B/S的基本过程也不了解的话,我相信没有一个公司愿意要的,也就不存在web这样的web程序员。
5 楼 Julian 2007-10-25  
其实各种设计模式都是在解决一个问题-解耦
4 楼 myy 2007-10-24  
我们经理的观点做web开发很简单,提交标单-〉响应-〉后台处理-〉返回。
--------------------------------------
我也同意这个观点。

事实上,真正能深刻理解这个过程的所谓B/S程序员并不多。


----
另外,这种争论其实很无聊,不用/用了又怎样?

还不是整天有人争论这个好,那个不好?
还不是天天都有新的框架不断涌现,长江后浪推前浪,前浪死在沙滩上?
还不是被所谓的IT巨头忽悠来忽悠去?
还不是被客户的变态需求搞的死去活来?

yishengtanxi......
3 楼 leeking 2007-10-24  
规范的东西好处会很多的.
2 楼 imjl 2007-10-24  
我赞同你们经理的观点。

公司开发的必须是经过反复测试和明确把握的东西。





1 楼 duan0175 2007-10-22  
同意楼主的,实践是检验真理的唯一标准,框架要在实际应用中用了才知道的

我们用的是ibatis感觉也不错

顶一个!

相关推荐

    强大的Web开发框架

    3、 分层结构设计:框架严格按照MVC模式设计开发。 a) 能帮助企业迅速发挥团队开发优势,合理分工协作(能迅速将Web表现层开发,业务逻辑组件开发,系统设计合理分离)。 b) 标准的三层结构模型,为系统的稳定、高效...

    Spring是一个主流的轻量级的Java Web开发框架,是分层的Java SE/EE full-stack轻量级开源框架

    Spring是一个主流的轻量级的Java Web开发框架,是分层的Java SE/EE full-stack轻量级开源框架

    Web开发,浏览器分层

    详细介绍了浏览器框架分层的使用,有实例,简单实用。欢迎下载。

    基于.net Framework471搭建的WebAPI简单框架配套demo

    内容概要: 通过带着读者手写WebApi框架,了解 WebApi核心原理。...此资源以开发WebApi框架,最基本的DDD领域分层,让初学者对DDD的一个切面有所了解,同时内置了详细的运行说明,只需本地部署数据库即可运行。

    基于.NetCore开发WebApi,WebApi框架

    基于.NetCore3.1搭建webapi框架。涉及知识有: 1.swagger API接口文档生成 2.多层(包含接口调用方式)高性能数据处理结构 3.数据仓储模式的实现 4.JWT token身份授权验证 5.appsetting.json文件集成读取配置

    Java高手真经_应用框架卷_Java_Web核心框架.part1.rar

    本书内容循序渐进,通俗易懂,覆盖了java web开发的最流行框架技术。无论对于java软件设计还是软件开发,本书都是精通开发java web应用的必备的实用手册。 本书适合作为java相关培训机构的教材,也可作为java自学...

    最效率的.NET网站开发框架

    可以作为一套JQuery开发组件或者是嵌入式开发框架,与其他任何的web开发框架、解决方案相结合. 前台公共插件库,包含一套JQuery应用开发插件(类似JQuery UI,JQuery EasyUI)和各种JS公共支持库. 插件基于ms的tmpl模板...

    Java高手真经_应用框架卷_Java_Web核心框架.part3.rar

    本书内容循序渐进,通俗易懂,覆盖了java web开发的最流行框架技术。无论对于java软件设计还是软件开发,本书都是精通开发java web应用的必备的实用手册。 本书适合作为java相关培训机构的教材,也可作为java自学...

    Java高手真经_应用框架卷_Java_Web核心框架.part2.rar

    本书内容循序渐进,通俗易懂,覆盖了java web开发的最流行框架技术。无论对于java软件设计还是软件开发,本书都是精通开发java web应用的必备的实用手册。 本书适合作为java相关培训机构的教材,也可作为java自学...

    RESTful服务快速开发框架Rabbit.js.zip

    Rabbit.js 的定位是一个超轻量的快速开发框架。Light and Fast。你甚至很快就可以理解它的底层实现(也许只需要5分钟)。Rabbit.js本身的代码量并不大,这得益于很多NodeJS开源库的支持,通过 一些有效的组合,成为...

    基于Python的Flask WEB框架实现后台权限管理系统.rar

    一款 Python 语言基于Flask、Vue2.x、ElementUI、MySQL等框架精心打造的一款高性能的前后端分离架构敏捷开发框架,可快速搭建前后端分离后台管理系统,本着简化开发、提升开发效率的初衷,框架自研了一套个性化的...

    基于Vue.js框架的Web前端开发工具的设计与实现

    伴随Web开发技术的不断发展,前后端分离开发逐渐成为主流的开发模式,前端开发在整个开发流程中越来越重要,前端开发工作早已不是编写几个简单的静态页面就可以完成的,前端除了需要展示美观的页面,还需要实现...

    全端Web开发:使用JavaScript与Java 非扫描版 高清带书签

    通过阅读本书,你将会:了解客户端和服务器端分层的好处,包括代码组织和快速原型开发; 探索JavaScript开发中用到的各种主流工具、框架和起点项目; 深入学习Web API设计和REST风格的软件架构; 了解有别于传统打包...

    Efs Frame企业级开发框架asp 2.0源码.rar

    Efs Frame企业级开发框架2.0源码 EfsFrame企业级框架--.Net开发实例模型源码 Efsframe框架特点如下: 1、完善的Web表现层开发包:为企业Web表现层开发人员提供的一套完整、高效、美观的B/S结构设计表现层解决方案...

    基于Django框架的敏捷Web开发

    自从基于MVC分层结构的Web设计理念普及以来,选择适合的开发框架无疑是项目成功的关键性因素。无论是Struts、Spring或是其他Web框架的出现,目的都是为帮助开发者把所有的编码工作打理的井井有条、赏心悦目。在动态...

    一套使用sqlsugar的企业级web应用框架

    该程序是一套集成了管理软件系统前后台框架,底层使用了国内孙凯旋开发的sqlsugar数据模型框架,该框架吸收了EF中使用lambda表达式的查询方式,同时性能上与手写sql的Dapper框架同样高效,可以说是.net数据模型里最...

    SKPHP轻量级开发框架 2.1.zip

    SKPHP是一套为WEB梦想家创造的轻量级开发框架(PHP Web Framework),遵循Apache2开源协议,采用分层体系架构实现“高内聚、低耦合”,适合大中型网站架构。她以“最简单、最高效、最安全”为理念,在提高团队开发效率...

    Efs Frame企业级开发框架源码

    3、分层结构设计:Efs框架严格按照MVC模式设计开发。 a) 能帮助企业迅速发挥团队开发优势,合理分工协作(能迅速将Web表现层开发,业务逻辑组件开发,系统设计合理分离)。 b) 标准的三层结构模型,为系统的稳定...

    EacooPHP:EacooPHP是基于ThinkPHP5开发的一套轻量级WEB产品开发框架,追求高效,简单,灵活。具有灵活的应用和插件机制,模块式开发,大大降低了开发成本

    EacooPHP v1.3.2介绍EacooPHP是基于ThinkPHP5.0.21开发的一套轻量级WEB产品开发框架,追求高效,简单,灵活。支持EacooPHP的用户请给我们一个star使用EacooPHP框架开发定制您的系统前,建议熟悉官方的tp5.0完全开发...

    Java高手真经 应用框架卷 源码

    《Java高手真经(应用框架卷):Java Web核心框架》内容循序渐进,通俗易懂,覆盖了Java Web开发的最流行框架技术。无论对于Java软件设计还是软件开发,《Java高手真经(应用框架卷):Java Web核心框架》都是精通开发...

Global site tag (gtag.js) - Google Analytics