Go的50度灰:Golang新开发者要注意的陷阱和常见错误 http://colobu.com/2015/09/07/gotchas-and-common-mistakes-in-go-golang/…
目录 [−] 初级 开大括号不能放在单独的一行 未使用的变量 未使用的Imports 简式的变量声明仅可以在函数内部使用 使用简式声明重复声明变量 偶然的变量隐藏Accidental Variable Shadowing 不使用显式类型,无法使用“nil”来初始化变量 使用“nil” Slices and Maps Map的容量 字符串不会为nil Array函数的参数 在Slice和Array使用“range”语句时的出现的不希望得到的值 Slices和Arrays是一维的 访问不存在的Map…
初级 开大括号不能放在单独的一行 未使用的变量 未使用的Imports 简式的变量声明仅可以在函数内部使用 使用简式声明重复声明变量 偶然的变量隐藏Accidental Variable Shadowing 不使用显式类型,无法使用“nil”来初始化变量 使用“nil” Slices and Maps Map的容量 字符串不会为nil Array函数的参数 在Slice和Array使用“range”语句时的出现的不希望得到的值 Slices和Arrays是一维的 访问不存在的Map Keys S…
转自:http://colobu.com/2015/09/07/gotchas-and-common-mistakes-in-go-golang/ 初级 开大括号不能放在单独的一行 未使用的变量 未使用的Imports 简式的变量声明仅可以在函数内部使用 使用简式声明重复声明变量 偶然的变量隐藏Accidental Variable Shadowing 不使用显式类型,无法使用“nil”来初始化变量 使用“nil” Slices and Maps Map的容量 字符串不会为nil Array函数…
转自:http://colobu.com/2015/09/07/gotchas-and-common-mistakes-in-go-golang/ 目录 [−] 初级 开大括号不能放在单独的一行 未使用的变量 未使用的Imports 简式的变量声明仅可以在函数内部使用 使用简式声明重复声明变量 偶然的变量隐藏Accidental Variable Shadowing 不使用显式类型,无法使用“nil”来初始化变量 使用“nil” Slices and Maps Map的容量 字符串不会为nil…
Go是一门简单有趣的语言,但与其他语言类似,它会有一些技巧...这些技巧的绝大部分并不是Go的缺陷造成的.如果你以前使用的是其他语言,那么这其中的有些错误就是很自然的陷阱.其它的是由错误的假设和缺少细节造成的. 如果你花时间学习这门语言,阅读官方说明.wiki.邮件列表讨论.大量的优秀博文和Rob Pike的展示,以及源代码,这些技巧中的绝大多数都是显而易见的.尽管不是每个人都是以这种方式开始学习的,但也没关系.如果你是Go语言新人,那么这里的信息将会节约你大量的调试代码的时间. 初级 开大括号…
前言 Nginx相关技术短信本篇幅不做详细介绍,所以学习本文之前要对Nginx有相关的了解. 生产环境即线上环境,在经历开发.测试再到上线,不可避免的会更新生产环境,但谁又能保证测试过的代码到线上运行就一定不会有问题? 相信大部人都有相似经历,测试环境好好的代码,上了生产却可能发生问题,为何呢? 因为环境不一样,最经常发生的情况可能是:新的迭代中数据库表结构发生了变化.数据初始化不一致.配置文件不一致. 要如何避免这种情况呢,那就引入灰度模式,简单的说来就是模拟线上环境,即准生产环境,配置一致.…
目录 前言 1 不使用开发工具 1.1 自动重启工具 1.2 浏览器自动刷新工具 2 阻塞event loop 3 频繁调用回调函数 4 圣诞树结构的回调(回调的地狱) 5 创建一个大而完整的应用程序 6 缺少日志 7 没有测试 8 不使用静态分析工具 9 没有监视与性能分析 10 使用console.log来debug 前言 随着一些大公司如Walmart,PayPal等开始采用Node.js,在过去的几年里,Node.js有了快速的增长.越来越多的人开始选择Node并发布modules到NP…
Python是一门简单易学的编程语言,语法简洁而清晰,并且拥有丰富和强大的类库.与其它大多数程序设计语言使用大括号不一样 ,它使用缩进来定义语句块. 在平时的工作中,Python开发者很容易犯一些小错误,这些错误都很容易避免,本文总结了Python开发者最常犯的10个错误,一起来看下,不知你中枪了没有. 1.滥用表达式作为函数参数默认值 Python允许开发者指定一个默认值给函数参数,虽然这是该语言的一个特征,但当参数可变时,很容易导致混乱,例如,下面这段函数定义: >>> def fo…
[导读] 在Java中,有些事物如果不了解的话,很容易就会用错,如数组转换为数组列表.元素删除.Hashtable和HashMap.ArrayList和LinkedList.Super和Sub构造函数等,如果这些对你来说是陌生的,你可以在本文中了解它们. 在Java中,有些事物如果不了解的话,很容易就会用错,如数组转换为数组列表.元素删除.Hashtable和HashMap.ArrayList和LinkedList.Super和Sub构造函数等,如果这些对你来说是陌生的,你可以在本文中了解它们.…
1. { 换行:   Opening Brace Can't Be Placed on a Separate Line 2. 定义未使用的变量:  Unused Variables 2. import 但未使用: Unused Imports 3. a := 123 简短变量定义方式只能在函数内部使用: Short Variable Declarations Can Be Used Only Inside Functions 4. 重复定义 简短变量: Redeclaring Variables…
Golang作为一个略古怪而新的语言,有自己一套特色和哲学.从其他语言转来的开发者在刚接触到的时候往往大吃苦头,我也不例外.这篇文章很细致地介绍了Golang的一些常见坑点,读完全篇中枪好多次.故将其转载.由于文章很长,分为上下两部分,第一部分记录初级篇,第二部分记录进阶和高级篇:此为第二部分,若要看第一部分,请转至这里 感谢原文作者Kyle Quest以及翻译者影风LEY.出处见下: 原文链接:http://devs.cloudimmunity.com/gotchas-and-common-m…
初级篇 开大括号不能放在单独的一行 未使用的变量 未使用的Imports 简式的变量声明仅可以在函数内部使用 使用简式声明重复声明变量 偶然的变量隐藏Accidental Variable Shadowing 不使用显式类型,无法使用“nil”来初始化变量 使用“nil” Slices and Maps Map的容量 字符串不会为“nil” Array函数的参数 在Slice和Array使用“range”语句时的出现的不希望得到的值 Slices和Arrays是一维的 访问不存在的Map Key…
from : https://levy.at/blog/11 进阶篇 关闭HTTP的响应 level: intermediate 当你使用标准http库发起请求时,你得到一个http的响应变量.如果你不读取响应主体,你依旧需要关闭它.注意对于空的响应你也一定要这么做.对于新的Go开发者而言,这个很容易就会忘掉. 一些新的Go开发者确实尝试关闭响应主体,但他们在错误的地方做. package main import ( "fmt" "net/http" "i…
在和C#新手一起工作的时候,我注意到他们经常重复一些错误.这些错误,当你指出来的时候很容易理解.然而,如果一个开发者没有意识到这些错误,将会影响正在开发的软件的质量和效率,因此,我决定总结8个常见的错误.   1. 使用字符串连接代替StringBuilder 在你向一个字符串追加新字符串的时候,字符串连接方法是可行的.但是这样会导致新的内存空间被创建.被追加的字符串会拷贝到新的内存单元.这样的效率很低.而我们使用StringBuilder的话,可以免去字符串拷贝的发生.感谢StringBuil…
原文出处: kaiyuanba   欢迎分享原创到伯乐头条 数据库是WEB大多数应用开发的基础.如果你是用PHP,那么大多数据库用的是MYSQL也是LAMP架构的重要部分. PHP看起来很简单,一个初学者也可以几个小时内就能开始写函数了.但是建立一个稳定.可靠的数据库确需要时间和经验.下面就是一些这样的经验,不仅仅是MYSQL,其他数据库也一样可以参考. 1.使用MyISAM而不是InnoDBMySQL有很多的数据库引擎,单一般也就用MyISAM和InnoDB. MyISAM是默认使用的.但是除…
http://www.oschina.net/translate/top-10-mistakes-angularjs-developers-make…
数据库是WEB大多数应用开发的基础.如果你是用PHP,那么大多数据库用的是MYSQL也是LAMP架构的重要部分. PHP看起来很简单,一个初学者也可以几个小时内就能开始写函数了.但是建立一个稳定.可靠的数据库确需要时间和经验.下面就是一些这样的经验,不仅仅是MYSQL,其他数据库也一样可以参考. 1.使用MyISAM而不是InnoDB MySQL有很多的数据库引擎,单一般也就用MyISAM和InnoDB. MyISAM是默认使用的.但是除非你是建立一个非常简单的数据库或者只是实验性的,那么到大多…
Elasticsearch在db_ranking 的排名又(双叒叕)上升了一位,如图1-1所示;由此可见es在存储领域已经蔚然成风且占有非常重要的地位. 随着Elasticsearch越来越受欢迎,企业花费在ES建设上的成本自然也不少.那如何减少ES的成本呢?今天我们就特地来聊聊ES降本增效的常见方法: 弹性伸缩 分级存储 其他:(1)数据压缩(2)off heap 图 1-1 Elasticsearch db_ranking 1 弹性伸缩 所谓弹性伸缩翻译成大白话就是随时快速瘦身与增肥,并且是…
Go的性能优化其实总的来说和C/C++等这些都差不多,但也有它自己独有的排查方法和陷阱,这些都来源于它的语言特性和环境. 1.性能优化前提——任何好的东西都是在正确的前提上 代码界的很多事是和我们生活的哲学息息相关的,我们想要做好一件事,首先要保证我们能按时完成我们的任务,其次再去想如何把工作做的更好.如果一味只去要求做的尽善尽美可能会导致延期,失败,半途而废. 所以,先写正确的代码,再去考虑如何去让代码更快更好的运行:先完成基本的功能,再去想如何优化它.正确是优化的基础,没有这个基础,任何的优…
6.5 - Variable shadowing (name hiding) | Learn C++ https://www.learncpp.com/cpp-tutorial/variable-shadowing-name-hiding/ Go的50度灰:Golang新开发者要注意的陷阱和常见错误 | 鸟窝 https://colobu.com/2015/09/07/gotchas-and-common-mistakes-in-go-golang/ 6.5 - Variable shadowi…
Go入门 Go介绍 部落图鉴之Go:爹好还这么努力? 环境配置 安装 下载源码编译安装 下载相应平台的安装包安装 下载地址:https://golang.org/dl/ Linux上的apt-get,yum,Mac上的homebrew 安装 安装完成后命令行输入go,如果显示帮助信息则安装成功 GOPATH GOPATH:用来存放用户的Go源码,Go的可运行文件,以及相应的编译之后的包文件 src 存放源代码,使用go get下载的代码会放到这个目录 pkg 编译后生成的文件(比如:.a) bi…
随着低代码和无代码工具的出现,构建API比以往任何时候都更简单.更快.不过因为开发简单了,开发者很容易忽略一些潜在的问题,导致整个业务的下游影响. 在设计阶段多花点时间,可以确保API真正有用.安全.可扩展和稳定. 本文会讨论API开发者需要避免的10个常见错误,帮助我们开发更高质量的API. API开发者需要避免的10个常见错误 1.API开发者的错误导致臃肿的响应 从编写代码的角度来看,调用返回整个对象,比返回特定的参数要容易得多.但问题是这种调用造成的问题大于其带来的价值.这些臃肿的响应参…
序言 在今天,JavaScript已经成为了网页编辑的核心.尤其是过去的几年,互联网见证了在SPA开发.图形处理.交互等方面大量JS库的出现. 如果初次打交道,很多人会觉得js很简单.确实,对于很多有经验的工程师,或者甚至是初学者而言,实现基本的js功能几乎毫无障碍.但是JS的真实功能却比很多人想象的要更加多样.复杂.JavaScript的许多细节规定会让你的网页出现很多意想不到的bug,搞懂这些bug,对于成为一位有经验的JS开发者很重要.   常见错误一:对于this关键词的不正确引用 我曾…
转载自:https://www.nginx.com/resources/wiki/start/topics/tutorials/install/ 二进制版本预包装的Linux和BSD大多数Linux发行版和BSD变种在通常的包库中包含nginx,并且它们可以通过通常用于安装软件的任何方法安装(如在Debian上apt-get,Gentoo的emerge,FreeBSD的ports等).要知道,这些包通常是有点过时.如果你想要最新的功能和bug修正,建议建立从源或使用包直接从nginx.org.…
javascript中易犯的错误有哪些 一.总结 一句话总结: 比如循环中函数的使用 函数中this的指向谁(函数中this的使用) 变量的作用域 1.this.timer = setTimeout(function(){ this.clearBoard(); }, 0);这句话错在哪? This指代的是什么?它和日常英语口语中的this是一个意思吗? 随着近些年js编程不断地复杂化,功能多样化,对于一个程序结构的内部指引.引用也逐渐变多起来 下面让我们一起来看这一段代码: Game.proto…
关于这些建议 这些建议并不适用于所有的项目 这些建议是基于我与3-20人的小团队项目经验总结出来的 结构.可重复使用性.明晰度都是有价的——团队规模和项目规模决定了是否值得付这个价. 一些建议也许公然违抗了传统的Unity开发.例如:使用专业化的组合而不是使用实例就很不像Unity的作风,价格也很高.即使看上去挺疯狂的,但我还是看到了这些建议给开发者带来了利益. 过程方面 1.避免分支资产 对于任何资产我们应该只有一个版本.如果你非要把一个预设,场景,或网格分支开来,那么情遵循一个过程,这个过程…
1.开发流程 程序的Bug与瑕疵往往出现于开发流程当中.只要对工具善加利用,就有助于在你发布程序之前便将问题发现,或避开这些问题. 标准化代码书写 标准化代码书写可以使代码更加易于维护,尤其是在代码由多个开发者或团队进行开发与维护时,这一优点更加突出.常见的强制代码规范化的工具有:FxCop.StyleCop和ReSharper. 开发者语:在掩盖错误之前请仔细地思考这些错误,并且去分析结果.不要指望依靠这些工具来在代码中寻找错误,因为结果可能和你的与其相去甚远. 代码审查 审查代码与搭档编程都…
1.开发流程 程序的Bug与瑕疵往往出现于开发流程当中.只要对工具善加利用,就有助于在你发布程序之前便将问题发现,或避开这些问题. 标准化代码书写 标准化代码书写可以使代码更加易于维护,尤其是在代码由多个开发者或团队进行开发与维护时,这一优点更加突出.常见的强制代码规范化的工具有:FxCop.StyleCop和ReSharper. 开发者语:在掩盖错误之前请仔细地思考这些错误,并且去分析结果.不要指望依靠这些工具来在代码中寻找错误,因为结果可能和你的与其相去甚远. 代码审查 审查代码与搭档编程都…
PHP 语言让 WEB 端程序设计变得简单,这也是它能流行起来的原因.但也是因为它的简单,PHP 也慢慢发展成一个相对复杂的语言,层出不穷的框架,各种语言特性和版本差异都时常让搞的我们头大,不得不浪费大量时间去调试.这篇文章列出了十个最容易出错的地方,值得我们去注意. 易犯错误 #1: 在 foreach循环后留下数组的引用 还不清楚 PHP 中 foreach 遍历的工作原理?如果你在想遍历数组时操作数组中每个元素,在 foreach 循环中使用引用会十分方便,例如 $arr = array(…