InkEcho

百无聊赖,思纪碎语

这本书是计算机系统的经典之作,让我对程序运行有了更深的理解。

重点章节

第一部分:程序结构和执行

讲解了程序的机器级表示,让我理解了代码是如何在CPU上运行的。

第二部分:在系统上运行程序

学习了链接、进程、虚拟内存等概念。

第三部分:程序间的交互

了解了网络编程和并发编程的基础知识。

收获

  • 理解了程序性能优化的底层原理
  • 对调试和排错有了新思路
  • 认识到计算机系统的复杂性

这是一本值得反复研读的经典教材。

React Hooks彻底改变了React开发方式。以下是我总结的最佳实践。

Hooks规则

  1. 只在最顶层调用Hooks
  2. 只在React函数中调用Hooks

常用Hooks

useState

1
const [count, setCount] = useState(0);

useEffect

1
2
3
useEffect(() => {
document.title = `计数: ${count}`;
}, [count]);

useMemo和useCallback

这两个Hooks用于优化性能,避免不必要的重渲染。

自定义Hooks

提取可复用的逻辑到自定义Hooks中,提高代码复用性。

Hooks让组件逻辑更加清晰!

TypeScript的类型系统非常强大,本文介绍一些类型编程的技巧。

基础类型

1
2
3
4
5
6
type Name = string;
type Age = number;
type User = {
name: Name;
age: Age;
};

泛型约束

1
2
3
function getProperty<T, K extends keyof T>(obj: T, key: K): T[K] {
return obj[key];
}

条件类型

1
type IsString<T> = T extends string ? true : false;

类型编程让代码更加类型安全。

新的一年,制定了阅读计划,打算每个月读2本书。

技术类

  1. 《重构》- Martin Fowler
  2. 《设计模式》- GoF
  3. 《UNIX编程艺术》

非技术类

  1. 《原则》- Ray Dalio
  2. 《思考快与慢》
  3. 《人类简史》

目标

希望通过阅读拓宽视野,提升认知。

读书是最划算的投资,期待今年的收获。

Welcome to Hexo! This is your very first post. Check documentation for more info. If you get any problems when using Hexo, you can find the answer in troubleshooting or you can ask me on GitHub.

Quick Start

Create a new post

1
$ hexo new "My New Post"

More info: Writing

Run server

1
$ hexo server

More info: Server

Generate static files

1
$ hexo generate

More info: Generating

Deploy to remote sites

1
$ hexo deploy

More info: Deployment

2023年即将结束,这一年经历了很多,也成长了很多。

工作方面

今年开始独立负责项目,从需求分析到上线部署,完整走完了整个流程。

学习方面

深入学习了TypeScript和React生态,在前端工程化方面有了更深的理解。

生活方面

开始坚持每周运动两次,阅读了12本书。

新的一年,继续努力!

一个好的Git工作流能让团队协作更加高效。我在这篇文章中分享我们团队使用的Git Flow。

分支策略

  • main - 生产环境代码
  • develop - 开发分支
  • feature/ - 功能分支
  • hotfix/ - 热修复分支

提交规范

我们使用Conventional Commits规范:

1
2
3
4
5
6
feat: 添加新功能
fix: 修复bug
docs: 更新文档
style: 代码格式调整
refactor: 重构
test: 测试相关

PR流程

  1. 从develop创建feature分支
  2. 开发完成后发起PR
  3. 至少一人Code Review
  4. 合并到develop

规范的Git工作流让代码管理更清晰。

Docker已经成为现代软件部署的标准工具。本文记录我在项目中使用Docker的经验。

为什么使用Docker

  1. 环境一致性 - 开发、测试、生产环境统一
  2. 资源隔离 - 应用程序之间互不干扰
  3. 快速部署 - 秒级启动新实例

基础Dockerfile

1
2
3
4
5
6
7
FROM node:18-alpine
WORKDIR /app
COPY package*.json ./
RUN npm install
COPY . .
EXPOSE 3000
CMD ["npm", "start"]

最佳实践

  • 使用多阶段构建减小镜像体积
  • 利用.dockerignore排除无关文件
  • 合理利用层缓存加速构建

容器化让部署变得如此简单!

这本书改变了我对代码的理解。好的代码不仅仅是能运行,还要易于理解和维护。

核心观点

  1. 命名要具有描述性 - 变量、函数、类的名称应该清晰表达其意图
  2. 函数要短小 - 每个函数只做一件事
  3. 注释是失败的象征 - 尽量用代码表达意图,而不是注释

实践体会

在实际项目中,我开始更加注重代码的可读性,每次提交前都会审视自己写的代码是否足够清晰。

推荐所有开发者阅读此书。

周末和几个朋友一起去郊外徒步,呼吸新鲜空气,放松身心。

行程

早上6点出发,经过2小时车程到达山脚。一路风景秀丽,山花烂漫。

感受

虽然体力消耗很大,但登顶的那一刻,看到远处连绵的山脉,觉得一切都值得。

下次计划

下次打算挑战更长的路线,准备好装备再出发!

生命在于运动,工作之余也要记得锻炼身体。

0%