`
cgwangjun
  • 浏览: 8233 次
  • 性别: Icon_minigender_1
  • 来自: 北京
最近访客 更多访客>>
社区版块
存档分类
最新评论

通俗地解释什么是“框架”什么是“开源”

阅读更多
前言:我是 Python 的爱好者,热衷于 django 框架。昨日,一同学问我什么是“框架”,在框架领域“开源”如何理解。汗!一时不知怎么回答。今天用比较浅显的语言描述了一下,生怕有什么错误,故来此请各位长官挑挑毛病,以待完善。
      因为是 Python 的爱好者,故发贴在此,更是希望有 Python 方面的相关建议。


什么是框架?

学了好多框架,Spring Struts Hibernate Rails Pylons django ...

学习了《开源Web》后,我终于可以拿俗话来解释一下:

举例(西方文化体系老这样干,我也这样干):

Spring 的框架 前被 Struts 干,后被 Hibernate 搞,拿其核心机制 IOC 来说一说吧。
IOC就是一个小沙盒 包在 java 平台沙箱内的又一层
平常写的java代码,不管再多,一个功能写到底,哪个类用了哪个类,接口在哪里实现总有一天搞不清楚,找不出来。
于是,Spring(框架)出现了,前踢view,后踹data,中间抱着Controller,于是结构明白了,世界清静了。
具体view写什么,data怎么实现,Controller填些啥就按规则写就好了,XML一配置。Over.

什么是开源?
Spring是开源的,其框架提供出来,同时框架本身的实现源码在官网上也都搜得到,OK,哪怕是框架实现出了错,我们也可以从框架源码里找出来。(不过很少有人这样干,毕竟IT民工一般不管这个)
反观dotnet,它分了层,要求你做什么不做什么,不告诉为什么,这也就是编了四五年dotnet仍然不懂各部分关系的民工存在的原因。


于是,就明白了,没有框架,程序照写。
配合、维护、提速,这些,没有框架支持还真不行!

想做民工、民工头、监工长、架构师、包工头儿,任你挑!
分享到:
评论
7 楼 cgwangjun 2009-04-28  
嗯,将框架比喻比半成品,很贴切!
6 楼 dogstar 2009-04-27  
phyeas 写道
框架就是填空题,填上答案句子才完整。

开源就是开卷考试,自己翻书去吧,能不能翻到就看你本事了


赞同

非开源框架,就是闭卷天空考试题.
5 楼 pennyee 2009-04-27  
框架是一个应用程序的半成品
4 楼 cgwangjun 2009-04-26  
嗯! 哈哈! 相当透澈!
3 楼 phyeas 2009-04-26  
非开源就是闭卷考试,累死累活地把题目看完了,然后还要蒙一个答案,至于对不对还是要交给老师去评判
2 楼 cgwangjun 2009-04-26  
"开源就是开卷考试,自己翻书去吧,能不能翻到就看你本事了" 应该不是这样理解吧? 不然,“非开源”怎么样解释呢?
1 楼 phyeas 2009-04-25  
框架就是填空题,填上答案句子才完整。

开源就是开卷考试,自己翻书去吧,能不能翻到就看你本事了

相关推荐

    84PHP开源框架 v1.1.0

    我们尽可能的使框架入门简单、通俗易懂,在参考了国内外框架的前提下,没有使用MVC模式去建立框架,就是为了能够让框架使用起来更加友好。我们正在开发可视化的PHP编程应用,同时也将录制基于本框架的PHP入门视频...

    SSH框架简单例子,通俗易懂

    SSH框架,全称为Struts2、Spring和Hibernate的组合,是Java Web开发中常见的三大开源框架集成。这个框架集合提供了模型-视图-控制器(MVC)架构模式,以及依赖注入(DI)和面向切面编程(AOP)等特性,极大地提高了...

    thinkphp 5.0开源商城系统,开源多用户系统

    Thinkphp因其优秀的架构设计、通俗易懂的教程以及超级强大的操作数据库而成为国内最流行的一款开源框架,而为API开发而生thinkphp 5的发布更是受到广大企业及开发者的欢迎,WSTMart电子商务系统是商淘软件下第一款...

    KBYCMS开源框架快速开发网站

    开源内容管理系统底层基于最新版本的ThinkPHP6.0框架,致力于为企业建站提开源的内容管理系统,具备优秀的扩展及二次开发能力,可适应于企业轻量型的系统开发及部署。文件结构清晰简洁,通俗易懂,方便建站,文件结构...

    ChatGPT商业源码 支持二开 全开源 PHP版本的源码.zip

    3. 魔改支持:这里的“魔改”可能是对源码进行深度定制或大幅度修改的通俗说法,强调源码能够适应各种复杂的个性化需求,而不只是简单的功能调整。 总的来说,ChatGPT商业源码提供了一个基于ThinkPHP的、灵活可定制...

    Tensorflow 实战Google深度学习框架(中文带目录)

    TensorFlow 是由 Google Brain 团队开发的一款开源机器学习库,它被广泛应用于各种深度学习任务,包括图像识别、自然语言处理、推荐系统等。本教程将深入探讨 TensorFlow 的核心概念、基本操作以及在实际项目中的...

    c# .net core 3.1 好用的通用后台管理 前后端分离框架

    前后端分离框架,基于.NET5/.NET6实现的通用权限管理平台。整合最新技术高效快速开发,前后端分离模式,开箱即用。 代码量少、学习简单、通俗易懂、功能强大、易扩展、轻量级,让web开发更快速、简单高效(从此告别...

    PHPOA协同OA办公软件开源版源码 PHPOACollaborationOA.rar

    PHPOA协同OA办公软件开源版源码 ... 10、简练易用:PHPOA在产品的易用性设计上十分重视易理解性,通俗易懂,不需要太多培训,OA就能被用户很好地理解。 三、注意事项 1、开发语言为PHP,数据库为MySql

    JavaScript入门教程(初学者不可多得的优秀入门教材,通俗易懂,专业术语通俗化).doc

    4. **社区活跃**:拥有庞大的开发者社区支持,丰富的开源库和框架使得开发者能够更高效地完成项目。 5. **适应性强**:随着技术的发展,JavaScript也在不断进化,如ES6引入的新特性进一步增强了其功能。 #### 二、...

    深度学习 , 大神级写的入门ppt, 通俗易懂

    深度学习入门ppt,通俗易懂 深度学习(Deep Learning)是一种机器学习方法,它是基于人工神经网络的机器学习算法。深度学习的主要任务是学习数据的表示形式,以便于更好地进行分类、检测、识别等任务。 深度学习的...

    通俗易懂、风趣幽默的Java学习指南

    这份"通俗易懂、风趣幽默的Java学习指南"旨在帮助初学者和有经验的开发者更好地理解和掌握Java技术,无论你是刚刚接触编程,还是希望深化对Java的理解,都能从中受益。 一、Java基础 Java的基础部分包括语法、数据...

    gef 资料 通俗易懂

    Gef框架是开源的,由社区驱动,它通过增加许多有用的功能,如颜色编码、自动完成、命令历史记录、上下文敏感的帮助等,极大地提升了GDB的用户体验。它的设计目标是简化调试过程,使开发者能够更有效地定位和解决...

    thinkphp5多商户开源商城,thinkphp案例 支持支付宝微信支付

    Thinkphp因其优秀的架构设计、通俗易懂的教程以及超级强大的操作数据库而成为国内最流行的一款开源框架,而为API开发而生thinkphp 5的发布更是受到广大企业及开发者的欢迎,WSTMart电子商务系统是商淘软件基于...

    oracle学习文档 笔记 全面 深刻 详细 通俗易懂 doc word格式 清晰 连接字符串

    oracle学习文档 笔记 全面 深刻 详细 通俗易懂 doc word格式 清晰 第一章 Oracle入门 一、 数据库概述 数据库(Database)是按照数据结构来组织、存储和管理数据的仓库,它产生于距今五十年前。简单来说是本身可视...

    基于SSM框架的家具销售商城的设计与实现.rar

    例如提供一些开源代码、设计原理和电路图等有效的资料,而且本设计简单, 通俗易通,易于学习,为不同使用者提供学习资源,方便快捷, 是一种有效且实用的,同时也是一份值得学习和参考的资料。

    Spring概述及入门

    本书首先是一本通过通俗案例讲解Spring的教程;同时也是一本深入挖掘Spring及相关框架结构、设计原理;更是一本探讨J2EE软件开发中的艺术的书。本书还想讲述一条开源框架设计中金科玉律:思想决定一切,万变不离其宗...

    深入Spring 2:轻量级J2EE开发框架原理与实践

    本书首先是一本通过通俗案例讲解Spring的教程;同时也是一本深入挖掘Spring及相关框架结构、设计原理;更是一本探讨J2EE软件开发中的...本书还想讲述一条开源框架设计中金科玉律:思想决定一切,万变不离其宗。

    苦菊OA软件_大型PHP开源OA系统.zip

    苦菊OA办公系统是适用于中小型企业的通用型协同OA管理软件,融合...苦菊OA在产品的易用性设计上十分重视易理解性,通俗易懂,不需要太多培训,OA就能被用户很好地理解。 更多产品了解与下载:http://www.831209.net/

Global site tag (gtag.js) - Google Analytics