八款堪称「神器」,却鲜为人知的办公利器

【鸿蒙专题与实战】测试体系:单元测试、组件测试与 UI 测试 本文系统讲解鸿蒙开发中的三层测试实践:底层单元测试(用Hypium框架,优先覆盖纯函数、边界与异常)、中层ViewModel逻辑、顶层仅测3-5条关键UI路径。强调测试应“越往下写得越多”,因单元测试快且成本低,而UI测试慢易出错。通过实例说明断言拆分提升定位效率,结合覆盖率报告(hvigorwtest --coverage)发现盲区,核心是“用覆盖率找漏测,而非追求数字”。附五步落地清单:建测试文件、按优先级补用例、精简UI测试、生成报告、定位未覆盖行。下一篇将开启实战项目:从需求到上架全流程。 阅读详情

作为互联网运营人员,要想真正做好运营工作,掌握一些专业的运营工具和知识是非常必要的。下面就根据运营中的主要工作内容,分享一些我常用的工具和网站,它们涵盖运营工作的方方面面,对提高效率很有帮助,希望对从事产品运营工作的朋友有所帮助。

好了,废话不多,开始正题。

一、团队协作工具

Tracup

Tracup是一款轻量级的团队协同平台,提供简洁、高效的 Bug 追踪,轻量、便捷的项目管理,安全、稳定的数据保障,完美地将 Bug管理与团队协作结合在一起,让您更加优雅高效的工作。它作为Bug 追踪,项目管理和工作协同平台,可以说是十分好用了。不仅适合开发团队,产品与运营团队同样可以使用。

二、知识库管理系统

Seed

选择一款企业级知识库最看重哪几点?我认为是安全,高效,易于使用,最最后一点我觉得是要免费!蒲公英旗下的这款企业级系统知识库产品可以满足。整理构建企业知识库,最最重要的是能够对知识进行分类,并且能够随时随地查看知识。这样可以使运营人员在工作中更加得心应手。

三、蒲公英国际短信平台

针对现如今国内企业出海做跨境业务,国际短信是企业相关运营中非常常用的消息渠道。与传统短信的应用场景类似,国际短信也是可以用于通知、验证和营销场景,例如为用户发送海外账户的动帐交易提醒、下发APP注册登录过程中的短信验证码以及进行活动宣传、营销推广。

合理使用国际短信可以达到其他形式广告无法达到的目的和效果,投资成本相对较低。因此,国际短信已经成为许多外贸企业的营销工具。

四、微博运营辅助工具

皮皮时光机

微博运营涉及的内容很多,包括文案策划与撰写、内容发布、评论互动和转发等等,要做好微博运营需要花很多时间和精力。皮皮时光机是一款可以有效提高微博运营效率的工具。

作为一款第三方微博管理工具,皮皮时光机可以让微博运营人员实现定时发布微博、定时转发微博、微博互动、多人协同管理微博、个性化设置、发送记录等功能,此外,它还提供了强大的微博内容资源库供用户使用。

五、互联网趋势统计分析工具

百度指数

百度指数是一款互联网趋势统计分析工具。你可以通过它快速查看某个关键词在百度的搜索规模有多大,一段时间内的涨跌态势,关注这些词的网民的特征,以及他们同时还搜了哪些相关的词等等。产品运营人员可以利用它来优化数字营销,如在做SEO时选择关键词等。同时还可以利用它做竞品追踪、受众分析、传播效果查询等。

六、网站排名查询工具

Alexa

Alexa是一款网站排名查询工具,在Alexa上可以轻松查看网站的排名情况,包括整体排名和分类排名。它也是目前比较权威的一个网站访问量评价指标。如果要和其他网站平台进行流量互换等合作,可以直接参考对方网站在Alexa上的数据。

七、图片素材网站

Pexels

