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

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

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

当然,二者绝不是对立的关系,只是编程社区中仍然存在一些争议:到底是应该自己从头开始编写代码还是使用各种框架简化编码过程呢?有些很受欢迎的框架可能会给人带来错觉,比如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项目开发提供基础支持。)

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

(0)

相关推荐

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

    在编码的世界里,程序员永远不要期待东西保持静止太久.技术已经决定了我们如何互动.创造.学习.生活等,并且不断发展.对于程序员来说,只有靠近和依赖最新技术才能完成任务.而且最深刻的改变之一就是框架.编程语言以及两者之间的范式转变. 编程语言本质上是与计算机通信的方式,并通过使用语法和语义告诉计算机要做什么.框架是汇集了一起完成任务的程序的集合,使编码更有效率,并且通常使程序员的生活更容易. 当然,二者绝不是对立的关系,只是编程社区中仍然存在一些争议:到底是应该自己从头开始编写代码还是使用各种框架简

  • 程序员必知35个jQuery 代码片段

    jQuery如今已经成为Web开发中最流行的JavaScript库,通过jQuery和大量的插件,你可以轻松实现各种绚丽的效果.本文将为你介绍一些jquery实用的技巧,希望可以帮助你更加高效地使用jQuery. 收集的35个 jQuery 小技巧/代码片段,可以帮你快速开发. 1. 禁止右键点击 $(document).ready(function(){ $(document).bind("contextmenu",function(e){ return false; }); });

  • 程序员的七夕用30行代码让Python化身表白神器

    转眼又到了咱们中国传统的情人节七夕了,今天笔者就带大家来领略一下用Python表白的方式.让程序员的恋人们感受一下IT人的浪漫.    一.词云制作 首先咱们可以用之前介绍过的wordcould包制作词云.wordcloud包安装十分简单.pip即可完成安装 pip install wordclould 然后需要制作一个背景图片,为了应急我用艺术字做了个七夕的图片,如果大家来不及直接图片另存为使用下图即可. 具体制作的词云的代码如下: from wordcloud import WordClou

  • C#程序员统计自己的代码行数

    很多程序员都以自己写的代码的行数作为自己程序员阅历的一个标志,如何统计呢,以下是具体内容. 小编,已经快学了两年编程了.昨天突发奇想,想统计下这些年到底写过多少行代码,于是做了一个这个小程序来统计代码行数.老规矩,先上图. 比较惭愧,写了两年只有2万多行.那我们还是进入下一项吧. 界面搭建我也不说了,我就讲一下思路和核心代码,最后附上源代码.Life_Programmer.Serch_Files. 思路:我们点击刷新按钮,他会弹出一个小窗口让我们选择要搜索的区域.这个原理在我的C#游戏进程杀手的

  • 程序员喜欢的5款最佳代码比较工具

    俗话说:三句不离本行,对于程序员这个可爱的群体来说也是一样,即使面对无休无止的编程工作,程序员们依旧任劳任怨的埋头苦干,梦想着用自己码下的代码改变世界.工欲善其事,必先利其器,每一位程序员都有自己私藏的编程必备工具,接下来小编就给大家推荐5款程序员最佳的代码比较工具. 一:Beyond Compare 推荐:★★★★★ Beyond Compare可以很方便地对比出两份源代码文件之间的不同之处,相差的每一个字节用颜色加以表示,查看方便,支持多种规则对比. Beyond Compare选择最好的方

  • 分享10个程序员常用的的代码文本编辑器

    通常操作系统和软件开发包中都包含文本编辑器,可以用来编辑配置文件,文档文件和源代码. 下面是笔者总结的10个最好的免费代码文本编辑器: 1.NOTEPAD++ NOTEPAD++是一款免费又优秀的文本编辑器,支持在MS Windows环境下运行的多种编程语言.NOTEPAD++支持超过50种编程.脚本和标记语言的语法高亮显示和代码折叠,能让用户迅速减小或扩大代码段以便查阅整个文档.用户也可以手动设置当前语言,覆盖默认语言.该程序还支持自动完成某些编程语言的API子集. 官方网站:http://n

  • 每个程序员需掌握的20个代码命名小贴士

    代码中到处都需要命名.作为程序员,我们得给类命名,给变量命名,给函数命名,给参数命名,给命名空间命名,等等等等.下面有20条小贴士能帮助你提高你的命名能力. 1.使用能够表达意图的名字 名字得能告诉我们它要做什么,为什么存在,以及是如何工作的.选择能够表达意图的名字,将更有利于我们理解代码. int d; // elapsed time in days int elapsedTimeInDays; int daysSinceCreation; int daysSinceModification;

  • 10个C#程序员经常用到的实用代码片段

    1 读取操作系统和CLR的版本 OperatingSystem os = System.Environment.OSVersion; Console.WriteLine("Platform: {0}", os.Platform); Console.WriteLine("Service Pack: {0}", os.ServicePack); Console.WriteLine("Version: {0}", os.Version); Consol

  • 我,一个写代码的 程序员 感悟

    前几天一个朋友给我的blog留言,谈到希望在新年里能够看到的不仅仅是我对技术的分享,更希望能够看到对于技术学习.职业发展的规划.因此想到了写一点什么分享一下自己这些年的一点点"收获",周星驰的喜剧之王里面说到他是一个演员(虽然被叫做跑龙套的),我想我,就一个写代码的. 爱这行 从事任何行业都一样,只有真正的爱上了这份工作,才会投入热情,才会在顺境中自我警醒,在逆境中寻找突破.这个行业的竞争很激烈,你停下来走,别人就立刻会跑步超过你,没有对这一行业的一种热情,就很难在困境中保持一种执着的

  • PHP程序员玩转Linux系列 搭建FTP代码开发环境

    PHP程序员玩转Linux系列文章: 1.PHP程序员玩转Linux系列-怎么安装使用CentOS 2.PHP程序员玩转Linux系列-lnmp环境的搭建 有些同学可能觉得我写的都是啥yum安装的,随便配置一下而已,没啥技术含量,我的目的是让大家能够以最简单的方式实现目的,配置也是能不自定义的的统统不配置,不是为了炫耀会编译安装,我觉得安一个软件,可以用yum,为啥非得编译解决依赖自讨苦吃呢,最终目的是能实现效果,不是费劲巴拉的一堆编译配参数过程. 日常写代码,还是在windows系统下,怎样让

随机推荐