如何为你的项目挑选适宜的Web开发框架

古语云工欲善其事,必先利其器,对于工程师而言,选择一款合适而强大的开发框架对开发工作是大有裨益的。那么我们该从什么角度来进行衡量和挑选呢?

首先对于一家创业公司而言,这更像是一个商业抉择而不仅仅是技术选择,时间人力物力等开销都必须要考虑周全。一旦公司规模上来了资金不成问题了,可选择的空间就更大了甚至可以进行迁移或重新架构。原文作者Ramigbtech总结了以下10点以供参考。译文如下:

1.  语法

拥有优雅语法的语言无疑可以让编程工作变得惬意,但有时候我们容易被表象所蒙蔽,如果凭直觉你认定,"this is text".split(’ ‘)。reverse.join(‘ ‘)比" ".join("This is text".split(’ ‘)[::-1]) 的写法要好或差,那么这仅仅是外貌协会,实际上我们更应该着眼于它本身是否具有局限性或语法是否累赘,用更少的代码完成等价的工作我们自己或团队都会对当初的选择心存感激。

2.  功能和体型

我们需要为路由编写复杂的正则查询吗?路由中含有内建的DSL吗?我们需要使用ORM吗?或许我们还想拥有更多其它功能。建议选取一款较轻巧框架作为开始,日后我们可以为它添砖加瓦。

3.  文档资源

具备丰富文档资源的框架使用起来的确是得心应手事半功倍。例如我在学习CodeIgniter时,根本不必像无头苍蝇那样四处寻找答案,其自带的教程和配套范例都做得非常认真仔细。相对而言,我在学习ExpressJS的时候就比较费力了。

4.  代码自动生成

框架中的代码自动生成功能通常能为我们节省不少时间,我们仅需要做好控制器/类等的处理而把其它重复的编码工作交给框架,虽然有时候不能自由地进行自定义,但对于想快速开发出一个能运行的原型是有积极意义的。

5.  模块化

Django在模块/Apps的处理上令人赞叹,不仅仅让代码复用变得简便,同时有助我们培养良好的模块化思维。当我们不再需要X模块时,我们只需把它移除然后做好代码重构工作就可以了。

6.  基础架构

不论是使用LAMP还是MEAN堆栈,或是Rails/Unicorn等,最关键的还是我们对这个架构有没有足够的了解,有没有相关组件的维护能力。假如应用的前端和后端都与Javascript相关,采用MEAN堆栈架构是个不错的选择。

7.  社区和更新速度

框架相关的社区是否活跃?有没有技术大咖坐镇?官方会否常常上StackOverflow帮忙解答技术疑难?为这些问题找到完美的答案是有一定难度,但绝大多数时候数字是最真实的。日期或参与度/帖子热度都是不错的衡量指标。此外,补丁的更新速度也十分关键,对安全性和漏洞的重视与否可谓是牵一发而动全身。

8.  重大变更三亚赌场

就在最近不少程序员听到Angular 2.0的重大变更后感到震惊和抓狂,尽管要到2015年晚些时候才会全部完成,但一想到辛辛苦苦做好的代码都会变成过去时,又怎能安之若素呢?另一个例子是Yii框架,新版本2.0的推出意味着对前个版本的完全重写。

9.  部署和依赖

容易部署吗?能方便进行扩展吗?需要花费多少时间来学习掌握部署工具?虽然有Docker这样的工具可以帮我们解答上述问题,但是抽取时间来思考这方面的问题还是有必要的。

10. 人力

我们能快捷地找到相应的开发人才吗?将要使用的框架在我们所处的区域是否流行?纵然培训工作是管理的一部分,但对于初创公司而言时间和资金时刻都得精打细算。

写在最后:

如果是中型的网站,我会选择Django。如果我暂时不能确定网站的规模和将投入多少开发精力,我会选择Rails。如果我不想前后端工作分得太开,我会选择MEAN堆栈。

http://www.cnblogs.com/huangdj/p/4072866.html

时间: 2024-10-09 21:37:00

如何为你的项目挑选适宜的Web开发框架的相关文章

如何为你的项目挑选适宜的Web开发框架?

