目录

基础技术

linux

Linux常用命令 - 9ong

Linux同步服务rsync - 9ong

Linux硬链接与符号链接之link - 9ong

Linux常见目录知一二 - 9ong

Linux明明白白你的系统日志 - 9ong

Linux打包压缩范例分析 - 9ong

Linux-cron计划任务服务详细介绍 - 9ong

Linux-buffer与cache内存 - 9ong

grep工具介绍 - 9ong

apache

Apache-httpd.conf配置说明 - 9ong

Apache-proxy转发 - 9ong

Apache常用配置说明 - 9ong

nginx

Nginx基础概要全记录 - 9ong

Nginx常用配置范例 - 9ong

死磕nginx系列–nginx 限流配置 - biglittleant - 博客园

NGINX宏观手记(建议收藏) - 知乎

php-fpm

php-fpm与fast-cgi - 9ong

php-fpm与cgi及fastcgi - 9ong

深入了解下PHP-FPM - 知乎

php面试题之nginx如何调用php和php-fpm的作用和工作原理 - 知乎

PHP进阶之路 - 深入理解FastCGI协议以及在PHP中的实现 - 知乎

mysql

漫画B+树 - 9ong

mysql优化全面梳理 - 9ong

明明白白事务ACID - 9ong

深入理解mysql事务ACID实现原理 - 9ong

mysql为什么使用B+树-能存储多少行 - 9ong

mysql优化实例汇总 - 9ong

mysql的join明明白白 - 9ong

mysql的索引是什么怎么优化 - 9ong

mysql索引优化干货 - 9ong

mysql利用索引优化order-by - 9ong

详解mysql-explain - 9ong

悲观锁实践 - 9ong

高性能mysql笔记 - 9ong

一文搞懂 SQL:基础知识和业务实践总结 - 腾讯技术工程

阿里云RDS vs 自建MySQL,选择困难?这篇评测为你讲的明明白白! - 知乎

mysql理论实战文章索引

redis

配置、命令、数据类型、消息订阅、事务、持久化、集群、sentinel监控

Redis 命令参考 — Redis 命令参考

为什么要用redis - 9ong

Redis可以做哪些事?

Redis的使用与管理 - 9ong

redis穿透与雪崩 - 9ong

腾讯云Redis混合存储版重磅推出,万字长文助你破解缓存难题! - 知乎

redis实现消息队列&发布/订阅模式使用 - QiaoZhi - 博客园

Redis 使用场景

Redis-Cluster集群 - 简书

redis4.0、codis、阿里云redis 3种redis集群对比分析 - 知乎

Redis读写分离技术解析_通用最佳实践_最佳实践_云数据库 Redis - 阿里云

高性能分布式锁_企业版最佳实践_最佳实践_云数据库 Redis - 阿里云

限流器_企业版最佳实践_最佳实践_云数据库 Redis - 阿里云

网上商城商品相关性分析_通用最佳实践_最佳实践_云数据库 Redis - 阿里云

使用Redis搭建视频直播间信息系统_通用最佳实践_最佳实践_云数据库 Redis - 阿里云

使用Redis搭建电商秒杀系统_通用最佳实践_最佳实践_云数据库 Redis - 阿里云

广告点击数实时统计(Redis + Spark)_通用最佳实践_最佳实践_云数据库 Redis - 阿里云

解密Redis助力双十一背后的技术_通用最佳实践_最佳实践_云数据库 Redis - 阿里云

游戏玩家积分排行榜_通用最佳实践_最佳实践_云数据库 Redis - 阿里云

将MySQL数据迁移到Redis_通用最佳实践_最佳实践_云数据库 Redis - 阿里云

使用Redis在Web应用中实现会话管理_通用最佳实践_最佳实践_云数据库 Redis - 阿里云

php

PHP: PHP 手册 - Manual

PHP进化史 — 从v5.6到v8.0(可收藏) - 知乎

看吧,这就是现代化 PHP 该有的样子_PHP / Laravel / 全栈 - SegmentFault 思否

php.ini配置说明中文版 - 9ong

16 个 PHP 开发者必知必会的魔术方法 - 知乎

100个最常用的PHP函数(记得收藏哦) - 知乎

PHP文件或目录的读写及操作 - 9ong

通俗易懂PHP迭代生成器 - 9ong

理解PHP中的Streams - 9ong

PHP协程实现 - 9ong

php单线程还是多线程 - 9ong

php多线程 - 9ong

浅析用PHP实现MVC - 9ong

如何挑选PHP框架 - 9ong

PHP开发安全问题总结 - 9ong

PHP网站常见一些安全漏洞及防御方法 - 9ong

PHP性能优化解读与补充 - 9ong

PHP方案解读与补充 - 9ong

如何严格设置php的session过期时间 - 9ong

PHP开发中的中文编码问题 - 9ong

PHP编码规范 - 9ong

代码整洁之道-php版 - 9ong

PHP底层的运行机制与原理 - 9ong

后端PHP面试题框架 - 9ong

PHP练级攻略 - 9ong

PHP开发必备的七种武器及评注 - 9ong

对PHP语言的10大误解 - 9ong

javascript

jquery、vue、zepto、es6、vue、iview、webpack工具链

一文读懂JavaScript和ECMAScript的区别 - 9ong

彻底理解URL编码 - 9ong

Vue学习路线图 - 9ong

webpack4快速上手 - 9ong

webpack与bower的区别 - 9ong

NPM与Bower包管理的区别 - 9ong

前端页面布局篇 - 9ong

前端性能优化策略-移动端 - 9ong

jqGrid前端列表组件使用说明 - 9ong

Tampermonkey油猴API - 9ong

Ubuntu安装nodejs-npm-bower环境 - 9ong

