未来是无法预测的,所以珍惜眼前的人和事才是最重要的。 如果对未来有所担忧的话,未来的自己,也一定会想出办法的。 出自:《总之就是特别可爱》
安装MySQL数据库 MySQL官方链接:https://dev.mysql.com/downloads/mysql/ Debian:sudo apt install mysql-5.7 安装过程:略 Go 安装MySQL驱动 go get "github.com/go-sql-driver/mysql" 在项目中使用MySQL 在go mod模式下,还需要在项目中引用mysql模块 go.mod文件 module MonaGinWeb go 1.15 require ( github.com/gin-gonic/…
能力决定下限,学历决定上限 ——萌奈 下限:能找到什么样的工作。 上限:找到工作后能高攀到什么职位。 能力高而学历高的人:既可以找到一份好的工作,而且未来也能受到重用,拥有一个更高的职位。 能力高而学历低的人:也可以找到一份好的工作,但是未来的仕途可能会因为学历而止步不前。 能力低而学历高的人:也许只能找到一份普通的工作,但是一旦找到工作,有很多机会可以有一个飞跃的发展,补充能力的短板。 能力低而学历低的人:心态放平衡,先找到一份普通的工作,闲时不断充实自己,成为一个能力高的人。
中间件 在web应用服务中,完整的一个业务处理在技术上包含客户端操作、服务器端处理、返回处理结果给客户端三个步骤。 在实际的业务开发和处理中,会有更负责的业务和需求场景。一个完整的系统可能要包含鉴权认证、权限管理、安全检查、日志记录等多维度的系统支持。 鉴权认证、权限管理、安全检查、日志记录等这些保障和支持系统业务属于全系统的业务,和具体的系统业务没有关联,对于系统中的所有业务都适用。 由此,在业务开发过程中,为了更好的梳理系统架构,可以将上述描述所涉及的一些通用业务单独抽离并进行开发,然后以插件化的形式进行对接。…
路由组功能 在实际项目开发中,均是模块化开发。同一模块的API接口一般会有相同的接口前缀。 例如,对于一个xx管理模块,会有“xx添加”、“xx删除”、“xx修改”、“xx查询”。 一个学生管理模块的API如下: 学生注册:/student/Add 学生删除:/student/Delete 学生修改:/student/Modify 学生查询:/student/Search 路由组 Gin框架为我们提供了路由组功能。 func group(engine *gin.Engine) { userGroup := engi…
完整的请求 一个完整的请求应该包含请求、处理请求和返回结果三个步骤,在服务器端对请求处理完成之后,应该将结果返回给客户端。 Gin框架中提供了一下返回请求的数据格式 []byte 和 string 之前的实例中,我们都用[]byte来返回数据。 func (ResponseWriter) Write([]byte) (int, error):用于向接收端输出[]byte切片。该方法被定义于官方的http包中 func (ResponseWriter) WriteString(string) (int, error)…
请求参数绑定 在开发中,我们总会写username := context.PostForm("username")//解析POST类似的功能,每次只能实现对一个数据操作的方法。 Gin框架提供了实体绑定的功能,可以将表单数据与结构体绑定,从而达到简化上诉过程的方法。 用用户注册功能来实践表单实体绑定的操作: type UserRegister struct{ Username string `form:"username" binding:"required"` Password string `form:"pas…
创建Engine(引擎) Engine代表Gin框架的一个结构体定义。 其中包括了路由组、中间件、页面渲染接口、框架配置设置等相关内容 Engine 有以下两种创建方式: engine1 = gin.Default() //通常使用,会默认使用Logger和Recovery中间件 engine2 = gin.New() Recovery中间件的作用是:如果程序执行过程中遇到了panic中断了服务,Recovery会恢复程序的执行,并返回服务器500内部错误。 Logger负责打印并输出日志的中间件,方便我们开发调试…
什么是二叉树? 二叉树像链表一样,属于动态数据结构 二叉树的特点: 二叉树具有唯一的根节点 二叉树的每一个节点最多只有两个孩子 二叉树具有天然的递归结构 每一个节点的左、右子树也是一个二叉树 二叉树不一定是满的 二叉树的节点 //节点 type Node struct{ value int //节点值 Node *left //左孩子 Node *right //右孩子 } //二叉树 type BST struct{ Node root //根节点 int size //二叉树的节点数(大小) } 为什么要发明这…
从OSI的七层模型看两者的区别:IP属于网络层,而TCP属于传输层 两者都属于操作系统层面 由OSI模型可知,传输层在网络层之上 可知:对一个使用TCP/IP协议传送的数据包,其传送的包的结构如下: IP包 = IP包的头部 + IP包的数据 IP包的数据 = TCP包 TCP包 = TCP包的头部 + 需要传送的数据 总结: IP属于面向无连接型。即在发包前,不需要建立与对端目标地址之间的连接。IP只负责将数据发送给目标主机,它不做收到与否的验证。 TCP则负责保证对端主机确实可以收到数据
初音萌奈
我是练习时长 三年半 的后端开发程序员
谢谢你参观我的博客!
本网站现已支持IPv6
☞ 个人简历 ☜