PHP核心基础模块设计之有趣的ID生成器
在不少的技术文章,或者技术书籍中,关于唯一ID的生成,总结起来,可以有多种方法。比如: 在程序中使用全局计数器 使用数据库自增ID 相助操作系统底层或者编程语言本身提供的机制生成 使用现实世界中唯一的信息,例如个人身份证号 随机生成 根据特定的算法生成唯一序列 … 阅读更多
在不少的技术文章,或者技术书籍中,关于唯一ID的生成,总结起来,可以有多种方法。比如: 在程序中使用全局计数器 使用数据库自增ID 相助操作系统底层或者编程语言本身提供的机制生成 使用现实世界中唯一的信息,例如个人身份证号 随机生成 根据特定的算法生成唯一序列 … 阅读更多
可以说,日志服务是系统中不可或缺的基础模块之一,从小型网站,到大型企业级网站系统,都是如此。 但问题是,很多时候,由于考虑不周,日志服务是缺失的,或者是不全面的。由于激发的矛盾点是,日志服务不能满足日益增长的纪录需求,或者因为日志本身设计的不合理性影响了系统的 … 阅读更多
先来说一下企业级网站数据的多级缓存。 缓存的使用,对于有项目开发经验的技术人员来说,都不陌生。在PHP开发中,可以使用的缓存有很多,譬如文件缓存、APCU缓存、数据库缓存、SESSION缓存、COOKIE缓存、Redis和Memcache缓存等。但这些都只是存 … 阅读更多
记得我刚毕业出来工作,在开会评审需求时,听到最多的是产品同事指着需求原型的某处说:“这个地方要支持可配置”。历经5年后,在另一家公司评审需求时,我很惊讶地发现这里的产品同事不再要求可配置,而是在需要改动某一句文案时,就要跑过来跟技术开发人员说,“快,这里帮我改 … 阅读更多
以PHPunit单元测试为起点,向上向下,往左往右,都可以延伸出很多话题。 相关内容 PHP编程之PHPUnit单元测试的应用 PHP编程之PHPUnit高级测试 理性人 在经济学里,有一个术语,叫理性人,意思是指努力实现自己目标的人。 希望作为软件开发工程师 … 阅读更多
单元测试是一门注重实践的开发方式。虽然前面介绍了不少理论知识,但也是为了能让大家知其然,知其所以然。这一节将来介绍如何在平时开发中应用实践单元测试。 1 为Bugfixed编写单元测试用例 维护历史遗留系统的成本是很高的。这是因为旧系统经过几年的迭代,并且中间 … 阅读更多
PHPUnit是XUnit家族中的一员,它的作者是Sebastan Bergmann,他自己的使命是:Driven by his passion to help developers build better software。 简单认识完PHPUnit的作者 … 阅读更多
在PHP开发过程中,还有很多高级的技能。一旦掌握、解锁了这些高级特性,对于理解框架的实现、复杂项目的开发都能提升到一个新的层次和高度。这些高级编程技巧在平时的开发中也许会容易被忽略,但在关键的时刻它能发挥着重大的作用,并能协助你解决各种疑难杂症。 这一节主要讲 … 阅读更多
基本很多项目的开发都是基于PHP开源框架的,或者至少都是基于框架的,不管这个框架是内部的,还是自己个人编写的,还是来自开源社区的。理解框架是如何运行是很有帮助的,注意这里说的是理解,而不是了解。说白了,就是你不单要知道它是怎么样的,还要明白为什么会这样。 不同 … 阅读更多
PHP每次请求都会有单独的php-fpm进程响应和处理。php-fpm的进程模式又可以分为static静态执行和dynamic动态执行。不管是何种执行方式,都是启动了一定数量的php-fpm进程来响应排山倒海般流量的请求。假设,这些进程全部都被占满时,系统就会 … 阅读更多