知者行之始,行者知之成
2025-10-22 · 阅读 512 · 字数 1054
为何要对网站进行自动化测试? 最近在开发公司内部使用的人事系统,发现手动测试非常麻烦。每次改动代码后,都需要手动打开浏览器,点击各种按钮,填写各种表单,确认功能是否正常。这个过程既耗时,又容易出错。 同时,我自己的网站也有类似的需求。写了一堆功能,每次上线都心惊胆战,生怕修改了一处代码,导致其他功能出错。而自动化测试可以大大降低这种焦虑感。尤其,现在好多功能都是用 AI 来实现的,我经常性的不看 AI 的具体实现代码,而是看它的输出结果是否符合预期。这种情况下,自动化测试就显得尤为重要。 我看现在好多人推荐使用 Playwright,而且是微软出品的,感觉应该还不错。于是决定尝试一下。 Pyt ...
2025-10-17 · 阅读 4542 · 字数 455
大概是上个月,我发现国内已经不能在 vscode GitHub copilot 中使用 claude 相关的模型了。对我来说,不太影响日常的搬砖性的 crud 开发任务。但是今天,遇到了出设计稿的任务,想让 ai 出一版平板 app 的设计稿。之前用 claude 给出的效果非常赞。参考前文 Claude 3.7 生成 APP/网站 UI 设计稿的提示词。 没有 claude 的情况下,我用 gpt 5 codex 和 gemini 2.5 pro 分别除了一版设计稿,效果惨不忍睹。而且让 gemini 微调,也是一直嗯嗯嗯,就是不改。无法忍受🤣 不得不请回 claude了。 网上查了一下,方 ...
2025-10-14 · 阅读 579 · 字数 1134
用 AI 生成的网页代码,如果使用了 tailwindcss V4 的 CDN 版本,会看到浏览器控制台报了一段警告信息: cdn.tailwindcss.com should not be used in production. To use Tailwind CSS in production, install it as a PostCSS plugin or use the Tailwind CLI: https://tailwindcss.com/docs/installation 奈何 AI 用 tailwindcss 生成的页面就是比用 bootstrap 的好看,不得不解决一 ...
2025-10-12 · 阅读 343 · 字数 1089
周末继续 Golang Gin 重构 PHP 的 Magento 电商网站。其中一个需要重构的功能是网站地图 sitemap.xml 文件的生成。 之前做的网站普遍简单,很少超过上万个产品或者文章。而电商类的服务,例如 magento 通常需要导入几十万甚至上百万的产品信息。那么就需要注意一下 sitemap.xml 的配置规范。 golang 三方库 https://github.com/sabloger/sitemap-generator 虽然 Star 数只有 40 个,但是看起来文档还挺详情,准备测试一下。 > go get github.com/sabloger/sitemap ...
2025-10-07 · 阅读 421 · 字数 1035
国庆第一天,刚处理了国内的阿里云个人博客服务器被刷爆带宽。 而国庆第五天,一大早就收到海外的一个网站服务器(Linode Server)的宕机通知邮件。 早上一起床就赶紧登上了服务器,发现是网站服务器被刷流量,直接导致服务器负载过高,网站无法访问。 攻击流量特征 几乎全部的垃圾流量都是在刷一个站的博客列表页面,路径如下: /latest-blog?mdrv=<xxx.com>&start=<random_number> /latest-blog?=1&pagespeed=%27%3Fpagespeed%3D%27&start=2750 正常的 ...
2025-09-29 · 阅读 586 · 字数 682
开发完了公司内网的人事管理系统,开始动手测试,发现里面的测试数据惨不忍睹,全是 111,222 这样的名字,员工资料里全是数字,显得系统异常粗糙😵💫。明天就要给人事部门演示了,这样可不行。于是我就用之前开发的 随机生成身份证号,手机号,邮箱地址的微信小程序 生成了一堆测试数据,界面里面看起来像个正式一点的人事系统了。但是,还有一部分数据没法自动生成,例如,家庭住址/户籍地址,工作单位,职务这些信息。 于是,我想干脆借此机会把这个工具再完善一下,就加上了更多的个人资料字段随机生成,效果如下: 本来想加上一些工资卡开户银行的信息想想算了,怕引起敏感词问题。同时增加了网页版本,方便在不方便登录微 ...
2025-09-21 · 阅读 849 · 字数 537
今天在排查一处程序 bug 时,发现一段代码写的逻辑实在乱,完全没有印象正确的逻辑应该是怎样的。 于是想查看这段代码是不是自己写的,什么时候写的,为什么这么写的。 直接在 VSCode 的 github copilot 的 Chat 窗口中问了一下: 如何通过 git 命令查看某段代码是那个提交修改的:例如: line1 line2 line3 得到的回答是,可以试试 git blame 命令。试了一下,非常好用。 git blame 示例 例如, 我想查看 models/product.go 文件中第 10 到 13 行的修改记录,可以运行: git blame -L 10,13 mode ...
2025-09-17 · 阅读 460 · 字数 1016
最近批量导入了一批 Magento 产品信息,不知道为何直接导致服务器磁盘空间被占满。 而导入的产品也不多,不到1万个,理论上不应该占用上 G 的空间啊。 使用 ncdu 工具排查 使用之前的磁盘空间分析工具 ncdu。使用方式参考: 使用 ncdu 命令分析 linux 磁盘空间占用 发现,最占磁盘空间是 Magento 的项目目录。占了 76 G。 然后,在结果里面逐级进入子目录,发现最占空间的 Magento 子目录是: pub/media/catalog/product/cache 占了 56 个G。这个目录里全部是产品图片的缓存,即各种尺寸的缩略图。 不得不说,ncdu 真是运维神 ...
2025-09-15 · 阅读 1139 · 字数 773
每个周写周报是最浪费生命的事情之一,之前就吐槽过一次。本来是部门范围内提交就可以了,现在变成了公司所有人都需要提交,还要抄送人事部门,保证人事部门的 HR 也能看懂 🥲 这就很头疼,比如花费了一天时间完成了复杂的文件资料管理功能,但是提现在周报里就是一句话“实现了文件资料管理接口”。看起来没啥工作量的感觉 😅 比起写周报,还是写代码简单快乐一点。 今天周一,傍晚临下班提交 git commit 时,准备顺便把提交内容复制一份到周报文件里,这样就能省去周五下午花时间再整理。突然想到,为何不能让 ai 根据 git 提交历史信息自动生成周报呢🤔 great idea!于是动手试验了一下,效果非常满 ...
2025-09-13 · 阅读 498 · 字数 1292
找了半天 Magento 无法批量导入的问题,最后发现是 crontab 里设置了一个定时任务,每半小时 restart php fpm 的 docker 容器。导致 Magento 的批量任务没有执行完,就被 restart 中断了。如此反复,导致没有一个批量任务导入成功的。 我在 Magento 日志中,没有找到任何的相关日志,完全靠翻看数据库表结构,盲猜 magento 的导入机制,才解决这个问题的。 记录一下排查中学到的 Magento 无用知识: 数据库表 有个数据表,名为 importexport_importdata,记录了需要导入的产品信息。 实际数据来源就是,后台上传的 c ...
2025-09-11 · 阅读 629 · 字数 711
需求 人事管理系统中,员工入职的时候,需根据公司前缀生成唯一的员工号。 TODO 找几个知名公司的工卡看看员工号的格式 确保公司信息表中有公司前缀的字段 整理成文档。可以节省其他人收集的时间 按照入职时间顺序生成员工号。参考之前生成设备序列号的规则,复用一下这部分代码。 线上改表 问题的本质 员工号是做什么用的?如果没有员工号,会影响公司运营么? 方便客户投诉时使用。。。因为用名字投诉不方便,也容易重名,用员工编号最合适。 作为员工的唯一标识符 作为员工的登录账号 作为员工的考勤打卡号。作为一些三方考勤设备的标识。 作为员工的薪资发放账号 老员工的问题 按理说应该按照入职时间顺序生成员 ...
2025-09-10 · 阅读 550 · 字数 220
在使用 Golang Gin 开发一套公司内部使用人事管理系统。至于为何不使用企业微信或者钉钉,飞书之类的现成系统内置的人事管理模块。领导们给出的原因是,公司内部架构太复杂,企业微信内置模块不支持。 但是实际上,我感觉还是人事部门负责人并没有完整了解过这些平台的人事管理模块,其实是足够灵活配置的,满足需求。只是这些人懒得去了解罢了。不过多抱怨这些了,让开发就开发吧。 这个开发的过程非常的枯燥无趣,而且这种成熟的内部系统,开发再多也没有产出和价值。所以,我觉得边开发,边整理遇到的问题。才能不至于写着写着代码,就想去划水。 系列章节 人事管理系统开发之一,办理入职功能的一起编辑填写功能的实现方 ...
| 生活 | 跑步 清单 足球 鲁班 探索 孤独的美食家 驾驶 电视剧 收纳 奶爸 健康 game 电影 周末 joke |
|---|---|
| Geek | 健身 Laravel Git Vim MySQL Linux UI Windows SVN 纪录片 管理 Shell 游记 工具 手机 BackboneJS 自建博客 Mac DNS Tornado CDN Django Python AngularJS 理财 前端 Nginx 爬虫 Redis Javascript Browser 浏览器 推广 OAuth CSS PHP Social Networks 安全 运维 创业 杂记 VueJS Android Image IDE Java ReactJS 数据分析 SQLite RESTful 读书笔记 家电 ecshop Vagrant wordpress docker SEO GTD magento mongodb nodejs weex 冷知识 ruby iOS 微信小程序 AI CMS 快应用 backpack 广告联盟 OA 短信 UWP Win CSharp Tampermonkey graphviz 钉钉 WPS 数据字典 微信公众号 Fuchsia Adobe XD SQL Server thinkphp 代码规范 商业模式 Flutter 头痛的问题 serverless 视频制作 国际化 golang 服务器 Kotlin 网站建设 5G 笔记本 图片 spark spring 物联网 InfluxDB 图像识别 postgre rust 提示词 |
| 成长的烦恼 | 闲言碎语 待产 不睡觉 写作 程序员 孙心然语录 原则 大鸿语录 |
| 地球 | 植物 时间 中文 赚钱 国家地理 烟台 一生伏首拜阳明 emoji 弟子规 英文 国际贸易 |