代码改变世界

[置顶]基础技能树 系列文章导航(上)

2017-11-17 09:42 by 李永京, 315 阅读, 收藏, 编辑
摘要: 开篇:学习基础技能树意义 00 学习基础技能树意义 到底什么是基础 为什么选择Go作为基础语言 安装学习环境 演示:反汇编、函数内联优化[付费阅读] "直达链接" 第一部分:编译(编译、链接、可执行文件结构、符号表) 01 编译 gcc编译过程 go build编译过程[付费阅读] "直达链接" 0阅读全文

[置顶]NHibernate之旅系列文章导航

2008-10-30 16:13 by 李永京, 223434 阅读, 收藏, 编辑
摘要: 欢迎来到NHibernate之旅!这次我将带领大家来到NHibernate的世界。一步一步看清NHibernate中的种种细节。这次旅途我们安排了很多站点,分别是:鸟瞰NHibernate、接触NHibernate、数据在我手中、控制你的全部、观光站、关系如此复杂、我来加载你等等,这次旅途还要更新!将给你带来更多精彩!阅读全文

[置顶]LINQ体验系列文章导航

2008-03-25 00:05 by 李永京, 144556 阅读, 收藏, 编辑
摘要: LINQ体验系列文章导航 LINQ推荐资源 推荐一个大家学习和交流LINQ的地方,就是博客园的LINQ专题和LINQ交流小组。LINQ专题中整理了有关LINQ方方面面的入门、进阶、深入的文章;学习中遇到什么问题或者疑问也可以LINQ交流小组去提问,往往你会得到意想不到的收获哦。 LINQ专题:htt阅读全文

基础技能树 系列文章导航(上)

2017-11-17 09:42 by 李永京, 315 阅读, 收藏, 编辑
摘要: 开篇:学习基础技能树意义 00 学习基础技能树意义 到底什么是基础 为什么选择Go作为基础语言 安装学习环境 演示:反汇编、函数内联优化[付费阅读] "直达链接" 第一部分:编译(编译、链接、可执行文件结构、符号表) 01 编译 gcc编译过程 go build编译过程[付费阅读] "直达链接" 0阅读全文

基础技能树-24 结构体

2017-11-16 09:19 by 李永京, 233 阅读, 收藏, 编辑
摘要: 本节内容 - 匿名字段与继承 - 名称遮蔽(成员访问优先级) - 结构体内存布局阅读全文

基础技能树-23 哈希表

2017-11-15 09:10 by 李永京, 282 阅读, 收藏, 编辑
摘要: 本节内容 - 开篇 - 哈希表基本实现方式 - 用数组改进链表法性能 - 字典的性能调优 - 字典的数据竞争问题阅读全文

基础技能树-22 基于数组实现数据结构

2017-11-14 09:14 by 李永京, 456 阅读, 收藏, 编辑
摘要: 本节内容 - 开篇 - 栈(Stack) - 队列(Queue) - 缓冲区(Pool) - 链表(Linked List)阅读全文

基础技能树-21 数组

2017-11-13 09:40 by 李永京, 187 阅读, 收藏, 编辑
摘要: 本节内容 - 数组值类型和指针差异 - 数组指针和指针数组的差别 - 切片为什么不是动态数组或数组指针 - 用new或make创建引用类型的差别 - 切片和数组的性能差异阅读全文

基础技能树-20 字符串

2017-11-10 11:05 by 李永京, 259 阅读, 收藏, 编辑
摘要: 本节内容 - 开篇 - Go字符串和C char*的差异 - 为什么实现为不可变类型 - 拼接字符串实现方式 - 转换性能优化阅读全文

基础技能树-19 应用

2017-11-09 09:13 by 李永京, 354 阅读, 收藏, 编辑
摘要: 本节内容 - 阻止GDB调试 - 阻止反汇编、代码混淆 - monkey patch - 缓冲区溢出攻击阅读全文

基础技能树-18 错误处理

2017-11-08 09:23 by 李永京, 350 阅读, 收藏, 编辑
摘要: 本节内容 - 错误分类 - 错误(异常)是一种“值”,属于正常逻辑返回(exception,error) - 使用实例或类型判断错误类别,而非“魔法数字”。(编译器检查、重构、常量陷阱)阅读全文

基础技能树-17 延迟调用

2017-11-07 09:28 by 李永京, 318 阅读, 收藏, 编辑
摘要: 本节内容 - 延迟调用的用途(作用域、IDisposable) - defer与finally的对比(总能执行) - 正确理解defer实现和执行机制,确保合理使用 - 利用匿名函数重构作用域 - 性能问题阅读全文

基础技能树-16 递归调用

