博客开张:记录我的后端开发的思考与成长
发表于|更新于|随便说说
|浏览量:
写在前面
今天是我开始写博客的第一天(终于下定决心了!)。作为一名后端开发学习者,我决定用这个博客记录我在开发过程中的思考、踩过的坑以及收获。虽然不知道能坚持多久,但至少先开始吧 😅
为什么要写博客?
- 知识沉淀:把零散的知识点整理成体系化的文章
- 问题复盘:记录debug过程,下次遇到类似问题能快速定位
- 技术成长:通过写作加深对技术的理解
- 分享交流:希望能帮助到遇到同样问题的开发者
博客内容规划
这个博客主要会记录:
- 后端开发思考:架构设计、性能优化、代码质量等
- Debug经验:实际项目中遇到的问题和解决方案
- 技术学习:学习新技术的心得和总结
- 踩坑记录:那些让人头疼的bug和解决方案
写在最后
希望这个博客能见证我的技术成长,也希望能为其他开发者提供一些参考(虽然现在还是个菜鸟哈哈哈)。
路漫漫其修远兮,吾将上下而求索。
PS: 如果文章有错误,欢迎指正!毕竟还在学习中,难免会有理解不到位的地方 😊
文章作者: Ahz Hong
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 Ahzlll's Blog!
相关推荐
2024-11-25
程序员不一定知道的10个技术冷知识
前言在编程的世界里,总有一些有趣但容易被忽视的知识点。这些”冷知识”可能不会直接影响你的代码,但了解它们能让你对编程有更深的理解(而且聊天的时候可以装X 😎)。今天分享一些我觉得有趣的技术冷知识。 1. 为什么数组索引从0开始?这是一个经典问题。数组索引从0开始的原因有多种说法: 历史原因在C语言中,数组名实际上是指向数组第一个元素的指针。所以 arr[i] 实际上等价于 *(arr + i),即从数组起始地址偏移 i 个元素大小的位置。 如果从1开始,那么 arr[i] 就需要写成 *(arr + i - 1),多了一次减法运算。 数学原因从数学角度看,索引从0开始更符合”偏移量”的概念: 第一个元素:偏移0个单位 第二个元素:偏移1个单位 第n个元素:偏移n-1个单位 实际影响123456789// 从0开始:第i个元素的索引就是ifor (int i = 0; i < arr.length; i++) { arr[i] = i; // 简洁}// 如果从1开始:第i个元素的索引是i-1for (int i = 1; i <= a...
2024-11-15
用户中心项目踩坑记 1 :密码加密那些事儿
前言这是我做的第一个项目。前几天我对安全的理解只停留在“别写出 bug 就行”。直到在测试数据库时,亲眼看到 user_password 字段里躺着一串串明文密码,才想起之前刷到的视频里一句话:“明文密码 = 红线”。本文记录我从明文存储到使用 BCrypt 的全过程,留给也在苦苦写项目的同学做参考。 问题爆发:数据库里的“裸奔”密码项目初期我只想先跑通流程,直接把前端传来的密码丢进数据库。控制层代码大概是这样: 123456789// 错误示范,请勿模仿@PostMapping("/register")public Result register(@RequestBody User user) { if (user.getPassword().length() < 8) { return Result.error("密码长度不足"); } userMapper.insert(user); // 直接存明文 return Result.success();&...
2024-11-20
用户中心项目踩坑记 2 :登录态管理的那些坑
前言项目又又又有问题,浏览器刷新一下就得重新登录,手机和电脑也无法共享状态。作为一个大二学生,只能说完全就是啥也不会,只能一点点地查资料。本文记录我如何把零散的 Session 改成基于 Redis 的 Token 方案,希望给也在自学的同学一点参考。 问题现象:登录态“稍纵即逝”最开始我直接用 Spring Boot 自带的 HttpSession 保存用户对象: 123456@PostMapping("/login")public Result login(@RequestBody LoginRequest request, HttpSession session) { User user = userService.login(request.getAccount(), request.getPassword()); session.setAttribute("user", user); // 明明存了,但总丢 return Result.success(user);} 随之暴露了三个痛点: ...
2024-11-26
用户中心项目的数据库设计:常见问题与解决方案
用户中心是几乎所有 Web 应用的核心模块,负责用户注册、登录、信息管理等关键功能。我在学习后端开发时发现,设计一个用户中心的数据库并不像想象中那么简单。今天想和大家分享一些我在学习过程中遇到的问题,以及找到的解决方案。虽然我还在学习中,但这些经验希望能帮助到同样刚入门的朋友们。 一、用户表设计的核心问题1. 主键选择困境问题描述:刚开始设计用户表时,我遇到了第一个问题:用户 ID 应该用什么类型?是自增的整数(1, 2, 3…)还是 UUID(一串随机字符)?用 INT 还是 BIGINT? 解决方案: 对于初学者来说,我建议先用 INT AUTO_INCREMENT,原因很简单: 简单易懂:数据库会自动帮你生成 1, 2, 3… 这样的 ID 查询快:整数比较比字符串快很多 够用了:INT 类型最大可以存到 21 亿多,对于学习项目完全够用 1234CREATE TABLE `user` ( `user_id` INT PRIMARY KEY AUTO_INCREMENT COMMENT '用户ID', -- 其他字段...) ENGINE=Inn...
2024-11-29
用户中心项目总结:从 0 到 1 的完整实践
前言我花了大约 3 周时间完成了我的第一个完整后端项目——用户中心系统。作为一个大二学生,这个项目让我从”只会写 Hello World”到能够独立完成一个前后端分离的系统。虽然项目还没部署,代码也还有很多可以优化的地方,但这个过程让我学到了很多。今天想和大家分享一下我为什么选择这个项目,以及整个开发过程中的思考和收获。 为什么选择用户中心项目?1. 从”看到”到”想做”其实最开始我并没有明确的项目方向。那段时间在网上刷到很多类似的项目教程,比如”从零开始搭建用户系统”、”Spring Boot 实战项目”之类的。看多了之后,我发现用户中心项目有几个特点特别适合我这种初学者: 功能明确:注册、登录、信息管理,这些功能我作为用户每天都在用,理解起来不费劲 技术栈常见:Spring Boot + MySQL + Redis,这些技术网上资料多,遇到问题容易找到解决方案 复杂度适中:不会太简单(比如只做个计算器),也不会太复杂(比如电商系统),正好适合练手 所以我就决定:就做这个了! 2. 软件工程导论的启发这学期我们开了《软件工程导论》这门课,虽然理论居多,但让我知道了做项目不是...
2024-12-05
RESTful API设计学习记录
前言最近在重构用户中心项目的API接口。刚开始写API时,完全不知道有什么规范,就是随便写。后来看了一些资料,才知道还有RESTful这种设计风格。这篇文章记录一下我学到的一些RESTful API设计最佳(bushi)实践 。 1. URL设计使用名词,不使用动词123456789# 不好GET /getUsersPOST /createUserDELETE /deleteUser# 好GET /usersPOST /usersDELETE /users/:id 使用复数形式1234# 统一使用复数GET /usersGET /ordersGET /products 层级关系12345# 获取用户的订单GET /users/:userId/orders# 获取订单的商品GET /orders/:orderId/products 避免过深的层级12345# 不好(层级过深)GET /users/:userId/orders/:orderId/products/:productId/reviews/:reviewId# 好(扁平化)GET /reviews?productId...
公告
👋 欢迎来到我的博客!
我是 Ahz Hong,一名后端开发学习者
📝 这里记录我的技术思考、踩坑经验和学习笔记
💻 技术栈:Java | Spring Boot | MySQL | Redis | 分布式系统
🎯 当前状态:加载中...
📚 学习方向:夯实 Java 基础 | 数据结构与算法 | 项目实战探索
💬 欢迎交流讨论,一起进步!
🔗 GitHub |
📧 有问题欢迎留言