windows10搭建nodejs+npm环境 - 9ong

javascript面试概要 - 9ong

前端编码规范 - 9ong

css

盒子、flex、float、position

CSS简要快速上手 - 9ong

【建议收藏】css晦涩难懂的点都在这啦

彻底理解CSS之Position - 9ong

彻底理解CSS之浮动 - 9ong

tcp与http

彻底弄懂TCP协议:从三次握手说起 - 腾讯技术工程

Wireshark基本介绍和学习TCP三次握手 - 小坦克 - 博客园

微信体系小程序/云开发

微信开放文档-小程序

解密小程序云开发数据库 - 腾讯技术工程

小程序云开发

小程序交流专区 | 微信开放社区

python

整理phper初学python想知道的知识点 - 9ong

python简要教程 - 9ong

python面向对象知识 - 9ong

python教程 - 9ong

Python 的精髓居然是方括号、花括号和圆括号!

一次性清楚__main__ - 9ong

python最强大的网络库requests - 9ong

python之anaconda全家桶 - 9ong

python中yield的简单清晰详解 - 9ong

一次搞懂Python装饰器 - 9ong

ubuntu-pyhon3-scrapy环境 - 9ong

python爬虫分析示例汇总 - 9ong

python简单分析厦门景点 - 9ong

推荐11个实用Python库 - 9ong

Python资源大全版 - 9ong

golang

关于GO语言,这篇文章讲的很明白 - 知乎

go语言的现状与发展 - 9ong

go语言环境搭建 - 9ong

贝壳找房小程序从PHP到Golang的跃迁之路 - 知乎

go语言项目构建与编译雏形 - 9ong

Go与PHP的语法对比 - 知乎

go语言关键基础知识梳理 - 9ong

golang并发编程基础 - 9ong

golang常用标准库 - 9ong

golang的50多个坑 - 9ong

golang的优缺点 -华为云开发者社区 - 知乎

Go为什么这么快 - 腾讯技术工程

Golang 单元测试详尽指引 - 腾讯技术工程

GO语言学习资源整理 - 知乎

golang 中有哪些开源项目适合新手? - V2EX

适合 Go 新手学习的开源项目——在 GitHub 学编程 - 知乎

正则表达式

正则表达式 - 9ong

一文掌握开发利器:正则表达式 - 腾讯技术工程

算法与数据结构

PHP实现四种基本排序算法 - 9ong

数据结构笔记 - 9ong

数据结构和算法就相当于程序员的内功

可视化算法工具 - Algorithm Visualizer

设计模式

IOC思想与DI实现

外观模式

设计模式概述-概念和意义 - 9ong

简述23种设计模式 - 9ong

概要理解设计模式 - 9ong

23种设计模式全解析 - 9ong

php设计模式汇总

PHP完整实战23种设计模式(收藏) - 知乎

docker

五分钟快速了解Docker - 知乎

@Docker文章分享 - 9ong

Docker国内镜像源 - 9ong

Docker常用命令 - 9ong

Docker-compose安装 - 9ong

Docker-compose常用命令 - 9ong

Docker构建程序员的日常 - 知乎

Docker安装nginx - 9ong

Docker(nginx+php-fpm) - 9ong

Docker安装RabbitMQ服务 - 9ong

Docker安装(Ubuntu) - 9ong

Docker安装jira与confluence - 9ong

代码放在Docker里面还是外面 - 9ong

Docker阿里云仓库 - 9ong

Docker之Jenkins自动化部署 - 9ong

人工智能-深度学习

机器学习数学基础概念 - 9ong

人工智能(AI)是如何处理数据的? - 知乎

未来 AI 可能给哪些产业带来哪些进步与帮助? - 知乎

GitHub - PHP-ML - Machine Learning library for PHP

机器学习的思考故事 - Baidu AI Studio

飞桨PaddlePaddle-源于产业实践的开源深度学习平台

小微企业如何实现智能化转型?百度EasyDL助瀚才咨询实现AI落地

框架

自有框架

从0开始构建一个属于你自己的PHP框架_TIGERB的技术博客 - SegmentFault 思否

composer包管理

Composer 中文网 / Packagist 中国全量镜像

Composer-PHP开发者务必了解 - 9ong

你必须知道的22个PHP Composer最佳实践 - 知乎

Composer常用命令 - 9ong

取代PHP原生函数的一些扩展包 - 知乎

如何优雅修改composer第三方类库 - 9ong

Ubuntu安装composer - 9ong

windows10安装composer - 9ong

composer资源包库 - Packagist

composer常用推荐包

Packagist 官方地址

overtrue/wechat 微信 - Packagist

overtrue/socialite A collection of OAuth 2 packages - Packagist

yurunsoft/yurun-oauth-login 第三方登录授权 SDK,集成了QQ、微信、微博、Github等常用接口。 - Packagist

firebase/php-jwt - Packagist

guzzlehttp/guzzle 功能强大的HTTP请求库

itbdw/ip-database 免费IP地址数据库(纯真IP地址数据库,输出格式为国家、省、市、县、运营商)❤️ 🇨🇳,中文数据库 - Packagist

hassankhan/config 轻量级配置加载类,支持多种配置格式PHP, INI, XML, JSON, and YML

desarrolla2/cache 简单的缓存类,提供多种缓存驱动Apc, Apcu, File, Mongo, Memcache, Memcached, Mysql, Mongo, Redis

hashids/hashids 数字ID生成类似优酷视频ID,支持多语言,支持加盐生成

sika/sitemap XML网站地图生成器

catfan/medoo 简单易用数据库操作类 支持各种常见数据库

rize/uri-template URL生成

intervention/image 图片处理,提供对图片的各种操作:获取图片信息,上传,格式转换,缩放,裁剪等等等

