简单打通前后端,Vue+PHP+Swoole

前后端分离已经是共识,通过Restful API通信传递数据,前端使用React、Vue、Angular三大框架,后端各语言显神威,这篇文章简单你将了解到前后端之间是如何通力合作,Vue是如何构建单页应用,后端是如何通过Swoole提供API服务。 前置开发环境 MacOS 10.13.3 Docker version 18.03.1-ce, build 9ee9f40 1、后端服务EasySwoole 除非是追求创造新框架,一般来说开发都是追求简单快速、已经有的框架,为了照顾以后可能会出现的性能问题(几乎不可能)和兼顾开发速度,PHP+Swoole对我来说是比较不错的选择,API和Socket、队列任务都有现成的框架集成。经过不断考察,最终选择了EasySwoole,里面的代码风格不太认同,不过无偿大碍,而且速度和上手都很容易,加上我自己根据其他人写的验证库,API开发体验上是接近最佳实践。 当然是上Docker,安装swoole容器,将EasySwoole映射进去跑即可,连Nginx都可以节省了,但在同一个服务器也是需要Nginx将请求导向到正确的应用服务器。因为Swoole是常驻内存,这样就和平时的PHP开发非常不用,需要重启Swoole进程,其实这样和Java的开发反而比较类似,…

腾讯云迁移,服务Docker化

阿里云便宜用了两年,无奈是马云养肥杀猪时刻,价格来个翻倍,比起我当时买的价格已经翻两番,刚好遇上腾讯云搞活动,马上入手准备转移。刚好不破不立,顺便将以前的服务Docker化,整理整理代码。至于下次迁移会到哪个平台?who care,今朝有酒今朝醉,这次能撑3年。 环境 Ubuntu 16.04 切勿在没有配置 Docker APT 源的情况下直接使用 apt 命令安装 Docker. 一、使用APT安装 由于 apt 源使用 HTTPS 以确保软件下载过程中不被篡改。因此,我们首先需要添加使用 HTTPS 传输的软件包以及 CA 证书。 $ sudo apt-get update $ sudo apt-get install \ apt-transport-https \ ca-certificates \ curl \ software-properties-common 鉴于国内网络问题,强烈建议使用国内源。…

Docker构建本地MySQL环境

MySQL构建现在非常方便,但一般会对本地环境有相当大影响,请神容易送神难。现在我们有Docker,可以非常轻松创建MySQL容器,轻松销毁,没有任何负担,而且可以将其编排成docker-compose和Dockerfile,非常快速组建集群,我们引入Docker后,的确大大提高效率。 前置开发条件 系统 MacOS High Sierra 10.13 首先,安装Docker,Docker版本没有要求,应该不同版本不会有太大区别,正常启动是这种状态 注意,在Mac上,2012以前的系列使用Docker会卡在Docker is Starting上,这是个机器的问题,建议使用2013起开始的机型,可能老旧的机器Docker不支持或者其他原因。 安装完成后,输入命令,docker -v顺利输出版本意味安装成功。 Docker的基本知识从这个链接上看即可 https://yeasy.gitbooks.io/docker_practice/content/ 看完之后,对Docker有个大致的了解。 现在让我们创建一个文件夹mysql5.7,这次我们使用5.7版本,你要使用其他版本亦可。…

MySQL的一些事一些情

MySQL引擎有好多种,但一般常用到的是MyISAM和Innodb,现在一般是使用Innodb较多,MyISAM由于历史原因,在现今环境也大量存在,如果MySQL版本是在5.5之前,那么MyISAM不可避免,至于为什么还用这么老旧的版本呢?技术主管备有责任,我曾经在用PHP5.3的公司呆过,那种酸爽,然而领导也不在乎,反正他说他出来的时候是用这套那就用这套,你们感受一下当时的气氛。 一、MyISAM 至于大家为什么少用MyISAM?让我们回顾它的特性,MyISAM是用了表级锁,相应地,并发性会大受影响,要对数据进行大量增删改查是需要对全表进行锁定,理所当然,性能大大削弱,要是纯粹读的话,那倒没什么区别。还有一个特点是表的修复并不给力,损坏之后修复往往特别容易出梗,不支持事务是较为鸡肋的方面,修复的时候数据丢失家常便饭。 这两个特点,使得MyISAM并不受欢迎。至于支持数据压缩和索引类型,这点在现在云时代下没太大作用,最不值钱的就是机器,加钱可以完美解决的就加钱吧。 但也不是一无是处,MyISAM引擎可以用来纯粹存数据,对数据时效性不敏感,比如存储日志信息这种,绝大多时候是读,可以考虑使用。还有是需要用空间类函数,在版本比较老的情况下,好像5.7,只有这个引擎可支持,那么就使用它吧。…

更换阿里云免费Https证书Symantec