如何为你的项目挑选适宜的Web开发框架?首先对于一家软件开发的创业公司而言,这更像是一个商业抉择而不仅仅是技术选择,时间人力物力等开销都必须要考虑周全.一旦公司规模上来了资金不成问题了,可选择的空间就更大了甚至可以进行迁移或重新架构.原文作者Ramigbtech总结了以下10点以供参考.译文如下: 1.语法 拥有优雅语法的语言无疑可以让编程工作变得惬意,但有时候我们容易被表象所蒙蔽,如果凭直觉你认定,"this is text".split(' ').reverse.join('')比

怎样把Maven项目共享为传统Web项目

Maven的优点有很多,几个突出的比如说 1.代码库的存在 2.依赖管理 3.自动找到对应的javadoc和src 4.众多的插件支持 当然也有不足,比如说 1.代码库有的lib包结构混乱存在冗余 2.找到的所有lib总是>=预期 3.也有10%找不到javadoc和src 4.插件执行参数繁琐 现在考虑这种情况:如果团队成员都没有采用Maven,SVN上的也是个传统Web项目 想直接检出为Maven项目或者直接提交是不太可能了,如果还是坚持使用呢? 我们的思路是这样:Maven项目->传统W

基于MVC+EasyUI的Web开发框架经验总结(15)--在MVC项目中使用RDLC报表

RDLC是一个不错的报表,有着比较不错的设计模式和展现效果,在我的Winform开发里面,使用RDLC也是一个比较方便操作,如可以参考文章<DevExpress的XtraReport和微软RDLC报表的使用和对比>或者<会员管理系统的设计和开发(2)-- RDLC报表的设计及动态加载>进行了解.但是基于MVC方式,如何构建和展现RDLC报表呢?本文主要介绍如何在基于MVC4+EasyUI的Web开发框架上进行RDLC的集成和使用. 1.RDLC绑定数据源 RDLC的报表设计,是使用

Myeclipse - Web项目转换技巧--处理Java项目、SVN非Web项目问题

喜欢从业的专注,七分学习的态度. 概述 对于Java调试,使用Eclipse习惯性的使用Junit调试,使用Myeclipse习惯性的将项目转成Web项目在Tomcat或Weblogic中调试,在Myeclipse项目对项目Web属性的理解有助于应对开发环境的配置.发布和部署,涉及的技巧和操作比较多.最常用最简单的技巧是将Java项目转Web项目技巧. 环境准备:创建一个Java项目 打开Myeclipse--右键--选择Project 创建1 点击Next(下一步) 创建-项目 点击Finis

maven3 在创建web项目时:Dynamic Web Module 3.0 requires Java 1.6 or newer 错误

问题:如图,在配置web项目时出现Dynamic Web Module 3.0 requires Java 1.6 or newer 错误 出现该问题是由于maven在构建的时候采用默认的jdk1.5 解决: 1.修改maven的构建在项目的pom.xml,在<build></build>标签中添加 <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <a

Eclipse 导入外部项目无法识别为web项目并且无法在部署到tomcat下

1.进入项目目录,找到.project文件,打开. 2.找到...代码段,加入如下标签内容并保存: org.eclipse.jem.workbench.JavaEMFNature org.eclipse.wst.common.modulecore.ModuleCoreNature org.eclipse.wst.common.project.facet.core.nature org.eclipse.jdt.core.javanature org.eclipse.wst.jsdt.core.js

Python项目实战教程:web实时聊天室项目

新课强力来袭:基于Node.js的web实时聊天室项目! 麦子学院新课以马踏飞燕般的速度生粗来啦(*^__^*) .小伙伴们你萌确定不来一发吗? 啦啦啦--上图镇楼↓↓↓ 那些神奇的传送门→_→ 本课程:http://www.maiziedu.com/course/others/597-8698/ 李大大主页:http://www.maiziedu.com/group/common/course/59404/ 这里是正儿八经的课程介绍(快看快看o( ̄ヘ ̄o#)): 网站实时通讯一体化解决方案,采

复制web项目时注意修改web项目名

改web项目的项目名可以右击->properties->搜索web找到settings->修改context name

导入外部项目无法识别为Web项目无法部署到tomcat

1.进入项目目录,找到.project文件,打开. 2.找到...代码段,加入如下标签内容并保存: <nature>org.eclipse.jem.workbench.JavaEMFNature</nature> <nature>org.eclipse.wst.common.modulecore.ModuleCoreNature</nature> <nature>org.eclipse.wst.common.project.facet.core.