日常运营中,经常需要在网上找一些图片拿来使用。Pexels是一个提供海量共享图片素材的网站,每天都会批量更新图片。Pexles 的照片由手工采集筛选,所以照片更新速度不是最快,但是质量有保障。Pexels 上的所有图片都会显示详细信息,例如相机型号、光圈、焦距、ISO、图片分辨率等,非常适合对图片更高要求的人。

八、蒲公英企业服务开放平台

”如何为企业挑选一款适合自己的办公软件?“

这几乎是每一位创业者在组建初始团队后,或在此之前就要面临的问题。企业如何挑选办公软件,是件很有挑战性的工作,需要眼光,更需要智慧。

可以来蒲公英企业服务开放平台来为您的企业挑选“门当户对”的软件。蒲公英帮助您更快找到适合您需求的软件产品。提供了海量企业服务相关的软件,为企业服务选型决策提供了强有力的支撑。

百闻不如一见,赶快来试试吧!

爬虫小例--爬药监局(上) ”明月如霜,好风如水,清景无限 “ 文远最近也算是爬虫入门吧,相信后面会慢慢熟悉。 壹 直接上例子,爬取药监局的数据。目的是得到每家公司的详情数据,例: 具体网址:http://scxk.nmpa.gov.cn:81/xk/ 这是主页,下面详情信息: 贰 分析,通过网页检查发现,主网页上没有公司相关数据,观察XHR中的Ajax请求发现,公司信息都是动态数据(方便更新),点击发现每个公司 的详情信息通过ID号这个参数区别,那么可以确定思路是先得到每个公司的ID号,然后在通过ID对应每一个详细网站,同样右键 阅读详情

相关推荐

深信服桌面云实战:从零部署到高效运维的关键配置指南

本文提供了一份深信服桌面云从零部署到高效运维的实战指南。内容涵盖项目启动阶段的资源、网络与存储规划,详细演示了VMP与VDC平台的安装与对接,并深入讲解了制作虚拟机模板、配置用户体系、优化终端策略等核心步骤。最后,分享了包括CPU公平分配、智能调度在内的关键性能调优与高阶运维技巧,旨在帮助管理员构建稳定、高效的云桌面环境。

blockchain9miner的博客 451

互联网运营人员不得不知的14款工具神器

声明:本文优快云作者原创投稿文章,未经许可禁止任何形式的转载。 作者:欧开磊 责编:钱曙光,关注架构和算法领域,寻求报道或者投稿请发邮件qianshg@youkuaiyun.com,另有「优快云 高级架构师群」,内有诸多知名互联网公司的大牛架构师,欢迎架构师加微信qshuguang2008申请入群,备注姓名+公司+职位。 作为一位拥有多年互联网产品运营经验的运营猫,我深知日常运营工作的繁...

博客 1672

【Pytorch】DCGAN实战(三):二次元动漫头像生成

文章目录1.实现效果2.环境配置2.1Python2.2Pytorch、CUDA2.3Python IDE3.具体实现3.1数据预处理(data.py)(1)导入包(2)定义数据类3.2模型Generator,Discriminator,权重初始化(model.py)(1)导入包(2)Generator(3)Discriminator(4)权重初始化3.3网络训练(net.py)(1)导入包(2)创建类3.4 主函数(main.py)(1)导入文件(2)定义超参数(3)实例化(4)进行训练4.训练过程4.1

qq_44031210的博客 4916

8大远程控制工具横评:哪款才是2025真正的效率神器?

选择远控软件,关键在于明确自身核心需求:追求综合最优、省心可靠,选 ToDesk;专注远程游戏,可试 UU远程;需要高级别数据自主且有技术能力,可研究 RustDesk;而像向日葵、TeamViewer等老牌软件,则需根据其具体的付费模式与自身预算谨慎权衡。希望这份详尽的横评能为你拨开迷雾,助你轻松找到那把最称手的“远程钥匙”。

JoyCong1998的博客 1364

STM32读取BQ40Z50的数据

