编程中最难的就是命名?这几招教你快速上手
本文通过案例的讲解强调了命名的重要性及养成良好的命名习惯一些建议。
你可不能像给狗狗取名字那样给类、方法、变量命名。仅仅因为它很可爱或者听上去不错。
在写代码…
一文解读|Java编译期注解处理器AbstractProcessor
本文围绕编译器注解都是如何运行的呢? 又是怎么自动生成代码的呢?做出了详细介绍。
概述
我们接触的注解主要分为以下两类:
运行时注解:通过反射在运行时动态…
Golang之轻松化解defer的温柔陷阱
以下文章来源于码农桃花源 ,作者饶全成
defer是Go语言提供的一种用于注册延迟调用的机制:让函数或语句可以在当前函数执行完毕后(包括通过return正常结束…
Java 日志组件@Slf4j 介绍及配置详解
1 基本介绍
每一个Java程序员都知道日志对于任何一个Java应用程序尤其是服务端程序是至关重要的,而很多程序员也已经熟悉各种不同的日志库,如java.uti…
通过测试学习Go:数组与切片
数组允许你以特定的顺序在变量中存储相同类型的多个元素。
对于数组来说,最常见的就是迭代数组中的元素。我们创建一个 Sum 函数,它使用 for 来循环获取数组中…
探索跨端开发的常用解决方案:条件编译的实现
( 本文阅读时间:15分钟 )
01
前言
跨端开发是指在不同的平台或设备上开发同一种软件应用,例如:一个应用程序可以同时运行在移动设备、桌面电脑和浏览器等不…
从一个crash问题展开,探索gcc编译优化细节
阿里妹导读
问题分析的过程也正是技术成长之路,本文以一个gcc编译优化引发的crash为切入点,逐步展开对编译器优化细节的探索之路,在分析过程中打开了新世界的…
通过测试学Go:结构体,方法和接口
假设我们需要编程计算一个给定高和宽的长方形的周长。我们可以写一个函数如下:
Perimeter(width float64, height float64)
其…
Go标准编译器优化:边界检查消除(bounds check elimination)
以下文章来源于Go 101 ,作者老貘
从Go SDK 1.7开始,Go标准编译器开始支持边界检查消除。此优化避免了很多不必要的边界检查,从而使得编译器编译出的…
为什么大神能够写出高性能代码?因为他们掌握了Go编译器所做的优化
以下文章来源于Go 101 ,作者老貘
下面将介绍Go标准编译器(截至Go SDK 1.12.x)所做的其它一些优化。
1. 多个字符串的衔接表达式在运行时只需…
Go标准编译器对字符串和字节切片之间的转换操作所做的一些优化
以下文章来源于Go 101 ,作者老貘
我们知道,在Go中,一个字符串其实是一个只读字节序列。在正常情况下,
从一个字符串转换为字节切片的过程中将把字符串中的…
字节切片(byte slice)相关的编译器漏洞和标准库设计失误
以下文章来源于Go 101 ,作者老貘
假如一个类型MyByte定义如下,如何将一个[]MyByte切片值和一个[]byte切片值互相转换为对方的类型?
pa…
Go有GC就不需要掌握内存堆栈知识了吗?Go 堆栈的理解
在讲 Go 的堆栈之前,先温习一下堆栈基础知识。
什么是堆栈?在计算机中堆栈的概念分为:数据结构的堆栈和内存分配中堆栈。
数据结构的堆栈
堆:堆可以被看成是一…
一些编译时刻断言技巧
以下文章来源于Go 101 ,作者老貘
有时候,我们希望在编译时刻就能够判断某些条件是否成立,而不是等到运行时刻报错。但是Go并没有提供在编译时刻直接判断某个条…
Go值比较规则和其中的一些细节
以下文章来源于Go 101 ,作者老貘
在Go中,两个类型确定值是否可以比较取决于这两个值的类型是否相同或者其中的一个是否可以隐式转换为另一个的类型。另外一条规…
如何声明支持有默认值的可选参数的函数?
以下文章来源于Go 101 ,作者老貘
我们知道,Go中的函数是不支持带默认值的可选参数的。这是Go语言的设计者为了保证代码可读性特意抛弃的功能。那么我们真得无…
使用append来克隆切片常常比使用copy高效得多
以下文章来源于Go 101 ,作者老貘
直接上基准测试:
package main
import "testing"
type E…
我从几十位总监身上学到这些职场素质
以下文章来源于技艺丛谈 ,作者叶顺平
其实是我放在公司内网的HTWWM(How To Work With Me) 文档,公司内部要求所有的总监都写自己的HTWW…
Go中某些语句中的表达式之间的相对估值顺序未定义
以下文章来源于Go 101 ,作者老貘
Go语言中有很多独特的设计,也有很多从其它语言借鉴过来的设计。总体上看,Go和C语言的血缘最近。事实上,我们可以将Go语…