Makefile文件中的 .PHONY 的作用

我们可以看到即使不要.PHONY注释这一行,make proto 命令也是正常执行,那 .PHONY 的作用究竟是什么呢?我先在Makefile的同级目录下建一个文件名为 proto 文件。.PHONY后面跟的目标都被称为伪目标,也就是说我们 make 命令后面跟的参数如果出现在.PHONY 定义的伪目标中,那就直接在Makefile中就执行伪目标的依赖和命令。不管Makefile同级目录下是否有该伪目标同名的文件,即使有也不会产生冲突。另一个就是提高执行makefile时的效率。如果该篇文章对...阅读全文

Segmentfault 2021-02-02 09:32:33 .container .car 等

go 将数组按指定大小分隔

# 背景 这几天写代码时,正好遇到了一个需求,需要将数组按指定大小进行分隔,然后进行拼接成字符串(以逗号进行分隔)。为此有了这篇文章。 # 实现 ```go package main import ( "fmt" "strconv" "strings" ) func main() { var arr []string for i := 0; i < 11; i++ { str := strconv.Itoa(i) ...阅读全文

Go语言中文网 2021-01-29 12:38:19 memo012

Golang 语言的内存管理

转载:Golang 语言的内存管理 内存分布 什么是虚拟内存? 计算机系统内存管理的一种技术。 每个进程都拥有独立的、连续的、统一的的虚拟地址空间。 通过 MMU 和物理内存映射,高效使用物理内存。 64 位 linux 进程内存分布情况 理论上有 16E 的寻址空间,目前没有操作系统会用到这么大的空间 目前用了 48 位的寻址空间,总的虚拟地址空间为 256TB 用户空间为 128T 用户空间布局和 linux 布局一样 堆和栈: 空间大小:每个进程拥有的栈的大小要远远小于堆的大小。理论上,程...阅读全文

简书 2021-01-29 12:32:43 Vicky丶云

golang 创建型设计模式 简单工厂

golang 创建型设计模式 简单工厂 缘起 最近复习设计模式 拜读谭勇德的<<设计模式就该这样学>> 该书以java语言演绎了常见设计模式 本系列笔记拟采用golang练习之 简单工厂 简单工厂模式(Simple Factory Pattern)又叫作静态工厂方法模式(Static Factory Method Pattern),简单来说,简单工厂模式有一个具体的工厂类,可以生成多个不同的产品,属于创建型设计模式。 _ 场景 某智能家居场景, 需要通过app统一控制智能照明灯的开关 智能灯可以...阅读全文

微微CMS一款使用Golang开发的免费高效跨平台的CMS系统

微微CMS 微微CMS(vvcms)是一款免费,跨平台,功能强大性能卓越且操作简单前端SEO友好的CMS内容管理系统! 产品优势1. 功能简单 后台页面 登录页面 没有花里胡哨的功能,侧重实用性2. 高并发通过golang开发,静态化编译,内置缓存技术 基准测试1000并发没问题3. 速度快比PHP至少快3倍,比Java基本持平4. 资源消耗极低同比Java,Python,PHP语言开发,在CPU资源占用和内存资源占用上更少5. 跨平台易于部署可以针对不同的平台打包可执行文件,无需任何虚拟机,w...阅读全文

简书 2021-01-29 12:32:43 一半_1b21

Go-Zero 短链项目 DevOps 实战,利用 Drone CI/CD 打通上云(Kubernetes)迭代流程

准备工作我这里直接在 K8S 开发集群中部署相关实例。生产求稳,建议大家还是买云数据库服务。部署 Mysql、Redis、Etcd。部署 Drone、Drone-Runner-Kube开始探索准备 DevOps 部署相关配置Dockerfile.alpine.baseFROM alpine:3.12RUN addgroup -S app \ && adduser -S -g app app \ && apk --no-cache add \ ca-certificates curl netcat...阅读全文

51CTO博客 2021-01-29 10:35:11 mb600becf249518

归并排序

排序简介 归并排序,是创建在归并操作上的一种有效的排序算法。算法是采用分治法(Divide and Conquer)的一个非常典型的应用,且各层分治递归可以同时进行。 先把n个元素分成n/2个元素的子序列,一直分到元素最小的序列; 然后分别对最小子序列排序,再把子序列合并排序。 图解参考https://www.cnblogs.com/chengxiao/p/6194356.html 复杂度 最佳情况:T(n) = O(nlogn) 最坏情况:T(n) = O(nlogn) 平均情况:T(n) =...阅读全文

简书 2021-01-29 02:32:37 樹澤

02 - 【Go语言学习笔记】变量和常量

变量 Go语言的变量类型声明,可以选择手动指定或自动推断,如下对于变量num的声明: //手动指定int类型变量num var num int = 1 //自动推断,使用 := num := 1 常量 常量使用const关键词声明 可以快速设置连续常量值,如下代码块: package test import ( "testing" ) const ( ONE = iota + 1 TWO THREE FOUR FIVE ) func TestConst(t *testing.T) { t.Log...阅读全文

简书 2021-01-29 02:32:37 b1n90

利用Golang反射机制(Reflect)搭建本地LeetCode调试器

在使用LeetCode在线平台刷题的时候,可选的debug方法大概有以下几种方式:1. “print”大法,2. playground,3. 调试器(断点调试)。“print”大法是最常见,使用最方便,但是效率也是三种方式中最低的一种。在使用过程中需要不断增加,注释和解注释。playground则对热门语言提供了一些常用的工具函数,但是仍然只能使用“print”大法调试。调试器则属于会员功能,应该为普通断点调试器,且不支持以下语言:C#, Ruby, Swift, Go, Scala, Kotl...阅读全文

