简单比较:PHP 函数、闭包的性能

2022-10-21
阅读 2 分钟
1.3k
[EA] This closure can be declared as static (better scoping; in some cases can improve performance).

PHP Linter 与规则定义小探

2022-09-14
阅读 4 分钟
1.9k
本文旨在确认 PHPLint、PHP-CS-Fixer 和 PHP_CodeSniffer 的差异,根据当前公司的需求进行选择,并编写一个简单的自定义规则。

TCP 握手与一些概念

2022-06-27
阅读 3 分钟
574
如果你只是在编写 Web 应用,你完全无需了解三次握手的细节——因为我真的没想到应用场景,如果你知道,可以告诉我。故事要从我第一次编写长连接应用说起,从 HTTP 下的需求开发,到编写 TCP 长连接应用,于我而言,倘若不理解握手流程,就很难理解:什么是数据包?如何解析一个包?握手流程里的事件用途?怎样的表现是传...

游戏的 Redis 选用思考

2022-06-20
阅读 2 分钟
734
这个问题最初不存在,我是直接用 String convert to JSON,然后看到了汉家松鼠的技术总结,他们采用的是 Hash,就此产生了 diff 这两者的想法。

MySQL 之隔离级别:可重复读

2022-06-20
阅读 4 分钟
1.5k
鄙人希望能写一些对萌新有所帮助的文章,若有谬误,还望不吝赐教。在 MySQL 中,当我们将隔离等级明确为可重复读*(实际上是 MySQL 的默认事务隔离级别),接着运行一个事务,再开启另一个事务:A 事务首次查询;B 事务接着新增;A 事务随后包含 B 事务的新行进行更新,并再次查询;结果出现变化,这似乎没有避免直觉上...

非开发编码集结

2019-09-26
阅读 2 分钟
975
题:给定一个乱序的、纯数字的、值不重复的数组,请用递归,将其排序。输入:[12, 42, 5, 23, 65]输出:[5, 12, 23, 42, 65]解:

【In PHP】析构、作用域与引用

2018-12-04
阅读 3 分钟
1.9k
本文假装你已经明白什么是析构方法、作用域及引用次数。关于后者,引用次数是 PHP 垃圾收集中的重要机制,它很大程度上,帮助 PHP 在程序运行时清理内存垃圾(参考:引用计数基础 - PHPDoc)。

Generating fantasy maps——来生成虚拟地图吧!【未完】

2018-12-04
阅读 10 分钟
15.7k
本人出于兴趣,翻译英文教程。文中测试片段无法搬运,建议具备英文能力的小伙伴直接看英文教程。(转载本文,需注明本文链接。请让我涨个粉,蟹蟹[滑稽脸])

Git - 组合操作 - 速查

2018-05-19
阅读 1 分钟
1.7k
哪位大佬可以创建一个“速查”标签(迅速的查询相关的词条、资讯,从而达到高效率搜索的目的),多谢。使用本速查文章,请在了解名词规范的基础上,善用 Ctrl + F。 本速查表仅由本人收集、整合,非本人原创。欢迎各位留言自己总结的组合操作。

Web 软件工程师,你想要的一切规范,均在此罗列。

2017-10-30
阅读 1 分钟
1.5k
无论你是入门者,还是期待成长的工作者。** 你是否怀疑过自己的代码是否保持了良好的风格?你是否想了解最新最前沿,同样是最优秀的技术规范? 这里,拥有你现在想要的,和你未来期望存在的——一切规范。

MySQL - 事务的启动 / 设置 / 锁 / 解锁——入门

2017-07-08
阅读 3 分钟
9.3k
The article upgrade at 2022.06.22废话本篇的名字简直可以起成《事务操作:从入门到放弃》。力图解决:在MySQL 5.5 版本及更高版本时,使用事务的完整流程和细节记录,而无需面对互联网上纷繁零散的事务笔记。实践 - 基础首先,在你的空数据库上(譬如Test预留数据库),创建一个test表,有id和text(varchar 50)两个字...

【面向对象的PHP】之模式:组合

2017-05-11
阅读 6 分钟
3k
如果你注意了目录,会知道:组合是一个新的开始。在系统代码设计的过程中,我们通过继承来组织代码,父类与子类,实质上对应了业务的整体规范与具体需求。所以,我们需要将类按照某种逻辑组合起来,从而让类成为一个集合化的体系。组合模式,描述的就是这种逻辑——当我们需要通过规范的操作,来联系一些类,甚至将其格式...

【面向对象的PHP】之模式:原型

