Skip to content

Instantly share code, notes, and snippets.

View huangxinglong's full-sized avatar
🤒
Out sick

Youths huangxinglong

🤒
Out sick
View GitHub Profile
@huangxinglong
huangxinglong / gist:9e57b50d08223ff85ae3db6a78220467
Created August 15, 2017 17:30
写代码要牢记在心的规则
读书,先是从厚读到薄,然后是从薄读到厚;写代码也是一样一样的
不停coding,但又及时回顾、提炼,总结出一些规律和方法,再从这些规律和方法出发,指导后续的工作,这是一个「从厚到薄」的过程
针对其中的每个点,可以从容自得地、深入浅出地讲解、分享给其他人,可以解决一些深层次的问题,这个过程就是「从薄到厚」
正所谓「厚积薄发」,「厚积」容易,「薄发」难,最近这半年在支付宝的工作,自我感觉提升非常大,但是提升的内容仅仅只能抽象出一些要点,还做不到由点及面地开展,简单记录下,希望不久将来,可以「薄发」
架构层面
@huangxinglong
huangxinglong / babies of golang
Created August 6, 2017 12:43
Study the basies of golang
1、不支持继承 重载 ,比如C++Java的接口,接口的修改会影响整个实现改接口的类行为的修改,Go 设计者认为这一特点或许根本没用.
2、必任何函数定义必须花括号跟在函数声明后面而不能换行 如 func funca(a int){},在Go语言中 函数也是一种类型 可以被推导 使用支持匿名函数 和闭包。
函数的返回值支持多重返回类似Python , 如果不赋值 整数类型默认 0 浮点数类型默认0.0 error类型 默认是nil
3、不用的包一定不要引入,这是Go的原则,就如Python的严格制表符对其一样 ,和 unused 变量都会被 编译器所报错
4、package做为引入包用。
5、import "a" 调用包内部的函数 a.xx()
6、CGo是Go语言的一个特性,可以方便快速的在Go中调用C 相比Java JNI简单容易实现
7、go通过goroutine 进行协程优化 提高并发性能。 动态线程调整。
8、6g和6l是64位版本的Go编译器和链接器,对应的32位版本工具为8g和8l。Go还有另外一个 GCC版本的编译器,名为 gccgo。
9、注意多个go文件可以用同一个包名字,如果要为 Go生成可执行文件 那么必须 进行 package main