结营感受
截至8月30日,我完成了超过一个月的青训营学习过程.在计划阶段,我希望自己能开发第二门编程语言golang,由于之前已经系统学习了Java编程语言,我在一门开发语言的基本语法认识,如何理解编程思想(是面向对象还是面向过程),编译器内部内存管理,垃圾回收机制,web项目开发等方面有一定的经验.真正学习go语言后才知道go语言与Java语言在运行原理,项目开发中都有许多不同之处.接下来我将具体讲述.
1.go语言与java语言
go语言是一门开源的编程语言,拥有和Java项目的跨平台,自动内存管理,gc垃圾回收机制等优点.go语言有指针的功能可以像C语言一样完成函数的按地址传参,有时适当的使用指针可以极大的提高编程效率.
go语言还可以实现Java的面向对象的编程思想.go语言使用结构体存储变量,使用函数的返回类型绑定结构体构成方法,最后使用动态创建结构体的方式创建对象并调用方法.
go
//声明变量
type Person struct {
Name string
Age int
}
func main() {
p := new(Person)
fmt.Printf("%v\n", p) // &{ 0}
}
//构造器
func NewPerson(name string, age int) *Person {
return &Person{
Name: name,
Age: age,
}
}
以我来看,虽然go语言没有类的概念,不利于面向对象思想编程,但其简单的设计思想使它没有像Java一样臃肿的类库,比较适合小白上手.
2.项目设计
在整个学习过程中,我总结了go语言项目开发的整个过程.我们需要提前熟悉数据库语句,使用gorm框架操作数据库,之后使用rpc类型框架搭建项目整体(例如 kafka ),使用redis,es等中间件来完成性能调优(解决项目进程堵塞,锁竞争等问题),最终实现分布式系统的项目实施.此外,我们需要了解git团队开发项目.
我们选择了从基本的视频流功能开始设计,其中需要连接数据库,完成视频流接口,用户登录,用户注册,发布列表等接口设计.我认为最难的是从全局的角度充分认识项目结构,有时一些常规的操作不了解,很容易将项目调错.
总结
本次青训营即将进入尾声,目前我们的项目还存在许多漏洞,在剩余的时间里,我们会尽最大的努力完成抖音项目实施,给我们的青训营之旅画上完美的句号.