分类目录归档:Golang

1Panel替代宝塔的简单运维面板


1Panel 现代化、开源的 Linux 服务器运维管理面板

1Panel 是一个现代化、开源的 Linux 服务器运维管理面板。1Panel 的功能和优势包括:

  • 快速建站:深度集成 Wordpress 和 Halo,域名绑定、SSL 证书配置等一键搞定;
  • 高效管理:通过 Web 端轻松管理 Linux 服务器,包括主机监控、文件管理、数据库管理、容器管理等;
  • 安全可靠:基于容器来管理和部署应用,最小漏洞暴露面,提供防火墙和日志审计等功能;
  • 一键备份:支持一键备份和恢复,备份数据到各类云端存储,永不丢失;
  • 应用商店:精选各类高质量开源工具和应用软件,助力您轻松安装和升级。

快速开始...

Read more

Gin框架表单验证


package main

import (
    "fmt"
    "github.com/gin-gonic/gin"
    "github.com/gin-gonic/gin/binding"
    "github.com/go-playground/locales/en"
    "github.com/go-playground/locales/zh"
    ut "github.com/go-playground/universal-translator&q...

Read more

grpc和protobuf


grpc

gRPC 是一个高性能、开源和通用的 RPC 框架,面向移动和 HTTP/2 设计。目前提供 C、Java 和 Go 语言版本,分别是:grpc, grpc-java, grpc-go. 其中 C 版本支持 C, C++, Node.js, Python, Ruby, Objective-C, PHP 和 C# 支持. grpc/grpc The C based gRPC (C++, Python, Ruby, Objective-C, PHP, C#) - grpc/grpc

Protocol Buffer

其实 是 Google出品的一种轻量 & 高效的结构化数...

Read more

Go基础语法练习(4)


Server

package main

import (
    "fmt"
    "net"
)

func main() {
    // 1.创建监听
    ip := "127.0.0.1"
    port := 8080
    address := fmt.Sprintf("%s:%d", ip, port)
    server, err := net.Listen("tcp", address)
    defer server.Close()
    if err...

Read more

Go基础语法练习(3)


package main

import (
    "fmt"
    "strconv"
    "time"
)

func display() {
    for i := 0; i < 10; i++ {
        fmt.Println("协程display", i)
        time.Sleep(1 * time.Second)
        //if i == 3 {
        //  // 退出当前的协程
        //  // runtime.Goexit...

Read more

Go基础语法练习(2)


package main

import (
    "fmt"
    "os"
)

func init() {
    // 每个包中第一个执行的函数,import时自动执行,不能被用户调用
    // 没有参数,没有返回值
    // 包中包含多个init时,调用顺序不确定
    fmt.Println("Hello Init")
}

func main() {
    //switchTest()
    //gotoTest()
    //enumTest()
    //structTest()
    ...

Read more

Go基础语法练习(1)


package main

import (
    "fmt"
    "strconv"
)

func main() {
    zTest()
    fibo()
    strTest()
    arrayTest()
    sliceTest()
    mapTest()
    a, b, c := funTest(1, 3, "Code ")
    fmt.Println(a, b, c)

}

func funTest(a int, b int, c string) (int, bool, stri...

Read more

RPC


RPC

什么是RPC?

RPC 是远程过程调用(Remote Procedure Call)的缩写形式。

RPC 是指计算机 A 上的进程,调用另外一台计算机 B 上的进程,其中 A 上的调用进程被挂起,而 B 上的被调用进程开始执行,当值返回给 A 时,A 进程继续执行。

调用方可以通过使用参数将信息传送给被调用方,而后可以通过传回的结果得到信息。而这一过程,对于开发人员来说是透明的。

  • 远程过程调用采用客户机/服务器(C/S)模式。
  • 请求程序就是一个客户机,而服务提供程序就是一台服务器。
  • 和常规或本地过程调用一样,远程过程调用是同步操作,在远程过程结果返回之前,需要暂时中止请求程...

Read more

GORM (一)


GORM (一)

The fantastic ORM library for Golang aims to be developer friendly.

对Go开发者友好的优秀ORM库。

特性

  • 全功能 ORM
  • 关联 (Has One,Has Many,Belongs To,Many To Many,多态,单表继承)
  • Create,Save,Update,Delete,Find 中钩子方法
  • 支持 PreloadJoins 的预加载
  • 事务,嵌套事务,Save Point,Rollback To Saved Point
  • Context、预编译模式、DryRun 模式
  • 批量插入,Find...

Read more