第十篇:使用React实现待办事项列表 | 豆包MarsCode AI 刷题
在青训营 X 豆包 MarsCode 技术训练营中,我实践了使用React实现一个简单的待办事项列表应用,重点学习了React的组件化开发和状态管理。
项目概述
待办事项列表是一个经典的入门项目,通过这个项目,我练习了React的基本概念,包括组件、状态和事件处理。
实现步骤
- 创建组件:将应用分为输入组件、列表组件和单项组件,分别负责不同的功能。
- 状态管理:使用React的
useState钩子来管理待办事项的状态。 - 事件处理:实现添加、编辑和删除待办事项的功能。
javascript
function TodoApp() {
const [todos, setTodos] = useState([]);
const [inputValue, setInputValue] = useState("");
const addTodo = () => {
setTodos([...todos, { text: inputValue, completed: false }]);
setInputValue("");
};
return (
<div>
<input
value={inputValue}
onChange={(e) => setInputValue(e.target.value)}
/>
<button onClick={addTodo}>Add</button>
<TodoList todos={todos} />
</div>
);
}
学习收获
通过这个项目,我加深了对React组件化开发的理解,并掌握了基本的状态管理技巧。项目的实现让我对React有了更直观的认识。
第十一篇:Go语言性能优化实践 | 豆包MarsCode AI 刷题
在青训营 X 豆包 MarsCode 技术训练营中,我选择了优化一个已有的Go程序,重点在于提高其性能并减少资源占用。
项目背景
我选择了一个处理大量数据的Go程序,原始版本在处理效率上存在不足。通过分析,我发现主要瓶颈在于大量的I/O操作和不必要的内存分配。
优化措施
- 并发处理:利用Go的goroutine将I/O操作并行化,显著提高了处理速度。
- 内存管理:通过使用sync.Pool复用对象,减少了内存分配和垃圾回收的开销。
- 缓存机制:引入缓存机制,避免重复计算和I/O操作。
go
package main
import (
"sync"
)
var pool = sync.Pool{
New: func() interface{} {
return make([]byte, 1024)
},
}
func process(data []byte) {
// 处理数据
}
func main() {
data := pool.Get().([]byte)
defer pool.Put(data)
// 读取数据到data
process(data)
}
优化结果
优化后,程序的执行时间减少了约50%,内存使用也显著降低。这次优化实践让我更深刻地理解了Go语言的并发特性和内存管理。Git是一个分布式版本控制系统,掌握其基本操作是团队协作的基础。在学习过程中,我重点掌握了以下操作:
- 分支管理:使用
git branch和git checkout管理项目的不同开发分支。 - 合并与冲突解决:通过
git merge合并分支,并学习如何解决合并冲突。 - 提交历史管理:使用
git log查看提交历史,使用git rebase整理提交记录。