一个 Web 应用应该具有哪些特性,开发过程中注意哪些问题,这是我在初学 Web 时常常思考的问题。在此系列中作者不会用长长的列表指出开发者需要掌握的工具、框架,也不会刻画入微地去深究某一项程序设计的实现原理,旨在为初学者构建知识体系。如果你有想了解的问题、错误指正,可以在文章下面留言。
序言
一个 Web 应用应该具有哪些特性,开发过程中注意哪些问题,这是我在初学 Web 时常常思考的问题。在此系列中作者不会用长长的列表指出开发者需要掌握的工具、框架,也不会刻画入微地去深究某一项程序设计的实现原理,旨在为初学者构建知识体系。如果你有想了解的问题、错误指正,可以在文章下面留言。
Windows Terminal Preview 背景图片美化
内存空洞
计算机在加载和保存数据时,如果内存地址合理地对齐的将会更有效率。例如 2 字节大小的 int16 类型的变量地址应该是偶数,一个 4 字节大小的 rune 类型变量的地址应该是 4 的倍数,一个 8 字节大小的 float64、uint64 或 64-bit 指针类型变量的地址应该是 8 字节对齐的。但是对于再大的地址对齐倍数则是不需要的,即使是 complex128 等较大的数据类型最多也只是 8 字节对齐。
Goroutine 与 Go 语言并发模型 · Analyze
Go 语言最吸引人的地方是它内建的并发支持。Go 语言并发体系的理论是 C.A.R Hoare 在 1978 年提出的 CSP 模型。在并发编程中,目前的绝大多数语言,都是通过加锁等线程同步方案来解决数据共享问题,而 Go 语言另辟蹊径,它将共享的值通过 Channel 传递。在任意给定的时刻,最好只有一个Goroutine 能够拥有该资源。数据竞争从设计层面上就被杜绝了。
Go 语言 GC 机制 · Analyze
内存管理是开发应用中的一大难题。传统的系统级编程语言(主要指 C/C++)中,程序开发者必须对内存小心的进行管理操作,控制内存的申请及释放。因为稍有不慎,就可能产生内存泄露问题,这种问题不易发现并且难以定位,一直成为困扰程序开发者的噩梦。
GO 1.13版本改进
Go1.13 版本在 Go1.12 发布六个月后推出。它的大部分变化都在工具链(toolchain),运行时(runtime)和库的实现。从 Go1.13 开始,在Go1.11开始
UTF-8 编码与 MySQL 中的 utf8、utf8mb4
UTF-8编码 UTF-8 是一种变长字节编码方式。对于某一个字符的 UTF-8 编码,如果只有一个字节则其最高二进制位为 0;如果是多字节,其第一个字节从最高位开始
Go 全局变量作用域于变量覆盖问题
全局变量作用域 全局变量的作用域是整个包,局部变量的作用域是该变量所在的花括号内。最近使用 gorm 时遇到了使用全局变量赋值作用域的问题。 1 2 3 4 5 6
Go mod 模块化管理
前言 在Go语言的发展史中,2018年注定是一个重要的时间点,因为在8月正式发布了Go1.11。Go1.11语言部分虽然没有变化,但是带来了3