当前位置: 首页 > news >正文

苍穹外卖笔记-18-修改密码、bug记录

文章目录

    • 1 修改密码
      • 1.1 需求分析和设计
      • 1.2 代码实现
        • 1.2.1 admin/EmployeeController
        • 1.2.2 EmployeeService
        • 1.2.3 EmployeeServiceImpl
      • 1.3 功能测试
    • 2 bug记录

1 修改密码

完结的时候发现还有一个接口未实现。这里补充

在这里插入图片描述

1.1 需求分析和设计

产品原型:

在这里插入图片描述

业务规则:
身份验证:在修改密码之前,需要验证用户的身份。这通常涉及到输入当前的密码,以证明用户有权限修改密码。

密码复杂度要求:新密码应该满足一定的复杂度要求,比如长度、大小写字母、数字和特殊字符的组合等。

密码加密存储:密码在存储时应该进行加密处理,比如使用哈希加盐的方式,以防止密码泄露后被轻易破解。

异常处理:在密码修改过程中,应该有适当的异常处理机制,比如密码不匹配时的友好提示,或者密码修改失败时的错误信息。

接口设计:
在这里插入图片描述

package com.sky.dto;import lombok.Data;import java.io.Serializable;@Data
public class PasswordEditDTO implements Serializable {//员工idprivate Long empId;//旧密码private String oldPassword;//新密码private String newPassword;}

1.2 代码实现

1.2.1 admin/EmployeeController
    /*** 修改密码** @param passwordEditDTO* @return* @throws Exception*/@PutMapping("/editPassword")@ApiOperation("修改密码")public Result editPassword(@RequestBody PasswordEditDTO passwordEditDTO){log.info("修改密码:{}", passwordEditDTO);employeeService.editPassword(passwordEditDTO);return Result.success();}
1.2.2 EmployeeService
    /*** 更新员工信息* @param employeeDTO*/void update(EmployeeDTO employeeDTO);
}
1.2.3 EmployeeServiceImpl
/*** 编辑员工密码** @param passwordEditDTO*/@Overridepublic void editPassword(PasswordEditDTO passwordEditDTO) {String oldPassword = passwordEditDTO.getOldPassword();String newPassword = passwordEditDTO.getNewPassword();//获取员工idLong empId = BaseContext.getCurrentId();//1.根据id查询员工信息Employee employee = employeeMapper.getById(empId);//2. 密码比对String encryptedOldPassword = DigestUtils.md5DigestAsHex(oldPassword.getBytes());if (!encryptedOldPassword.equals(employee.getPassword())) {//密码错误throw new PasswordErrorException(MessageConstant.PASSWORD_ERROR);}//3. 更新密码String encryptedNewPassword = DigestUtils.md5DigestAsHex(newPassword.getBytes());employee.setPassword(encryptedNewPassword);employee.setUpdateTime(LocalDateTime.now());employee.setUpdateUser(empId);employeeMapper.update(employee);}

1.3 功能测试

在这里插入图片描述

2 bug记录

o.s.web.servlet.PageNotFound : No mapping for PUT /user/order/cancel/8
检查Controller中路径是否出错,函数是否放错位(写在其他XxxxController)

Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Request processing failed; nested exception is java.lang.IllegalStateException: Optional int parameter ‘pageNum’ is present but cannot be translated into a null value due to being declared as a primitive type. Consider declaring it as object wrapper for the corresponding primitive type.] with root cause
java.lang.IllegalStateException: Optional int parameter ‘pageNum’ is present but cannot be translated into a null value due to being declared as a primitive type. Consider declaring it as object wrapper for the corresponding primitive type.
存在可选int参数’pageNum’,但由于被声明为基本类型,因此无法转换为空值。考虑将其声明为对应基本类型的对象包装器

