前言
老板与时俱进,开始带领大家搞机器学习。
新任务:利用深度学习+python+opencv,实现实时视频目标检测。看教程,很简单的样子,搞一下。
参考文档:
库、插件、框架、加载项、扩展和控件都是组件。
组件(Component)是一个含义很大的概念,一般是指软件系统的一部分,承担了特定的职责,可以独立于整个系统进行开发和测试,一个良好设计的组件应该可以在不同的软件系统中被使用(可复用)。例如V8引擎是Chrome浏览器的一部分,负责运行javascript代码,这里V8引擎就可以视为一个组件。V8引擎同时也是node.js的javascript解释器,这体现了组件的可复用性。
库(Library)是一系列预先定义好的数据结构和函数(对于面向对象语言来说,是类)的集合,程序员通过使用这些数据结构和函数实现功能。例如Moment.js是一个javascript库,提供了处理时间的一些函数。在js中,插件和库的含义相同,我们也可以说Moment.js是一个插件。
框架(Framework)也是一系列预先定义好的数据结构和函数,一般用于作为一个软件的骨架,但程序真正的功能还需要由开发者实现。框架和库的最大区别在于“控制反转”,当你使用一个库,你会调用库中的代码,而当你使用一个框架,框架会调用你的代码。框架和库是一个有交叉的概念,很多框架都是以库的形式发布的,例如Java的Spring MVC框架,其发布的jar包本身就是一个库。下图来自Library vs. Framework? ,从调用的角度说明了框架和库的关系:
《thinkphp部署到nginx服务器》一文中,小生提到过,nginx默认情况下不支持pathinfo模式,从而不能支持ThinkPHP。能访问的,只有首页,其他函数的路径,都无法访问。
这是因为,PHP中的全局变量$_SERVER['PATH_INFO']
,常常被用来优化url路径格式,比如thinkphp,而nginx是不支持pathinfo的。
同样的,小生开发的vkphp,虽然没有使用$_SERVER['PATH_INFO']
,但是也使用到了$_SERVER
,所以,也需要配置nginx支持pathinfo。