浅说编程中的框架

简介:   买房子常听到“这房子是砖混结构还是框架结构?”的问题。框架结构的房子,是先用混凝土或钢材将梁和柱等连接起来构成承重体系,然后再用空心砖等材料在需要的地方填充起来做成墙。这种结构的建筑施工的周期短,房子的质量好,大型的建筑常用这种结构。我们观察工地发现,工人盖楼房就是在搭框架,好像哪个楼都差不多,但经过后期的分隔和装修之后,建筑的功能却又各异。这些不同的功能,依赖于搭好框架以后的工作。 

  买房子常听到“这房子是砖混结构还是框架结构?”的问题。框架结构的房子,是先用混凝土或钢材将梁和柱等连接起来构成承重体系,然后再用空心砖等材料在需要的地方填充起来做成墙。这种结构的建筑施工的周期短,房子的质量好,大型的建筑常用这种结构。我们观察工地发现,工人盖楼房就是在搭框架,好像哪个楼都差不多,但经过后期的分隔和装修之后,建筑的功能却又各异。这些不同的功能,依赖于搭好框架以后的工作。

  因为初学者对整个程序的结构把握起来有困难,我在给大一的学生布置作业时,会给出部分的代码,反映整个程序的骨架,学生只要将其中缺少的一部分填上即可。给出的这一部分代码,可以称得上是最简单的框架,降低了学生做作业的难度,不至于频受打击,至少是可以少写些代码了。

  在软件项目的开发中,具有一定规模的软件系统已经非常复杂,涉及到的问题也很多,开发周期也变得更长。而同类的软件,如不同机构的主页,在结构上有很多的雷同之处,区别只在于核心的业务实现部分。于是,将这些雷同的部分抽取出来,往往对应的就是关于软件整体结构的部分,形成的就是同类软件中可以重用的软件框架。有些大的公司和机构专门研究工程中的共性问题,将框架作为他们的产品推出。在软件项目开发中,技术人员使用成熟的框架,只需要集中精力完成系统的业务逻辑设计即可。这相当于盖楼时直接吊装来一个现成的建筑框架,让别人先期帮你完成一些基础工作,你所做的是根据具体的需要,在框架中砌墙,以及做装修。框架一般是成熟、稳健、安全的,经过了很多人使用,有良好的结构,在系统质量方面占有优势。框架其实就是某种应用的半成品,供你选用完成你自己的应用系统。这样,软件项目开发也像是做填空题,降低了难度,节省了时间,提高了质量。

  按照软件工程的术语,框架是可以复用的设计构件,规定了应用的体系结构,阐明了整个设计、协作构件之间的依赖关系、责任分配和控制流程。也有人给出定义:框架是在一个给定的问题领域内,一个应用程序的一部分设计与实现。

  目前流行的大部分语言在开发时都可以利用框架。Java语言在J2EE开发中常用Spring框架,在开发web应用时可以使用Struts框架,还有为数众多的开源框架支持Java语言在不同领域的开发。.NET框架是由微软开发,是一个致力于敏捷软件开发、快速应用开发、平台无关性的软件开发平台,主要的语言是C#。支持PHP web程序开发的框架也为数众多,Zend框架在开发社区中有大量的追随者。著名的Ajax框架整合了JavaScript、XML、CSS等已有技术,成为创建交互式web应用的主要开发技术。对于各种成熟的IDE,也为框架提供了支持。开发一个程序,常常从先设置框架开始。IDE中提供了模板,或者向导程序,通过用户自行选择一些参数,从而生成定制化的框架,供开发者进一步开发使用。

  了解了框架的初学者,常有的疑问是:“我刚接触计算机语言和程序,是否需要学习框架?”我的观点,可以暂缓。编程的基本功和核心能力,不涉及框架。在一般性程序设计学习中解决,而到了要学习做项目的阶段,框架才成为必要的选择。具备了较强的程序设计的一般能力,为理解和掌握框架提供了支持,才能够用好框架,也能带来学习的良好感受和较高效率。如果有机会,有额外的精力,可以在课外对框架进行先行体验。与框架类似和相关的话题,还有模式、架构,解决的也是大型软件生产中的质量、效率问题,这些可以放在高年级的时候解决。对于专业的学生,并不是会使用框架就可以的了。要从事应用开发领域的工作,应该能够驾驭框架,这需要对语言、编程方法有深刻理解,需要建立在对计算机和软件的体系结构有深入了解的基础之上,这是学习各种专业基础课要达到的目标。在我的学生中,就业出现困难的,往往是基础课没有投入学习,而临到毕业季就业潮了,匆忙从框架入手去学,纵使找得着工作,不论在工资上的差距,要想在行业中立足,也需要在走上工作岗位后再加倍努力了。