之前使用StartSSL的证书,一开始使用没问题,后来爆出各种负面消息,最后Chrome最新版不再支持,最后找到阿里云的免费证书使用Symantec,对于个人来说足够了,个人使用差不多了。 去申请这种比较容易,不细说,这里我遇到一个问题,在Ghost博客的nginx配置,ghost.conf中 server { listen 443; server_name 网站域名; ssl on; ... ssl_certificate 证书文件路径.pem; ssl_certificate_key 证书文件路径.key; ssl_session_timeout 5m; ssl_ciphers ECDHE-RSA-AES128-GCM- SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4; ssl_protocols TLSv1…

程序员的自我修养:链接、装载与库(三)

读了之后发现没有能力将其说明白,一部彻底将代码在计算机内如何执行,编著这本书估计都花费大量精力才能完成,这本书目前对我来说没有实际价值,所以阅读之后感觉并没有感触,有些书要达到一定境界再去阅读才能领悟,现阶段我的境界还非常欠缺。 记下,记住自己的渺小。…

中州韻输入法之美

以前用搜狗输入法,后来百度输入法,紧接着用上双拼,其实对于普通需求来说都是没啥区别,作为一名敢于感受新鲜事物的我来说,中州韻输入法非常合我口味,多种输入法支持、超强自定义能力、良好的体验真的值得你去尝试。 以前听过中州韻输入法的大名,也尝试过安装,但由于经验不足,看到如此多复杂的配置很快放弃,后来再次尝试,找好资料不断修改,让其适应自己的使用习惯,终完成对其的控制。 这次的修改基于Cheng做的修改,样式没有大变,双拼做了自己的设置,单词上拼也有变化。总体来说符合了我的需求,双拼同时加上模糊音。在前人的基础上,继承了很多特性,符号输入、表情都可以直接上屏等等。 中州韻官网的介绍已经很全面,提供了很多参照代码,但不是友好的图形化界面,第一次上手难免会感到麻烦,语法也是使用yaml文件,注定是一个有学习成本的软件,所以只能慢慢学习调教。 上面是其设定的地方,为了不被以后升级覆盖文件,我们一般会用custom.yaml文件来自定义自己个性化需求,加载会把这些custom文件一起加载。 输入特点 输入 /dn 显示 symbols.yaml 中定义的符号; 常见拼写容错处理; 识别网址、邮件地址,输入后直接上屏;…

Docker环境治理

之前一开始不懂事,乱安装Docker,没有管理的意识,导致现在管理非常混乱,所以来了一次彻底删除安装,步入自己管理范围 首先删除所有相关软件 docker-machine rm -f $(docker-machine ls -q); 停止boot2docker和删除镜像,如果不生效不用理 boot2docker stop boot2docker delete 移除 boot2docker和docker 应用 sudo rm -rf /Applications/boot2docker sudo rm -rf /Applications/Docker 移除所有 boot2docker 命令行工具 sudo rm -f /usr/local/bin/docker sudo rm -f /usr/local/bin/boot2docker sudo…

Vim大法好

在世界上有三种人:一种是使用Vim的,另一种是使用是Emacs的,剩下的是第三种人…… 个人看法是不管什么编辑器,适用场景即可,比如你想改一点地方,打开IDE会比例慢,这时可以使用Vim或者Sublime这些编辑器,至于Vim和Sublime哪个使用得顺手,看自己具体情况,有时Sublime会比Vim更有优势。至于为什么使用Vim?没什么,个人习惯而已。 使用一开始是对Vim进行配置,这是个漫长的过程,奉行开箱即用的理念,强烈推荐大家使用这个配置,先用一个,到以后使用熟练再此基础上做插件、配色方案的更改。 https://github.com/spf13/spf13-vim 够好用,能满足一开始的需要。 这回谈谈一般开发会涉及到什么,以及哪些操作最常用。 有时你会见到人,一开始放出下面两种图,这么多吓死人。 一般来说,实际使用并不会所有都要用到,28原则,用到的又没了解过的,再去查。 第一时间当然打开我们的vim,选择某个工程,最好找一个vim配置,用起来非常方便。 一般我们随便打开一个工程, 默认在Normal模式,在左下角也可以看出,此时按i进入Insert模式,左下角会切换Insert字样,现在可以在里面输入内容。想返回Normal模式,…

程序员的自我修养:链接、装载与库(二)

编译和链接 平常的开发环境是IDE,我们只需要点击run,之后所有的事情都会由它来解决,我们看到的只是IDE处理之后的结果(无论是运行正确or失败),这样是可以让我们专注开发高级语言开发,但实际上很多细节诸如编译和链接都被隐瞒了,实际上这是一个非常复杂的过程,让我们探究里面究竟发生了什么。透过现象看出本质,能让我们顺利处理很多莫名其妙的错误。 1、隐藏的过程 首先让我看这一段简单的C代码 #include <stdio.h> int main() { printf("Hello World\n"); return 0; } 我们需要编译这个文件(Hello.c),一般通过如下命令(Linux) gcc Hello.c 然后运行 ./Hello.out 输出Hello World,实际上这么简单的语句,其实包含了四个过程,预处理(Prepressing)、编译(Compilation)、汇编(…