- 博客(89)
- 收藏
- 关注
原创 回(2)——腾讯云OSS的使用配置
1.CDN概念前面已经详细描述过,在云的节点存储一份你需要加速的内容(图片/视频/下载的附件,这是原理),在实际使用过程中,我们需要绑定我们自己的加速域名。管理上的灵活性大幅度受到影响,第三方面,如果你需要集成访问到自己系统里面实现一些特殊功能,比如某个只能下载一次的链接操作,如果资源储存在腾讯云里面,别人是可以无限盗用下载的,而如果你使用一段逻辑控制访问后,从远程云端下载到服务器端,然后再从服务器端下发给客户,而且下发后,本次请求链接再也无法使用,这样就实现了盗用的逻辑。这节进入更详细的概念配置。
2024-09-11 01:00:00
1323
2
原创 回(1)——BT服务器管理
3.代码的自动化部署。2.git 代码管理 简单版 将功能代码和库分离,同步功能代码到本地,库不纳入版本管理(一般库极少变动,都是保持不变的,偶尔变,打包到库包即可),然后新建一个项目,初始化,将功能区核心代码上传到gitee.com里面(也可自己搭建git服务器,这是另外一个话题),需要同步的服务器登录,git pull 拉取代码到对应目录,然后每次更新线上代码,git pull即可。而改进的方法,是提供一个外部的URL页面,外部代码有更新的时候,提交到git上的时候,远程服务器开始更新代码。
2024-09-10 10:12:46
742
原创 独立开发者(47)——jquery使用回顾
默认情况下,浏览器是按照代码的执行顺序执行解析代码,但是有些代码却必须等到全部页面加载完成后,才能跑,特别是渲染那图片和一些css 所以如果写的代码位置不对,会造成页面执行的错误。$(‘#c-vtype’).change(function(){}) 事件的变化情况 使用场景,用户改变dom节点的值,可以导致其他节点的隐藏或者显示。before() - 在被选元素之前插入内容 元素的html新增内容,无法新增内容的标签 前后增加相关元素的操作 不会影响操作的元素。梳理下常用的jq案例。
2024-09-05 08:56:48
1304
原创 项目管理(二)——需求文档示例课程模块和考试模块
1.课程大类标记 i.点击课程,进入课程大页的类型列表页面 ii.每个大类的课程点击都可以进行对应列表搜索 iii.课程需要支持关键词的模糊搜索 IV.显示出来的课程,需要显示是免费和付费(补充需求) v .最多显示20个分类,过多分类容易导致前端显示不美观 vi.首页需要支持指定的课程推荐(推荐课程的营销)2.课程详情的说明: i.点击即可查看课程详情说明(所有课程点开都是这个详情页面)
2024-09-04 01:00:00
394
原创 项目管理(1)——项目管理认识
然后走流程的时候发现,复制的时候,只是复刻了一个新客户端,还有推广端,而推广端的是没有数据,需要自己去脑补的,而更糟糕的是,复刻的网站本身并不完善,他们每周都有版本更新,导致你在交工的时候会发现永远也对不上最新版本,而老的网站版本因为各种原因发现并不能运营,也就是仿站的目标就是因为在运营里面出现了各种问题,导致系统在不断升级。开发之前做的约定,其实是无效的,没有需求文档和逻辑功能的完整,就开始开发的程序,只是简单模拟对标站,最终会因为陷入对对标站的模拟,陷入业务逻辑层面的反复推翻和重做。
2024-09-03 01:00:00
306
原创 项目(6)——医疗设备的维护单开发教训反思
第三对接的仓库管理员,极度反感操作复杂的电脑后台,她本身是仓库的管理员,然后也是平台派单人员,也是公司的行政之类的,导致她非常不愿意操作电脑,觉得实在太复杂了。其他各种问题也跟预料中一样,基本商量半天,到最后给的回答就是,这块我不懂,你们是技术,比我懂,实现了就行,反正大体是这样。非常熟悉的客户属性,也就是普通的客户根本没有完整的描述自己的需求,需要实现出来,使用的时候,反复给你提方案,而这种订单,往往是很容易导致开发严重超期的。项目的难点:(所有外行开发通用性的难点,就是产品需求的不明确)
2024-09-02 01:00:00
769
原创 开发业务(11)——小程序开发交互
返回给前端之后,后端此时可以生成一个用户登录记录(也就是没有用户名和手机号,只有一个openid和注册时间的相关账号),等前端用户注册的时候,再来真正填写东西(如果业务需要查看全部点击过的用户,这就需要把username和登录号码设置成不唯一),这个改动代价比较大,一般Mysql里面我们设置username的unique唯一性,确保快速查询到用户,不是业务强制性需求,我们都不会记录只点击过小程序的用户。检查mobile是否存在,是否绑定过,绑定过不再给予绑定,未绑定,更新此次绑定信息,然后免登录。
2024-08-30 01:00:00
508
原创 独立开发者系列(45)——PHP的时间处理详解
应用场景: 不同的时间录入相关的数据,经过运算之后,拿到了一个二维数组(这里拓展的是录入课表,只与当天的上课时间有关,具体某一天课程,需要从早上9.00——21:00 进行排课,这个时候,拿到了一天的相关数据,需要对上课开始时间进行全新的顺序排列,组装后继续后面逻辑),于是就用到了对二维数组进行时间排序操作。系统会自动根据时间,日期内部进行对比,写久了时间戳的格式,对这种日期格式直接比较大小,有时候没反应过来,会习惯性的转换成时间戳,来对俩个日期类型的数据进行大小比较。使用time()获取当前时间戳。
2024-08-29 01:00:00
2535
原创 特效与样式(5)——Timetables的使用
"李老师,中国舞", "李老师,中国舞", "李老师,中国舞", "李老师,中国舞", "李老师,中国舞"],["李老师,毛笔", "李老师,毛笔", "李老师,毛笔", "李老师,毛笔", "李老师,毛笔"],["李老师,马术", "李老师,马术", "李老师,马术", "李老师,马术", "李老师,马术"],["李老师,马术", '', "李老师,马术", "李老师,马术", "李老师,马术"],["李老师,马术", "李老师,马术", '', "李老师,马术", "李老师,马术"],
2024-08-27 20:32:11
964
原创 独立开发者系列(44)——PHP的CLI运行模式
config/swoole.php 到该文件里面进行配置 (如果是需要启动俩套代码,需要这样配置) 该配置可以更改swoole启动服务器的端口,启动后,默认是服务器的IP端访问,需要转发到主服务器的80端口,同时配置https相关证书。由于swoole默认情况下是常驻内存的,也就是代码的开发改动调试是需要重新启动加载一次代码的,也就是加载一次后,代码就在内存中,直到服务器结束运行,所以给调试带来很大的不方便,需要将代码配置成 热更新模式(这样就跟普通的php代码差不多)
2024-08-27 01:00:00
1916
原创 开发业务(10)——fastadmin常见开发例子
也是非常广泛的场景,选择A会导致B被隐藏,数据表里面填写的是A相关的值,选择B会隐藏A,填写的是B的值。这种需求基本是最普遍的需求之一,包括banner点击如果是放大图片,需要放入高清图,如果是链接,会隐藏需要放入的高清图,选择放入链接。场景3: 用户从一个新绑定的页面 跳到了B页面 绑定了一个参数,同时该参数对应了一个新的绑定 从课表那绑定了班级,在编辑班级页面的时候,也要一并把课表的信息传递过来。场景2:用户发表动态,选择视频的时候,隐藏图片,选择图片的时候,隐藏视频。
2024-08-26 01:00:00
869
原创 总结(二)——技术的接单与做单
海鲜市场以10为单位进行标价接单,如果你勤于登录,不断刷新和更改关键字,肯定是可以得到不少询价的,然后关键的问题来了,因为你本来就是以10为单位的,结果10/20/50的预算的单子一堆,服务这种商品有个最大的特点——他是不可复制和互斥的,也就是你接了这个20的单子,你就没有办法再去做其他的事情。老客户——以前需要技术的朋友,和现实里面接触过需要开发东西的朋友,这种知道你技术而且又需要技术的,不太会严重压价,这充分说明,程序员上班不能只做开发,啥人也不接触,要不然你失业的时候,发现给你低保的单子都没有。
2024-08-25 01:00:00
353
原创 工具(3)——本地代码和服务器代码同步
配置项目项目前,需要先准备个.gitignore ,一般库更新相对比较少,而且更新之后,极少会再次去更新,而且库的文件相对比较大,所以无需更新。1.代码不存在丢失的风险——单纯的代码开发存在代码丢失的风险,特别是存在代码自动生成和改动混合的时候,一键生成很容易覆盖掉之前改动的代码,而git有效的弥补了这点。2.生成代码的时候,一次是生成N个文件,除了整个生成包放到线上,覆盖线上代码,FTP上传效率非常低,大量文件传输的时候,经常性提示失败。这种办法适用场景,修改简单的代码,开发已经完善,只是做小修复。
2024-08-24 01:00:00
713
原创 做过的项目(5)——社区拉票
可以理解为,每个机器人其实就是一个随机链接,每次访问随机链接的时候,或者给随机链接post相关数据的时候,服务器已经拿到信息,对信息进行相关检查之后,然后推送到设置的这个webhook对应的机器人群上。2.用户分享到群里点击链接的时候,会产生并发情况,需要做个取舍,因为如果A邀请B用户,收邀请的人数会+1,但是并发时候会导致计数不准确,B/C/D同时点击登录,而因为事物关系,会同时去修改邀请人数数据,但是又不能因为数据更改失败,让用户无法登录,用户受邀请登录是无感的。集成插件需要考虑登录态/变化的编辑。
2024-08-23 01:00:00
1932
原创 独立开发者系列(43)—— 详解CURL函数库
和python里面的该库作用是类似的。该库在编程里面使用的频率非常高,基本应用里面,除了对MYSQL的交互,就是对远程API的获取,可以理解为第二使用的库。而这个是解决问题的关键,基本上怎么处理错误(90%以上的逻辑都是正确的,但是遇到10%的错误请求,会让我们系统瘫痪,所以重点是监测请求,在开发里面,对这个错误的监测不重视,吃过大亏)。资源是和int boolen float object 一样被定义的类型 ,在常用的编程里面,很少会有资源类型的概念,而curl_init就是打开一个初始化的资源。
2024-08-22 01:00:00
1134
原创 代码与优化(4)——MYSQL的连表与子查询
当系统很大的时候,或者需要优化的时候,使用这种方法,优势也很明显,比如订单表的查询不会受用户表的干扰,可能订单只有几十万条,但是会员已经上千万,而且我们需要将user进行分开管理和做逻辑处理操作。通过对比我们其实发现,排除第一种直观的逻辑方法,第二种方法,逻辑度比联表逻辑度复杂俩个等级,先读取订单表,根据订单表再读取用户表信息,根据用户表信息再回填订单表里面,而且没有办法只读取存在用户的订单情形。然后将返回的数组拼接成由用户uid 为键值的数组,最后我们再和我们的订单表进行信息拼接,读取用户的相关信息。
2024-08-21 01:00:00
1536
1
原创 开发业务(9)——crmeb的内部方法理解
系统将代码分四层: controller 层 逻辑处理层 respository 还有模型层 model 但是随着逻辑处理层也越来越需要封装,于是又定义了一层dao层(小型项目里面极少会用到四层)最简单的项目只有一层 controller层,数据库也直接db处理了,复杂点的,会有model层,专门来交互MYSQL部分,而业务逻辑更复杂一点的,会有logic层,而crmeb是更复杂的,将logic层拆成responsity层还有dao层。暴露的dao层,处理各种复杂的组合查询逻辑。
2024-08-20 01:00:00
1314
原创 开发业务(8)——支付宝的支付接入
也就是通讯流程,我们先向服务器发送公钥确认身份,支付宝也用我们配置的公钥给我们服务器发送消息通知,确保其他来源信息无法伪造。由于回调的数据是基本无法模拟请求的(主要是被加密了),只能依赖日志相关功能。3.请求数据是需要对身份和数据的合法性进行校验,再完成其他订单关联逻辑,最后发起支付宝的支付逻辑。应用公钥和私钥 (公钥的作用是给支付宝发送请求,私钥的作用是验证公钥发过来的数据是否正确) 4.由于订单的数量数据比较关键,一般都会保留日志,所以日志记录对支付而言是非常重要的。这里把全部的支付看成一个小应用。
2024-08-19 01:00:00
1364
原创 安全(1)——登录的设计与攻击
不过在最新的加密验证里面,已经不推荐使用md5进行加密相关验证,使用的是Password_verify 和password_hash 官方库对密码进行对应维护。防止出现时间运算漏洞,暴露密码的相关信息。在这里,前端只传递username字段和password密码字段,登录后端。后端拿到username和password,进行验证,通过就表示登录成功,失败就表示登录失败。所有的开发当自己能手写web系统的时候,入门的第一课大半是学会自己写个登录的简单的交互。这里梳理下,从简单到实战中的登录差别。
2024-08-16 01:00:00
423
原创 开发业务(7)——fastadmin内部代码改动
该技巧不是官方demo,很难被用到,如果我们自己开发一个这样的插件,要不就是暴力修改config.php(这是不被允许的) 要么更改官方login登录方法,backgroud的参数获取方式,或者干脆直接加这段逻辑进去。关联模型(查表的时候使用到,默认系统查询的时候,会自动调用关联查询,方便度增加,但是性能损耗应该降低,一般很少场景会用到关联查询,本来拆表的目的就是为了简化查询)更常用的一个解决方法是字段的冗余,设计数据表的时候,额外储存改id对应的name名字,同时在add的时候,将该值直接加进去。
2024-08-15 01:00:00
2194
原创 独立开发者系列(42)——MYSQL语句使用和进阶
第二个场景,就是有冲突的场景,比如用户的余额更新,用户点击了俩次,这个时候需要对余额进行更新俩次,但是因为是同时并发的,可能出现只扣款一次的情况。这个时候需要使用到CAS算法,比如一个学生购买了一瓶矿泉水点击了俩次,我们要扣除他的余额,这个时候,我们查询账户信息的时候,需要使用到id=2 + money=22 这种双重条件,消除并发同时读取到moeny =22 完成俩个订单,经过运算后更新20账户的余额场景。这个时候,如果需要一个比较准确的统计结果,需要使用insert插入,然后晚上的时候进行count。
2024-08-14 01:00:00
1469
原创 开发业务(6)——vue项目的route
createWebHistory 使用该模式的时候,就跟我们平时访问访问一样,/index /login 发出的请求到了服务器的nginx那边,通过路由器的转发实现路由的识别和分发。hash也称作锚点,本身是用来做页面跳转定位的。2.不干扰现有项目的路由配置,本来我们项目配置的好好的,有的项目是已经具备了线上 线下 现在需要根据API部署一个额外的关联项目,显然更改服务器上的路由是不明智的,所以最方便的是使用哈希模式。在html的单页面里面,我们在单页面通过埋在#的点里面的,实现点击 网址里面出现。
2024-08-13 01:00:00
1438
原创 独立开发者系列(41)——PHP的文本类操作
检测是否是对应的目录is_dir 而创建目录需要使用mkdir 需要注意的事,检测目录的时候,需要根据不同系统使用不同的路径符号,win的路径符号是\ 而Linux是/ 所以使用DS来自动识别系统,从而切换正确的路径符号。而平时大部分开发里面,出于对安全的考虑,对文本的操作都是限定的,只允许在指定的目录里面对文件进行读写操作。需要注意的是,文件上传是支持同时多文件上传的,也就是一次可以进行多次文件上传操作。在做开发类操作需要操作文件或者目录的时候,路径的配置非常重要,否则操作是失败的。
2024-08-12 01:00:00
920
原创 独立开发者系列(39)——uniapp开发的前置
开发所有前端应用的框架,开发者编写一套代码,可发布到iOS、Android、Web(响应式)、以及各种小程序(微信/支付宝/百度/头条/飞书/QQ/快手/钉钉/淘宝)、快应用等多个平台。2.项目目录 ,了解规范的项目目录有利于快速上手 对代码进行改动和二次开发,可以看到我们测试项目首先就是pages里面进行开发改动。大部分的项目里面都是几十上千个route的管理 是需要维护的。打包生成的目录是到 unpackage/dist/build 里面 可以看到具体的端。浏览器的选择打开;
2024-08-07 01:00:00
1711
原创 样式与特效(2)——新闻列表
特殊的属性 height width 属性 auto的时候,只自动填充100%,可以自动伸缩,如果写了具体的数字,就是控制对应的缩放,这点在自适应里面不是很常用。理论上 .home{.nav{ .img{}}} 可以这样无限嵌套下去,但是嵌套有个很大的问题,就是你写的这个样式无法被你写的这个分支复用,如果其他分支需要用到你这个模块的样式,需要重新写一份。外部样式的主要好处:css的统一管理,可以节省掉大量重复的元素代码,更换页面统一风格的时候,直接修改统一文件就完成了修改。目前比较热门的几个属性。
2024-08-03 05:30:45
937
原创 开发业务(4)——vue基础库使用
5. 单页面的弹框切换 SFC场景应用特别多,就是点击A按钮,当前页面就是A按钮的数据,点击B按钮,页面变动了,但是实际上页面并没有刷新,也没有跳走。对于初级开发页面,必然遇到的vue开发相关问题。数据的持久化,一般用户登录到一个页面,需要在本地保存对应信息,减少不必要的网络请求,需要让数据进行持久化:。弹框事件 点击查看城市,会弹框出来,这里的弹框可以是任意弹框,绑定一个v-model的变量,如果点击的时候 是show 否则是hidden。点击登录的时候,会触发submit按钮,执行数据提交方法。
2024-07-31 03:00:00
1364
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人