phpmailer/phpmailer 邮件发送

phpoffice/phpexcel excel操作类

phpoffice/phpword - Packagist

php-amqplib/php-amqplib rabbitmq - Packagist

league/route 路由调度

michelf/php-markdown PHP markdown 解析

erusev/parsedown PHP markdown 解析

league/html-to-markdown HTML转markdown

monolog/monolog 日志操作 composer官方就是用它做例子

phpcollection/phpcollection PHP 集合操作

jalle19/php-whitelist-check IP/网址黑白名检查 支持模糊匹配

league/csv CSV操作类

shark/simple_html_dom php解析html类库

predis/predis 适合小项目 - Packagist

yansongda/pay 专注 Alipay 和 WeChat 的支付扩展包 - Packagist

overtrue/wechat 微信SDK - Packagist

alibaba/nacos 阿里巴巴nacos配置中心php客户端 - Packagist

liliuwei/thinkphp-social 适用于thinkphp5.1和6.0的社会化登录扩展 - Packagist

johnlui/aliyun-oss 阿里云 OSS 官方 SDK 的 Composer 封装 - Packagist

mrgoon/aliyun-sms 阿里云短信服务php调用代码 - Packagist

mobile/push 极光推送 - Packagist

wi1dcard/baidu-mini-program-sdk 百度小程序第三方 PHP SDK,助力智能小程序开发。 - Packagist

dcat-admin-extension/ueditor - Packagist

shaozeming/translate 一个集成百度翻译,有道翻译,Google 翻译 - Packagist

fanlibang/flbtaobaosdk 淘宝官方SDK - Packagist

niugengyun/easytbk 淘客六合一SDK,支持淘宝联盟、京东联盟、多多进宝、唯品会、苏宁、蘑菇街 - Packagist

ennnnny/tbk 简约优雅的淘宝客SDK - Packagist

hellogerard/jobby Manage all your cron jobs without modifying crontab. Handles locking, logging, error emails, and more - Packagist

overtrue/easy-sms 多网关短信发送组件

overtrue/flysystem-qiniu 七牛 CDN SDK

overtrue/chinese-calendar 中国农历转换与查询工具

overtrue/pinyin 汉字转拼音

overtrue/weather 基于高德开放平台天气SDK

topthink/think-cache ThinkPHP缓存管理

topthink/think-captcha ThinkPHP验证码类库

topthink/think-image ThinkPHP图片简单处理

topthink/think-log ThinkPHP写入LOG日志

topthink/think-queue ThinkPHP队列

topthink/think-swoole ThinkPHP Swoole

topthink/think-worker ThinkPHP workerman

zoujingli/ip2region 离线版ip地址定位库

endroid/qr-code 二维码生成组件

jaeger/querylist PHP采集工具(爬虫),基于phpQuery

hellogerard/jobby cron任务管理组件

zhuzhichao/bank-card-info 银行卡信息查询组件

laravolt/avatar 生成用户头像

chen-see/chen-pay 免签约支付宝与微信

aoxiang/province-city-area 京东全国省市县乡镇街道

overtrue/package-builder - Packagist

swoft/swoole-ide-helper - Packagist

elasticsearch/elasticsearch - Packagist

Laravel

Laravel吐槽系列之(一) - 知乎

Installation - Laravel - The PHP Framework For Web Artisans

ThinkPHP

启动分析 · Thinkphp 6.0 企业级后台管理开发&源码分析 · 看云

解析 Request · Thinkphp 6.0 企业级后台管理开发&源码分析 · 看云

应用初始化 · Thinkphp 6.0 企业级后台管理开发&源码分析 · 看云

中间件分析 · Thinkphp 6.0 企业级后台管理开发&源码分析 · 看云

请求流程 · Thinkphp 6.0 企业级后台管理开发&源码分析 · 看云

ThinkPHP6.0完全开发手册 · 看云

ThinkPHP5采用Composer完全安装 - 9ong

ThinkPHP6试用简易报告 - 9ong

ThinkPHP6源码分析之应用初始化 - 知乎

ThinkPHP如何使用cli模式 - 9ong

ThinkPHP中采用子域名部署解决API版本管理 - 9ong

ThinkPHP模板编译缓存 - 9ong

ThinkPHP框架 | 中文最佳实践PHP开源框架,专注WEB应用快速开发8年!

ThinkAPI 统一API调用服务 · 看云

ThinkPHP服务市场

插件开发 daniuwo/thinkphp6-addons

Swoole

swoole使用场景

协程实现

涉及composer包管理

Swoole4 文档

Swoole · ThinkPHP6.0完全开发手册 · 看云

教你Swoole入门 - 9ong

Linux下搭建swoole服务的基本步骤 - 知乎

Swoole 协程 MySQL 客户端与异步回调 MySQL 客户端的对比 - 知乎

Swoole高效跟传统的web开发有什么区别?life - 知乎

Swoole框架有哪些怎么选择 - 9ong

闲谈Swoole相关框架 - 9ong

Hyperf

Hyperf

闲谈Swoole相关框架 - 9ong

宏观架构方案

架构演化

  • 单体架构

    mvc

  • 分层

    视图 应用 服务 数据

    有利于开发协同便利,为之后分布式部署打下基础。

  • 分割

    按业务、功能进行分割,为服务模块高内聚低耦合提供基础。

去一家小公司从 0 到 1 搭建后端架构,真难

互联网系统架构的演变史 - 9ong

21架构设计:普通程序员也能实现复杂系统 - 9ong

22如何为项目做好技术选型 - 9ong

23架构师:不想当架构师的程序员不是好程序员 - 9ong

web应用架构设计 - 9ong

单体架构与微服务 - 9ong

为web应用选择技术栈 - 9ong

设计一个秒杀系统 - 9ong