简书 2021-01-29 02:32:37 一口闰心

Golang中将字节流转为Protobuf

在接入第三方数据流或接入物联网设备时,通常这些数据所上报的数据只是按照指定的协议所编码,上报的数据流也不够紧凑,如我们直接存储这类字节流数据也比较大。此时可以将字节流转为其他压缩格式的流,如Protobuf等;  将字节流转为Protobuf流具体流程为:定义Proto文件、生成对应的Proto对象、读取流数据写入Proto对象、序列化Proto对象。定义Proto文件:syntax = "proto3"; //包名,通过protoc生成时go文件 package data; //位置 mess...阅读全文

51CTO博客 2021-01-28 22:06:05 mb600becf249518

希尔排序

排序简介 希尔排序是把记录按下标的一定增量分组,对每组使用直接插入排序算法排序;随着增量逐渐减少,每组包含的关键词越来越多,当增量减至1时,整个文件恰被分成一组,算法便终止。 详细图解可参考https://www.cnblogs.com/chengxiao/p/6104371.html 复杂度 最佳情况:T(n) = O(nlog2n) 最坏情况:T(n) = O(nlog2n) 平均情况:T(n) = O(nlogn) 空间复杂度:O(1) 稳定性:不稳定 排序方式:In-place gola...阅读全文

简书 2021-01-28 21:32:36 樹澤

【Go】四舍五入在go语言中为何如此困难

四舍五入是一个非常常见的功能,在流行语言标准库中往往存在 Round 的功能,它最少支持常用的 Round half up 算法。 而在 Go 语言中这似乎成为了难题,在 stackoverflow 上搜索 [go] Round 会存在大量相关提问,Go 1.10 开始才出现 math.Round 的身影,本以为 Round 的疑问就此结束,但是一看函数注释 Round returns the nearest integer, rounding half away from zero ,这是并不...阅读全文

thinkeridea博客 2021-01-02 00:00 thinkeridea博客

由浅到深,入门Go语言Map实现原理

导读Go源码版本1.13.8今天要分享的是主要内容是Go语言Map底层实现,目的让大家快速了解Go语言Map底层大致的实现原理。读完本篇文章你可以获得收益、以及我所期望你能获取的收益如下:收益序号收益描述掌握程度收益1大致对Go语言Map底层实现有一个了解必须掌握收益2大致知道Go语言Map是如何读取数据的必须掌握收益3熟悉Go语言Map底层核心结构体hmap可选收益4熟悉Go语言Map底层核心结构体bmap可选收益5熟悉Go语言Map底层里的溢出桶可选收益6熟悉Go语言Map是如何读取数据的可...阅读全文

51CTO博客 2021-01-28 20:01:51 mb600beb5e8f23b

golang 架构设计原则 合成复用原则

golang 架构设计原则 合成复用原则 缘起 最近复习设计模式 拜读谭勇德的<<设计模式就该这样学>> 该书以java语言演绎了常见设计模式 本系列笔记拟采用golang练习之 合成复用原则 合成复用原则(Composite/Aggregate Reuse Principle, CARP)指尽量使用对象组合(has-a)或对象聚合(contanis-a)的方式实现代码复用,而不是用继承关系达到代码复用的目的。合成复用原则可以使系统更加灵活,降低类与类之间的耦合度,一个类的变化对其他类造成的影响...阅读全文

GO语言学习之路(1)开发环境的安装

Go语言简介Go语言是Google开发的开源编程语言,于2009年11月开源,2012年发布Go稳定版。Go语言的优点有很多:语法简洁易学,对于并发的支持好,自动垃圾回收,拥有十分活跃的社区等。Go能让你像写Python代码(效率)一样编写C代码(性能),很多人将其誉为“21世纪的C语言”。现在已经有很多公司使用Go作为主要的编程语言,是一门非常值得学习的编程语言。配置Go环境1. 下载安装包 Go安装包下载地址:https://golang.google.cn/dl/,找到featured d...阅读全文

简书 2021-01-28 19:32:39 go语言生态

go关于tpl文件无法读取域中数据{{$.name}}

关于tpl文件中无法读取域中数据({{$.name}}) 问题: golang 模板文件*.tpl中,读取域中数据失败; 如:后台返回变量name="xj";在模板{{define "name_tpl"}}文件中{{$.name}} ,结果为空 解决: {{template "name_tpl"}} 修改为: {{template "name_tpl" .}} 原因: 在html页面导入模板时,若模板中有使用后台管道/域中的值; 则需要管道/域中的值赋给子模板中的“.”(即“{{.}}”)阅读全文

简书 2021-01-28 17:33:00 我是不会赢的

Taskcafe 使用教程:一款开源的高颜值看板工具

文章首发于个人公众号「阿拉平平」 项目管理工具可以说是团队协作时的刚需,一款好的项目管理工具可以提升整个团队的效率,看板则一个很好的展现形式。今天和大家分享的是一款开源的高颜值看板工具:Taskcafe[1]。 项目基于 Golang + React 开发,数据库为 Postgres。本文将介绍下 Taskcafe 的安装与使用方法。 下载安装 Taskcafe 可以通过源码或者容器的方式部署。这里我建议使用后者,可以省去很多不必要的麻烦。 以容器化部署为例,首先请确保已安装 docker 和 ...阅读全文

简书 2021-01-28 17:32:59 Xpitz