ubuntu 系统添加服务并设置开机自启 服务单元文件systemd服务单元文件是一种Linux系统中的新型启动管理方式,它是一种基于配置文件的系统初始化和服务管理框架,取代了传统的 initd。在 systemd 中,每个服务都由一个单元文件(Unit)表示,单元文件存放在/usr/lib/systemd/system/和/etc/systemd/system/目录下,用于定义一个服务的启动、运行和停止方式等。 以前使用 sudo se 2022-04-30 Linux
项目管理工具——Makefile 概要Makefile 可以简单的认为是一个工程文件的编译规则,描述了整个工程的编译和链接等规则。其中包含了那些文件需要编译,那些文件不需要编译,那些文件需要先编译,那些文件需要后编译,那些文件需要重建等等。编译整个工程需要涉及到的,在 Makefile 中都可以进行描述。换句话说,Makefile 可以使得我们的项目工程的编译变得自动化,不需要每次都手动输入一堆源文件和参数。 Makefile带来 2022-04-12 Linux
在 Ubuntu 系统下配置 Maven ubuntu 系统下的 Maven 环境配置有以下几步: 去官网下载 Maven 压缩包 解压缩 配置环境变量 验证是否成功 1)到官网下载压缩包Mavn 的安装包需要到 官网 下载,下载二进制文件,后缀名为 tar.gz的压缩包。 2)下载之后进行解压缩1sudo tar -zxvf apache-maven-3.8.1-bin.tar.gz -C /${user_path 2022-03-25 Linux #Java
Go 中的反射 Go 的反射反射是指在程序运行期对程序本身进行访问和修改的能力。程序在编译时,变量被转换为内存地址,变量名不会被编译器写入到可执行部分。在运行程序时,程序无法获取自身的信息。 支持反射的语言可以在程序编译期将变量的反射信息,如字段名称、类型信息、结构体信息等整合到可执行文件中,并给程序提供接口访问反射信息,这样就可以在程序运行期获取类型的反射信息,并且有能力修改它们。 Go 语言中的反射是由 re 2022-03-21 程序开发 #Go
Go的单元测试 单元测试在 Go 项目开发中,我们不仅要开发功能,更重要的是确保这些功能稳定可靠,并且拥有一个不错的性能。要确保这些,就要对代码进行测试。开发人员通常会进行单元测试和性能测试,分别用来测试代码的功能是否正常和代码的性能是否满足需求。每种语言通常都有自己的测试包 / 模块,Go 语言也不例外。在 Go 中,我们可以通过testing包对代码进行单元测试和性能测试。 如何测试 Go 代码?G 2022-03-15 程序开发 #Go
Go 标准库学习——io 相关 Go 标准库-文本相关几乎任何程序都离不开文本(字符串)。Go 中 string 是内置类型,同时它与普通的 slice 类型有着相似的性质,例如,可以进行切片(slice)操作,这使得 Go 中少了一些处理 string 类型的函数,比如没有 substring 这样的函数,然而却能够很方便的进行这样的操作。除此之外,Go 标准库中有几个包专门用于处理文本。 strings 包提供了很多操作字符 2022-03-03 程序开发 #Go
Go 语言的切片 Go 中的切片切片又称动态数组,依托数组实现,可以方便的进行扩容、传递等,实际使用中比数组更灵活。 切片与数组很类似,它们的共同点是都属于集合类的类型,并且,它们的值也都可以用来存储某一种类型的值(或者说元素)。不过,它们最重要的不同是:数组类型的值(以下简称数组)的长度是固定的,而切片类型的值(以下简称切片)是可变长的。 数组的长度在声明它的时候就必须给定,并且之后不会再改变。可以说,数组的长度 2022-03-03 程序开发 #Go
Go 标准库学习——io相关 一般的,计算机程序是:输入 (Input) 经过算法处理产生输出 (Output)。各种语言一般都会提供IO库供开发者使用。Go语言也不例外。 Go 语言中,为了方便开发者使用,将 IO 操作封装在了如下几个包中: io 为 IO 原语(I/O primitives)提供基本的接口 io/ioutil 封装一些实用的 I/O 函数 fmt 实现格式化 I/ 2022-02-21 程序开发 #Go
go的命令行库——Cobra 简介cobra是一个命令行程序库,可以用来编写命令行程序。同时,它也提供了一个脚手架, 用于生成基于 cobra 的应用程序框架。非常多知名的开源项目使用了 cobra 库构建命令行,如Kubernetes、Hugo、etcd等等等等。 本文介绍 cobra 库的基本使用和一些有趣的特性。 cobra 提供非常丰富的功能: 轻松支持子命令,如app server,app fetch等; 完全兼容 2022-02-13 程序开发 #Go
go 中的切片排序 Go 语言的 sort.Sort 函数不会对具体的序列和它的元素做任何假设。相反,它使用了一个接口类型 sort.Interface 来指定通用的排序算法和可能被排序到的序列类型之间的约定。这个接口的实现由序列的具体表示和它希望排序的元素决定,序列的表示经常是一个切片。 实现排序有 2 个方法 调用 Sort 包的 Slice 方法该方法是 go1.8 版本后支持的,调用 sort 包的 Slic 2022-02-04 程序开发 #Go