系统架构案例分析具体知识点整理 - 9ong

系统架构质量属性 - 9ong

TVP访谈 | 贝壳金服史海峰:中台虽百家争鸣,但不是所有企业必需品 - 知乎

Web应用托管服务(Web+)-管理Web类、移动类和API类应用程序的PaaS平台 – 阿里云

应用负载均衡

  • http重定向负载均衡
  • dns域名解析负载均衡
  • 反向代理负载均衡:nginx
  • ip负载均衡
  • 数据链路负载均衡:lvs

负载均衡算法:轮询、随机、ip、最少连接、源地址hash

负载均衡 - 9ong

什么是负载均衡_产品简介_传统型负载均衡CLB_负载均衡 - 阿里云

简介几种负载均衡原理_风一样的少年-CSDN博客_交换机负载均衡的几种方式

缓存机制

多级缓存、缓存穿透与雪崩、缓存机制、opcache

产品中的7种缓存机制,你知道多少?_人人都是产品经理-CSDN博客

缓存的正确使用方式,你都会了吗? - 云+社区 - 腾讯云

彻底理解浏览器缓存机制 - shixiaomiao - 博客园

Web缓存机制综述(HTML5缓存总结与细节释疑)_liufeng520的专栏-CSDN博客_html5 缓存

redis穿透与雪崩 - 9ong

Redis的使用与管理 - 9ong

PHP Opcache 注意细节以及调优办法 - 知乎

CDN

CDN是什么?使用CDN有什么优势? - 知乎 - 阿里巴巴淘系技术

CDN应用进阶 - 阿里云云栖号 | 大文件下载及视频点播的CDN加速实践 - 知乎

年终盘点 | 2020年,阿里云边缘计算和CDN的关键词 - 知乎

面对日益严峻的网络安全问题,CDN可以做什么? - 知乎

多快好省!原来还能这样搭建信息流社区?- 腾讯 - 知乎

镜像与cdn区别

七牛镜像存储使用手册 - 七牛开发者中心

七牛的镜像存储介绍和其原理

七牛qrsync命令行同步工具 - 9ong

七牛Qshell工具 - 9ong

数据库优化

建表规范、建索引规范、mysql语法优化、B+树、索引优化

大厂都是怎么进行SQL调优的 - 知乎

mysql优化全面梳理 - 9ong

mysql优化实例汇总 - 9ong

细说那些让公司网站瘫痪的SQL

一文搞懂 SQL:基础知识和业务实践总结 - 腾讯技术工程

更多详见:mysql

双十一背后的数据库技术_最佳实践_云数据库 RDS - 阿里云

通过DTS实现数据库的垂直拆分_最佳实践_云数据库 RDS - 阿里云

搭建高可用架构_最佳实践_云数据库 RDS - 阿里云

数据库主从与集群

mysql文章方案解读与补充 - 9ong

Mysql主从复制配置及介绍_个人文章 - SegmentFault 思否

mycat搭建mysql高可用分布式数据库(分库,分表,读写分离,主从切换) - 简书

TP6 分布式数据库:主从同步、读写分离 - 简书

搭建高可用架构_最佳实践_云数据库 RDS - 阿里云

数据库读写分离

MaxScale:实现MySQL读写分离与负载均衡的中间件利器 - 知乎

28-读写分离有哪些坑 - 9ong

RDS是否支持只读实例、读写分离_只读实例/读写分离_常见问题_云数据库 RDS - 阿里云

只读实例与读写分离_视频专区_云数据库 RDS - 阿里云

数据库中间件

mycat实现mysql分库分表 - 知乎

MySQL把大表拆分成小表,是根据业务去拆分修改代码,还是使用mycat 之类的中间件,那种比较好? - 知乎

[PHP亿万流量架构之]使用Mycat做Mysql集群-陈炼人生

学会数据库读写分离、分表分库——用Mycat,这一篇就够了! - IT米粉 - 博客园

RDS是否支持只读实例、读写分离_只读实例/读写分离_常见问题_云数据库 RDS - 阿里云

只读实例与读写分离_视频专区_云数据库 RDS - 阿里云

redis使用场景方案-阿里云

高性能分布式锁_企业版最佳实践_最佳实践_云数据库 Redis - 阿里云

限流器_企业版最佳实践_最佳实践_云数据库 Redis - 阿里云

网上商城商品相关性分析_通用最佳实践_最佳实践_云数据库 Redis - 阿里云

使用Redis搭建视频直播间信息系统_通用最佳实践_最佳实践_云数据库 Redis - 阿里云

使用Redis在Web应用中实现会话管理_通用最佳实践_最佳实践_云数据库 Redis - 阿里云

广告点击数实时统计(Redis + Spark)_通用最佳实践_最佳实践_云数据库 Redis - 阿里云

解密Redis助力双十一背后的技术_通用最佳实践_最佳实践_云数据库 Redis - 阿里云

游戏玩家积分排行榜_通用最佳实践_最佳实践_云数据库 Redis - 阿里云

将MySQL数据迁移到Redis_通用最佳实践_最佳实践_云数据库 Redis - 阿里云

分布式与微服务

业务拆分:按业务、技术等拆分成多个服务。

分布式服务:将共用的业务服务提取出来,独立部署。由可复用的业务连接数据库。

微服务架构快速指南 -解道Jdon

单体架构与微服务 - 9ong

一次给女朋友转账引发我对分布式事务的思考 - 知乎

RPC服务 - 9ong

45从软件工程的角度看微服务、云计算、人工智能这些新技术 - 9ong

如何使用 PHP 实现微服务

微服务框架Tars再添PHP_腾讯开源 - SegmentFault 思否

TARS马上要成立基金会了,这款微服务框架适合你么? - 知乎

