从零开始搭建自己的Swoole框架(二)项目的规划和设计草案
项目的规划和设计草案前言在第(一)章中我们已经实现了 hellow world! 但是现在不用急着撸代码, 而是要把我们设计这款框架的想法捋顺。 期望效果按照重要性给各项指标进行打分,其中星星越多代表重要性越高。 开发舒适度:★★★★★这是最关键的一条! 使用了我们的框架, 开发者撸代码会变成愉♂ ...
阅读更多
从零开始搭建自己的Swoole框架(一)框架概述
从入口文件开始说起框架概述简单地说框架就是封装好各种便利功能的工具, 同时还会“自动化”的处理复杂的事情, 通俗的说就是让程序员开开心心码代码的结构。 我们现在要撸的这套框架,应该满足以下需求: 可以缩短开发时间 支持后期扩展 不是仅仅封装一下类和方法就叫框架了, 它整体的结构应该让程序员使用起 ...
阅读更多
从零开始搭建自己的Swoole框架(序章)
开发目标及准备说明这一篇不包含任何技术代码,如需要直接开始请阅读第(一)章。 前言毕业三年,成为架构师! 这是我毕业时的梦想,结果没有实现。 现在重拾初心,从零设计一个属于自己的框架! 目标按照目前市面上的发展来看, swoole 毫无疑问是目前 PHP 的天花板, 而自己在工作的时候做的都是流水线 ...
阅读更多
MAC 系统打开网页速度缓慢问题的解决方法
问题描述MAC系统的浏览器打开某些网站特别慢,有的甚至打不开。比如百度云网盘链接打开很快,但是点击输入提取码却要卡半天;百度图片甚至直接打不开了;还有B站打开也要半天,严重浪费时间和影响效率。 解决方法改变位置其实不是家里网络的问题,而是苹果系统迷之BUG! 首先点击左上角的苹果图标,然后选择“系统 ...
阅读更多
MySQL为什么不使用 SELECT *(星号)查询?
前言不论书上还是网上的技术论坛分享的 MySQL 查询优化方面的文章都不推荐使用 SELECT *,但是他们从未说过为什么不能这样用或者仅仅只是浅显的描述原因,但并不能让人觉得心服口服,那么——到底在 MySQL 为什么不用 SELECT * 来查询呢? 老娘很好奇!——「千反田」 使用场景实际上 ...
阅读更多
MySQL新增用户、修改密码、设置权限
前言每次部署新项目都要重新设置 MySQL 的用户及权限,但这些基础命令又不经常用到,每次都要重新查找,于是整合了一下发成博文以便后续直接 复制粘贴。 网上搜索的大都是低版本 MySQL 或者根本就是错误的代码,不知道他们这样直接复制粘贴别人的代码但又没试过的是什么心态,简直浪费别人的时间。(尤其点 ...
阅读更多
拆分你的代码
前文概要本文讲述的是如何把一个大文件拆分成许许多多小文件的方法。 所谓大文件其实没有一个明确定义,暂且规定一个文件如果超过 1000 行就算大文件吧! 当然也不用死脑筋,一看到代码行数多就得拆分,这完全要看情况,就好比玩游戏辅助的位置就一定得跟射手?如果脑袋不会转弯,对以后学习都很不利。死脑筋在一定 ...
阅读更多
MySQL占用内存过高优化记录
前言在腾讯云购买的 1 核 1G 主机,使用 Docker 搭建的 MySQL 内存占用竟然高达 34%!再加上 Docker 其他容器运行起来和系统本身程序占用的内存,总内存高达 80+%,由于其他程序使用了 Redis 作为缓存,1G 内存就剩下 10%+ 可用内存(100MB+),一不小心可能 ...
阅读更多
游戏菜单系统开发之栈的妙用
菜单系统菜单是所有游戏必不可少的一个系统。 在游戏场景中,按 X 键可以呼出菜单,在菜单中按上下键可以切换菜单选项,再按 Z 键可以选中菜单,然后进入子页面的操作,子页面的菜单中也有子菜单,子菜单的操作与父级菜单一致。当打开菜单的状态,再按 X 键会返回上一级的菜单,直到主菜单返回游戏场景。 演示效 ...
阅读更多
Javascript使用对象必须知道的一件事
JavaScript 的对象JavaScript 中,对象即引用。 我们知道引用的特性: 将对象赋值给另一个变量,另一个变量的值如果改变,原对象的值也会改变。 引用即是内存地址的指向,将对象赋值给另一个变量,相当于另一个变量也指向了同一块内存地址,因此改变值时,原对象的值也会跟着变。通过下面的例子来 ...
阅读更多