互联网与开源带来的好处就是,你碰见的问题别人都碰见过,你想要的解决方案别人都给出了。可是那么多的开源产品,到底该怎样去选择与甄别是否适合本身的项目,这里推荐一些本身开发中经常使用的库以及开发工具,每个类只会推荐一个,免去你选择的痛苦。html
Laravel 是首推的 PHP 开发框架,用它官网的介绍就是“为 Web 艺术家创造的 PHP 框架”。Laravel 框架的底层代码都是跟进时代潮流的,用的都是最新的技术。并且它的学习门槛虽然高,但倒是督促我的进步的好工具。优雅的路由、强大的 IOC 容器、可拓展的服务提供者、队列、缓存、通知、事件、广播等等你在开发一个大型应用中可能用到的都给你作好了,还有全文搜索引擎、支付解决方案、社会化登陆等等,Laravel 基本上是 PHP 上的划时代框架。小程序
网络通讯相比与传统的 Web 应用,它会更加的偏像底层一些,对开发者的基础知识要求会更高。这里首推 Swoole 这个异步网络通讯引擎。用他官网的话来介绍就是:缓存
使 PHP 开发人员能够编写高性能的异步并发 TCP、UDP、Unix Socket、HTTP,WebSocket 服务。Swoole 能够普遍应用于互联网、移动通讯、企业软件、云计算、网络游戏、物联网(IOT)、车联网、智能家居等领域。
它虽然要求开发者要懂得操做系统、网络、进程的知识,可是实际上很好上手,经过 Swoole 开发一个 WebSocket 服务器很简单,有机会写一篇基于 Swoole 的微信扫码登陆的实现。服务器
PHP 在引入了命名空间后,在生态中 Composer 就是最早进的依赖管理方案。相比于 5.3 版本以前的使用 require 来包含文件,它确实是增长了学习的成本,可是带来的效率倒是无限的。想象一下传统的经过引入源代码包,要先下载,required 一堆的文件;有了 Composer 以后,一行命令便可搞定,并且还解决了后期的升级问题。微信
网络上充斥着很是多的代码部署和持续集成工具,好比 Jenkins、Travis CI、瓦力部署等等各类的工具,都有一个共同的问题就是学习成本,拿到手根本不知道该怎么去入手。这里推荐一个基于 PHP 开发的部署工具 Deployer,它的优势就是使用简单上手快、支持回滚、原子发布,而且支持。并且源码量也很少,不懂的地方能够很方便的去阅读源码来调试。网络
网络请求可能在开发中用的很少,可是有用到的话本身写倒是很是的繁琐。这里首选推荐 Guzzle 这一个网络请求库,它的语法很是简洁,并且通过了这么多年的发展,代码很是稳定。不只支持常见的 GET、POST、PUT、DELETE 等请求以外,还支持 OPTIONS、HEADER、PATCH 等请求,并且支持并行化调用,还能够经过中间件增长对重试机制的支持。微信开发
现代化的 Web 引用开发中,会很常常用到队列或者以 CLI 方式运行的应用,而这种应用一旦进程挂了那么服务就中断了,因此颇有必要一个进程守护工具来把挂掉的进程从新拉起来。这里推荐 Supervisor 这个基于 Python 开发的工具库,Supervisor 经过简单的 INI 风格的配置文件集中的管理进程,经过操做系统信号来监听进程的存活状态,支持简单的事件通知协议,兼容除了 Window 外的全部操做系统。架构
队列经常使用在一些耗时的任务上,好比发送邮件短信、下载报表、处理图片等等,目前市面上开源的队列软件很是多,大名鼎鼎的有 Kafka、ActiveMQ、RabbitMQ、Redis等等,能够到 http://queues.io
上面去看看。其实对于一个常规的 Web 应用来讲,这些重量级的通常都用不上,这里推荐 Beanstalkd 这个队列,它也是 Laravel 框架里面推荐使用的。并发
日志系统对于一个 Web 应用来讲,能够说是相当重要的。并且日志的量通常量都很大,类型又多,这里推荐使用 ELK 这个集中式的日志架构,能够查看一下我以前的文章:框架
其实作爬虫最适合的语言仍是 Python,固然用 PHP 来开发也是有不少利器的。首推 QueryList 这个基于 PHP 开发的采集工具,简单、 灵活、强大的PHP采集工具,让采集更简单一点。它的语法基本上和 jQuery 一致,能够来看一段代码:
//采集某页面全部的图片 $data = QueryList::get('http://cms.querylist.cc/bizhi/453.html')->find('img')->attrs('src'); //打印结果 print_r($data->all());
微信创造了一个新的时代,而后基于微信的应用基本上以及统治了传统的 WAP 端应用了。微信公众号的开发工具包首推 EasyWeChat ,这是一个非官方的开源工具库,可是基本上涵盖了微信开发中的方方面面,包括公众号、企业微信、微信支付、开放平台以及小程序。新版本 4.0 也是一个 LTS 的版本,不过新版本的文档有些概念没描述清楚,使用方法相比旧版本繁琐了许多,这里建议若是只是公众号开发的话仍是建议使用 3.0 版本的。
以上基本上涵盖了一个常规应用开发中的方方面面,固然对于大型的分布式应用来讲可能还差不少。
最后来一波小福利,到公众号后台发送“oneui”,赠送一套好看的后台模板。
欢迎关个人我的公众号:左手代码