程序员 代码是从头编还是使用框架好呢?

在编码的世界里,程序员永远不要期待东西保持静止太久。技术已经决定了我们如何互动、创造、学习、生活等,并且不断发展。对于程序员来说,只有靠近和依赖最新技术才能完成任务。而且最深刻的改变之一就是框架、编程语言以及两者之间的范式转变。

编程语言本质上是与计算机通信的方式,并通过使用语法和语义告诉计算机要做什么。框架是汇集了一起完成任务的程序的集合,使编码更有效率,并且通常使程序员的生活更容易。

当然,二者绝不是对立的关系,只是编程社区中仍然存在一些争议:到底是应该自己从头开始编写代码还是使用各种框架简化编码过程呢?有些很受欢迎的框架可能会给人带来错觉,比如Ruby on Rails和Angular.JS等,其实,编程语言和随附的框架都在不断上升和繁荣。

框架VS自定义解决方案

为什么框架发展得越来越好,因为越来越多的程序员选择使用框架。当处于实际的项目开发中,程序员就会发现项目周期短,使用框架可以最有效地节约时间。如果完全从头开始编程,使用时间太多不说,对程序员的个人编码水平也提出了很高的要求,一定要非常了解所用的编程语言才具备从头开始的实力。

但是,如果使用框架没有缺点,这篇文章就没有存在的必要了。关键是,虽然框架做了很多基础工作,但这并一定完全适合于项目所需,可能要进行一些修改。而从头开始编码,自然是完全按照项目需求来的,甚至你会比框架发布者做得更好。

框架,比如Ruby on Rails可帮助用户减少编码细节问题,很多不好的编码习惯都将被良好的框架清理。当然,使用框架也需要对所用编程语言有一定了解才可以,您需要对Ruby有一个全面的认识,才可以用好Rails。从一般设计到安全性问题,框架可以代替一些繁重的工作。

自动化正在接管一切

现在,自动化正在渗入整个编码过程,程序员不需要再细细梳理数千行代码,很多无意义的附加组件或错误被编译器和自动化协议剥离,旨在删除不必要的代码段。这种演变要求程序员对特定代码的准确性要十分了解。

学习正确的工具

正如文章开头所说,编程语言和框架都在不断成长。而且其成长之一就是依赖于应用程序接口(API)和算法来帮助程序员完成任务。例如,框架通常定义和实现算法,并且使得算法正确,这有时对编程成功至关重要,而不是语法细节。如果涉及到一些框架无法实现的功能,还是需要程序员亲自动手。框架只是可以节约时间的编程工具,在程序员的工作中扮演着“辅助”角色。

建议:使用正确的框架,结合部分自己编码可以有效缩短项目开发周期,同时准确率高,降低无效代码数量!

程序开发为什么要使用框架

什么是框架

在的J2EE开发中,经常会提到“框架”这个词汇,例如Spring,Struts,Webx等等都称之为J2EE开发框架。那么什么是框架呢?

框架的英文为Framework,带有骨骼,支架的含义。

在软件工程中,框架被定义为整个或部分系统的可重用设计,表现为一组抽象构件及构件实例间交互的方法;另一种定义认为,框架是可被应用开发者定制的应用骨架。

一个框架是一个可复用的设计构件,它规定了应用的体系结构,阐明了整个设计、协作构件之间的依赖关系、责任分配和控制流程,表现为一组抽象类以及其实例之间协作的方法,它为构件复用提供了上下文(Context)关系。

框架是实现了某应用领域通用功能的底层服务。使用这种框架的编程人员可以在一个通用功能已经实现的基础上开始具体的系统开发。框架提供了所有应用期望的默认行为的类集合。具体的应用通过重写子类或组装对象来支持应用专用的行为。

通俗的说,框架是完成是某种应用的半成品,提供了一些常用的工具类和一些基础通用化的组件,可以供开发人员在此基础上,更便捷的完成各自特有的系统。

为什么要用框架