TI电池管理芯片BQ40Z50,通信协议是SMBUS,类似IIC,速率要求10-100KHz   用的STM32F103的硬件IIC读取电池的各种数值,源代码如下: ​ #include "iic.h" #include "stdio.h"  //***************************************************** // IIC2初始化函数:初始化ST...

百步登峰的博客 1万+

Element Server Suite社区版Helm部署:私有Matrix聊天服务器快速搭建指南

在云原生和微服务架构日益普及的今天,容器化部署已成为现代应用交付的标准范式。Kubernetes作为容器编排的事实标准,通过声明式配置和自动化管理,极大地简化了复杂分布式系统的部署与运维。Helm作为Kubernetes的包管理器,通过预定义的Chart模板,将应用及其依赖打包,实现了真正的“一键部署”,显著提升了部署效率和可重复性。这种技术组合的价值在于,它让开发者能够专注于业务逻辑,而非底层基础设施的复杂性,尤其适用于需要快速搭建、易于维护的服务场景。Element Server Suite Commu

weixin_42610010的博客 299

2026年最新热门AI编程工具推荐

2026年AI编程技术持续迭代,一款适配全场景、高效便捷的AI编程工具,能大幅降低开发门槛、提升编码效率,省去冗余的调试与基础编码工作。无需多余铺垫,以下直接进入热门AI编程工具推荐排行,每款工具均结合2026年最新功能实测,干货拉满,覆盖不同开发场景需求。

AUTUMNA的博客 1204

EDA工具安装第一步:Synopsys Installer的配置与图形化界面使用详解

本文详细解析了EDA工具安装的关键第一步——Synopsys Installer的配置与使用。文章阐述了其作为统一部署管理器和依赖协调者的核心作用,并分步详解了如何通过图形化界面高效安装EDA工具,同时介绍了命令行批处理等进阶技巧,旨在帮助工程师快速搭建稳定的芯片设计环境。

zeta9的博客 339

研发与企服团队必备!2026年8大企业网盘核心架构与合规能力盘点

本文深入剖析了2026年市场上8款极具代表性的企业网盘产品。从底层部署架构、数据传输效率、协作生态及合规认证等技术维度进行深度对比。不仅详述了SaaS与不同流转机制的差异,重点剥析了坚果云凭借15年技术沉淀、独家引擎智能增量同步及公安部信息系统安全等级保护三级备案脱颖而出的硬核逻辑,为注重信息安全与极速协作的政企和技术团队提供实战选型指南。

SJ_HP的博客 429

通信工程学习:什么是OLT光线路终端

OLT(光线路终端)是无源光网络(PON)的核心局端设备,负责光/电信号转换、数据处理、带宽分配及用户管理。具有高带宽、低损耗、高安全性和易维护等技术特点,广泛应用于家庭、企业及公共机构宽带接入。未来将向更高性能、智能化方向发展,结合SDN/NFV等新技术,提升网络服务质量。

limengshi138392的博客 4359

华为OD机考双机位C卷 - 手机App防沉迷系统(Java & Python& JS & C/C++ & GO )

华为OD机考双机位C卷 - 手机App防沉迷系统(OD上机考试双机位C卷)。提供在线OJ刷题。Java、C++、Python、GO语言、C语言、JavaScript题解,并提供完整思路讲解。

算法大师! 2061

eCos flash模拟EEPROM实现NV系统

eCos flash模拟EEPROM实现NV系统

汽车以太网和SOA 9291

基于MATLAB的特征模式分解(FMD)算法详解

本文详细介绍了基于MATLAB的特征模式分解(FMD)算法实现。FMD是一种新型自适应信号分解方法,通过自适应FIR滤波器组和相关峭度优化目标,有效解决传统方法(如EMD、VMD)的模态混叠问题。文章系统阐述了FMD的算法原理、数学模型和实现步骤,包括自适应FIR滤波器设计、相关峭度优化和模态选择机制。与现有方法相比,FMD在旋转机械故障诊断中展现出更强的特征提取能力和噪声鲁棒性。MATLAB实现部分包含核心函数、参数优化和可视化工具,并通过轴承故障等案例验证了算法的有效性。

