技术头条 - 一个快速在微博传播文章的方式     搜索本站
您现在的位置首页 --> 系统架构 --> APP创业项目后端语言选择

APP创业项目后端语言选择

浏览:535次  出处信息

   对于刚创业的团队,资金和人才配备没有成型的大公司充分,因此在技术选型上须充分思考。本文针对后端语言选择问题作出分析,不会涉及到语言优劣问题,笔者认为语言遵循优胜劣汰规则,能够继续生存下来的语言都是好的语言,只是各自适合解决不同的问题。

   APP项目的后端语言通常有:JAVA、PHP、Python、Ruby、.NET、JS等。笔者在项目中只接触过JAVA、PHP、Python和JS,对于Ruby和.NET没有实践方面的认知,那么首先排除一下他们俩。据说Ruby以敏捷著称,但是它还是太年轻了,在创业项目上我更愿意选择一个成熟稳健的技术。.NET出自微软,从asp开始微软在WEB后端开发就非常优秀,但是一直不是互联网公司的首选,正如服务器领域Windows一直不是首选一样。NodeJS在JS风靡全栈的潮流下,也成为了很多团队的选择之一,但是不选择它的原因跟Ruby一样。那么就剩下JAVA、PHP和Python了。

   JAVA作为一个全栈语言,WEB后端、Android、数据分析、机器学习、桌面软件等都是手到擒来,特别是一些体制内政府部门的项目,他们会指定使用JAVA和Oracle。

   如果团队有JAVA的成手,那么它是不二的选择。但是我们团队一直不使用JAVA作为后端开发,只有一个原因,JAVA编译调试太慢了,当你修改了一些程序后,想测试下,你必须重新编译并且重启服务器,虽然这些IDE都自动帮你做了,但这仍然是需要时间的。

   

   PHP作为后端的老牌语言,百度、微博等公司的很多大小项目都是基于它。

   后端你要用到的它都有,兼顾幼儿园到大学各个级别的开发人员。也正因为此,一些程序员觉得PHP写的程序不上档次,实际上PHP跟JAVA语言一样,也可以写得很高大上。

   PHP是脚本语言,编写后测试只需刷新浏览器即可,这也带来了一个问题,软件没法打包成商业软件销售,一旦销售出去,源代码就出去了。然而近年出现的Phalcon框架,其开发团队推出的Zephir语言,可以跟PHP语言一样编写C代码,最后可以编译为二进制的PHP扩展,不但保护了源代码,还提升了运行性能。

   PHP拥有各种优秀的框架,Phalcon、Laravel、Yii、CakePHP、CodeIgnitor、Yaf、Zend Framework,有的组件丰富,有的仅实现了MVC,轻重灵活。

   但PHP离开了后端开发几乎没有什么作为了。

   

   Python作为一个无比灵活的语言,凭借其脚本语言的灵活性和不错的性能优势,近年来也成为后端开发的选择之一。

   它具有PHP脚本语言的优势,又几乎是全栈的,可以写桌面软件、数据分析、机器学习,甚至有人用它写APP客户端。

   Python不是为后端开发而生的,但是Django、Flask、Webpy等框架让它在后端开发方面成为可能,而且还非常出色。Django框架虽然优秀,但是有点过了,帮助开发者实现的过多了,将开发者限死在一个框框中,常常会让你觉得进退两难。例如ORM机制,简单写些数据读写还不错,涉及到复杂的关联查询就费劲了;还有它的用户模块,直接帮开发者实现了用户、组、权限管理、认证登录等一系列功能,小项目上手就不用做用户模块了,但是大项目用户模块需要非常灵活,例如微信、微博等第三方登陆,以及跨项目共享Session。

   Python的服务端程序依赖于uwsgi和nginx,uwsgi作为python的服务器软件来处理Http请求,由于其功能、性能和稳定性问题,通常会使用nginx作为其前端服务器,两层服务器架构对于小网站来讲,增加了维护困难。

   既然是脚本语言,源代码就难以保护。

   

   是否使用框架?

   一定要使用框架,为了便于项目合作和项目交接,基于框架编写的代码更具有规范性和可读性。

   是否需要自己开发框架?

   如果团队水平已经到了自己编写框架的程度,本文也就不需要看了。能写成一个优秀的框架可以写,如果只是刚刚学习写,那么还是不要在创业项目上尝试了。

   

   简要说明了三种语言适用性,具体选择首要根据业务和团队客观因素,已有成熟技术体系则无需刻意更改,对于刚组建的创业团队,如果项目较大,我推荐使用PHP,框架推荐Laravel或者Phalcon,调试能力较强的推荐Phalcon,服务器软件使用Nginx;如果项目较小,我推荐使用Python,框架推荐Django,充分遵守Django的规则,服务器软件用uwsgi和Nginx。

建议继续学习:

  1. 每个程序员都应该学习使用Python或Ruby    (阅读:16085)
  2. 敲击最多的键和编程语言语法    (阅读:5557)
  3. 为什么Lisp语言如此先进?(译文)    (阅读:5476)
  4. 编程语言的选择很重要    (阅读:4179)
  5. 编程语言的可读性    (阅读:3852)
  6. PHP很烂?我的看法    (阅读:3536)
  7. 几种计算机语言的评价(修订版)    (阅读:3204)
  8. php语言漫谈    (阅读:3088)
  9. 分清“语言/规范”以及“平台/实现”,以及跨平台.NET开发    (阅读:3005)
  10. 为什么我喜欢Lisp语言    (阅读:2941)
QQ技术交流群:445447336,欢迎加入!
扫一扫订阅我的微信号:IT技术博客大学习
© 2009 - 2024 by blogread.cn 微博:@IT技术博客大学习

京ICP备15002552号-1