Go语言||字符数据类型 rune和byte

概述 在学习使用golang时,发现字符数据类型比较奇怪,对其类型的意义不甚了解,于是查询了一波。 官方介绍 // rune is an alias for int32 and is equivalent to int32 in all ways. It is // used, by convention, to distinguish character values from integer values. //int32的别名,几乎在所有方面等同于int32 //它用来区分字符值和整数值 ...阅读全文

51CTO博客 2020-12-29 20:58:17 mb5fe94b3e552d9

开源在线云笔记 ManGe-Notes

## 描述 > ManGe-Notes 是一个在线云笔记系统,在线编写笔记,导入导出,文件格式转换等功能;适配PC(v1.0开发), 移动端的H5(v2.0开发),安卓端(v3.0开发);集成知识管理模块,个人博客模块,素材管理模块,收藏网络资源模块。 ## 开发环境 > - 适应版本 v0.1~v1.0 > - UI框架: layui > - markdown插件 : editor.md > - 后端:go version go1.12.9 begoo框架 > -...阅读全文

Go语言中文网 2020-12-30 20:36:58 mange

微信附近的人,用redis也能实现?(GEO)

相信微信附近的人的功能大家都应该用过我可以很随意的通过我自己的定位能看到我附近的人,并且能看到那个人距离我的距离,大家有没有思考过这个是怎么实现的?作为一个程序猿任何问题应该都有一个思考的过程,而不是直接看结论,接下来大家一步一步的思考,直到问题解决。获取自己的位置附近的人其实就是一种位置的比对关系,所以第一步是得获取自己的位置,一般位置都是用经纬度来表示,具体经纬度的获取得依赖客户端,作为咱们后端程序员直接接收参数就可以了,所以这一步重点是用经纬度来表示各个节点的位置,对经纬度不是很了解的朋友...阅读全文

Segmentfault 2021-01-05 10:32:34 程序员养成日记

golang 数据库连接池database/sql 实现原理分析

golang对数据库的请求,抽象出来一套通用的连接池,用go的机制来说,golang只需要提供一个驱动(driver)的interface,底层不同数据库协议,由用户根据自己的数据库实现对应的驱动即可。 本文从源码实现的角度,探索这里的细节以及需要避免的坑,基于1.14代码分析,部分bug在1.15中有修复或优化,这里也会提及。 golang版本:1.14 目录结构说明 └── sql ├── convert.go # 结果行的读取与转换 ├── convert_test.go ├── ctxu...阅读全文

51CTO博客 2020-12-29 21:11:39 暮回_zz

Spring Cloud golang混合架构的一些优化

