摘要:古语云工欲善其事,必先利其器,对于工程师而言,选择一款合适而强大的开发框架对开发工作是大有裨益的。那么开发者应该从什么角度来进行衡量和挑选呢?本文总结了十点以供参考。
古语云工欲善其事,必先利其器,对于工程师而言,选择一款合适而强大的开发框架对开发工作是大有裨益的。那么我们该从什么角度来进行衡量和挑选呢?
首先对于一家创业公司而言,这更像是一个商业抉择而不仅仅是技术选择,时间人力物力等开销都必须要考虑周全。一旦公司规模上来了资金不成问题了,可选择的空间就更大了甚至可以进行迁移或重新架构。原文作者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堆栈。
分享到:
相关推荐
每次新开业务线或启动新项目时,首先第一件事就是纠结:使用什么框架,重造什么轮子?我很高兴应CSDN的邀请谈我的看法。在五六年前,移动端还没有兴起,我们没有什么选择,就是jQuery。有人会说,jQuery只是类库,...
本章介绍了目前国内深度学习项目开发领域中应用的三个主流深度学习开发框架。由于本书各章节示例代码中使用的是飞桨框架,所以,本章重点介绍了飞桨框架。飞桨框架经过多年沉淀已经具备了良好的性能和非常友好的用户...
优秀采购如何挑选红木高端商务礼品?提升品牌价值和产品价值和销量秘籍。.ppt
这使得该系统不仅适用于毕业设计项目展示,更可作为一个实用的电影院购票系统框架,为实际的电影院运营提供有力支持。 总的来说,“基于Spring Boot开发的Web电影院购票系统”是一个功能全面、易于维护且具备高度可...
android app 快速开发框架(挑选最简洁最适用的框架实现) 1)外层 FragmentTabHost+Fragment构建外层框架 2)内层 TabPageIndicator+ViewPager+Fragment构建内层滑动框架
随着工程师们对数字电源这项技术及其优势的熟知,各式各样的数字电源的发展...由于目前市场上数字电源器件种类繁多,设计人员可以立即利用其巨大优势,应用到任一设计项目。可以于此获得极有价值并且相当丰富的收益。
本项目的开发提供了一种更加便捷的购物方式,其以方便快捷,随时随地只要能连接互联网就能购物,商品种类众多,来源广,更具特色,并且能提供更久的挑选商品时间而得到快速地推广,当然这个项目的开发也离不开计算机...
这次分享为你带来了丰富的Java语言游戏项目实战资源,让你在实践中深入掌握Java语言,并开启游戏开发之旅。资源包中包括: 游戏项目代码:精心挑选了多个经典的小游戏项目,如猜数字、坦克大战等,每个项目都有完整...
因此我自己根据go语言中文社区提供的资料,还有互联网企业架构设计中的常见组件分类, 共精心挑选了100多个开源项目(项目不限于在github开源的项目), 分成以下十几个大类。 这个项目可以理解为互联网IT人打造的...
主要内容包括应用程序框架、高级界面、数据库应用、网络通信与Web开发、无线通信、多媒体应用、个人信息管理、电话系统管理、XML应用、地图应用和系统信息管理。 《Android平台开发之旅(第2版)》内容涵盖了Android...
PHP 香水挑选网站系统 是一套完善的web设计系统,对理解php编程开发语言有帮助,系统具有完整的源代码和数据库,系统主要采用B/S模式开发。开发环境为PHP APACHE,数据库 为mysql5.0,使用php语言开发。 二、功能...
并在以往常用的评价模型的基础上,构建基于语言变量的PPP项目社会资本评价模型,同时通过模糊测度来处理指标独立性问题,在上述基础上构建PPP项目社会资本选择评价框架,以帮助项目的决策者更好挑选社会资本方。
怎样挑选电脑的音箱?.docx
工控液晶屏,LCD液晶屏,tft液晶屏
这次分享为你带来了丰富的Java语言游戏项目实战资源,让你在实践中深入掌握Java语言,并开启游戏开发之旅。资源包中包括: 游戏项目代码:精心挑选了多个经典的小游戏项目,如猜数字、坦克大战等,每个项目都有完整...
这次分享为你带来了丰富的Java语言游戏项目实战资源,让你在实践中深入掌握Java语言,并开启游戏开发之旅。资源包中包括: 游戏项目代码:精心挑选了多个经典的小游戏项目,如猜数字、坦克大战等,每个项目都有完整...
还有几十个电子书和源代码 请点击我的名字 通通免费 希望大家给个好评 //**************// 都是最近半年收集的android 开发资料和源代码,挑选出好的给大家
# 金毛幼犬优劣挑选方法展示,java开发金毛犬挑选方案小游戏代码 如果你正在寻找一只金毛幼犬,那么你需要了解如何挑选优秀的犬只。以下是一些你需要考虑的因素: - 外观:挑选健康、结实、均匀的体型,有光泽的...
本项目为一款基于微信小程序的童装商城设计与实现,采用SSM(Spring、SpringMVC、MyBatis)框架进行开发。项目旨在提供一个方便、快捷的线上购物平台,满足家长为孩子挑选童装的需求。 功能介绍: 1. 首页展示:...