跳到主要内容
你好! 我是Viktor

在这里,我会分享平时遇到的问题以及解决方法

你可以随处逛逛,查看技术笔记实战项目资源导航、以及我的想法感悟

自我介绍

最新博客

带着问题阅读源码

由于源码的代码量特别大,所以很容易陷入无目标,不知道要看什么怎么梳理。

例如:有时候写页面有bug,带着你的bug来看这部分源码。api用多了,好奇。等等

看得见的思考

使用看得见的思考来阅读源码。

就是把自己的思考具象化,不停对自己提问(一个个小问题来驱动自己)解决这一个个小问题。

看得见的思考好处

  1. 书写就是梳理思路最好的方式
  2. 可以多次复盘自己的思路
  3. 减少大脑负担,遗忘时就回看,专注当下
  4. 不怕思路被打断

看单元测试

从单元测试可以理解一部分代码的行为,单元测试其实就是一个活文档

学会看单元测试:使用断点调试器,看行为

什么时候使用

  1. 先看本来的代码实现方式,流程
  2. 遇到不懂的地方再debugger

多浸泡理论

别想着一次性把所有东西都搞懂。持之以恒,每次学一点。不积硅步无以成江河。

总结

将看得见的思考,最后整理一下。可以发到论坛中,获得正向反馈。也可以知道自己的不足。也可以将自己的理解实现一个mini版本。


阅读需 2 分钟

TeamSpeak 是一款 VoIP 语言通话软件,使用者可以用耳机和麦克风,通过客户端软件连线到指定的服务器,与在服务器内频道的其他使用者进行通话。是一种很像电话会议的方式。 通常 TeamSpeak 的使用者大多为多人连线游戏的玩家,与同队伍的玩家进行通讯。在游戏的对战方面,具有低内存占用、低延迟、高清晰度、高可靠性等优点,是一种非常好的游戏交流方式。可以类比于yy,但是更加纯净。

由于朋友的麦在KooK中总是电流麦,且kook越发臃肿,遂准备集体迁入TeamSpeak。

该怎么加入

多数人都只需要了解到这一步,加入到别人已经搭建好的服务器中即可。

1. 下载TeamSpeak客户端

首先,我们需要下载 TeamSpeak 客户端,以便于您可以连接到服务器。您可以在这里下载 TeamSpeak 3.6.1客户端安装包。

2. 下载汉化包(可选)

下面是汉化包的下载链接,在你安装好TeamSpeak的客户端并且打开后双击即可

3. 连接到服务器

如果是我的朋友的话我已经搭建好了服务器,只需要点击左上角的连接,在服务器别名或地址下输入我搭建好的服务器voice.wujiaze.cn即可,服务器密码暂时没有设置,昵称设置为你心怡的昵称即可

该如何搭建服务器

如果你也想搭建一个属于自己的TS3服务器请继续看下去

1. 购买一个服务器

首先需要一个服务器,可以从云服务商(腾讯云,阿里云,华为云等)购买,也可以自建NAS内网穿透,但后者太过复杂。如果只想快速搭建,使用云服务商购入即可,新客优惠或者蹲双11等活动都不算太贵。

2. 系统的安装

我是用的个人博客的服务器,用的宝塔系统

3. 准备阶段

teamspeak不推荐使用root用户所以我们新建一个用户

useradd teamspeak

去下载最新的teamspeak版本(很重要,有些版本无法连接服务器)

https://www.teamspeak.com/en/downloads/#server

选择你系统的版本,我用的是宝塔所以下载Linux SERVER 64-BIT 3.13.7,后面把文件传上去解压即可

也可以使用命令行

wget https://files.teamspeak-services.com/releases/server/3.13.7/teamspeak3-server_linux_amd64-3.13.7.tar.bz2 && tar -xjvf teamspeak3-server_linux_amd64-3.13.7.tar.bz2 && rm teamspeak3-server_linux_amd64-3.13.7.tar.bz2

赋予teamspeak这个用户权限,并进入

chown -R teamspeak:teamspeak teamspeak3-server_linux_amd64 && cd ./teamspeak3-server_linux_amd64 && su teamspeak

同意许可条款

echo "accept" > .ts3server_license_accepted

自动配置数据库并启动

./ts3server_startscript.sh start

配置完后会出现一段消息,保存下来,token之后会用到

image-20231209173908405

完成了


阅读需 3 分钟

本文在于回顾Git的学习,以及一些命令的复习。

什么是Git

Git 和其它版本控制系统(包括 Subversion 和近似工具)的主要差别在于 Git 对待数据的方式。 从概念上来说,其它大部分系统以文件变更列表的方式存储信息,这类系统(CVS、Subversion、Perforce、Bazaar 等等) 将它们存储的信息看作是一组基本文件和每个文件随时间逐步累积的差异 (它们通常称作 基于差异(delta-based) 的版本控制)。 Git 对待数据更像是一个 快照流