软件系统发展到今天已经很复杂了,特别是服务器端软件,涉及到的知识,内容,非常广泛。这样开发出完善健壮的软件,对程序员的要求将会非常高。如果采用成熟,稳健的框架,那么一些基础的通用工作,比如,事物处理,安全性,数据流控制等都可以交给框架处理,那么程序员只需要集中精力完成系统的业务逻辑设计,可以降低开发难度。

从程序员角度看,使用框架最显著的好处是重用,由于框架能重用代码,因此从一已有构件库中建立应用变得非常容易,因为构件都采用框架统一定义的接口,从而使构件间的通信简单。框架能重用设计。它提供可重用的抽象算法及高层设计,并能将大系统分解成更小的构件,而且能描述构件间的内部接口。这些标准接口使在已有的构件基础上通过组装建立各种各样的系统成为可能。只要符合接口定义,新的构件就能插入框架中,构件设计者就能重用构架的设计。框架还能重用分析。所有的人员若按照框架的思想来分析事物,那么就能将它划分为同样的构件,采用相似的解决方法,从而使采用同一框架的分析人员之间能进行沟通。

一种技术,最终都是为业务发展而服务的。从业务的角度来讲。首先,框架的是为了企业的业务发展和战略规划而服务的,他服从于企业的愿景(vision);其次,框架最重要的目标是提高企业的竞争能力,包括降低成本、提高质量、改善客户满意程度,控制进度等方面。最后,框架实现这一目标的方式是进行有效的知识积累。软件开发是一种知识活动,因此知识的聚集和积累是至关重要的。框架能够采用一种结构化的方式对某个特定的业务领域进行描述,也就是将这个领域相关的技术以代码、文档、模型等方式固化下来。

合理的使用框架可以带来的好处

重用代码大大增加,软件生产效率和质量也得到了提高;
代码结构的规范化,降低程序员之间沟通以及日后维护的成本;
知识的积累,可以让那些经验丰富的人员去设计框架和领域构件,而不必限于低层编程;
软件设计人员要专注于对领域的了解,使需求分析更充分;
允许采用快速原型技术; 有利于在一个项目内多人协同工作;
大粒度的重用使得平均开发费用降低,开发速度加快,开发人员减少,维护费用降低,而参数化框架使得适应性、灵活性增强。

框架分类

框架与类库是不同的,框架强调的是软件的设计重用性和系统的可扩充性,以缩短大型应用软件系统的开发周期,提高开发质量。

与传统的基于类库的面向对象重用技术比较,应用框架更注重于面向专业领域的软件重用。应用框架具有领域相关性,构件根据框架进行复合而生成可运行的系统。框架的粒度越大,其中包含的领域知识就更加完整。

J2EE有很多开源框架,一般每一种框架都会针对某一方面领域。

Struts是基于JavaEE应用的MVC设计模式的应用框架,减弱了业务逻辑接口和数据接口之间的耦合,以及让视图层更富于变化。

Hibernate是一个对象关系映射框架,目的是让Java程序员可以使用对象编程思维来操纵数据库。

Spring是一个综合型框架,致力于J2EE应用的各层的解决方案,而不是仅仅专注于某一层的方案。可以说Spring可以作为应用开发的“一站式”选择,并贯穿表现层、业务层及持久层。然而,Spring并不想取代那些已有的框架,它可以与其他框架无缝地整合。

考虑到面向的领域,以及实现编码实现,我们可以将将框架至少分为三类。

第一类是基础类库,主要包含多数项目所需要的类库。(开发人员将其作为一个类库使用,可以简化一些常用的算法逻辑。)

第二类是基础框架,该框架应该整合或者实现J2EE开发所需要的常用功能。(此框架可以为各类WEB项目开发提供基础支持。)

第三类是平台框架,针对于某种特定领域,实现特定领域所需要的常用功能。(这个框架需要实现具体领域的业务的逻辑。并且应该支持各类扩展)