微服务 - Hyperf

serverless

都 2021 年了,Serverless 能取代微服务吗? - 知乎

打通前后端,这款效能提升开源“神器”你一定要了解 - 云开发 - 腾讯技术工程

Serverless在SaaS领域的最佳实践 - 知乎

Serverless 落地之痛怎么解? - 知乎

专访阿里云 Serverless 负责人:无服务器不会让后端失业 - 知乎

应对突发需求,如何借助Serverless快速上云? - 知乎

函数计算(Function Compute)是一个事件驱动的全托管 Serverless 计算服务 - 阿里云

架构考虑误区

  • 一切从实际出发。根据公司与项目大小等实际情况,选择适合当下的架构设计与解决方案。
  • 避免为了技术而技术。
  • 技术服务与业务,但不要企图通过技术解决所有问题,业务问题可以适当通过业务设计去解决。

开发方法

敏捷方法入门 - 9ong

敏捷软件开发宣言-中英文 - 9ong

极限编程XP指南 - 9ong

05敏捷开发到底是想解决什么问题 - 9ong

06大厂都在用哪些敏捷方法-上篇 - 9ong

07大厂都在用哪些敏捷方法-下篇 - 9ong

团队管理06-研发过程管理 - 9ong

软件工程开发模型 - 9ong

高可用

API设计方案

restful架构规范

RESTful API 设计指南 - 阮一峰的网络日志

Restful API 设计实践 - 知乎

说清WebService的SOAP和Restful及HTTP请求 - 9ong

普通API设计方案

如何设计一个牛逼的API接口

干货好文:从达标到卓越 —— API 设计之道 - 知乎

四连问:API 接口应该如何设计?如何保证安全?如何签名?如何防重? - 知乎

12 个设计 API 的安全建议,不要等出事儿了“捶胸顿足” - 知乎

API网关

API网关作用、方案及如何选择 - 知乎

搭建无服务器应用之手机号归属地查询_最佳实践_API 网关 - 阿里云

使用 API 网关快速开放 Serverless 服务 - 腾讯云

API文档自动生成

php项目开发文档与API文档生成 - 9ong

如何做好 PHP 项目文档管理?PHPer 开发必备利器! - 知乎

关于PHPDocument 代码注释规范的总结 - 知乎

API管理工具

apizza - 极客专属的api管理工具

常用事件实现方式

事件行为event

事件 · ThinkPHP6.0完全开发手册 · 看云

事件 · ThinkPHP6 - 基于官方个人建议 · 看云

ThinkPHP中添加事件机制 - Fushicho - 博客园

钩子 hook

wp钩子源码解析 - 9ong

插件 addons

插件开发 daniuwo/thinkphp6-addons

wp插件 - 9ong

会话标识方案

session分布式、jwt+redis

Token ,Cookie、Session傻傻分不清楚?

使用Redis在Web应用中实现会话管理_通用最佳实践_最佳实践_云数据库 Redis - 阿里云

Laravel使用Redis共享Session(代码详解) - 知乎

jwt与token+redis,哪种方案更好用? - 知乎

redis操作封装

所有的组件、接口遵循易用易理解易使用原则。don’t make think

phpredis和predis之间有何区别?phpredis和predis的区别对比-php教程-PHP中文网

c扩展phpredis基础上支持自动完成编码IDE

消息推送

微信:overtrue/wechat - Packagist

  • 微信公众号
  • 微信小程序
  • 极光
  • 信鸽

在composer的基础上可以根据实际项目考虑二次封装。

关键环节:异步推送

消息队列与异步

消息队列composer相对比较少,也可以考虑自己封装。基于redis、mysql、rabbitMQ、rocketMQ驱动等。

消息异步推送通知之类的可靠性要求不高的,可以考虑redis或MQ类驱动,订单支付延迟扣款或退款等与钱相关,可靠性要求高的,且量不大的,可以考虑数据库驱动实现。

你真的知道怎么实现一个延迟队列吗 - 腾讯技术工程

消息队列RocketMQ性能测试案例 - 知乎

消息队列 rocketMQ - 阿里云

消息队列 RabbitMQ 版 - 全面兼容开源 RabbitMQ,兼容AMQP协议 - 阿里云

消息中间件知识汇总 - 9ong

huangbin2018/my_dbmq mysql实现的简单消息队列 - Packagist

kwm/think-amqp 基于 ThinkPHP 6 的 RabbitMQ 消息队列 AMQP 操作类 - Packagist

wangjian/queue 消息队列,支持多种驱动,以及完善的容错机制 - Packagist

守护进程实时读取队列数据

swoole、go

消息异步推送通知之类的可靠性要求不高的,可以考虑redis或MQ类驱动,订单支付延迟扣款或退款等与钱相关,可靠性要求高的,且量不大的,可以考虑数据库驱动实现。

秒杀

高性能网络编程(七):到底什么是高并发?一文即懂! - im中国人 - 博客园

如何设计一个高可用、高并发秒杀系统 - 腾讯技术工程

由微视春节集卡瓜分活动,看高可用秒杀系统的架构设计 - 知乎

使用Redis搭建电商秒杀系统_通用最佳实践_最佳实践_云数据库 Redis - 阿里云

设计一个秒杀系统 - 9ong

PHP解决抢购、抽奖等阻塞式高并发库存防控超量的思路方法 - 雨良 - 博客园

限流

死磕nginx系列–nginx 限流配置 - biglittleant - 博客园

限流器_企业版最佳实践_最佳实践_云数据库 Redis - 阿里云

防刷解决方案

短信接口、动态页面或接口

面对日益严峻的网络安全问题,CDN可以做什么? - 知乎

记一次真实的网站被DDOS攻击经历 - 知乎

