据说go语言是在几年前,但真正深刻了解他倒是在2017年,由于当时做为讲师 ,须要准备go语言的课程,结果稍一接触马上就喜欢上这门语言了,做为长期的c/c++程序员来讲,10年来参加了不少大型项目,用c来开发确实很苦逼,因此碰到go语言时,发现真的可以上瘾,新生的语言确定会把做者对以前各类语言的痛点体现出来,尤为仍是肯-汤普森这样的大师。java
go语言的优势不少:python
这或许就是不少人选择go语言的缘由吧,若是要作一个有后端的项目,相信go语言将成为不少程序员的首选吧。由于python,java等高级语言的优势,go都有,可是运行的效率更高。linux
博客在早些年是比较火的,如今大多数程序员都养成了写博客的习惯。其实博客是一个很是典型的互联网应用,其中所用的最基本技术正是网络编程中使用到的,在开发过程当中也能够了解到一些开发的细节,同时还有对时下比较火爆的头条,抖音等产品有更深入的了解。c++
首选考虑数据存储,写好的博客须要存储起来,那么首先要有个数据库了,在这里咱们选择MongoDB数据库,说到MongoDB,它的介绍颇有意思,MongoDB是使用C++开发的一种分布式数据库,它是非关系型数据库中当中最像关系型的。使用MongoDB是由于它有一个document的概念,数据以文档的形式存储,固然也是key-value格式的。基于这样咱们须要安装一个数据库,在linux平台安装很是简单。程序员
sudo apt-get install mongodb
数据库的问题解决后,还要准备什么呢?能够动手了,剩下的就是在go语言里怎么写http服务器了,在写以前最好了解一下http协议,否则有些事情仍是没法彻底掌控。mongodb
首先研究明白go语言当中如何操做MongoDB数据库
go get -u gopkg.in/mgo.v2/bson
type Mongo struct { Session *mgo.Session } func (m *Mongo) Connect(url string) { session, err := mgo.Dial(url) if err != nil { panic(err) } m.Session = session }
文档是MongoDB的核心构成,MongoDB编程基本上就是围绕文档进行增删改查操做。编程
type Person struct { Name string Age int } tabName := "person" ps := sess.DB("myblog").C(tabName)
文档构造好以后,就能够基于这个文档进行增删改查操做了后端
//添加一个perso //func (c *Collection) Insert(docs ...interface{}) error err = ps.Insert(&Person{"yekai", 30}) if err != nil { panic(err) }
//修改person //func (c *Collection) Update(selector interface{}, update interface{}) error err = ps.Update(bson.M{"name": "yekai"}, bson.M{"name": "yekai", "age": 35}) if err != nil { panic(err) }
//删除所有纪录 //(c *Collection) RemoveAll(selector interface{}) (info *ChangeInfo, err error) ps.RemoveAll(bson.M{"name": "yekai"})
//查询person p1 := Person{} //func (c *Collection) Find(query interface{}) *Query ps.Find(bson.M{"name": "yekai"}).One(&p1) fmt.Println(p1)
在了解了go语言的优势和go语言的数据库操做后,咱们就能够开始我的博客系统的开发了,下次咱们将分享这部分的内容。服务器