基于高性能算法实现的优雅 ID 混淆扩展包 —— Laravel Hashid

Laravel Hashid 整合了 Base62、Base64、Hashids、Hex、Optimus 等高性能编码算法,并提供了统一的、优雅的、简单易用的调用接口,将「敏感数据」混淆(编码)成可还原的、非连续的、URL 安全的标识符 (ID) 。 应用场景示例 不希望对外暴露有规则的数据索引,比如用户 ID 、媒体资源 ID 、商品 ID 、订单号、注册码、优惠码等,防止爬虫侵扰。 …

《程序员修炼之道:从小工到专家》第六章:当你编码时(1)

一、靠巧合编程 怎样靠巧合编程 实现的偶然 实现的偶然是那些只是因为代码在现在的编写方式才得以发生的事情。尽管它们能够工作,但那实在只是一个巧合。 对于你调用的例程,要只依靠记入了文档的行为。如果出于任何原因你无法做到这一点,那就充分把你的各种假设记入文档。 语境的偶然 命令行?GUI?中文? 隐含的假定 巧合可以在所有层面让人误入歧途——从生成需求直到测试。特别是测试,充满了各种虚假因…

PHP 设计模式系列 —— 策略模式( Strategy)

1、模式定义 在软件开发中也常常遇到类似的情况,实现某一个功能有多种算法或者策略,我们可以根据环境或者条件的不同选择不同的算法或者策略来完成该功能。如查找、排序等,一种常用的方法是硬编码(Hard Coding)在一个类中,如需要提供多种查找算法,可以将这些算法写到一个类中,在该类中提供多个方法,每一个方法对应一个具体的查找算法;当然也可以将这些查找算法封装在一个统一的方法中,通过if……