qq_42212808的博客 192

union all语句优化改写经验分享

1、问题前面几个案例是因为提前生成HEAP TABLE,条件没有提前过滤导致性能问题,今天想跟大家分享一个案例是适合做HEAP TABLE优化的。计划:从计划上对t1表过滤重复两次,从语句中可以看到是union all两部分,一部分是合计,另一部分是分组统计,此时我想到可以先分组统计,再把分组统计结果进行合计,分组统计的结果可以放到临时表中即heap table,从数学角度上讲就是提取公因子。2、改写计划:结果符合预期,性能提升一倍以上。

zcn126的博客 358

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

MySQL 高频面试题全解:索引失效、MVCC 与间隙锁、深度分页优化(2026 招聘 JD 真题复盘)

按 2026 招聘 JD 与一线面经整理 12 道 MySQL 高频题:B+树索引原理、聚簇索引与覆盖索引、最左前缀与索引失效真实场景、MVCC 与 ReadView、间隙锁与死锁实战、深度分页优化、慢 SQL 六步排查、count(*)、主从延迟、分库分表与两阶段提交,每题附可直接复述的工程化答案。

蒙眼过河 256

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

Spring 高频面试题:用一次用户注册串起 IoC、AOP、事务和 MVC

学 Spring 时,我最容易混淆的是这些「看起来一样」的操作:调用业务方法和向容器取 Bean,调用目标对象和调用代理,方法正常返回和事务成功提交。把它们放进同一个例子里,很多面试题就能顺着调用路径推出来。假设我们要实现一个注册接口:前端发来,Controller 接收用户名,Service 在数据库里创建用户和默认资料。下面用这条链路理解 Spring 的几个核心机制。代码是用于讲解的片段,省略了导入、依赖声明和数据库实现。

weixin_42927227的博客 307

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

【让 AI 生成的测试用例变成 pytest API 自动化脚本】

