LNMP工程技术指南
《LNMP工程技术指南》
目录
基础技术
linux
apache
nginx
死磕nginx系列–nginx 限流配置 - biglittleant - 博客园
php-fpm
php面试题之nginx如何调用php和php-fpm的作用和工作原理 - 知乎
PHP进阶之路 - 深入理解FastCGI协议以及在PHP中的实现 - 知乎
mysql
阿里云RDS vs 自建MySQL,选择困难?这篇评测为你讲的明明白白! - 知乎
redis
配置、命令、数据类型、消息订阅、事务、持久化、集群、sentinel监控
腾讯云Redis混合存储版重磅推出,万字长文助你破解缓存难题! - 知乎
redis实现消息队列&发布/订阅模式使用 - QiaoZhi - 博客园
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 / Laravel / 全栈 - SegmentFault 思否
javascript
jquery、vue、zepto、es6、vue、iview、webpack工具链
一文读懂JavaScript和ECMAScript的区别 - 9ong
30分钟掌握ES6/ES2015核心内容(上) - SegmentFault 思否
30分钟掌握ES6/ES2015核心内容(下) - SegmentFault 思否
Promise和Async/Await用法整理_Lawliet-CSDN博客_async和await用法
Ubuntu安装nodejs-npm-bower环境 - 9ong
windows10搭建nodejs+npm环境 - 9ong
css
盒子、flex、float、position
tcp与http
Wireshark基本介绍和学习TCP三次握手 - 小坦克 - 博客园
微信体系小程序/云开发
python
golang
适合 Go 新手学习的开源项目——在 GitHub 学编程 - 知乎
正则表达式
算法与数据结构
可视化算法工具 - Algorithm Visualizer
设计模式
docker
Docker安装jira与confluence - 9ong
人工智能-深度学习
GitHub - PHP-ML - Machine Learning library for PHP
飞桨PaddlePaddle-源于产业实践的开源深度学习平台
小微企业如何实现智能化转型?百度EasyDL助瀚才咨询实现AI落地
框架
自有框架
从0开始构建一个属于你自己的PHP框架_TIGERB的技术博客 - SegmentFault 思否
composer包管理
Composer 中文网 / Packagist 中国全量镜像
你必须知道的22个PHP Composer最佳实践 - 知乎
composer常用推荐包
overtrue/wechat 微信 - Packagist
overtrue/socialite A collection of OAuth 2 packages - Packagist
yurunsoft/yurun-oauth-login 第三方登录授权 SDK,集成了QQ、微信、微博、Github等常用接口。 - 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,支持多语言,支持加盐生成
catfan/medoo 简单易用数据库操作类 支持各种常见数据库
intervention/image 图片处理,提供对图片的各种操作:获取图片信息,上传,格式转换,缩放,裁剪等等等
php-amqplib/php-amqplib rabbitmq - Packagist
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/网址黑白名检查 支持模糊匹配
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
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
overtrue/flysystem-qiniu 七牛 CDN SDK
overtrue/chinese-calendar 中国农历转换与查询工具
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地址定位库
jaeger/querylist PHP采集工具(爬虫),基于phpQuery
zhuzhichao/bank-card-info 银行卡信息查询组件
aoxiang/province-city-area 京东全国省市县乡镇街道
overtrue/package-builder - Packagist
swoft/swoole-ide-helper - Packagist
elasticsearch/elasticsearch - Packagist
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 企业级后台管理开发&源码分析 · 看云
ThinkPHP5采用Composer完全安装 - 9ong
ThinkPHP中采用子域名部署解决API版本管理 - 9ong
ThinkPHP框架 | 中文最佳实践PHP开源框架,专注WEB应用快速开发8年!
Swoole
Swoole · ThinkPHP6.0完全开发手册 · 看云
Swoole 协程 MySQL 客户端与异步回调 MySQL 客户端的对比 - 知乎
Swoole高效跟传统的web开发有什么区别?life - 知乎
Hyperf
宏观架构方案
架构演化
-
单体架构
mvc
-
分层
视图 应用 服务 数据
有利于开发协同便利,为之后分布式部署打下基础。
-
分割
按业务、功能进行分割,为服务模块高内聚低耦合提供基础。
TVP访谈 | 贝壳金服史海峰:中台虽百家争鸣,但不是所有企业必需品 - 知乎
Web应用托管服务(Web+)-管理Web类、移动类和API类应用程序的PaaS平台 – 阿里云
应用负载均衡
- http重定向负载均衡
- dns域名解析负载均衡
- 反向代理负载均衡:nginx
- ip负载均衡
- 数据链路负载均衡:lvs
负载均衡算法:轮询、随机、ip、最少连接、源地址hash
什么是负载均衡_产品简介_传统型负载均衡CLB_负载均衡 - 阿里云
简介几种负载均衡原理_风一样的少年-CSDN博客_交换机负载均衡的几种方式
缓存机制
多级缓存、缓存穿透与雪崩、缓存机制、opcache
产品中的7种缓存机制,你知道多少?_人人都是产品经理-CSDN博客
彻底理解浏览器缓存机制 - shixiaomiao - 博客园
Web缓存机制综述(HTML5缓存总结与细节释疑)_liufeng520的专栏-CSDN博客_html5 缓存
CDN
CDN是什么?使用CDN有什么优势? - 知乎 - 阿里巴巴淘系技术
CDN应用进阶 - 阿里云云栖号 | 大文件下载及视频点播的CDN加速实践 - 知乎
年终盘点 | 2020年,阿里云边缘计算和CDN的关键词 - 知乎
镜像与cdn区别
数据库优化
建表规范、建索引规范、mysql语法优化、B+树、索引优化
双十一背后的数据库技术_最佳实践_云数据库 RDS - 阿里云
通过DTS实现数据库的垂直拆分_最佳实践_云数据库 RDS - 阿里云
数据库主从与集群
Mysql主从复制配置及介绍_个人文章 - SegmentFault 思否
mycat搭建mysql高可用分布式数据库(分库,分表,读写分离,主从切换) - 简书
数据库读写分离
MaxScale:实现MySQL读写分离与负载均衡的中间件利器 - 知乎
RDS是否支持只读实例、读写分离_只读实例/读写分离_常见问题_云数据库 RDS - 阿里云
数据库中间件
MySQL把大表拆分成小表,是根据业务去拆分修改代码,还是使用mycat 之类的中间件,那种比较好? - 知乎
[PHP亿万流量架构之]使用Mycat做Mysql集群-陈炼人生
学会数据库读写分离、分表分库——用Mycat,这一篇就够了! - IT米粉 - 博客园
RDS是否支持只读实例、读写分离_只读实例/读写分离_常见问题_云数据库 RDS - 阿里云
redis使用场景方案-阿里云
高性能分布式锁_企业版最佳实践_最佳实践_云数据库 Redis - 阿里云
限流器_企业版最佳实践_最佳实践_云数据库 Redis - 阿里云
网上商城商品相关性分析_通用最佳实践_最佳实践_云数据库 Redis - 阿里云
使用Redis搭建视频直播间信息系统_通用最佳实践_最佳实践_云数据库 Redis - 阿里云
使用Redis在Web应用中实现会话管理_通用最佳实践_最佳实践_云数据库 Redis - 阿里云
广告点击数实时统计(Redis + Spark)_通用最佳实践_最佳实践_云数据库 Redis - 阿里云
解密Redis助力双十一背后的技术_通用最佳实践_最佳实践_云数据库 Redis - 阿里云
游戏玩家积分排行榜_通用最佳实践_最佳实践_云数据库 Redis - 阿里云
将MySQL数据迁移到Redis_通用最佳实践_最佳实践_云数据库 Redis - 阿里云
分布式与微服务
业务拆分:按业务、技术等拆分成多个服务。
分布式服务:将共用的业务服务提取出来,独立部署。由可复用的业务连接数据库。
gRPC实现RPC服务-PHP客户端nodejs服务端 - 9ong
45从软件工程的角度看微服务、云计算、人工智能这些新技术 - 9ong
微服务框架Tars再添PHP_腾讯开源 - SegmentFault 思否
TARS马上要成立基金会了,这款微服务框架适合你么? - 知乎
serverless
都 2021 年了,Serverless 能取代微服务吗? - 知乎
打通前后端,这款效能提升开源“神器”你一定要了解 - 云开发 - 腾讯技术工程
专访阿里云 Serverless 负责人:无服务器不会让后端失业 - 知乎
应对突发需求,如何借助Serverless快速上云? - 知乎
函数计算(Function Compute)是一个事件驱动的全托管 Serverless 计算服务 - 阿里云
架构考虑误区
- 一切从实际出发。根据公司与项目大小等实际情况,选择适合当下的架构设计与解决方案。
- 避免为了技术而技术。
- 技术服务与业务,但不要企图通过技术解决所有问题,业务问题可以适当通过业务设计去解决。
开发方法
高可用
API设计方案
restful架构规范
说清WebService的SOAP和Restful及HTTP请求 - 9ong
普通API设计方案
四连问:API 接口应该如何设计?如何保证安全?如何签名?如何防重? - 知乎
12 个设计 API 的安全建议,不要等出事儿了“捶胸顿足” - 知乎
API网关
搭建无服务器应用之手机号归属地查询_最佳实践_API 网关 - 阿里云
使用 API 网关快速开放 Serverless 服务 - 腾讯云
API文档自动生成
如何做好 PHP 项目文档管理?PHPer 开发必备利器! - 知乎
API管理工具
常用事件实现方式
事件行为event
事件 · ThinkPHP6 - 基于官方个人建议 · 看云
ThinkPHP中添加事件机制 - Fushicho - 博客园
钩子 hook
插件 addons
会话标识方案
session分布式、jwt+redis
使用Redis在Web应用中实现会话管理_通用最佳实践_最佳实践_云数据库 Redis - 阿里云
Laravel使用Redis共享Session(代码详解) - 知乎
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类驱动,订单支付延迟扣款或退款等与钱相关,可靠性要求高的,且量不大的,可以考虑数据库驱动实现。
消息队列 RabbitMQ 版 - 全面兼容开源 RabbitMQ,兼容AMQP协议 - 阿里云
huangbin2018/my_dbmq mysql实现的简单消息队列 - Packagist
kwm/think-amqp 基于 ThinkPHP 6 的 RabbitMQ 消息队列 AMQP 操作类 - Packagist
wangjian/queue 消息队列,支持多种驱动,以及完善的容错机制 - Packagist
守护进程实时读取队列数据
swoole、go
消息异步推送通知之类的可靠性要求不高的,可以考虑redis或MQ类驱动,订单支付延迟扣款或退款等与钱相关,可靠性要求高的,且量不大的,可以考虑数据库驱动实现。
如果项目上云,也可以考虑云函数的周期定时处理。
秒杀
由微视春节集卡瓜分活动,看高可用秒杀系统的架构设计 - 知乎
使用Redis搭建电商秒杀系统_通用最佳实践_最佳实践_云数据库 Redis - 阿里云
PHP解决抢购、抽奖等阻塞式高并发库存防控超量的思路方法 - 雨良 - 博客园
限流
死磕nginx系列–nginx 限流配置 - biglittleant - 博客园
限流器_企业版最佳实践_最佳实践_云数据库 Redis - 阿里云
防刷解决方案
短信接口、动态页面或接口
全文搜索引擎
传统数据库、sphinx、xunsearch、elasticsearch
全文搜索引擎 Elasticsearch 入门教程 - 阮一峰的网络日志
Quick start | Elasticsearch Guide [7.13] | Elastic
虽然百度可能已经更复杂了,但文章中的倒排有助于我们理解全文搜索的原理
10 分钟快速入门海量数据搜索分析引擎 Elasticearch - 腾讯技术工程
开源搜索引擎排名第一,Elasticsearch是如何做到的? - 知乎
重构实践:基于腾讯云Elasticsearch搭建QQ邮箱全文检索 - 知乎
迅搜(xunsearch) - 开源免费中文全文搜索引擎|PHP全文检索|mysql全文检索|站内搜索
elasticsearch/elasticsearch - Packagist
hightman/xunsearch - Packagist
推荐服务与分类标签设计
传统标签、分类推荐
mysql优化实例汇总 - 推荐文章与标签关系联表查询优化 - 9ong
智能推荐模型
超级干货 :一文读懂推荐系统知识体系-上(概念、结构、算法)
协同过滤实现小型推荐系统 | Laravel China 社区
揭秘微信「看一看」如何精准挖掘你感兴趣的内容 - 腾讯技术工程
数据库分库分表
中间件模式:详见本文:数据库中间件
硬编码模式:MySQL如何分库分表_个人文章 - SegmentFault 思否
curl具体使用
数据配置中心
alibaba/nacos 阿里巴巴nacos配置中心php客户端 - Packagist
PHP配合使用携程Apollo配置中心 – Feilong-tech
RPC
gRPC实现RPC服务-PHP客户端nodejs服务端 - 9ong
帮助phper理解RPC是怎么回事儿_WebArtist - SegmentFault 思否
基于Hyperf的RPC简单微服务架构_个人文章 - SegmentFault 思否
PHP 微服务集群搭建_PHP 学习总结 - SegmentFault 思否
nginx优化方案
限流、防刷等各种nginx技巧方案及优化方案
死磕nginx系列–nginx 限流配置 - biglittleant - 博客园
nginx upstream的几种配置方式 - 东写西读终见大海无量 - ITeye博客
【Nginx】如何配置Nginx日志?这是最全面的一篇了!! - 知乎
opcache
php 的 opcache 和最近的 php jit 有什么区别? - SegmentFault 思否
系统优化
PHP 进阶之路 - 亿级 pv 网站架构实战之性能压榨 - 知乎
记一次PHP并发性能调优实战 – 性能提升104% - 知乎
高性能网络编程(七):到底什么是高并发?一文即懂! - im中国人 - 博客园
微信收款机具在慢速网络中快速收款的技术揭秘 - 腾讯技术工程
性能优化的误区
性能优化的本质是减少计算时间,减少传输时间,减少访问时间,快速计算,高效查询,及时响应。
编程=数据结构+算法,想要效率高,优化结构和算法才是根本,使用最新的php8+jit+opcache,算法运算效率就能达到最高。
应用层,减少io调用,增加缓存,异步调用,都能提高速度。
数据层,数据库根据实际情况合理设计,合理创建索引,都能提高速度。
日志记录与分析
PHP程序员必须知道的两种日志_Grace development - SegmentFault 思否
应用日志记录方案与分析
日志分级
错误、异常捕捉
elk日志分析与搜索
Elastic Stack 实现日志的自动采集、搜索和分析 - 知乎
ELK+kafka+filebeat企业内部日志分析系统 - 知乎
日志服务_实时日志分析系统_日志管理软件_网站日志分析工具 - 阿里云
错误与异常
异常统一封装机制,方便使用异常,方便抛出,方便捕获,方便处理异常。
断点续传
PHP 中使用 TUS 协议来实现大文件的断点续传 - 知乎
持续集成、部署与发布
灰度发布 A/B测试实现
同步发布
回滚
github actions持续集成构建部署hugo - 9ong
26持续交付:如何做到随时发布新版本到生产环境 - 9ong
PhpStorm远程发布部署代码,一键搞定,不需要再手动上传代码了 - 知乎
-
- 直接使用类似于scp或者rsync 挨个推送代码。
-
- github或者gitlab都可以使用webhook触发每台服务器的部署功能。
-
- docker运维栈 。
Docker + Jenkins 快速打造 PHP 持续集成服务器 | Laravel China 社区
Docker+Jenkins集成发布环境概要介绍_手把手指导搭建基于Docker+Jenkins+Git的集成发布环境视频课程_Docker/k8s视频-51CTO学院
直播
技术管理
编码规范
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中文手册:progit.zh.pdf,找个时间放网盘
代码审核
phpstorm、phpcs
codereview
万字详文告诉你如何做 Code 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
参考:软件版本号那些事
重要概念
同步-异步-阻塞-非阻塞
正确理解这四个重要且容易混乱的知识点:异步,同步,阻塞,非阻塞,5种IO模型 - 新卡辣辣 - 博客园
进程-线程-协程
多路复用IO
一篇文章帮你彻底搞清楚“I/O多路复用”和“异步I/O”的前世今生 - 知乎
Redis IO多路复用技术以及epoll实现原理_沉迷代码无法自拔-CSDN博客_io多路复用的原理和实现
redis为什么不使用异步io而使用多路io复用? - 知乎
阿里面试题 | Nginx 所使用的 epoll 模型是什么? - 知乎
JIT
泛型
PHP 的语言设计上有没有什么值得借鉴的地方? - 泛型在动态类型语言中是多余的想法 - 知乎
常用系统操作响应时间
打开网页:10秒以内
数据库中查询一条记录:10+毫秒
机械磁盘一次寻址定位:4毫秒
从机械磁盘顺序读取1MB数据:2毫秒
从SSD磁盘顺序读取1MB数据:0.3毫秒
从远程redis读取一个数据:0.5毫秒
从内存总读取一个数据:10+微秒
调用本地方法:10微秒内
网络传输2KB数据:1微秒
应用接口可靠度要求达到4个9集99.99%的可靠性,一年还会有26+分钟的故障时间,3个9意味着一年还有260+分钟的故障时间
相关性能概念
并发数:同时提交请求的用户数。
吞吐量:单位时间内,系统处理的请求数。每秒处理事务数TPS、每秒查询数QPS。
性能计数器:系统负载、cpu、内存、IO、线程数
软件工程
软件工程之美
团队管理
当实际情况需要微观管理者的时候,我们愿意成为微观管理者,当实际情况不允许微观管理的时候,我们尽量避免。 小团队、不专业的团队可能需要微观管理者
Okr追求目标,kpi看中指标。okr从本质的质上指导人,kpi停在表面的量化上,当然kpi的表面量化指标也是经过底层质的目标换算而来
普通中小企业适合通过okr来管理中层,用kpi来管理普通一线员工。毕竟okr本质是自我驱动自我管理的,对员工能力、觉悟、思维综合素质比较高
测试
单元测试
PHPUnit 手册 — PHPUnit latest 手册
自动化测试
seleinum appium soapUI
性能测试
ab压测工具
linux下web压力测试工具ab使用及详解-系统运维-51CTO博客
A/B测试
区块链
物联网
国产开源IoTOS:腾讯物联网操作系统TencentOS Tiny的探索与实践 - 知乎
如何基于TencentOS tiny,快速打造属于自己的IoT小应用? - 知乎
运维
冗余与灾备
安全
面试
PHP面试题汇总,看完这些面试题助力你面试成功,工资必有20-25K - 知乎
[PHP面试题]跳槽面试必背-自己最近5年的整理(一) - 知乎
[PHP面试题]跳槽面试必背-自己最近5年的整理(二) - 知乎
[PHP面试题]跳槽面试必背-自己最近5年的整理(三) - 知乎
PHP 面试遇到的问题,后期会不定期更新一下,大家也可以把认为经典的问题评论留言,感谢大家! - 知乎
综合能力
也谈谈程序员职业规划的几个问题——我的一些故事 - 西西吹雪 - 博客园
在编程的世界10来年,我们想通了很多。首先编程是为了养家糊口的一项能力,但如果只有这么一个目标,那么我们的人生也就太单调乏味。通过编程我们更容易也更好的认识世界,虽然我们很难去改变世界,但我们可以解决世界里的一个个问题,不管大小,因为我们有问题的各种解决方案、指导思想、具象手段。对于大佬们编程改变世界,我们能做到编程解决现实中的实际问题,但解决实际问题并不一定就依赖于编码,编码只是解决软件工程项目中的一个具体的实现手段工具,我们还具备问题的分析能力、问题解决能力,提出设想、提出疑问、主次分析、问题抽象模拟、方案推导演进、具体问题具体分析、问题解决工具使用、总结整理等,我们具备问题分析解决完善能力,我们拥有解决问题的指导思想、过程管理。编码只是解决问题过程中的一个使用工具环节,面向其他行业或生活中的问题时,顶层指导思想、问题的思考分析方式、问题解决的方法论都是抽象有理可寻,只是换了个具体的提高解决问题效率的工具。不用编码解决问题也是编程人员的技能,解决问题于无码,无码胜有码。
其他
代码片段
个人代码片段库
快速构建管理后台
Dcat Admin 一款高颜值的后台系统构建工具,简单高效,开箱即用 - 知乎
fastadmin
wordpress
php源码加密
爬虫
奇技淫巧
[PHP 技巧] 不要直接克隆对象,请使用深拷贝(life) - 知乎
chrome扩展
变现
在此整理一篇索引文,主要定制学习,有幸遇到眼光相似的您,与我们相遇在此,希望以后的时光,每当想起我们,嘴角可以上扬45度