因为本身是从java转到golang的,而且团队一直使用Spring Cloud,在实际项目中,golang开发的服务是要保持和Spring Cloud一致,并且架构尽可能做到和Spring Cloud兼容,所以下面观点仅供参考 repository(数据层)要用代码生成器生成,减少人为维护工作,减少错误 repository是基于xorm的(https://gitea.com/xorm/xorm)是自己基于Spring Boot写了一个代码生成器,支持生成entity,基础crud repos...阅读全文

简书 2020-12-30 12:32:54 EasyNetCN

Hyperledger Fabric-fabric-samples环境准备

1.概述本文将讲述如何从零开始准备运行fabric-samples所需的环境2. 基本配置阿里云服务器——Ubuntu 16.04.73. 所需配置GitcURLDocker以及Docker ComposeNode.jsGo4. 安装Git在安装钱,先运行sudo apt-get update 之后运行sudo apt-get upgrade 确保镜像和本地文件的更新接下来运行sudo apt-get install git 安装完后通过git --version检查是否安装成功 如果你使用的其...阅读全文

简书 2020-12-30 12:32:54 齐樾2ed

缓存原理与微服务缓存自动管理

抛开业务谈技术都是在耍流氓。—— Kevin Wan 为什么需要缓存? 先从一个老生常谈的问题开始谈起:我们的程序是如何运行起来的? 程序存储在 disk 中 程序是运行在 RAM 之中,也就是我们所说的 main memory 程序的计算逻辑在 CPU 中执行 来看一个最简单的例子:a = a + 1 load x: x0 = x0 + 1 load x0 -> RAM 上面提到了3种存储介质。我们都知道,三类的读写速度和成本成反比,所以我们在克服速度问题上需要引入一个 中间层。这个中间层,需...阅读全文

Docker部署gochat聊天系统

MacOS Docker 安装 1、使用 Homebrew 安装macOS 我们可以使用 Homebrew 来安装 Docker。Homebrew 的 Cask 已经支持 Docker for Mac,因此可以很方便的使用 Homebrew Cask 来进行安装:$ brew install --cask --appdir=/Applications docker2、手动下载安装1、如果需要手动下载,请点击以下链接下载 Stable(https://download.docker.com/mac...阅读全文

简书 2020-12-30 12:32:42 solumatephper

缓存原理与微服务缓存自动管理

抛开业务谈技术都是在耍流氓。—— Kevin Wan为什么需要缓存?先从一个老生常谈的问题开始谈起:我们的程序是如何运行起来的?程序存储在 disk 中程序是运行在 RAM 之中,也就是我们所说的 main memory程序的计算逻辑在 CPU 中执行来看一个最简单的例子:a = a + 1load x: x0 = x0 + 1load x0 -> RAM上面提到了3种存储介质。我们都知道,三类的读写速度和成本成反比,所以我们在克服速度问题上需要引入一个 中间层。这个中间层,需要高速存取的速度,...阅读全文

Segmentfault 2021-01-04 23:32:32 kevinwan

golang利用gco获取windows系统cpu信息

效果图 图片1.png 原理: 调用汇编 cpuid指令 调用 windows.h 的 GetSystemTimes 细节注意 malloc开辟的空间要在使用结束后用free回收,具体写法如下代码 代码 // 代码出处我的开源项目: https://github.com/mangenotwork/servers-online-manage // 获取windows系统cpu信息与使用率实例 package main /* #include <stdio.h> #include <conio.h>...阅读全文

简书 2020-12-30 00:32:42 漫鸽

golang利用gco获取windows系统cpu信息

# 效果图 ![](https://img-blog.csdnimg.cn/20201229214544347.png#pic_center) # 原理: 1. 调用汇编 cpuid指令 2. 调用 windows.h 的 GetSystemTimes # 细节注意 1. malloc开辟的空间要在使用结束后用free回收,具体写法如下代码 # 代码 ```go // 代码出处我的开源项目: https://github.com/mangenotwork/s...阅读全文

Go语言中文网 2020-12-29 23:13:50 mange

2020-12-29

golang代码级调优方法 基本优化 提前预估size, make之临时的map,slice,可采用sync.pool.大于32kb,也可以使用sync.pool 不要滥用time.After, 多用事件通知 不要滥用goroutime, 减少gc压力 不要滥用锁,引起runtime上下文切换 使用unsafe进行转换类型,不要总是[]byte,string转换 减少使用reflect反射使用 减少不必要的defer调用 使用atomic实现无锁逻辑 业务调优 减少网络io的消耗:批量接口、缩减...阅读全文

简书 2020-12-29 22:32:41 voidFan

Go 错误处理:用 panic 取代 err != nil 的模式

若有任何问题或建议,欢迎及时交流和碰撞。我的公众号是 【脑子进煎鱼了】,GitHub 地址:https://github.com/eddycjy。前段时间我分享了文章 《先睹为快,Go2 Error 的挣扎之路》后,和一位朋友进行了一次深度交流,他给我分享了他们项目组对于 Go 错误处理的方式调整。简单来讲,就是在业务代码中使用 panic 的方式来替代 “永无止境” 的 if err != nil。这就是今天本文的重点内容,我们一起来看看是怎么做,又有什么优缺点。为什么想替换在 Go 语言中 ...阅读全文

Segmentfault 2021-01-03 21:32:32 煎鱼

JAVA与GO语言哪个更容易学?

一,GO语言的优劣势Go开发中的痛点编译慢,失控的依赖,个工程师只是用了一个语言里面的一部分,程序难以维护(可读性差、文档不清晰等),更新的花费越来越长,交叉编译困难Go语言的优势学习曲线容易MGo语言语法简单,包含了类C语法。效率: 快速的编译时间,开发效率和运行效率高,自由高效: 组合的思想、无侵入式的接口,强大的标准库.二,GO与java的比较编译语言,速度适中(2.67s),目前的大型网站都是拿java写的,比如淘宝、京东等。 主要特点是稳定,开源性好,具有自己的一套编写规范,开发效率适...阅读全文

Segmentfault 2021-01-03 20:32:32 令狐义卓

Java中Synchronized的用法

在Java中,synchronized关键字是用来控制线程同步的,就是在多线程的环境下,控制synchronized代码段不被多个线程同时执行。synchronized是Java中的关键字,是一种同步锁。它修饰的对象有以下几种:修饰一个代码块,被修饰的代码块称为同步语句块,其作用的范围是大括号{}括起来的代码,作用的对象是调用这个代码块的对象;修饰一个方法,被修饰的方法称为同步方法,其作用的范围是整个方法,作用的对象是调用这个方法的对象;修改一个静态的方法,其作用的范围是整个静态方法,作用的对象...阅读全文

Segmentfault 2020-12-31 14:32:37 廖111