首页
学习
活动
专区
圈层
工具
发布

我在使用 Go 过程中犯过的低级错误

循环中引用迭代器变量 循环迭代器变量是一个在每次循环迭代中采用不同值的单个变量。如果我们一直使用一个变量,可能会导致不可预知的行为。..."%d ", v) }() } 因为 goroutine 最终读取变量的时间是不确定的,从而 goroutine 中获取到变量的值不一定符合最初的预期。...然而,Wait()是在循环内调用的,所以它在接下来的迭代中会阻塞在第4行的Goroutine创建。简单的解决方案是将Wait()的调用从循环中移出。...另一个解决方法是在第6行使用一个带有空默认情况的选择语句,这样如果没有Goroutine收到ch,就会发生默认。尽管这个解决方案可能并不总是有效。...不使用 -race 选项 我经常见到的一个错误是在测试 go 应用的时候没有带 -race 选项。

5.4K10
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    很开心,在使用mybatis的过程中我踩到一个坑。

    在实际开发过程中我踩到了mybatis的一个坑,我觉得值得记录、分享一下。 先说说这个坑是什么吧。如果你踩过这个坑,并且知道具体的原因,那这篇文章可以加深你的印象。...通过调用链,往后走三步,我们可以看到sql是从boundSql中获取到的: ? 那么boundSql是从哪里来的呢?我们继续往回走。 往回走11步,我们可以看到boundSql的获取过程: ?...图中标号为一的地方,就是v1的值,这个0是我传入的查询条件。 图中标号为二的地方,就是v2的值,这个""的来源是我写在mapper.xml文件中if标签里面的表达式。...但是,你再回过头的想一想,我最开始的改造mapper.xml是怎么操作的: 改造点很简单,在xml文件里面ctrl+c一下原来的if标签,再ctrl+v出来改改里面的名字就好了。...是的,我无脑的使用了CV大法。导致我在欢声笑语中写出了bug。我orderStatus传入的类型是一个Byte,和""做判断有任何意义吗?

    1.7K10

    很开心,在使用mybatis的过程中我踩到一个坑。

    这是why技术的第14篇原创文章 在实际开发过程中我踩到了mybatis的一个坑,我觉得值得记录、分享一下。 先说说这个坑是什么吧。...通过调用链,往后走三步,我们可以看到sql是从boundSql中获取到的: ? 那么boundSql是从哪里来的呢?我们继续往回走。 往回走11步,我们可以看到boundSql的获取过程: ?...图中标号为一的地方,就是v1的值,这个0是我传入的查询条件。 图中标号为二的地方,就是v2的值,这个""的来源是我写在mapper.xml文件中if标签里面的表达式。...但是,你再回过头的想一想,我最开始的改造mapper.xml是怎么操作的: 改造点很简单,在xml文件里面ctrl+c一下原来的if标签,再ctrl+v出来改改里面的名字就好了。...是的,我无脑的使用了CV大法。导致我在欢声笑语中写出了bug。我orderStatus传入的类型是一个Byte,和""做判断有任何意义吗?

    2.5K10

    配置文件中的数据库连接串加密了,你以为我就挖不出来吗?

    讲故事 前几天在调试物联柜终端上的一个bug时发现 app.config 中的数据库连接串是加密的,因为调试中要切换数据库,我需要将密文放到专门的小工具上解密,改完连接串上的数据库名,还得再加密贴到 app.config...从DAL/Repository层去反编译代码 要想得到明文的数据库连接串,可以从代码中反推,比如从 DAL 或者 Repository 中找连接串字段 ConnectionString,我这边的终端程序是用...接下来的问题就是有没有办法把进程中的这个静态变量给挖出来?你说的对,就是抓程序的 dump文件 用 windbg 去挖。 三:使用 windbg 去脱库 1....四:总结 当认识到上面的两种脱库方式,你应该就能想到,其实你在程序中连接数据库,这本身就是一种错,操作系统都能给你盗版,何况你这区区一个小软件?...个人觉得完全杜绝的方式那应该就是:灭掉本地的sqlserver,让所有的数据获取都由远端的 webapi 提供,当然这又是在脱离业务聊技术啦!

    1.1K20

    从程序员到架构师,总结我在升级过程中的那些坑以及各种体会

    先说明,本文说的是技术架构,而不是业务架构,另外,这个架构是指目前比较热门的高并发大数据的架构。论能力,我还达不到架构师的水平,所以我目前还在不断努力。...我的回答是,靠多线程,以及Servlet3.0的并发功能。 面试官的问题3:你们在数据库层面,如果应对海量的操作? 我的回答是,用SQL调优技术,根据执行计划,看Oracle执行的瓶颈。...三、陷入各组件的细节中 在经过一些大神的帮助后,我也知道了一些架构级别的组件,比如消息级别的组件Kafka,以及zookeeper等,这时,当我看到这些组件神奇的功效后,就忍不住去看底层实现,当我沉浸于底层实现的精妙时...现在回想下,当时应当是先了解面上的知识点,比如我要搭建一个分布式高并发的系统,我应当了解这个系统应当包括哪些功能模块(比如反向代理,数据库集群,消息中间件等),在这基础上,然后在每个方面再选用合适的组件...五、后来发现架构师更得考虑可重用和可维护性 经过不断徘徊和摸索,现在发现,架构师的能力其实是体现在日常工作中的,在一个项目里,并不是架构师搭建好系统架构体系后就什么都不干了,架构师在项目开发过程中,更能帮助组员搭建出可用性高和可维护性强的应用系统

    86900

    数据分析:从PGONE事件中,你们看到了人性,我却看到了明星真实的粉丝数据

    备注:我要向我微博为数不多的粉丝先声明,我不追任何一个明星,今天为了采集数据,无意中点赞了一个明星微博,请告诉我,微博可以取消赞吗?...我就以事件中的所谓的嘻哈男猪脚微博为例,由于我实在不想打下那个名字,为了省事,我就以SB为代号吧。...我们首先来看,这SB货在微博上显示的粉丝数量是476万,当然,这粉丝数量在明星当中也只能算是中规中矩,但是这真的是真是数据吗? ?...接下来看,下图是该微博1月4日发布的微博分布在2018年1月5日和2018年1月7日的数据。 ? ? 我们可以看到,以下几个数据: ?...从上文分析中可以看到,无论在平时还是在风口浪尖上,点赞量和评论量基本在11-20万之间,而评论量差别很大,是最有可能注水的维度。 所以,基本上可以判断,SB 男的微博粉丝数量在11-15万之间。

    1K60

    【详解】textarea从数据库调取数据

    textarea从数据库调取数据在Web开发中,​​textarea​​ 是一个常用的HTML元素,用于多行文本输入。...本文将介绍如何通过JavaScript从后端数据库中获取数据,并将其填充到 ​​textarea​​ 中。我们将使用一个简单的示例来说明整个过程,包括前端和后端的实现。...下面我将提供一个简单的示例,展示如何从数据库中获取数据并填充到HTML页面中的​​​​元素。这个示例将使用Python的Flask框架和SQLite数据库。1....下面我将通过一个简单的示例来说明如何从数据库中获取数据并显示在 ​​textarea​​ 中。...示例:使用PHP和MySQL假设我们有一个简单的表单,其中包含一个 ​​textarea​​,我们希望从MySQL数据库中加载一些文本内容到这个 ​​textarea​​ 中。1.

    23810

    我用java中的文件IO流帮同事处理了足足18M的文本数据,泪目(一)

    这两个问题,就分别对应的java中的数据源和目的地,流中传送的是java中要处理的数据,可以是字符形式也可以是字节形式。...我以前学的时候总是搞不清楚输入流输出流到底是从哪里来到哪里去,今天总结一下,感觉还挺便于理解的。 首先我们始终记住一点:我们的输入流、输出流是相对我们编写的应用程序来说的。...那么这时 输入流就是从A文件到我们应用程序的这段流(从A文件输入到了我们的应用程序中,读,就是读取A文件中的数据) 输出流就是从我们的应用程序到B文件的这段流(从应用程序输出到了B文件中,写,就是写入到...B文件中) 实战演练之需求思路 说到API,这个IO流确实真的是太太太讨厌了,API真的是太多太多了,就像高中背课文一样,还总忘,着实很尴尬,不过我今天就把我的一些总结理解通过这个真实的例子写出来(只是操作磁盘文件...最后,也像我们上一节说到的,我们得定义个输出流对吧,得把我们应用程序处理好的数据写进去,输出到我们要存放的B文件中 ?

    83340

    JQuery 入门学习(三)

    所以说ajax最大的优点,就是在不更新整个页面的情况下对部分内容进行修改、维护,这样服务器发送的数据少,减少了服务器的负担。 简单的ajax获取信息     说了那么多,我都感觉蛋疼了。...首先看看怎么获取服务器上一个txt文件:使用load()方法     (因为ajax使用同源策略,所以在哪个网站运行代码就只能请求该服务器上的内容,我请求的是w3school中的一个txt文件,大家把代码放在...第三个参数callback是一个回调函数,这个函数在获取到数据后运行,也就是说收到的数据可以在这个函数中处理。...ajax的json方法     Jquery中从服务器加载json数据的方法是:$.getJSON     它的参数与get()方法完全一样,但是服务器返回结果data应该是一个json格式的字符串...我说了json是一个通用的数据交换编码,所以在php里也有方法把对象处理成json字符串。

    9.8K20

    php与Ajax实例

    使用Get方式 现在我们第一步来执行一个Get请求,加入我们需要获取 /show.php?id=1的数据,那么我们应该怎么做呢? 假设有一个链接:php?...当然,我们上面省略了show.php这个文件,我们只是假设show.php文件存在,并且能够正常工作的从数据库中把id为1的新闻提取出来。...这种方式适应于页面中任何元素,包括表单等等,其实在应用中,对表单的操作是比较多的,针对表单,更多使用的是POST方式,这个下面将讲述。 3....假设有一个用户输入资料的表单,我们在无刷新的情况下把用户资料保存到数据库中,同时给用户一个成功的提示。 //构建一个表单,表单中不需要action、method之类的属性,全部由ajax来搞定了。...异步回调(伪Ajax方式) 一般情况下,使用Get、Post方式的Ajax我们都能够解决目前问题,只是应用复杂程度,当然,在开发中我们也许会碰到无法使用Ajax的时候,但是我们又需要模拟Ajax的效果,

    4.1K10

    ajax异步提交数据到数据库

    很多时候我们提交数据到服务器端数据库都是用form表单,这样子是最普通最简单提交数据的方法,你填写完表单后,post提交到后台文件.php,处理完后返回到指定页面,最后,页面就重新刷新了一遍,显示预想的页面...举个简单的例子:你用form表单,直接post提交数据到数据库,那是同步;你用ajax异步提交post,那是异步操作;就相当于,你有一样东西要给A,你直接放给他,然后他用完直接还给你,这就叫同步,而,你可以通过快递...那什么是ajax呢? Ajax 在浏览器与 Web 服务器之间使用异步数据传输(HTTP 请求),这样就可使网页从服务器请求少量的信息,而不是整个页面。...分析: 1、js获取input中的数据 2、判断数据是否满足要求(这里提一下layer,它是一个很好用很好看的前端弹出框框架,简单易学,可以去官网上看开发文档) 3、请求post的url地址 4、要传递到...依次四个红框的解释为: 1、session和引入数据库连接文件(这里不扩展了,不会的下方评论,我教你php pdo扩展连接数据库) 2、获取从前端页面post过来的数据 3、mysql数据库操作语句和

    5.3K40

    ASP.NET MVC框架(第四部分): 处理表单编辑和提交场景

    Create" action方法则处理从表单提交过来的值,根据这些值在数据库中生成一个新产品,然后将客户转向到产品的分类列表网页。...我们想要Edit Action方法从数据库中获取适当的产品对象,以及现有的产品供应商和分类集合(这样,我们可以在我们的编辑视图里实现这些东西对应的下拉框)。...但注意,填充的不是一个空对象,我们使用了一个模式,先从数据库中获取老的值,然后对它应用用户做的改动,然后更新到数据库中。...点击这里下载一个内含我们在上面建造的完整应用源代码的.ZIP 文件。 在将来的帖子里,我将讨论如何处理表单输入和编辑场景中数据验证和错误复原的情形。...我将讨论一些促进快速应用开发的内置的数据和安全支架(scaffolding)。我将讨论你如何在MVC框架中使用ASP.NET AJAX进行启用AJAX的编辑。

    7K70

    三分钟让你了解什么是Web开发?

    Forms表单 到目前为止,我们只讨论从服务器获取数据。表单是HTML的另一个方面,它允许我们向服务器发送信息。我们可以使用表单更新现有信息或添加新信息。...数据库 一旦信息开始增长,从文件中获取正确的信息可能会成为真正的痛苦,更不用说痛苦的缓慢了。...服务器端脚本语言和框架 我们需要编程语言: 从数据库或文件中存储和读取。 通过进行某些处理从服务器获取信息。 从客户端读取POST信息,并进行一些处理以存储/推送该信息。...服务器脚本(PHP、Ruby on Rails、Python等)从表单读取值并将其推送到数据库。...我们可以使用以下三种重要的方法来请求web服务器: GET:获取请求的资源作为响应。 POST:向服务器提交表单数据,或者通过Ajax提交任何数据。

    9.3K30

    AJAX 前端开发利器:实现网页动态更新的核心技术

    GET比POST更简单更快,并且在大多数情况下都可以使用。 但是,在以下情况下始终使用POST请求: 无法使用缓存文件(更新服务器上的文件或数据库)。 向服务器发送大量数据(POST没有大小限制)。...通过点击按钮触发 loadDoc() 函数,该函数使用AJAX从名为 "cd_catalog.xml" 的XML文件中获取信息。...> 在上述示例中,当用户在输入字段中输入字符时,通过AJAX与服务器通信,并从PHP文件中获取相应的建议。建议将在 "txtHint" 元素中显示。...建议将在 "txtHint" 元素中显示。 AJAX 数据库示例 AJAX可用于与数据库进行交互式通信。...> 在上述示例中,当用户选择一个客户时,通过AJAX与服务器通信,并从数据库中获取相应的客户信息。客户信息将以HTML表格的形式显示在具有 "txtHint" ID 的元素中。

    3.3K00

    PHP的文件上传操作

    HTML5学堂:关于文件上传,主要包括“构建基本表单”-“使用AJAX发送请求,上传文件”-“使用PHP获取文件基本信息”-“执行SQL语言,返回基本图片路径”-“使用DOM操作设置预览图路径”。...上图为上传文件后 核心知识 - 文件上传操作的基本步骤 1、构建基本的表单,并针对表单进行相关处理 2、在“上传文件”数据发生变化的时候,使用AJAX发送请求 3、PHP获得到文件的基本信息 4、PHP...执行SQL,将获取的基本信息存入数据库 5、PHP返回基本的图片路径 6、使用DOM操作设置预览图的路径 最核心的知识,其实依旧是知识的逻辑。...在“上传文件”数据发生变化的时候,使用AJAX发送请求 基本代码如下: $("#face").on("change", function(...之后的数据库连接我就不再讲解了,如果还不是太清楚,可以查看《PHP对数据库的相关操作》 在PHP当中,通过$_FILES这个超全局变量进行文件相关信息的获取,使用$_FILES["file"]["name

    6.2K50

    python接口自动化(十)--post请求四种传送正文方式(详解)

    如果表单中有上传文件,编码类型需要使用"multipart/form-data",类型,才能完成传递文件数据。...分清两者 2、浏览器提交表单时,会执行如下步骤 1 识别出表单中表单元素的有效项,作为提交项 2 构建一个表单数据集 3 根据form表单中的enctype属性的值作为content-type对数据进行编码...大部分服务端语言都对这种方式有很好的支持。例如 PHP 中, $_POST['title'] 可以获取到 title 的值,$_POST['sub'] 可以得到 sub 数组。   ...很多时候,我们用 Ajax 提交数据时,也是使用这种方式。...,从请求的响应结果可以看到数据已上传到服务端中。注意:一定要注意headers的类型。

    6K51
    领券