2017-11-06 09:25 by 李永京, 489 阅读, 收藏, 编辑
摘要: 本节内容 - 什么是递归 - Go与C栈大小差异 - 为什么会引起堆栈溢出(stack overflow) - 什么是尾调用 - 什么是尾递归优化 - 为什么go的编译器对尾递归调用不做优化处理阅读全文

基础技能树-15 闭包

2017-11-03 09:43 by 李永京, 512 阅读, 收藏, 编辑
摘要: 本节内容 - 何为闭包 - 闭包通过指针引用环境变量 - 闭包导致环境变量生命周期延长和堆分配 - 闭包怎么调用的 - 闭包与数据竞争阅读全文

基础技能树-14 匿名函数

2017-11-02 10:15 by 李永京, 322 阅读, 收藏, 编辑
摘要: 本节内容 - 匿名函数符号名 - 匿名函数调用方式 - 作为返回值的匿名函数 - 直接调用匿名函数阅读全文

基础技能树-13 死代码

2017-11-01 09:13 by 李永京, 182 阅读, 收藏, 编辑
摘要: 本节内容 - 示例 - 使用代码覆盖测试检查 - 查看编译器能否优化掉死代码阅读全文

基础技能树-12 if和switch对比

2017-10-31 09:08 by 李永京, 162 阅读, 收藏, 编辑
摘要: 本节内容 - 是否存在性能差异 - 使用场景 - 反汇编对比阅读全文

基础技能树-11 参数传递

2017-10-30 09:22 by 李永京, 354 阅读, 收藏, 编辑
摘要: 本节内容 - C参数复制,返回值 - Go参数复制,返回值 - 优化模式对参数传递的影响阅读全文

基础技能树-10 调用堆栈

2017-10-27 10:17 by 李永京, 340 阅读, 收藏, 编辑
摘要: 本节内容 - 调用堆栈call stack - 堆栈帧stack frame - 函数调用,现场保护和恢复 - 用GDB查看调用堆栈,输出堆栈桢信息 - IP寄存器的用途 - 相关汇编指令阅读全文

基础技能树-09 初级汇编指令

2017-10-25 09:29 by 李永京, 362 阅读, 收藏, 编辑
摘要: 本节内容 - 寄存器 - 几类寄存器 - 内存寻址 - 常用汇编指令 - 操作数长度 - MS-DOS debug.com - 简读汇编代码阅读全文

基础技能树-08 常量和变量

2017-10-24 09:23 by 李永京, 319 阅读, 收藏, 编辑
摘要: 本节内容 - 常量和变量的区别 - 常量展开 - 常量陷阱演示阅读全文

基础技能树-07 进程内存模型

2017-10-23 09:15 by 李永京, 585 阅读, 收藏, 编辑
摘要: 本节内容 - 可执行文件和进程的差异 - 进程内存模型 - 使用readelf -l查看段映射 - 使用gdb查看运行期内存模型阅读全文

基础技能树-06 处理器

2017-10-20 09:04 by 李永京, 474 阅读, 收藏, 编辑
摘要: 本节内容 - 对称多处理器(SMP),NUMA的问题 - 物理核心、逻辑核心 - 缓存:L1(d,i)、L2、L3 - 超线程(HT),可能因共享cache造成性能问题 - lscpu使用示例阅读全文

基础技能树-05 虚拟内存

2017-10-19 09:04 by 李永京, 622 阅读, 收藏, 编辑
摘要: 本节内容 - 实模式(8086,boot)与保护模式 - 虚拟存储器(VM),VA/PA,MMU/TLB,PT/PTE用途 - 缺页异常(Page Faults),换入换出(swap in/out),颠簸(thrashing) - 存储器层次 - 机会主义内存分配 - dstat、pidstat使用示例阅读全文

基础技能树-04 符号

2017-10-18 09:06 by 李永京, 589 阅读, 收藏, 编辑
摘要: 本节内容 - 使用nm查看符号 - 使用readelf -s输出符号信息 - 删除符号表对反汇编的影响 - 使用strip删除符号和调试信息 - 使用UPX压缩并保护可执行文件阅读全文

基础技能树-03 可执行文件结构

2017-10-17 09:16 by 李永京, 508 阅读, 收藏, 编辑
摘要: 本节内容 - 通用可执行文件结构(COFF)(readelf -h) - COFF用段(section)存储不同类型数据(readelf -S) - 常用段 - 演示:使用readelf、xxd、objdump、gdb查看可执行文件结构信息 - 演示:objcopy -add-section;strip -remove-section;readelf -p阅读全文

基础技能树-02 链接

2017-10-16 09:08 by 李永京, 495 阅读, 收藏, 编辑
摘要: 本节内容 - 链接器 - 合并方式 - 静态链接和动态链接的区别阅读全文

基础技能树-01 编译

2017-10-13 09:07 by 李永京, 640 阅读, 收藏, 编辑
摘要: 本节内容 - gcc编译过程 - go build编译过程阅读全文