首先Git是一个版本控制系统,但是Git对待数据的方式又与其他版本控制工具不同

下文是Advanced Git Kit1一文的学习笔记

git commit

用于提交我们的更改

创建完美的提交

如果我们只要修改发生,就塞进提交里去,提交就会失去很多价值。提交和提交之间的分隔变得很随意,似乎没有理由将更改放入某一个提交而不是另一个提交中。之后再看这些提交,比如当你的同事试图搞清楚修改了什么,就像在家里翻箱倒柜找东西一样,很难找到想要的东西,这并不是一个好的思路。

我们最好做的是只在提交中放入相关的内容中,制定更多的计划和规则。最终我们会得到非常有价值的奖励: 干净的提交历史!这些提交可以帮助我们理解发生了什么,有助于以可理解的方式解释复杂的变化。

关注暂存区

说来简单,但是我们常常忽略暂存区中的内容,一次简单的git add .接受了所有的本地更改并将其标记为下一次提交。太过于简单粗暴了,我们最好停一下看看是否真的是一类提交,而不应该把它拆成两次或者三次的提交。

git add -p index.html该命令指示对文件进行“补丁级别的检查”,Git会帮我们检查文件中的所有更改,然后问我们,对于每个块是否要添加到暂存区。

提供有价值的提交信息

如果没有规范的提交,最后我们就得依靠脑力一步一步回溯这个提交意味着什么。这并没有发挥Git的完全实力一个好的提交最好具备

  • 有一个简明扼要的subject line总结变更
  • 有一个描述性的message body,简洁的解释了最重要的事实
    • 提交后项目发什么了什么变化?
    • 做出这种变化的原因是什么?
    • 有什么需要注意的吗?关于这些变化还有其他人应该知道的吗?

分支策略

几乎所有的版本控制系统都有某种类型的分支支持,分支意味着我们可以创建一个基于父节点的、全新的、独立于主分支的容器,然后在那里工作。通过这种方式我们可以实现不破坏生产代码的情况下做出新的尝试。Git的分支模型非常强大,快速且轻量,在分支之间来回切换的速度和创建或删除分支一样快。

集成变更和结构化发布

当我们考虑如何选择分支的策略时,最好同时想好要如何集成变更和如何构建发布开始。下面我们来了解两种不同的策略

  • 主线开发
  • 状态分支、发布分支和特性分支

第一种选择是将自己的工作和团队的工作集成在一起

第二种选择是收集自己的工作并发布,即多个不同类型的分支进入预发阶段。

主线开发

这种方法的座右铭是"总是集成",只有一个单独的分支,所有人都在主线上开发。这是一种简单的抽象,在现实中很难实现,除非团队里的每一个人能遵守前文提到的完美的提交,且要保证提交相对较小。

状态分支、发布分支和特性分支

这种方法在于创建多个不同的分支,每个分支的职责是不同的。举个例子:新代码和实现代码保存在自己拉出来的分支里,完成流程后合并。

其中又有

  1. 长期分支
  2. 短期分支

合并冲突

不要畏惧发生合并冲突,如果你忘记了合并时错误的原因也可以使用git status重新提醒

如何撤销合并冲突并重新开始

  • 解决冲突
  • 中止或撤销导致冲突的操作

在解决冲突之前,我们最好先知道如何撤销和重新开始(这会让你安心点),只要在后续加上--abort参数,举个例子git merge --abortgit rebase --abort,就可以撤销合并且恢复到冲突发生之前的状态

Rebase和Merge

我们最好先了解这两个命令

  • git merge
  • git rebase

git merge

要将一个分支合并到另一个分支,可以使用git merge命令。假设在ranch-B上有一些新提交,现在我们想把这个分支合并到另一个分支branch-A中。为此,可以这样输入:

$ git checkout branch-A
$ git merge branch-B

git rebase

我们想要将branch-B的更改集成到branch-A中,但这次是用rebase,而不是合并。实际的Git命令非常简单:

$ git checkout branch-A
$ git rebase branch-B

git cherry-pick

前面讨论了rebase和merge。虽然git mergegit rebase之间有一些不同,但这两个命令的目标是相同的: 将一个分支的更改集成到另一个分支。

今天我们来看看git cherry-pick,理解它是怎样允许我们将任何分支中被选中的、单独的提交集成到当前的HEAD分支中。这与git mergegit rebase有很大的区别,两者都只能集成来自指定分支的所有新提交。

将提交转移到另外一个分支

Peferences


阅读需 6 分钟
logo
Love what you love