- 博客(163)
- 资源 (4)
- 收藏
- 关注
原创 数据通信加密
偶然之间,想了解下https加密的底层是啥。我们都知道一个网站要使用https协议传输数据,需要购买证书(一般ssl证书都是收费的,当然也有免费的,如阿里云的免费ssl但有时间限制,目前是3个月内免费)。http是明文传输数据,在互联网上相当于是裸奔,一旦某个中间环节被人篡改了数据并提交到了服务器,那么服务器就相当于收到了脏提交(服务器本身是无感知的,只晓得接收提交和处理数据)。本文是探究https底层后,得出的数据加密方式,总之,真的学习到了。如上,我们又学习到了新的数据加密设计模式。
2024-03-15 17:41:50
179
原创 php cli 多进程编程
php cli 命令模式我想在日常开发中,大家用的都比较少。其实,在某些场景,cli命令真的很有作用,我举个例子在mysql数据库的某个表tab1中数据量有3000W+条数据,现在需要对这张表中的每一条数据做计算处理。将处理的结果放置在新表tab2上,因为数据量很大,我想大家不会采用php-fpm模式去处理这个吧,肯定还是要cli,并将执行时间设置为长时执行(set_time_limit(0))。经测试,单条数据处理耗时3s左右。
2024-03-01 11:48:25
513
原创 前端 - 视觉呈现技术
不知道大家有没有在微信中看见过,那种特别炫酷的h5,从事前端工作的伙伴看着这么炫酷的效果,又不知如何实现。本文就带你走进前端高阶视觉特效。炫酷的特效总有方法实现的,找个视频小哥哥学会pag 并用这个工具导出文件即可。
2024-01-26 09:03:34
266
原创 软件设计 - 大数据 - 性能优化篇2
偶然之间想到,在数据库中我们存储的数据放置在了某个列中,但这个数据的体积很大。且已明确知晓这个数据不会用于查询操作。只会在业务需要的时候从数据库中拿出来使用即可。在我们明确知晓某个数据不会参与到查询且这个数据的体积较大的时候可以考虑此种方案提升速度。但需要注意的是此种方案对cpu有压力(压缩/解压 都需要耗费一定的cpu资源,数据体越大耗费的资源越多)。采用的是以 性能换空间 方式。(另称为 以时间换空间 )
2024-01-03 16:36:42
621
原创 软件设计 - 原型设计篇
心有所思,所感。今日记录下这篇文章,与其说是文章,不如说是个人的一点思考体会。一个软件从开发到交付,如何才能评判出这个软件是否是优秀的软件?个人认为有如下几个方面:稳定、易用、安全本篇着重介绍易用性。原型设计应以人为本,从使用者的角度去思考,怎样才能快捷,简便的方式获得想要的信息。对上向使用者负责,对下可增强同事之间的信息沟通。
2023-11-30 09:43:17
533
原创 程序设计之美
世界有各种各样的美,有风景之美;人文之美;文化之美。那么我们程序开发中的美学是什么呢?我的理解是规则之美,严谨的程序设计,会使代码结构层次分明,便于开发及维护。我认为一个业务流程的实现,应该是由多个小功能组装而成。一个简单的举例:一次下单(商品购买操作)牵涉的服务有商品中心,订单中心,用户中心,日志中心等,每个服务中心为完成这个业务提供与自己相关的子功能,业务由订单中心发起,由订单中心调用各中心提供的功能接口完成此业务的实现。一切的规则设计模式来源于生活,我们要能通过生活发现新的;有效的;
2023-10-25 11:08:19
187
转载 布隆过滤器 php+redis
在实际开发中,我们是否有遇到以下情况。缓存穿透:某个用户一直在请求一个不存在的商品信息,导致我的数据库宕机了(请求一次获取商品信息数据后台要做的工作比较多,如统计访问量,商品数据的构成由多个表的数据聚合及后台对商品数据的二次换算等。某个时间点,我的网站有大量的有效用户在注册或是在活跃。分析场景:1、正在注册的用户产生了大量的写请求,在注册流程中用户名的唯一性效验是去user表中进行的查询。有大量的查询访问。
2023-09-18 11:09:49
198
原创 身为一个后端程序员如何快速制作后端管理系统的UI
我的专业领域在后端开发上,前端我仅仅是熟悉,但是要从头开发一个前端UI界面有点难为人了。那么身为一个后端程序员我们怎么来开发后端管理系统UI界面呢?基于开发来说,肯定是 方案1 比较好,但如果项目交付周期短,没有多少时间开发的话,方案2也许更好。在中、大型项目中,采用前后端分离(专业的人做专业事),前端技术栈采用vue会更好。一个全栈工程师做出来的程序不一定比一个前端和一个后端做出来的东西效果好,因为开发需要精力专注,全栈工程师将精力分散到了前后端实际开发,反而降低了整个系统的质量。
2023-08-25 15:26:52
2007
原创 应用 - 行为分析篇
以商超项目为例,为了更好的给用户提供服务,我们需要了解到用户喜欢什么,我的产品中哪些是用户感兴趣的,哪些是不感兴趣的。我应该在推荐栏目中给用户推荐的内容是哪些。基于这些业务场景,我们需要一套行为分析系统,了解用户在哪个产品中停留的时间最长,搜索哪款产品的次数最多,最感兴趣的产品是哪些。使用行为分析系统,要确定好我需要从行为分析系统中获取什么数据;评判数据分析的标准是什么;将从哪些场景下获取行为数据;分析器在后端守护进程将如何工作;数据存储的介质是什么;
2023-08-15 16:17:15
198
原创 架构设计 - 需求分析篇
一个开发项目的成立最初是由一群有开发需求的人提供了自己的想法,思路。根据一系列需求发起者的描述,反馈,总结形成了我们的开发项目。本文就这个过程展开讨论,分析出在沟通过程中可能遇到的问题点,想起一个段子。需求发布者描述的是战斗机 > 产品理解成了空客机,之后产品给技术描述>程序员理解成了直升机 > 最终产生的产品为 直升机。
2023-08-15 15:38:50
336
原创 架构设计 - 程序设计篇
在项目开发中我们如何去维护自己的项目?程序设计的好坏能为项目带来什么?你是否一直在苦于在进行系统迭代开发时,改动一处地方,其它地方的程序就产生了bug,导致你不得不得随时去了解业务底层运行逻辑,然后重复功能模块的实现编程。基于以上几点,结合我自己的理解,说说 程序设计 是个啥。程序设计是一个很综合的命题。需要考虑的内容很多。从项目需求,后期迭代和维护,多人协同,代码质量规范等。需要接触和了解很多的开发知识,才能进行项目架构设计。程序抽象于生活,也将溶于生活。
2023-07-24 09:49:28
173
原创 高迸发 架构设计方案
在实际生活业务场景开发中,在我们的网站知名度越来越大的时候,随之而来的就是业务体量越来越大,用户群体越来越大,随之而来的技术要求也越来越高,其中核心点对网站的稳定性要求是硬性的。如果一个系统都无法正常提供访问了,那么对用户的体验感应该是极差的吧。本文总结了我所见所闻的知识,来提升网站吞吐能力,应对高迸发,高安全的实现方案。
2023-07-06 08:47:25
579
原创 反爬虫-方案设计
在日常开发业务场景中,某些知识是需要付费才能观看的,而我们的扒手同志们想不劳而获,把对方的付费内容扒下来放置在自己的网站上,免费为大家观看。对C端用户来说特别好,因为免费看到了付费的只是内容。对内容的创建者特别不友好,因为辛苦努力的成功被扒免费曝光了,没有产生任何收益。如我们喜欢的小说网站,像上面一些最新的热血章节看着看着就没了。那么我们如何来预防其它人来扒我们的数据呢。
2023-06-13 09:53:43
413
原创 php openSSL 数据加密服务
在项目场景开发中,我们总会遇到一些敏感的场景需要数据加密及解密服务。那么我们如何去约定规则,让前端、后端均可处理数据的加密及解密呢。我找了些方法,可以完成数据的加密及解密。
2023-04-17 13:41:16
171
原创 设计模式 - 适配器模式理解及示例
根据适配器类与适配者类的关系不同,适配器模式可分为对象适配器和类适配器两种,在对象适配器模式中,适配器与适配者之间是关联关系;在类适配器模式中,适配器与适配者之间是继承(或实现)关系。将一个接口转换成客户希望的另一个接口,使接口不兼容的那些类可以一起工作,其别名为包装器(Wrapper)。适配器模式既可以作为类结构型模式,也可以作为对象结构型模式。在适配器模式中,我们通过增加一个新的适配器类来解决接口不兼容的问题,使得原本没有任何关系的类可以协同工作。设计一个抽象类:工作。目前提供有搬砖、服务员两个工作。
2022-10-13 13:33:20
370
原创 laravel 死锁处理机制+测试
在日常交易场景中,我们有用户A向用户B进行转账,用户B向用户A进行转账的情况,那么当两个请求并发一起执行的时候怎么办呢,首先是在事务中绑定一个死锁。$user1 = \App\Models\User::query()->where('id',1)->lockForUpdate()->first();那么当产生死锁之后我们怎么来处理呢。/** * Notes:死锁1 * Author:tanyong * DateTime:2022/5/19 *
2022-05-19 12:03:53
613
转载 好用的linux后台进程管理 pm2
pm2 是一款带有负载均衡的 node 应用进程管理器,当然也可以用来管理 php 的cli脚本。.当你要把你的独立代码利用全部的服务器上的所有CPU,并保证进程永远都活着,0秒的重载, PM2是完美的,下面我们来看pm2常用的命令用法介绍吧。PM2 (github上的源码)是开源的基于Nodejs的进程管理器,包括守护进程,监控,日志的一整套完整的功能,基本是Nodejs应用程序不二的守护进程选择,事实上它并不仅仅可以启动Nodejs的程序,只要是一般的脚本的程序它同样可以胜任。由下图可见,pm2对应
2022-05-18 17:53:45
568
原创 laravel 复杂搜索组件
有时候我们希望能和前端好好对接一个页面的功能性展示,如支持的搜索条件有哪些,支持的字段有哪些,复杂搜索组件代码 ComplexSearch.php<?php/** * Notes:描述该文件的用途 * History:文件历史 * tanyong 2022/5/18 */namespace App\components\ComplexSearch;use App\components\ComplexSearch\Exceptions\ComplexException;use
2022-05-18 16:33:31
2399
原创 laravel rbac权限管理系统
开发系统中,关于权限这块儿我想大家都不陌生,就是对一个操作进行权限判定,对用户当前请求的操作效验权限是否允许此用户执行这个动作。最近在学习laravel框架,发现laravel官方没有提供关于我感觉便捷的权限管理。我就自己实现了一个基于rbac模式的权限管理系统1、什么是rbac?在这里就简单说下他的思想,rbac的核心定义就是角色与权限的关系、用户与角色的关系。啥意思呢?意思是说,一组用户通过被分配的角色身份去行使对应的权限。2、如何在laravel中实现rbac以下就是硬货,我尽量对每个类添加
2022-05-16 14:22:44
4415
原创 laravel 接口日志中间件
在日常开发中,我们总会使用到restful接口调用,而我们在开发的过程中,我们总是希望统计出我们的接口在使用时入参的情况和回参(响应的情况),为此,我设计了一个中间件来统计接口的调用情况。第一步:创建中间件RunLogMiddleware(运行日志中间件)命令行运行php artisan make:middleware RunLogMiddleware运行成功后,会在App\Http\Middleware命名空间下创建RunLogMiddleware class文件<?phpname
2022-05-11 11:02:45
691
原创 laravel 服务提供者(provider)
laravel的服务提供者感觉就是单例模式的实现(单例模式,即是在整个会话中这个类有且仅有一个实例)我们在使用的要明确的知道某些概念,比如一个用户服务提供者,将会注册用户服务或是其它服务(如身份信息服务、邮寄地址服务等等)。用户服务提供者:身份信息服务、邮寄地址服务命令:创建一个服务提供者php artisan make:provider TanyongProvider在自己的服务提供者中注册自己的服务<?phpnamespace App\Providers;use Illumi
2022-05-10 18:19:44
930
php - 斗鱼直播.rar
2020-09-11
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人