互联网创业公司如何防御 DDoS 攻击? - 知乎

web人机验证的探索与实践 - 9ong

搜索引擎

传统数据库、sphinx、xunsearch、elasticsearch

腾讯面试题: 百度搜索为什么那么快? - 知乎

虽然百度可能已经更复杂了,但文章中的倒排有助于我们理解全文搜索的原理

Elasticsearch通俗易懂介绍 - 9ong

手把手教你搭建ELK,原来这么简单

10 分钟快速入门海量数据搜索分析引擎 Elasticearch - 腾讯技术工程

开源搜索引擎排名第一,Elasticsearch是如何做到的? - 知乎

重构实践:基于腾讯云Elasticsearch搭建QQ邮箱全文检索 - 知乎

php操作Elasticsearch客户端 - 9ong

ES既是搜索引擎又是数据库?真的有那么全能吗? - 知乎

迅搜(xunsearch) - 开源免费中文全文搜索引擎|PHP全文检索|mysql全文检索|站内搜索

elasticsearch/elasticsearch - Packagist

hightman/xunsearch - Packagist

推荐服务与分类标签设计

传统标签、分类推荐

产品经理个性化推荐和标签库的建立 - 知乎

「分类」和「标签」什么异同?

REDIS与MYSQL实现标签的对比_四爷-CSDN博客

mysql优化实例汇总 - 推荐文章与标签关系联表查询优化 - 9ong

智能推荐模型(看是否可以参考PaddlePaddle的现有模型)

降本提效,贝壳搜索推荐架构统一之路 - 知乎

亿级用户,腾讯看点信息流推荐系统的架构挑战 - 知乎

揭秘微信「看一看」如何精准挖掘你感兴趣的内容 - 腾讯技术工程

Embedding在腾讯应用宝的推荐实践 - 腾讯技术工程

数据库分库分表

中间件模式:详见本文:数据库中间件

硬编码模式:MySQL如何分库分表_个人文章 - SegmentFault 思否

curl具体使用

guzzlehttp/guzzle - Packagist

数据配置中心

为什么需要分布式配置中心? - 知乎

微信研发体系下的分布式配置系统设计概要 - 腾讯技术工程

应用配置管理 - 阿里云

Nacos系列:基于Nacos的配置中心 - 知乎

图文解析 Nacos 配置中心的实现 - 知乎

深度对比三种主流微服务配置中心 - 知乎

alibaba/nacos 阿里巴巴nacos配置中心php客户端 - Packagist

PHP配合使用携程Apollo配置中心 – Feilong-tech

RPC

RPC服务 - 9ong

php中流行的rpc框架详解 - 知乎

使用PHP来简单的创建一个RPC服务 - 知乎

tech| 再探 grpc - 简书

JSON RPC 服务 - hyperf

gRPC服务 - hyperf

帮助phper理解RPC是怎么回事儿_WebArtist - SegmentFault 思否

基于Hyperf的RPC简单微服务架构_个人文章 - SegmentFault 思否

PHP 微服务集群搭建_PHP 学习总结 - SegmentFault 思否

nginx优化方案

限流、防刷等各种nginx技巧方案及优化方案

Nginx基础概要全记录 - 9ong

Location配置总结 - 9ong

Nginx常用配置范例 - 9ong

nginx反向代理实现wp多域名访问 - 9ong

Nginx 简明配置教程 - 知乎

死磕nginx系列–nginx 限流配置 - biglittleant - 博客园

Nginx配置文件详细说明 - 小刚qq - 博客园

nginx upstream的几种配置方式 - 东写西读终见大海无量 - ITeye博客

【Nginx】如何配置Nginx日志?这是最全面的一篇了!! - 知乎

从原理到实战,彻底搞懂 Nginx!(高级篇) - 知乎

opcache

php 的 opcache 和最近的 php jit 有什么区别? - SegmentFault 思否

PHP Opcache工作原理 - 知乎

PHP Opcache 注意事项以及调优 - 知乎

2-wp优化-服务器 - 9ong

系统优化

PHP 进阶之路 - 亿级 pv 网站架构实战之性能压榨 - 知乎

记一次PHP并发性能调优实战 – 性能提升104% - 知乎

ThinkPHP5项目优化 - 9ong

高性能网络编程(七):到底什么是高并发?一文即懂! - im中国人 - 博客园

微信收款机具在慢速网络中快速收款的技术揭秘 - 腾讯技术工程

性能优化的误区

性能优化的本质是减少计算时间,减少传输时间,减少访问时间,快速计算,高效查询,及时响应。

编程=数据结构+算法,想要效率高,优化结构和算法才是根本,使用最新的php8+jit+opcache,算法运算效率就能达到最高。

应用层,减少io调用,增加缓存,异步调用,都能提高速度。

数据层,数据库根据实际情况合理设计,合理创建索引,都能提高速度。

日志记录与分析

PHP程序员必须知道的两种日志_Grace development - SegmentFault 思否

应用日志记录方案与分析

日志分级

monolog/monolog - Packagist

错误、异常捕捉

elk日志分析与搜索

手把手教你搭建 ELK 实时日志分析平台 - 知乎

Elastic Stack 实现日志的自动采集、搜索和分析 - 知乎

ELK+kafka+filebeat企业内部日志分析系统 - 知乎

利用ELK分析Nginx日志生产实战(高清多图) - 知乎

日志服务_实时日志分析系统_日志管理软件_网站日志分析工具 - 阿里云

查询分析全方位对比(ELK) - 日志服务 - 阿里云

错误与异常

异常统一封装机制,方便使用异常,方便抛出,方便捕获,方便处理异常。

解惑PHP的异常 - 9ong

PHP 核心特性 - 错误处理(life) - 知乎

PHP 核心知识点(一)异常和错误处理 - 知乎