本文来源:《逆袭大学——传给IT学子正能量》一审过后,要压缩篇幅,将整理过的文字登在些处共享。

==================== 迂者 贺利坚 CSDN博客专栏=================

|==  IT学子成长指导专栏  专栏文章分类目录(不定期更新)    ==|

|== C++ 课堂在线专栏   贺利坚课程教学链接(分课程年级)   ==|

======== 为IT菜鸟起飞铺跑道,和学生一起享受快乐和激情的大学 =======



目录
打赏
0
0
0
0
67
分享
相关文章
代码之禅:在编程中寻找平衡与和谐
【5月更文挑战第23天】 在不断变化的技术潮流中,编程已经从单一的技术活动演变成一种艺术与哲学的融合体。本文将探讨如何在编码过程中追求内在的平衡与和谐,提升代码质量与开发效率。我们将通过深入分析编程原则和实践,揭示如何将简洁、模块化、可维护性等理念融入日常开发工作,实现技术与创造力的和谐共舞。
从代码到哲学:探索编程的深层意义
【9月更文挑战第22天】在这篇文章中,我们将深入探讨编程不仅仅是一门技术,更是一种思考方式。通过分析编程的基本原则和实践过程,我们可以发现编程与生活、哲学乃至宇宙规律之间存在着惊人的相似性。文章将带你从代码的字面意义出发,逐步展开到对生活的反思,最终触及到宇宙的本质,揭示出编程活动背后更深层次的意义。
62 5
探索编程的本质:从代码到创造力
本文通过深入探讨编程的基本原理和实践,揭示编程不仅仅是技术操作,更是一种思维训练和创造力的表达。我们将从基础的数据结构与算法入手,逐步过渡到设计模式和架构理念,最终探讨编程在现实世界中的应用和创新潜力。
代码之美:我的编程哲学
【7月更文挑战第31天】在数字世界的构建中,编程不仅仅是一项技术活动,它更是一种艺术,一种哲学。本文将通过个人的技术感悟,探讨如何将编程艺术化、哲学化,以及这种转变如何影响我们的思维方式和解决问题的策略。
|
8月前
编程之禅:从代码中寻找平衡与和谐
【8月更文挑战第27天】 在数字世界的构建中,编程不仅仅是一门技术,它更是一种艺术,一种生活的哲学。本文将带领读者走进编程的内在世界,探索如何通过代码实现生活的平衡与和谐,以及如何将这种平衡与和谐融入到我们的日常生活中。文章将从编程的基础出发,逐步深入到编程的高级应用,探讨如何通过编程解决实际问题,提高生活质量。同时,文章还将分享一些实用的编程技巧和资源,帮助读者更好地理解和掌握编程,让编程成为改变生活,提升自我的有力工具。
78 0
高端的程序员通常具有以下一些朴素的编程方式
高端的程序员通常具有以下一些朴素的编程方式
123 2
|
11月前
|
代码之韵:寻找编程中的艺术与逻辑
【5月更文挑战第18天】 在数字的海洋中,每一行代码都如同音符,编织着复杂而精致的旋律。本文将探讨编程不仅仅是一门科学,更是一种艺术。我们将深入挖掘编程的本质,揭示如何通过技术实现创意,并分享在编程旅程中对技术美学的个人感悟。从算法的精妙到代码的优雅,从问题的解决到系统的构建,每个环节都蕴含着对技术的深刻理解与热爱。
探索代码之美:我的编程哲学
【4月更文挑战第23天】 在数字化的浪潮中,编程已成为一种艺术形式。本文将分享作者在编程实践中形成的技术感悟和哲学思考。从代码的简洁性到系统的可维护性,从快速迭代到持续学习,作者将阐述如何在追求技术卓越的同时保持对生活的热爱和好奇心。这不仅是一篇关于编程技能提升的指南,更是一次关于如何以程序员身份在快速变化的技术世界中寻找定位的思考之旅。
代码之韵:探索编程的艺术与逻辑
【2月更文挑战第22天】 在数字化的浪潮中,编程已成为一种现代魔法,它不仅塑造了技术世界的未来,更影响了我们的思维模式。本文将深入探讨编程的核心要素,从语言的精确性到逻辑的构建,再到创造性思维的培养。我们将一同穿梭在代码的森林中,寻找那些令人着迷的模式与结构,揭示编程艺术背后隐藏的智慧和美感。
代码之禅:从功能实现到艺术表达
在数字世界的无限编织中,技术并非僵化的工具,而是承载创造力与哲思的容器。本文将探讨编程不仅仅是逻辑与算法的堆砌,更是一场思维与美学的交响。我们将透过编程语言的框架,捕捉那些在字符间跳跃的灵感火花,从而揭示编程艺术的深层价值。
63 0
AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等