摘要: PHP 开发规范1.3.3一、编程规约(一) 命名风格【强制】代码中的命名严禁使用拼音与英文混合的方式,更不允许直接使用中文的方式。 说明: 正确的英文拼写和语法可以让阅读者易于理解,避免歧义。注意,即使纯拼音命名方式 也要避免采用。正例: alibaba / taobao / youku / hangzhou 等国际通用的名称,可视同英文。 反例: DaZhePromotion [打折] / g... 阅读全文
posted @ 2020-09-14 09:31 Martini 阅读(240) 评论(0) 推荐(0) 编辑
摘要: 概述Redis是基于内存存储,常用于数据的缓存,所以Redis提供了对键的过期时间的设置,实现了几种淘汰机制便于适应各种场景。设置过期时间我们可以在设置键时设置expire time,也可以在运行时给存在的键设置剩余的生存时间,不设置则默认为-1,设置为-1时表示永久存储。Redis清除过期Key的方式定期删除 + 惰性删除定期删除Redis设定每隔100ms随机抽取设置了过期时间的key,并对其... 阅读全文
posted @ 2020-08-28 12:07 Martini 阅读(1224) 评论(0) 推荐(1) 编辑
摘要: Git 简介Git是免费、开源的分布式版本控制系统,可以有效、高速地处理从很小到非常大的项目版本管理。SVN与Git的最主要的区别?SVN是集中式版本控制系统,版本库是集中放在中央服务器的,而干活的时候,用的都是自己的电脑,所以首先要从中央服务器哪里得到最新的版本,然后干活,干完后,需要把自己做完的活推送到中央服务器。集中式版本控制系统是必须联网才能工作,如果在局域网还可以,带宽够大,速度够快,如... 阅读全文
posted @ 2020-08-07 10:25 Martini 阅读(285) 评论(0) 推荐(0) 编辑
摘要: Upsource 是什么Upsource 作为一个代码审查工具, 有很多有益的特性.执行高效的代码审查从 IDE 审阅通过浏览器跟踪重要的变化发现设计缺陷, 找出项目中需要开发人员注意的部分检测项目范围的风险, 分散责任快速面板, 便于新成员了解项目并了解其他人的职责范围@回应, 讨论变化, 帮助队友可与持续交付/问题跟踪/github同步不用担心团队成员人数, 团队项目, 不限量~(10人免费)... 阅读全文
posted @ 2020-05-27 13:48 Martini 阅读(1579) 评论(0) 推荐(0) 编辑
摘要: MAC MAMP集成环境安装 PHP扩展开发环境中,对于需要维护很多 WEB 站点,以及可能会使用到很多不同的 PHP 版本,集成环境比较好用,在MAC 上 MAMP 集成环境是比较好用的,但是在安装扩展时也会遇到一些坑,这里总结一下 MAMP集成环境安装 PHP 扩展的流程。这里以安装 Redis 扩展为例。安装 Redis 服务如果使用本地 redis 数据库,需要先安装 Redis 服务。(... 阅读全文
posted @ 2020-02-18 11:00 Martini 阅读(611) 评论(0) 推荐(0) 编辑
摘要: 需求 对平均 1200w 数据量的数据表进行优化 数据表中有 2016年,2017 年,2018 年,2019 年数据 只查询最近半年的数据 后台增加历史数据查询功能 尽量减少代码改动 数据表 积分日志表 tb_user_points_log 虚拟充值表 tb_order_recharge 虚拟充值 阅读全文
posted @ 2019-11-19 20:51 Martini 阅读(1467) 评论(2) 推荐(2) 编辑
摘要: 所谓 设计模式 就是人们将开发中反复遇到的问题总结出来的解决方法。 设计源自生活,一切设计模式都可以用现实可以想象的世界来构造。如何将其中的概念、原理使用通俗易懂,更形象的话来描述,是我的初衷。 模式分类 范围\目的创建型结构型行为型 类模式 工厂方法模式 (类)适配器模式 解释器模式 模板方法模式 阅读全文
posted @ 2019-11-12 22:56 Martini 阅读(165) 评论(0) 推荐(0) 编辑
摘要: 策略模式(Strategy) 意图 对象有某个行为,但是在 不同的场景 下,该行为有 不同的实现算法。 就好比你去餐馆吃饭,首页你要通过菜单来选择你想吃的菜,根据你点的菜的不同,在厨房中去做不同的菜。同样是菜但是根据不同的菜名,有不同的做法。 适用性 需要在不同的情况下使用不同的策略(算法),或者在 阅读全文
posted @ 2019-11-12 22:49 Martini 阅读(221) 评论(0) 推荐(0) 编辑
摘要: 变量结构 zval 结构体 PHP 所有类型的变量在底层都会以 zval 结构体的形式实现 (源码文件Zend/zend.h) 源码根目录搜索 grep -rin --color --include=*.h --include=*.c _zval_struct * 注:上面zval结构体是 php5 阅读全文
posted @ 2019-10-29 14:10 Martini 阅读(382) 评论(0) 推荐(0) 编辑
摘要: 概念 垃圾回收机制 是一种内存动态分配的方案,它会自动释放程序不再使用的已分配的内存块。 垃圾回收机制 可以让程序员不必过分关心程序内存分配,从而将更多的精力投入到业务逻辑。 与之相关的一个概念,内存泄露 指的是程序未能释放那些已经不再使用的内存,造成内存的浪费。 那么 PHP 是如何实现垃圾回收机 阅读全文
posted @ 2019-10-29 14:10 Martini 阅读(762) 评论(0) 推荐(0) 编辑