断点续传

PHP 中使用 TUS 协议来实现大文件的断点续传 - 知乎

持续集成、部署与发布

灰度发布 A/B测试实现 同步发布 回滚

26持续交付:如何做到随时发布新版本到生产环境 - 9ong

如何理解持续集成持续交付持续部署 - 9ong

PhpStorm远程发布部署代码,一键搞定,不需要再手动上传代码了 - 知乎

    1. 直接使用类似于scp或者rsync 挨个推送代码。
    1. github或者gitlab都可以使用webhook触发每台服务器的部署功能。
    1. docker运维栈 。

国内有靠谱的持续集成工具吗?最好支持一键发布 - 知乎

Docker + Jenkins 快速打造 PHP 持续集成服务器 | Laravel China 社区

是时候了解下Travis CI是什么了 - 知乎

Docker+Jenkins集成发布环境概要介绍_手把手指导搭建基于Docker+Jenkins+Git的集成发布环境视频课程_Docker/k8s视频-51CTO学院

直播

视频直播 - 阿里云

视频点播 - 短视频 - 阿里云

技术管理

编码规范

PHP编码规范 - 9ong

代码整洁之道-php版 - 9ong

前端编码规范 - 9ong

干货好文:从达标到卓越 —— API 设计之道 - 知乎

关于PHPDocument 代码注释规范的总结 - 知乎

friendsofphp/php-cs-fixer 确保开发组成员都统一遵循编码规范 - Packagist

使用 PHP Stan 对于使用 php> = 7.1 的任何项目,PHPStan 是必须具备的。本质上,它会静态分析代码以捕获错误。您将不得不使用参数类型提示和返回类型,但是通过将 PHP Stan 添加到您的工作流中,您将很快注意到代码中已经存在的细微错误,并且会捕获其他将来的错误。这一个必须有!

psr https://www.php-fig.org/psr/

ide 装下扩展 php cs phpmd

开发环境

IDE:NetBeans、phpstorm、vscode

lanmp、docker、redis、git

代码版本管理

git工作流

明明白白Git基础 - 9ong

Git团队协作 - 9ong

Git常用命令-转载保存 - 9ong

Git远程操作详解 - 阮一峰的网络日志

Git分支管理策略 - 阮一峰的网络日志

这才是真正的 Git——分支合并 - 腾讯技术工程

Git中文手册:progit.zh.pdf,找个时间放网盘

SVN常用基本命令 - 9ong

SVN基础操作面面观 - 9ong

SVN目录结构规划 - 9ong

代码审核

phpstorm、phpcs

codereview

万字详文告诉你如何做 Code Review - 腾讯技术工程

如何有效地进行代码 Review? - 腾讯技术工程

版本号管理

版本管理约定3位

例如V1.1.9

V1是重大更新版本号,需要公司高层立项确定

V1.1大更新版本号,通过项目管理流程确定,一般由项目管理人负责

V1.1.9小更新版本号,由于迭代较快,通过敏捷快速发布流程,可灵活确定及时发布。比如产品运营提出的小需求或临时工单bug

V1.1.9.20200101,有时内部需要个未发布前的测试版本号,我们可以通过带时间格式或顺序数字来表示内部测试用版本,但对外发布只要前3位,即:V1.1.9。

关于里程碑版本号:比如alpha、beta、rc、release,可以适当在里程碑版本号加上后缀。比如V1.1.9.beta

参考:软件版本号那些事

重要概念

同步-异步-阻塞-非阻塞

同步-异步-阻塞-非阻塞-IO模型 - 9ong

正确理解这四个重要且容易混乱的知识点:异步,同步,阻塞,非阻塞,5种IO模型 - 新卡辣辣 - 博客园

进程-线程-协程

进程与线程的一个简单解释 - 阮一峰的网络日志

进程-线程-协程-并行-并发 - 9ong

多路复用IO

一篇文章帮你彻底搞清楚“I/O多路复用”和“异步I/O”的前世今生 - 知乎

彻底理解 IO多路复用 - 知乎

IO 多路复用是什么意思? - 知乎

Redis IO多路复用技术以及epoll实现原理_沉迷代码无法自拔-CSDN博客_io多路复用的原理和实现

为什么Redis 是单线程却能支撑高并发? - 知乎

redis为什么不使用异步io而使用多路io复用? - 知乎

阿里面试题 | Nginx 所使用的 epoll 模型是什么? - 知乎

JIT

理解JIT编译 - 9ong

php 的 opcache 和最近的 php jit 有什么区别? - SegmentFault 思否

泛型

什么叫泛型?有什么作用? - 知乎

PHP 的语言设计上有没有什么值得借鉴的地方? - 泛型在动态类型语言中是多余的想法 - 知乎

常用系统操作响应时间

打开网页:10秒以内
数据库中查询一条记录:10+毫秒
机械磁盘一次寻址定位:4毫秒
从机械磁盘顺序读取1MB数据:2毫秒
从SSD磁盘顺序读取1MB数据:0.3毫秒
从远程redis读取一个数据:0.5毫秒
从内存总读取一个数据:10+微秒
调用本地方法:10微秒内
网络传输2KB数据:1微秒

相关性能概念

并发数:同时提交请求的用户数。
吞吐量:单位时间内,系统处理的请求数。每秒处理事务数TPS、每秒查询数QPS。
性能计数器:系统负载、cpu、内存、IO、线程数

软件工程

软件工程生命周期 - 9ong

解读软件工程的迷途与沉思 - 9ong

软件工程文章

软件工程之美

软件工程文章汇总 - 9ong

团队管理

团队管理框架 - 9ong

- 你是否是微观管理者?\x0a- 符合微观管理的条件\x0a- 为什么它对现场办公和远程工作都如此有害\x0a- 如何避免微观管理的冲动

