获得徽章 0
#青训营 x 字节后端训练营#
6月9日打卡 day 49
今日学习《The Way to Go》之变量。
- 声明变量的一般形式是使用 `var` 关键字:`var identifier type`。
需要注意的是,Go 和许多编程语言不同,它在声明变量时将变量的类型放在变量的名称之后。Go 为什么要选择这么做呢?
首先,它是为了避免像 C 语言中那样含糊不清的声明形式,例如:`int* a, b;`。在这个例子中,只有 `a` 是指针而 `b` 不是。如果你想要这两个变量都是指针,则需要将它们分开书写。
而在 Go 中,则可以很轻松地将它们都声明为指针类型:
```go
var a, b *int
```
其次,这种语法能够按照从左至右的顺序阅读,使得代码更加容易理解。
示例:
```go
var a int
var b bool
var str string
```
你也可以改写成这种形式:
```go
var (
a int
b bool
str string
)
```
这种**因式分解关键字的写法一般用于声明全局变量**。
**当一个变量被声明之后,系统自动赋予它该类型的零值:`int` 为 `0`,`float32(64)` 为 `0.0`,bool 为 `false`,`string` 为空字符串,指针为 `nil`。记住,所有的内存在 Go 中都是经过初始化的。**
- 变量的命名规则遵循**骆驼命名法,即首个单词小写,每个新单词的首字母大写**,例如:`numShips` 和 `startDate`。
但如果你的全局变量希望能够被外部包所使用,则需要将首个单词的首字母也大写。
展开
评论
#青训营 x 字节后端训练营#
6月8日打卡 day 48
今日学习《将我的服务开放给用户》。
- 在浏览器输入 `www.toutiao.com` 到网页加载出来,都经历了哪些过程?
- `DNS` -> `TCP` -> `TLS` -> `HTTP`请求
- 企业接入升级打怪之路:
- 使用域名系统
- 自建DNS服务器
- 接入HTTP协议
- 接入全站加速
- 四层负载均衡
- 7层负载均衡
展开
Running_Noob于2023-06-08 14:41发布的图片
Running_Noob于2023-06-08 14:41发布的图片
Running_Noob于2023-06-08 14:41发布的图片
Running_Noob于2023-06-08 14:41发布的图片
Running_Noob于2023-06-08 14:41发布的图片
评论
#青训营 x 字节后端训练营#
6月6日打卡 day 47
今日学习《架构初探之谁动了我的蛋糕》之什么是架构。
- 架构,又称软件架构,是有关**软件整体结构与组件**的抽象描述,用于**指导软件系统各个方面的设计**。
- 单机:软件系统需要具备对外提供服务,**单机**,就是把所有功能都实现在一个进程里,并部署在一台机器上。
- 单体架构:**分布式部署**。垂直应用架构:**按应用垂直切分的单体**。
- **`SOA(Service-Oriented-Architecture)`**:1. 将应用的不同功能单元抽象为**服务**。2. 定义服务之间的**通信标准**。
- **微服务架构:SOA**的去中心化演进方向。
展开
Running_Noob于2023-06-06 20:53发布的图片
Running_Noob于2023-06-06 20:53发布的图片
Running_Noob于2023-06-06 20:53发布的图片
评论
#青训营 x 字节后端训练营#
6月5日打卡 day 46
今日学习《The Way to Go》之包的概念、导入与可见性。
- 鉴于字节跳动训练营中关于 `Go` 语言方面的介绍过于简洁凝练,所以额外阅读了 [《The Way to Go》即《Go 入门指南》](github.com) ,并做以下笔记,来帮助自己对 `Go` 有一个更清晰的认识。
- 包是结构化代码的一种方式:每个程序都由包(通常简称为 pkg)的概念组成,可以使用自身的包或者从其它包中导入内容。如同其它一些编程语言中的类库或命名空间的概念,每个 Go 文件都属于且仅属于一个包。**一个包可以由许多以 `.go` 为扩展名的源文件组成**,因此文件名和包名一般来说都是不相同的。
- **一个 Go 程序是通过 `import` 关键字将一组包链接在一起。**`import "fmt"` 告诉 Go 编译器这个程序需要使用 `fmt` 包(的函数,或其他元素),`fmt` 包实现了格式化 IO(输入/输出)的函数。包名被封闭在半角双引号 `""` 中。如果你打算从已编译的包中导入并加载公开声明的方法,不需要插入已编译包的源代码。
- 包通过下面这个被编译器强制执行的规则来决定是否将自身的代码对象暴露给外部文件:**可见性规则**:当标识符(包括常量、变量、类型、函数名、结构字段等等)以一个**大写字母开头**,如:Group1,那么**使用这种形式的标识符的对象就可以被外部包的代码所使用**(客户端程序需要先导入这个包),这被称为导出(像面向对象语言中的 public);标识符如果以**小写字母开头**,则**对包外是不可见的**,但是它们在整个包的内部是可见并且可用的(像面向对象语言中的 private )。
展开
评论
#青训营 x 字节后端训练营#
6月4日打卡 day 45
今日学习《深入浅出RPC》。
- RPC的基本概念:`RPC:Remote Procedure Calls`,远程函数调用。假设有两台服务器 A,B,一个应用部署在 A 服务器上,想要调用 B 服务器上应用提供的函数/方法,由于不在一个内存空间,不能直接调用,需要通过网络来表达调用的语义和传达调用的数据。
- RPC框架分层设计:`RPC`框架的主要核心有三层:编解码层、协议层和网络通信层。
- 关键指标:稳定性、易用性、扩展性、观测性、高吞吐、高延迟
- 字节内部RPC框架:Kitex
展开
Running_Noob于2023-06-04 21:13发布的图片
Running_Noob于2023-06-04 21:13发布的图片
Running_Noob于2023-06-04 21:13发布的图片
评论
#青训营 x 字节后端训练营#
5月30日打卡 day 44
今日学习《HTTP框架修炼之道》。
- HTTP:`HyperText Transfer Protocol`,超文本传输协议。该协议包含的内容有:**请求行/状态行**、**请求头/响应头**、**请求体/响应体**。
- HTTP框架的设计与实现:`HTTP` 框架的设计可以借鉴于计算机网络分层模型的设计,通过将框架分层,来实现**高内聚、低耦合,提高复用性和扩展性**。
- 用Golang语言编写 HTTP 框架时,可以针对网络库和协议进行优化。
展开
Running_Noob于2023-05-30 20:03发布的图片
Running_Noob于2023-05-30 20:03发布的图片
Running_Noob于2023-05-30 20:03发布的图片
评论
#青训营 x 字节后端训练营#
5月29日打卡 day 43
今日学习《高质量编程与性能调优实践》。
- 高质量编程:编写的代码能够达到**正确可靠、简洁清晰**的目标可称之为高质量代码。
- 各种边界条件是否考虑完备
- 异常情况处理,稳定性保证
- 易读易维护
- 编程原则:简单性、可读性、生产力
- 性能分析工具:pprof,是用于可视化和分析性能分析数据的工具。
- 主要针对CPU、Heap、Goroutine、Block和Mutex进行性能优化
- 业务服务优化、基础库优化、Go语言优化
展开
Running_Noob于2023-05-29 16:04发布的图片
Running_Noob于2023-05-29 16:04发布的图片
评论
#青训营 x 字节后端训练营#
5月28日打卡 day 42
今日学习《Go1.19排序算法实践》。
- 经典排序算法:插入排序、快速排序、堆排序的学习。
- 学习 Go 1.19 中使用的排序算法 pdqsort。`pdqsort(pattern-defeating-quicksort)`,是一种不稳定的**混合排序算法**,它的不同版本被应用在 `C++ BOOST`、`Rust` 以及 `Go1.19` 中。它对常见的序列类型做了特殊的优化,使得在不同条件下都拥有不错的性能。
展开
Running_Noob于2023-05-28 19:32发布的图片
Running_Noob于2023-05-28 19:32发布的图片
Running_Noob于2023-05-28 19:32发布的图片
评论
#青训营 x 字节后端训练营#
5月27日打卡 day 41
- 今日阅读论文:Multi-Swarm Co-Evolution Based Hybrid Intelligent Optimization for Bi-Objective Multi-Workflow Scheduling in the Cloud
- 复现 PSO 算法
展开
Running_Noob于2023-05-27 21:07发布的图片
评论
#青训营 x 字节后端训练营#
5月26日打卡 day 40
- 今日主要阅读了论文:Reliability, Rental-Cost and Energy-Aware Multi-Workflow Scheduling on Multi-Cloud Systems[J].IEEE TRANSACTIONS ON CLOUD COMPUTING.2022,想思路、想创新方向......
展开
评论
#青训营 x 字节后端训练营#
5月25日打卡 day 39
今日参加了字节后端训练营的伴学直播,受益良多。
- 直播中李龙老师总结了要想成为一名合格的程序员所应掌握的基础知识,也鼓励我们多参加比赛、开源项目,多做项目,在实践中提升自己。
- 高芷倩小姐姐则从人生方面,教导我们不要被散播焦虑的人所影响,变得焦虑无比,而应脚踏实地,一步一步,把握当下,在做好了当前应做的工作后,花自开,成果自然来。
展开
评论
#青训营 x 字节后端训练营#
5月24日打卡 day 38
今日学习《Git的正确使用姿势与最佳实践》。
- 以前学过一点 Git,这次算是温故而知新,也学到了在 Git 的研发流程中,是如何使用 Git 来进行团队协作的。
- `Git` 是什么:`Git` is a free and open source **distributed version control system** designed to handle everything from small to very large projects with speed and efficiency.
- Git的研发流程:Github 的工作流,只有一个主干分支,基于 `Pull Request` 往主干分支中提交代码。
选择团队合作的方式:1. owner 创建好仓库后,其他用户通过 `fork` 的方式来创建自己的仓库,并在 `fork` 的仓库上进行开发;2. owner 创建好仓库后,统一给团队内成员分配权限,直接在同一个仓库内进行开发。
展开
评论
下一页
个人成就
文章被点赞 23
文章被阅读 1,816
掘力值 194
收藏集
0
关注标签
3
加入于