2017-04-08
阅读 2 分钟
2.2k
(通俗介绍:工场只负责生产产品,选择生产何等产品,不再由工场自己决定,而是通过传参,来确认——对比抽象工厂,你可以发现,我们再也找不到一大群具体产品的创建者,而只有一个高度灵活的创建者)

【面向对象的PHP】之模式:抽象工厂方法

2017-03-21
阅读 3 分钟
3.2k
这样,我们无论怎样修正具体产品,都不会影响使用者。现在,我们可以做出来一群小工厂,他们有各自的产品,但形成了模式层面的重复,那么我们如何化解这种重复呢?

【面向对象的PHP】之模式:目录

2017-03-16
阅读 1 分钟
3.4k
系列目录 生成对象的模式 【面向对象的PHP】之模式:单例 【面向对象的PHP】之模式:工厂方法 【面向对象的PHP】之模式:抽象工厂方法 【面向对象的PHP】之模式:原型 组合类/对象的模式 【面向对象的PHP】之模式:组合 5.18 更新 装饰模式近况,本文暂时停更,作者忙于做小游戏。

【面向对象的PHP】之模式:工厂方法

2017-03-16
阅读 3 分钟
3k
面向对象的设计强调“抽象类高于实践”,尽可能的将代码设计的一般化,而非特殊化——也就是降低耦合,提升标准性。于是,前辈们便设计了“特定类处理实例化”的工厂方法。

【面向对象的PHP】之模式:单例

2017-03-13
阅读 2 分钟
2.5k
全局变量是OOP程序猿遇到的主要BUG源泉之一,全局变量的冲突也是极其危险的,因为PHP不会对其产生任何级别的错误,如果结果不能直接观测,那么你的程序可能会让你感到懵圈。

【IP】伪造 && 甄别

2017-03-02
阅读 2 分钟
3k
断言 三重问: IP伪造是否可能? 1为True,IP伪造的规模性是否存在限制? 1为True,甄别IP伪造的成功率是多少? IP伪造是否可能 这个问题简单提一下,真实的IP伪造是很难实现的,TCP协议中,IP地址被封装在IP数据包内,传送出现任何问题,都将与其封装的IP进行交互。 交互必定失败,因为伪造IP具备了一个“只能发送、不能...

Git - 使用笔记 [17/02/28]

2017-02-28
阅读 1 分钟
1.8k
初次建议加-u,不加也行(当前分支与多个主机存在追踪关系,则可以使用-u选项指定一个默认主机)git push -u origin master

游戏设计 - Machinations——可视化游戏设计

2017-02-19
阅读 2 分钟
5.6k
Machinations是一款可视化的游戏流程模拟器,对于简单的流程模拟,其提供了简洁的组件、重复模拟机制,都为游戏设计者提供了相当的便利性。

【转】MySQL - 分表、分区

2017-02-18
阅读 4 分钟
2.6k
日常开发中,我们经常会遇到大表(指存储了百万级乃至千万级条记录的表)。这样的表过于庞大,导致数据库在查询和插入的时候耗时太长,性能低下,如果涉及联合查询的情况,性能会更加糟糕。分表和表分区的目的 就是减少数据库的负担,提高数据库的效率,通常点来讲就是提高表的增删改查效率。

SQL - 浅谈视图

2017-02-12
阅读 1 分钟
2.3k
视图是一个虚拟表,它存在、可被查询,却很难修改、不建议修改(具备多种限制)。优点在于:视图的字段由我们定义,这样大大的优化了查询效率。(可以想象,视图查询其实是对格式化表的查询)

Yii2 - 控制台命令

2017-02-03
阅读 2 分钟
3.7k
通过控制台(终端/命令行界面)执行的程序。继承 yii\console\Controller 类,且内容与 Web Controller 相仿。

Foo, Bar是什么意思?

2017-02-01
阅读 1 分钟
9.1k
有些朋友问:foo , bar 是什么意思,为什么C++书籍中经常见到这个词。我Google了一下,这个问题,在维基百科上有很好的回答。在这里翻译给大家。

MySQL - 慢查询

2017-01-08
阅读 1 分钟
2.3k
慢查询 首先,无论进行何种优化,开启慢查询都算是前置条件。慢查询机制,将记录过慢的查询语句(事件),从而为DB维护人员提供优化目标。 检查慢查询是否开启 通过show variables like 'slow_query_log'这条语句,可以找到慢查询的状态(On/Off)。 开启慢查询 本文使用的MySQL版本:MariaDB - 10.1.19,请注意,不同版...