当实际情况需要微观管理者的时候,我们愿意成为微观管理者,当实际情况不允许微观管理的时候,我们尽量避免。 小团队、不专业的团队可能需要微观管理者

如何做好一个中层管理? - 知乎

阿里10年:一个普通技术人的成长之路 - 知乎

OKR和KPI有什么区别? - 知乎

Okr追求目标,kpi看中指标。okr从本质的质上指导人,kpi停在表面的量化上,当然kpi的表面量化指标也是经过底层质的目标换算而来

普通中小企业适合通过okr来管理中层,用kpi来管理普通一线员工。毕竟okr本质是自我驱动自我管理的,对员工能力、觉悟、思维综合素质比较高

测试

作为一名软件测试工程师,需要具备哪些能力? - 知乎

单元测试

php单元测试 - 9ong

Golang 单元测试详尽指引 - 腾讯技术工程

自动化测试

seleinum appium soapUI

selenium自动化测试基础 - 9ong

性能测试

ab压测工具

linux下web压力测试工具ab使用及详解-系统运维-51CTO博客

性能测试解惑之并发压力 - 运赢之 - 博客园

A/B测试

你们公司是怎么做AB测试的? - 知乎

如何设计一个 A/B test? - 腾讯技术工程

区块链

我们用区块链技术保护了1000万篇原创文章 - 知乎

区块链不好落地?腾讯云用区块链做了这些事 - 知乎

物联网

国产开源IoTOS:腾讯物联网操作系统TencentOS Tiny的探索与实践 - 知乎

如何基于TencentOS tiny,快速打造属于自己的IoT小应用? - 知乎

拒绝平庸,以程序员的名义定义新桌面! - 知乎

运维

冗余与灾备

安全

从前端到后端,Web 安全不仅仅是安全团队的事

面试官:说一下你常用的加密算法

面试

后端PHP面试题框架 - 9ong

PHP面试题汇总,看完这些面试题助力你面试成功,工资必有20-25K - 知乎

2020年PHP最新面试题(含答案) - 知乎

分享一波腾讯PHP面试题(建议收藏) - 知乎

PHP面试知识梳理(建议收藏) - 知乎

[PHP面试题]跳槽面试必背-自己最近5年的整理(一) - 知乎

[PHP面试题]跳槽面试必背-自己最近5年的整理(二) - 知乎

[PHP面试题]跳槽面试必背-自己最近5年的整理(三) - 知乎

PHP 面试遇到的问题,后期会不定期更新一下,大家也可以把认为经典的问题评论留言,感谢大家! - 知乎

综合能力

程序员如何优雅 - 9ong

优秀程序员,如何提高架构能力? - 知乎

浪潮之巅,程序员如何拥抱新技术? - 知乎

左耳朵耗子:技术人如何更好地把控发展趋势? - 知乎

浅谈如何搭建知识体系

万字详文阐释程序员修炼之道 - 腾讯技术工程

一款 0 门槛轻松易上手的数据可视化工具 - 腾讯技术工程

如何提升职业工作效率 - 腾讯技术工程

写代码之前应该做的几件事 - 腾讯技术工程

产品经理日常数据分析工作

为什么有的人很回避与领导接触? - 知乎

也谈谈程序员职业规划的几个问题——我的一些故事 - 西西吹雪 - 博客园

你认为程序员的最高境界是什么? - 知乎

在编程的世界10来年,我们想通了很多。首先编程是为了养家糊口的一项能力,但如果只有这么一个目标,那么我们的人生也就太单调乏味。通过编程我们更容易也更好的认识世界,虽然我们很难去改变世界,但我们可以解决世界里的一个个问题,不管大小,因为我们有问题的各种解决方案、指导思想、具象手段。对于大佬们编程改变世界,我们能做到编程解决现实中的实际问题,但解决实际问题并不一定就依赖于编码,编码只是解决软件工程项目中的一个具体的实现手段工具,我们还具备问题的分析能力、问题解决能力,提出设想、提出疑问、主次分析、问题抽象模拟、方案推导演进、具体问题具体分析、问题解决工具使用、总结整理等,我们具备问题分析解决完善能力,我们拥有解决问题的指导思想、过程管理。编码只是解决问题过程中的一个使用工具环节,面向其他行业或生活中的问题时,顶层指导思想、问题的思考分析方式、问题解决的方法论都是抽象有理可寻,只是换了个具体的提高解决问题效率的工具。不用编码解决问题也是编程人员的技能,解决问题于无码,无码胜有码。

其他

代码片段

个人代码片段库

快速构建管理后台

Dcat Admin 一款高颜值的后台系统构建工具,简单高效,开箱即用 - 知乎

JaguarJack/catch-admin: CatchAdmin是一款基于thinkphp6 和 element admin 开发的后台管理系统,基于 ServiceProvider,系统模块完全接耦。随时卸载安装模块。提供了完整的权限和数据权限等功能,大量内置的开发工具提升你的开发体验。官网地址:

fastadmin

wordpress

php源码加密

PHP 源码加密学习 - 知乎

爬虫

如何搭建一个爬虫代理服务?

如何构建一个通用的垂直爬虫平台?

奇技淫巧

[PHP 技巧] 不要直接克隆对象,请使用深拷贝(life) - 知乎

chrome扩展

怎样创建一个谷歌扩展程序

变现

wordpress变现 - 9ong

如何选择创业方向? - 知乎

未来利润最高的不起眼暴利赚钱行业是什么? - 知乎

程序员:写作能收获什么? - 知乎

在此整理一篇索引文,主要定制学习,有幸遇到眼光相似的您,与我们相遇在此,希望以后的时光,每当想起我们,嘴角可以上扬45度