我们需要对前面使用的 JSON 格式做一次扩展。之前的用例主要用于表达业务测试意图,现在需要补充接口执行信息。"title": "未登录用户创建订单","body": {},"json": {、HTTP 401 和都只是本 Demo 的接口契约示例,不代表任何真实项目的实际定义。真实项目中,接口路径、认证机制、业务错误码都应该来自 API 文档或经过确认的接口契约。部分内容作用测试信息记录测试目的请求信息描述如何调用接口预期信息描述如何判断结果。

一些微不足道的见解、希望能帮助各位 249

MySQL 的四种隔离级别到底隔离了什么:MVCC、间隙锁与幻读

对账差异源于事务隔离级别误解:默认“同一事务内查询数据一致”不成立。因脚本中两次查询分属不同事务,读取了不同时刻的数据。问题本质是“不可重复读”——可重复读级别下,首次快照读生成的ReadView保证后续读取一致;而读已提交则每条语句重生成视图,易受并发修改影响。关键在于区分快照读与当前读,避免混用。此外,长事务、间隙锁、索引缺失等也常引发隐性问题。验证时应通过会话实验直观感受级别差异,排查需结合连接上下文与实际执行日志,而非仅依赖配置文件。

xiaobaishu_520的博客 242

Day26 XD安全学习笔记--PHP 应用&模版引用&Smarty渲染&MVC 模型&数据联动&RCE 安全

本节课聚焦PHP模板引用漏洞,通过自定义模板与第三方Smarty模板案例,演示了直接和间接的RCE风险。如在标题或HTML中插入<?php phpinfo(); ?>可执行任意代码。强调框架、模板、组件易混淆,建议结合白盒分析与插件工具识别其边界。掌握历史漏洞原理,能复现并防范此类问题。

一支蜉蝣的博客 321

谈SpringMVC与Spring WebFlux的区别与适用场景

Spring MVC是“稳健的老师傅”,适用于 90% 的常规业务场景。是“精密的特种兵”,适用于对并发和资源利用率有极致要求的特殊战场。在现代开发中,最明智的做法是:在网关和关键的高并发节点使用 WebFlux,而在普通的业务微服务中继续使用 Spring MVC。

敲代码的小小酥的博客 331

Python 测试实战:用 pytest fixture 管理测试依赖与生命周期

在工业边缘、设备接入、数据采集这类项目中,测试难点往往不是写一个assert,而是准备一个稳定、可复用、可清理的测试环境。数据库连接、消息队列、网关配置、临时目录、异步客户端、设备模拟器、环境变量,如果每个测试都自己拼装一遍,测试代码很快会比业务代码更难维护。解决的正是这个问题:它把测试前置条件、依赖注入、资源复用和清理动作集中管理,让测试用例聚焦业务行为。本文从 Zenova EdgeOS 实战角度梳理 fixture 的核心机制、scope 选择、参数化、异步测试、组织方式和常见陷阱。如果你正在评估。

ZenovaEdgeOS的博客 729

SDD,BDD和TDD

‌SDD、TDD和BDD是三种不同的软件开发方法论,核心区别在于“驱动”的起点和关注层次不同。‌ TDD以测试用例驱动代码实现,BDD以业务行为场景驱动开发,而SDD则以规格说明作为单一事实来源,覆盖从需求到实现的全程对齐。

liuqi332922337的专栏 227

Pytest

Pytest 是简洁高效的 Python 测试框架,支持参数化、前后置钩子(模块、类、方法、函数级)及丰富插件。默认递归查找 test_*.py 等文件,可通过 pytest.ini 自定义搜索路径与命名规则。常用命令如 pytest -v 显示详情,-s 显示 print 输出。前后置函数在断言失败时仍会执行,适用于资源清理。支持插件扩展,如重试、并发、报告生成,便于持续集成。

2401_89076827的博客 196

Spring MVC 的请求链路

Spring MVC 将HTTP请求转化为Java方法调用,核心是DispatcherServlet驱动的请求链路:通过HandlerMapping定位处理器,HandlerAdapter调用方法,参数由HandlerMethodArgumentResolver解析,返回值由HandlerMethodReturnValueHandler处理。注解仅用于注册,非核心逻辑。Controller应专注协议适配,业务规则交由Service处理。排错时按“是否进入DispatcherServlet→映射是否成功→参数

2401_89855466的博客 209

【Lua 入门系列】Lua 数据文件与持久化:文件 I/O以及热更新认识、dofile、loadfile、Table 序列化与引用关系恢复

本文探讨Lua中数据持久化的核心需求,从Redis持久化机制类比引出Lua运行时数据易失性问题。通过分析独立进程与嵌入式运行时的差异,明确区分“热更新”(代码切换)与“持久化”(数据恢复)的本质区别。基于Lua标准I/O库,实现将Table数据序列化为可执行Lua代码并写入文件,解决嵌套、循环引用等复杂结构的保存难题,最终实现程序重启后数据的完整恢复。

努力努力再努力wz的博客 308

【测AI】第24篇:pytest + Allure 搭建 AI 测试框架 —— 让 AI 测试工程化

前面 7 篇每篇都是独立脚本,跑完看控制台,关掉就没了。本篇用 pytest + Allure 把它们变成工程:一键执行、可视化报告、AI 回答可追溯。但本篇的重点不是堆代码——代码只给一套最小可运行的骨架,**重点讲 AI 测试工程的核心知识**:断言怎么设计才不误报、flaky 测试怎么治理、API 费用怎么控制、Fixture 怎么设计、测试套件怎么组织。看完你不仅能跑通框架,还能自己扩展出适合你团队的测试工程。

2501_90821979的博客 346
上一篇: 对于互联网企业来讲,如何应对远程办公的挑战?
下一篇: 短信的独特优势以及如何选择国际短信平台?
蒲公英内测分发
博客等级 码龄5年 53粉丝 178原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值