//Controller中命名page
public Result<PageResult>page(int page,intpageSize,Integerstatus){
PageResultpageResult=orderService.pageQueryUser(page,pageSize,status);
returnResult.success(pageResult);
//Service中命名pageNum
Page Result pageQueryUser(int pageNum,intpageSize,Integerstatus);

ERROR 29228 — [nio-8080-exec-9] o.a.c.c.C.[.[.[/].[dispatcherServlet] : Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Request processing failed; nested exception is java.lang.RuntimeException: 无效的密钥格式] with root cause
java.lang.RuntimeException: 无效的密钥格式
微信小程序没有密钥

ERROR 8716 — [io-8080-exec-10] o.a.c.c.C.[.[.[/].[dispatcherServlet] : Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Request processing failed; nested exception is org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.reflection.ReflectionException: There is no getter for property named ‘user_id’ in ‘class com.sky.entity.Orders’] with root cause
在这里插入图片描述

Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Request processing failed; nested exception is org.springframework.data.redis.RedisConnectionFailureException: Unable to connect to Redis; nested exception is io.lettuce.core.RedisConnectionException: Unable to connect to localhost/:6379] with root cause
启动Redis

org.springframework.data.redis.serializer.SerializationException: Cannot deserialize; nested exception is org.springframework.core.serializer.support.SerializationFailedException: Failed to deserialize payload. Is the byte array a result of corresponding serialization for DefaultDeserializer?; nested exception is java.io.EOFException

这个错误表明在尝试对 Redis 中的数据进行反序列化时出现了问题。根据错误信息,这可能是由于尝试反序列化不完整的字节数组导致的。
在处理这个问题时,有几种可能的解决方案:

  1. 检查数据完整性: 确保在进行序列化和存储数据时,数据没有发生截断或丢失。这可能需要检查数据的存储和读取过程,以确保整个字节数组都被正确地写入和读取。
  2. 检查序列化器配置: 确保在 RedisTemplate 或其他涉及到序列化的地方,所使用的序列化器是正确配置的。你需要保证数据的序列化和反序列化使用的是相同的序列化器。
  3. 检查数据格式: 确保反序列化操作的目标对象与实际存储的数据格式相匹配。如果你对存储的数据进行了更改,可能需要更新代码来处理新的数据结构。
  4. 排查数据内容: 如果可能的话,检查实际存储在 Redis 中的数据内容。有时候问题可能源于存储了不符合预期格式的数据。
    最后,请确保在处理 Redis 数据时,采用了健壮的异常处理机制,以便能够更好地理解和排查潜在的数据问题。
    希望这些信息能够帮助你解决问题。如果你需要更多帮助,欢迎随时与我联系。
com.sky.config
//设置rediskey的序列化器
redisTemplate.setKeySerializer(newStringRedisSerializer());
//设置redisvalue的序列化器
redisTemplate.setValueSerializer(newStringRedisSerializer());
//设置redishash的序列化器
redisTemplate.setHashValueSerializer(newStringRedisSerializer());

Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Request processing failed; nested exception is java.lang.ClassCastException: java.lang.Integer cannot be cast to java.lang.String] with root cause{ “timestamp”: 1717330318869, “status”: 500, “error”: “Internal Server Error”, “path”: “/admin/shop/1” }
java.lang.Integer cannot be cast to java.lang.String
Fitten Code
根据你提供的错误信息,看起来在处理请求 “/admin/shop/1” 时发生了内部服务器错误。具体的错误根本原因是 “java.lang.ClassCastException: java.lang.Integer cannot be cast to java.lang.String”。
这个错误通常表示代码试图将一个整数类型的数据转换为字符串类型时出现了类型转换错误。根据报错的上下文,可能是在将整数类型的数据用作字符串处理时出现了问题。
可能的问题点:

  1. 路径参数处理错误: 如果你的代码中使用了路径参数来表示商品或店铺的标识,而在处理路径参数时出现了类型转换错误,就会抛出这个异常。需要检查对路径参数的解析和使用是否正确。
  2. 数据操作错误: 如果你从数据源(比如数据库、缓存等)中取出了某个整数类型的值,并且尝试将其作为字符串使用,也会出现这个错误。需要确保在操作数据时进行了正确的类型转换。
    要解决这个问题,你需要根据具体的业务逻辑和异常发生的上下文来检查代码,并确保数据类型的正确使用。
    在这里插入图片描述
    不写范型就行
    在这里插入图片描述

APPLICATION FAILED TO START


Description:
Failed to bind properties under ‘sky.wechat.appid’ to java.lang.String:

Property: sky.wechat.appid
Value: "${sky.wechat.appid}"
Origin: class path resource [application.yml] - 58:12
Reason: java.lang.IllegalArgumentException: Circular placeholder reference 'sky.wechat.appid' in property definitions

Action:
Update your application’s configuration
Process finished with exit code 1

!!! 这个问题就看看application的配置!!!

2024-06-11 19:26:06.852 ERROR 32748 — [nio-8080-exec-1] o.a.c.c.C.[.[.[/].[dispatcherServlet] : Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Request processing failed; nested exception is org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.reflection.ReflectionException: There is no getter for property named ‘user_id’ in ‘class com.sky.entity.ShoppingCart’] with root cause

这个异常表明在处理请求时发生了错误,具体而言是因为MyBatis无法找到名为 ‘user_id’ 的属性的 getter 方法。可能有几个原因会导致这种情况:
3. 属性名错误:确保你的实体类 com.sky.entity.ShoppingCart 中存在名为 ‘user_id’ 的属性,并且有对应的 getter 方法。
4. 配置错误:检查你的 MyBatis 映射文件,以确保正确地映射了数据库列和实体类的属性,包括 ‘user_id’。
5. 数据库查询错误:如果你在执行 SQL 查询时指定了 ‘user_id’,但实际上实体类中并不存在该属性,就会导致这个问题。
为了排除这个问题,可以按照以下步骤进行排查:
• 确保实体类 com.sky.entity.ShoppingCart 中存在名为 ‘user_id’ 的属性,并且有对应的 getter 方法。
• 检查 MyBatis 映射文件(通常是 XML 文件)中,与 ‘user_id’ 相关的属性映射是否正确。
• 跟踪具体的请求处理流程,确认是在哪个环节出现了这个异常,有助于定位问题所在。
一旦找到了问题所在,针对性地进行修复即可。如果以上方法仍无法解决问题,可能需要进一步检查程序的逻辑和配置,或者提供更多的代码和细节信息进行分析。

D:\Code\Course\java-learning\sky-take-out\sky-server\src\main\java\com\sky\service\impl\AddressBookServiceImpl.java:5:22 java: 找不到符号 符号: 类 AddressBookMapper 位置: 程序包 com.sky.mapper D:\Code\Course\java-learning\sky-take-out\sky-server\src\main\java\com\sky\service\impl\AddressBookServiceImpl.java:6:23 java: 找不到符号 符号: 类 AddressBookService 位置: 程序包 com.sky.service D:\Code\Course\java-learning\sky-take-out\sky-server\src\main\java\com\sky\service\impl\AddressBookServiceImpl.java:15:48 java: 找不到符号 符号: 类 AddressBookService D:\Code\Course\java-learning\sky-take-out\sky-server\src\main\java\com\sky\service\impl\AddressBookServiceImpl.java:17:13 java: 找不到符号 符号: 类 AddressBookMapper 位置: 类 com.sky.service.impl.AddressBookServiceImpl
Fitten Code
这些错误表明编译器无法找到名为 AddressBookMapper 和 AddressBookService 的类和接口。这通常是因为编译器无法在指定的位置找到所需的类或接口。
在大多数情况下,这种错误是由以下原因引起的:
6. 包名错误:确保 AddressBookMapper 和 AddressBookService 类在正确的包中。在你的示例中,它们应该分别位于 com.sky.mapper 和 com.sky.service 包下。
7. 缺失依赖:检查你的项目依赖,确保相关的包或模块已经正确导入并设置为依赖项。
8. 编译路径错误:有时编译器无法在指定的路径中找到所需的类或接口。确保你的编译路径配置正确,并包含了这些类和接口所在的位置。
9. 类或接口未定义:最显而易见的情况是这些类和接口可能确实未定义。在这种情况下,你需要创建它们或者从其他地方获取它们的定义。
下面是一个可能的排查步骤:
• 确保 AddressBookMapper 和 AddressBookService 类分别位于 com.sky.mapper 和 com.sky.service 包中,并且包名和类名的大小写拼写与代码中的引用一致。
• 检查项目的依赖配置,确保相关的包或模块已经正确导入并设置为依赖项。
• 确保编译路径配置正确,包含了这些类和接口所在的位置。
• 如果以上步骤都正确无误,但问题依然存在,可能需要检查是否缺少了必要的依赖项,或者类和接口未被正确定义。
通过排查这些可能引起问题的原因,你应该能够定位并解决编译错误。

导入新功能代码,重新打开Maven在sky_take_out使用compile一下

2024-06-12 15:40:55.795 ERROR 15856 — [ main] o.s.b.d.LoggingFailureAnalysisReporter : *************************** APPLICATION FAILED TO START *************************** Description: Field orderService in com.sky.controller.user.OrderController required a bean of type ‘com.sky.service.OrderService’ that could not be found. The injection point has the following annotations: - @org.springframework.beans.factory.annotation.Autowired(required=true) Action: Consider defining a bean of type ‘com.sky.service.OrderService’ in your configuration. Disconnected from the target VM, address: ‘127.0.0.1:57369’, transport: ‘socket’ Process finished with exit code 1
Fitten Code
这个错误信息表明 Spring 在启动应用程序时无法找到类型为 com.sky.service.OrderService 的 bean。通常情况下,这种错误是由缺少 bean 的定义或者扫描路径错误引起的。
要解决这个问题,你可以尝试以下几个步骤:

  1. 确认 Service 类被正确扫描和组件化: 确保 com.sky.service.OrderService 类上使用了 @Service 注解或者被正确标记为组件。在 Spring Boot 应用中,通常使用了 @SpringBootApplication 的类所在的包及其子包将会被自动扫描,你需要确保 com.sky.service.OrderService 类在扫描路径下。
  2. 查看是否存在正确的 bean 配置: 确保在配置类(如使用 @Configuration 注解的类)或者 XML 配置文件中存在了 com.sky.service.OrderService 类的 bean 配置。
  3. 排查依赖注入位置: 如果 @Autowired 注解标记的地方并非预期的位置,可能会出现这种错误。请检查 orderService 字段所在的类,确认它是否应该被注入为一个 bean。
  4. 查看启动日志: 在启动日志中查看是否有针对 bean 扫描和自动配置相关的日志,有时会通过日志信息找到问题所在。
  5. 手动创建 bean: 如果以上步骤都不能解决问题,你可以尝试手动在配置类中创建 com.sky.service.OrderService 的 bean。
    基于以上步骤,你可以逐一排查是否缺少了对 com.sky.service.OrderService 的正确定义。一旦找到了问题所在,并修复了配置,你的应用程序应该可以成功启动了。

相关文章:

苍穹外卖笔记-18-修改密码、bug记录

文章目录 1 修改密码1.1 需求分析和设计1.2 代码实现1.2.1 admin/EmployeeController1.2.2 EmployeeService1.2.3 EmployeeServiceImpl 1.3 功能测试 2 bug记录 1 修改密码 完结的时候发现还有一个接口未实现。这里补充 1.1 需求分析和设计 产品原型&#xff1a; 业务规则&am…...

java如何截取字符串

如果想在一个字符串中截取一段字符&#xff0c;形成新的字符&#xff0c;那么在java中途需要用到substring语句 substring的语法格式是 str.substring(beginindex,endindex) 其中str是字符串 beginindex是起始索引&#xff0c;endindex是结束索引 截取的字符串包含起始索引…...

虚拟淘宝-Virtual-Taobao论文解读(AAAI2019)

目录 1 论文简介 2 文章的主要贡献 3 文章技术的简要说明 4 技术的详细说明 4.1 GAN-SD&#xff1a;生成客户特征 4.2 MAIL&#xff1a;生成交互过程 4.3 ANC&#xff1a;动规范约束 5 实验设定及结果 6 结论 7 参考 1 论文简介 南京大学LAMDA团队的侍竞成、俞扬等…...

低代码组件扩展方案在复杂业务场景下的设计与实践

组件是爱速搭的前端页面可视化模块的核心能力之一&#xff0c;它将前端研发人员从无休止的页面样式微调和分辨率兼容工作中解放了出来。 目前&#xff0c;爱速搭通过内置的上百种功能组件&#xff08;120&#xff09;&#xff0c;基本可以覆盖大部分中后台页面的可视化设计场景…...

震撼科技界的GPT-4o发布首日即遭“越狱破防”

前言 本文主要解读分析OpenAI最新推出的大型模型GPT-4o可能存在的越狱风险。 5 月14 日凌晨的科技圈再一次被OpenAI轰动&#xff0c;其发布的最新大模型GPT-4o&#xff0c;能力横跨语音、文本和视觉&#xff0c;这一成果无疑再次巩固了OpenAI在人工智能领域的领先地位。 然而…...

保护密码安全,探讨密码加盐及其在Go语言中的实现

介绍 在当今数字化时代&#xff0c;个人隐私和数据安全成为了人们关注的焦点之一。随着网络犯罪的不断增加&#xff0c;用户的密码安全性变得尤为重要。密码加盐作为一种常见的安全措施&#xff0c;被广泛应用于密码存储和认证系统中。本文将深入探讨密码加盐的概念、重要性以…...

Sqoop学习详细介绍!!

一、Sqoop介绍 Sqoop是一款开源的工具&#xff0c;主要用于在Hadoop(HDFS/Hive/HBase)与传统的数据库(mysql、postgresql...)间进行数据的传递&#xff0c;可以将一个关系型数据库&#xff08;例如 &#xff1a; MySQL ,Oracle ,Postgres等&#xff09;中的数据导进到Hadoop的H…...

【2024最新华为OD-C/D卷试题汇总】[支持在线评测] 生成哈夫曼树(100分) - 三语言AC题解(Python/Java/Cpp)

🍭 大家好这里是清隆学长 ,一枚热爱算法的程序员 ✨ 本系列打算持续跟新华为OD-C/D卷的三语言AC题解 💻 ACM银牌🥈| 多次AK大厂笔试 | 编程一对一辅导 👏 感谢大家的订阅➕ 和 喜欢💗 📎在线评测链接 生成哈夫曼树(100分) 🌍 评测功能需要订阅专栏后私信联系清…...

ctfshow web 单身杯

web签到 <?phperror_reporting(0); highlight_file(__FILE__);$file $_POST[file];if(isset($file)){if(strrev($file)$file){ //翻转函数include $file;}}要进行反转并且包含文件用data协议 自己写不好写可以用函数帮你翻转 <?php $adata:text/plain,<?eval(…...

天锐绿盾加密软件,它的适用范围是什么?

天锐绿盾数据防泄密软件的适用范围广泛&#xff0c;主要可以归纳为以下几点&#xff1a; 行业适用性&#xff1a; 适用于各个行业&#xff0c;包括但不限于制造业、设计行业、软件开发、金融服务等&#xff0c;特别是对数据安全性要求较高的行业。企业规模与类型&#xff1a; 适…...

mysql面试题 Day2

1 长文本如何存储&#xff1f; 可以使用Text存储 TINYTEXT(255长度) TEXT(65535) MEDIUMTEXT&#xff08;int最大值16M&#xff09; LONGTEXT(long最大值4G) 2 大段文本存储如何设计表结构&#xff1f; 分表存储 分表后多段存储 3 大段文本查找时如何建立索引&#xff1…...

Excel加密怎么设置?这5个方法不容错过!(2024总结)

Excel加密怎么设置&#xff1f;如何不让别人未经允许查看我的excel文件&#xff1f;如果您也有这些疑问&#xff0c;那么千万不要错过本篇文章了。今天小编将向大家分享excel加密的5个简单方法&#xff0c;保证任何人都可以轻松掌握&#xff01;毫无疑问的是&#xff0c;为Exce…...

2024年下一个风口是什么?萤领优选 轻资产创业项目全国诚招合伙人

2024年&#xff0c;全球经济与科技发展的步伐不断加快&#xff0c;各行各业都在探寻新的增长点与风口。在这样的时代背景下&#xff0c;萤领优选作为一个轻资产创业项目&#xff0c;正以其独特的商业模式和前瞻的市场洞察力&#xff0c;吸引着众多创业者的目光。(领取&#xff…...

Redis 网络模型

一、用户空间和内核空间 1.1 linux 简介 服务器大多采用 Linux 系统&#xff0c;这里我们以 Linux 为例来讲解&#xff0c;下面有两个不同的 linux 发行版&#xff0c;分别位 ubuntu 和 centos&#xff0c;其实发行版就是在 Linux 系统上包了一层壳。 任何 Linux 发行版&#…...

【设计模式之组合模式 -- C++】

组合模式 – 树状结构&#xff0c;递归遍历 组合模式(Composite Pattern)是一种结构型设计模式&#xff0c;它可以让你将对象组合成树形结构&#xff0c;并且能像使用独立对象一样使用它们。这种模式定义了包含人和组的类&#xff0c;每个类都有可以在树形结构中显示的方法。这…...

C# 通过Win32API设置客户端系统时间

在日常工作中&#xff0c;有时可能会需要获取或修改客户端电脑的系统时间&#xff0c;比如软件设置了Licence有效期&#xff0c;预计2024-06-01 00:00:00到期&#xff0c;如果客户手动修改了客户端电脑时间&#xff0c;往前调整了一年&#xff0c;则软件就可以继续使用一年&…...

VirtualHere 允许通过网络远程使用 USB 设备,就像本地连接一样!

传统上&#xff0c;USB 设备需要直接插入计算机才能使用。有了 VirtualHere&#xff0c;就不再需要这样做&#xff0c;网络本身就变成了传输 USB 信号的电缆&#xff08;也称为 USB over IP、USB/IP、USB over WiFi、USB over Ethernet、USB 设备服务器&#xff09;。 此 USB …...

【Kubernetes】k8s 自动伸缩机制—— HPA 部署

一、在K8s中扩缩容分为两种&#xff1a; ●Node层面&#xff1a;对K8s物理节点扩容和缩容&#xff0c;根据业务规模实现物理节点自动扩缩容 ●Pod层面&#xff1a;我们一般会使用Deployment中的Replicas参数&#xff0c;设置多个副本集来保证服务的高可用&#xff0c;但是这是…...

MT1415 大小相同

题目 给定一个由N(<10)个正整数组成的数组A&#xff0c;生成一些最小元素和最大元素相同的子数组数&#xff08;可以仅包含1个元素&#xff09;&#xff0c;统计这些子数组的数量并输出。 注&#xff1a;最大元素和最小元素相同就是数组中的元素全部为同一个值。如数组&am…...

使用python库moviepy完成视频剪辑

1.关于moviepy和原理 moviepy事github上面的一个开源项目&#xff0c;地址是&#xff1a;GitHub - Zulko/moviepy: Video editing with Python 官方文档地址&#xff1a; User Guide — MoviePy 1.0.2 documentation 中文版文档可参考&#xff1a; MoviePy中文手册 — mov…...

Python项目依赖管理:pipreqs vs pip freeze,哪个更适合你的项目?

Python项目依赖管理&#xff1a;pipreqs vs pip freeze&#xff0c;哪个更适合你的项目&#xff1f; 在Python开发中&#xff0c;依赖管理是项目维护的重要环节。一个清晰、准确的依赖清单不仅能确保项目在不同环境中稳定运行&#xff0c;还能简化团队协作和部署流程。面对pip…...

TinyGPSPlusPlus:嵌入式NMEA解析库深度指南

1. TinyGPSPlusPlus&#xff1a;面向嵌入式系统的可定制化NMEA解析库深度解析1.1 库定位与工程价值TinyGPSPlusPlus 是一款专为资源受限嵌入式平台&#xff08;尤其是Arduino生态&#xff09;设计的轻量级、高可定制化的NMEA协议解析库。其核心工程价值在于&#xff1a;在极小内…...

PROJECT MOGFACE系统重装辅助工具:Win10镜像下载与自动化安装配置

PROJECT MOGFACE系统重装辅助工具&#xff1a;Win10镜像下载与自动化安装配置 每次重装系统&#xff0c;你是不是都觉得头大&#xff1f;找官方镜像怕下到带病毒的&#xff0c;制作启动盘步骤繁琐&#xff0c;安装过程还得守在电脑前点下一步&#xff0c;装完系统还得手动装驱…...

Qwen3.5-4B-Claude-Opus惊艳效果展示:同一问题下普通回答vs结构化推理对比

Qwen3.5-4B-Claude-Opus惊艳效果展示&#xff1a;同一问题下普通回答vs结构化推理对比 1. 模型能力概述 Qwen3.5-4B-Claude-4.6-Opus-Reasoning-Distilled-GGUF是一个经过特殊优化的推理模型&#xff0c;它在标准问答能力的基础上&#xff0c;重点强化了结构化分析和分步骤推理…...

OpenClaw批量处理妙用:Qwen3.5-9B同时校对100篇Markdown格式

OpenClaw批量处理妙用&#xff1a;Qwen3.5-9B同时校对100篇Markdown格式 1. 为什么需要批量Markdown校对 作为技术文档写作者&#xff0c;我经常需要处理大量Markdown文件。最让我头疼的问题不是内容创作&#xff0c;而是格式规范——标题层级错乱、中英文混排空格缺失、列表…...

3大核心能力实现高效水印移除:WatermarkRemover-AI全解析

3大核心能力实现高效水印移除&#xff1a;WatermarkRemover-AI全解析 【免费下载链接】WatermarkRemover-AI AI-Powered Watermark Remover using Florence-2 and LaMA Models: A Python application leveraging state-of-the-art deep learning models to effectively remove …...

bb_hx1230 LCD驱动:超低资源MCU的9位位操作实现

1. bb_hx1230库概述&#xff1a;面向超低资源MCU的HX1230 LCD驱动精要bb_hx1230是BitBank Software于2018年4月30日启动的嵌入式显示驱动项目&#xff0c;专为资源极度受限的微控制器&#xff08;如ATtiny系列&#xff09;设计。其核心工程目标极为明确&#xff1a;在保证功能完…...

嵌入式硬件工程师如何转型管理者

嵌入式硬件工程师的职业发展路径&#xff1a;从技术专家到管理者的转型指南1. 职业发展概述1.1 技术与管理双轨发展在嵌入式硬件工程领域&#xff0c;职业发展通常呈现两条路径&#xff1a;技术专家路线和管理路线。对于希望转向管理岗位的工程师&#xff0c;需要理解技术能力与…...

基于STM32的毕设实战:从传感器数据采集到低功耗通信的完整链路实现

最近在指导学弟学妹做毕设&#xff0c;发现很多基于STM32的项目&#xff0c;虽然功能都实现了&#xff0c;但总感觉“差点意思”。要么是传感器数据偶尔抽风&#xff0c;要么是设备跑一会儿就没电了&#xff0c;要么是代码改起来牵一发而动全身。今天&#xff0c;我就以一个环境…...

PyTorch网络可视化实战:Jupyter Notebook与TensorWatch的完美结合

1. 为什么需要PyTorch网络可视化&#xff1f; 当你第一次接触深度学习模型时&#xff0c;可能会被复杂的网络结构搞得晕头转向。想象一下&#xff0c;你正在搭建一个由几十层神经网络组成的模型&#xff0c;每层都有不同的参数和连接方式。这时候如果能直观地"看到"这…...