这些 Web 开发工具,你都知道吗?

Posted 左手代码

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了这些 Web 开发工具,你都知道吗?相关的知识,希望对你有一定的参考价值。

互联网与开源带来的好处就是,你遇见的问题别人都遇见过,你想要的解决方案别人都给出了。但是那么多的开源产品,到底该怎样去选择与甄别是否适合自己的项目,这里推荐一些自己开发中常用的库以及开发工具,每一个类只会推荐一个,免去你选择的痛苦。

 

框架

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 一致,可以来看一段代码:

 
   
   
 
  1. //采集某页面所有的图片

  2. $data = QueryList::get('http://cms.querylist.cc/bizhi/453.html')->find('img')->attrs('src');

  3. //打印结果

  4. print_r($data->all());

 

微信开发

以上基本上涵盖了一个常规应用开发中的方方面面,当然对于大型的分布式应用来说可能还差很多。


以上是关于这些 Web 开发工具,你都知道吗?的主要内容,如果未能解决你的问题,请参考以下文章

Git学习总结_06_作为一名程序员这些代码托管工具你都知道吗?

想转行做web前端工程师,必学这6大技能!你都知道吗?

Chrome这些调试技巧你都知道吗

想做前端开发?这些要求你都知道吗?

Chrome开发者控制台的这些功能你都知道吗?

身为初学Java的你,这些IDE的优缺点你都知道吗?