最近我大幅度重构了我一个库的项目结构,使之使用最新的项目文件格式(基于 Microsoft.NET.Sdk)并使用 SourceYard 源码包来打包其中的一些公共代码。...不过,最终生成了一个新的 dll 之后却心有余悸,不知道我是否删除或者修改了某些 API,是否可能导致我原有库的使用者出现意料之外的兼容性问题。...索性发现了 JustAssembly 可以帮助我们分析程序集 API 的变化。本文将介绍如何使用 JustAssembly 来分析不同版本程序集 API 的变化。...下载和安装 JustAssembly JustAssembly 是 Telerik 开源的一款程序集分析工具。...对于每一个差异,双击可以去看差异的代码详情。 上图我的 SourceFusion 项目在版本更新的时候只有新增的 API,没有修改和删除的 API,所以还是一个比较健康的 API 更新。
在实际开发过程中我踩到了mybatis的一个坑,我觉得值得记录、分享一下。 先说说这个坑是什么吧。如果你踩过这个坑,并且知道具体的原因,那这篇文章可以加深你的印象。...开始自测 请做好单元测试,即使这个功能非常简单,显而易见,你信心十足,但是做好单元测试,是一个程序员应有的职业素养。 单元测试如下:分别传入状态0和1 ?...通过idea的Debug模式,我们可以得到从程序运行开始,到断点处的整个调用链路。(如果下面的图片看不清楚,可以点开查看大图): ?...是的,我无脑的使用了CV大法。导致我在欢声笑语中写出了bug。我orderStatus传入的类型是一个Byte,和""做判断有任何意义吗?...最后说一句 在解决这个问题之后,我还是在网上查了一圈,发现也有人遇到了这样的问题,但是我点开搜索出来的第一篇就是一个错误的描述,他说在mybatis中会把0当做null来处理?哥们你看源码了吗?
这是why技术的第14篇原创文章 在实际开发过程中我踩到了mybatis的一个坑,我觉得值得记录、分享一下。 先说说这个坑是什么吧。...开始自测,遇到问题 请做好单元测试,即使这个功能非常简单,显而易见,你信心十足,但是做好单元测试,是一个程序员应有的职业素养。 单元测试如下:分别传入状态0和1 ?...通过idea的Debug模式,我们可以得到从程序运行开始,到断点处的整个调用链路。(如果下面的图片看不清楚,可以点开查看大图): ?...是的,我无脑的使用了CV大法。导致我在欢声笑语中写出了bug。我orderStatus传入的类型是一个Byte,和""做判断有任何意义吗?...最后说几句 在解决这个问题之后,我还是在网上查了一圈,发现也有人遇到了这样的问题,但是我点开搜索出来的第一篇就是一个错误的描述,他说在mybatis中会把0当做null来处理?哥们你看源码了吗?
标签:VBA 下面的VBA自定义函数可以返回指定工作表中已使用区域之后的第一个空行行号。...,调用上述函数后,返回数字9,即已使用区域后的第一行是第9行。...图1 由示例可见,即便工作表中已使用区域前面存在空行,该函数仍然返回已使用区域后的第一个空行。...有很多人喜欢使用下面的语句: Cells(Rows.Count, 1).End(xlUp).Row + 1 返回最后一行之后的空行。然而,这只是返回第1列最后一个数据之后的空行。...如果要返回所有列中最后一个出现数据的行后的空行,那就必须知道哪一列中最后一个数据比其它列出现的行大,但对于许多工作表来说,事先是不知道的。因此,本文前面给出的自定义函数最为灵活。
在实际测试中可能会遇到以下问题:端口冲突:如果两个同学的测试用例都需要访问同一个服务,而该服务监听的端口只有一个,那么就会发生端口冲突的问题,导致其中一个同学无法正常运行测试用例。...资源争用:如果两个同学的测试用例同时访问同一个服务,而该服务的资源(如数据库连接、缓存等)只能被一个测试用例使用,那么就会发生资源争用的问题,导致其中一个同学的测试用例无法正常运行。...为了避免这些问题,可以采取以下的解决方案:尽可能使用不同的端口:在测试过程中,尽量使用不同的端口,避免端口冲突的问题。使用独立的资源:在测试过程中,尽量使用独立的资源,避免资源争用的问题。...使用不同的测试数据:在测试过程中,使用不同的测试数据,避免数据污染的问题。统一环境配置:在测试之前,统一环境配置,包括依赖服务的版本等,避免依赖版本不一致的问题。...使用模拟数据:在测试过程中,可以使用模拟数据来代替真实数据,避免不同测试用例之间的数据干扰。分离公共服务:在测试过程中,可以将公共服务分离出来,让每个测试用例都使用自己的服务实例,避免资源争用等问题。
学习Excel技术,关注微信公众号: excelperfect 主要内容: 理解运行时错误及其原因 如何在过程中启用错误捕获 使用Err对象 编写错误处理代码 延迟错误处理 使用错误作为编程工具 运行时错误是在程序运行时发生的错误...与错误不同,bug不会阻止程序运行。 语法错误是VBA语法中的错误。VBA编辑器会在你编写代码时捕获并标记语法错误,因此它们永远不会影响程序执行。...提示:由于VBA过程的内容彼此独立,因此可以在多个过程中为错误处理代码使用相同的标签。...一些错误处理示例 在处理VBA错误处理时,有一些经验是很有价值的。为了向你提供一些处理错误的经验,本节提供了一些使用VBA的错误处理功能的示例。...2.说明是否所有可能的错误原因都在程序员的控制之下。 3.是否可以在一个过程中放置OnError Goto label语句,并在另一个过程中放置错误处理代码?
最近有一个需求关于数据的清理的需求,但是这个需求里面有一个部分有一个部分是特殊,也就是在数据清理中,是需要进行数据的导出和导入的,并确定在导入和导出的过程中,导出数据在导出到清理的整个过程中中不能被改变...这里需要在不同的情况下来分析,同样的设置给应用程序带来的不同的问题。 这里先从互联网的方案来说,死锁探测为0 innodb_lock_wait_timeout = 3 当然有的地方更短设置成1秒。...具体什么成因这里就不讨论了,同时这里还有一个不同就是隔离级别,我们在每次测试使用不同的隔离级别来看看会有什么影响。...配置中如果使用的 innodb_lock_wait_timeout =3 的配置的情况下,在很短的时间数据库就能判断出BLOCKED 或死锁,在这样的情况下,无论使用什么隔离级别,那么结果都是一样的,...最终基于以上的结果,应用程序是需要针对程序最终在执行语句后的结果进行判断,到底是 update 0 还是 非0,并根据结果做出相关后续的操作。
在 Linux 里中止程序 在 Linux 中,你可以使用 Ctrl+C 键来中止终端中的运行程序。这对 Ubuntu 和其他 Linux 发行版都适用。 以 ping 命令为例。...它向正在运行的程序发送 SIGINT 信号以强制退出该命令。 Stopping a program in the Linux terminal 你看到 ^C 了吗?这个插入符号(^)代表 Ctrl。...在一个更复杂的方法中,你可以 找到进程 ID 并杀死一个正在运行的进程。这是更高级的东西,只有进程在后台或由其他用户运行或在另一个终端窗口运行时使用。...如何退出 less 命令 less 是一个奇妙的命令,它可以让你在不像 cat 命令那样杂乱的终端屏幕上进行查看。如果你在 less 命令的视图内,使用 q 键来退出 less。...当你在 Ubuntu 或其他发行版中打开一个终端,它会运行默认的 shell。当你从这个 shell 退出时,终端也会结束。Ctrl+D 是做同样事情的快捷方式,并退出终端。
虽然Python在自动化领域的地位是毋庸置疑的,但是在特殊场景下只能使用VBA,尤其是对网络环境要求很严格的场合。...变量变量是用于存储数据的命名空间。在VBA中,变量有不同的数据类型,如整数(Integer)、字符串(String)和布尔值(Boolean)等。定义变量时,可以使用Dim关键字。...了解如何使用这些对象及其成员是编写VBA代码的基础。函数和子程序在VBA中,代码主要通过函数(Function)和子程序(Sub)组织。子程序用于执行一系列操作,而函数则用于返回一个值。...ResultEnd Function错误处理在编写VBA代码时,错误处理是必不可少的。...常见的错误处理方法包括:使用On Error Resume Next忽略错误。使用On Error GoTo Label跳转到特定的错误处理代码块。使用Err对象获取错误信息。
在VBA中,运行时错误发生的时候,会直接中断程序的运行,如果仅仅是程序的使用者,可能完全不会代码,那么出现这种中断程序的运行的状况,使用者就会不知所措了。...比如用VBA代码激活一个工作表,但这个工作表不存在的情况下: Worksheets("ErrTest").Activate ? 程序被中断了,不懂VBA的人碰上这个肯定就不知道如何去处理了。...1、On Error语句: 在VBA里处理错误使用的是On Error语句: Sub TestErr() '出错的时候,程序跳转到标签ErrTest处 On Error GoTo ErrTest...,然后其他地方就可以使用GoTo进行跳转,标签使用比较简单,就像定义变量差不多,取一个合法的名字,在名字后面加上英文的冒号就可以。...,因为作为写程序的人,必须要考虑到使用者的情况,给使用者出现运行时错误是不应该的,所以写程序的过程中,一定要非常严谨,尽量在所有的程序中都加上错误捕获的代码。
如果我们中断代码的执行,那么可能已经生成的很多中间工作表、行和列仍然存在,并没有像程序预先设计的那样在退出前将其删除,这样会留下一个与我们之前完全不同的工作表,会让用户感到莫名其妙。...要阻止按Ctrl+Break键中断代码的执行,可以在程序中添加下面的语句: Application.EnableCancelKey= xlErrorHandler 这个语句指示VBA不要显示“代码执行被中断...而xlErrorHandler则指示程序生成代码为18的错误,这样就可以使用错误处理来利用该错误。 下面是一个代码示例。...循环执行5秒钟,如果在循环执行过程中,用户尝试中断代码,则会引发错误,从而执行错误处理语句。...Resume Else '其他代码 End IfEnd Sub 其实,在程序中可以有多个Application.EnableCancelKey语句。
对于可预见的错误,编写特定的代码来处理它们。对于不可预见的意外错误,则使用VBA错误处理语句来处理。 在VBA中,On Error语句用于错误处理。当代码运行时发生错误时,该语句将执行相应操作。...On Error语句有4种不同的使用方式: 1.On Error GoTo 0 代码停止运行在出现错误的行并显示错误消息。...On Error GoTo 0 这是VBA默认的处理错误的操作。 发生错误时,VBA将在出现错误的行上停止运行并显示错误消息。此时,需要用户干预代码才能继续。在这种情况下不会发生错误处理。...让我们看一个例子。在下面的代码中,我们没有使用任何On Error语句,因此VBA默认情况下将使用On Error GoTo 0操作。...使用On Error Resume Next语句的一个原则是,其所影响的代码应该尽可能的少,当不再需要该语句时应及时关闭它。
MiniTest小程序云测试是腾讯WeTest与微信官方联合推出的小程序自动化测试服务。...基于WeTest云真机能力,支持开发者简单快捷地实现小程序智能化Monkey测试,录制回放,自定义测试和性能分析等能力。...目前,MiniTest小程序云测正在快速迭代中,近期也上线了新版测试报告、第三方接口功能。同时,我们也在持续优化服务体验,如: 1. 增加报告分享功能,增加历史报告对比功能。 2....优化报告结束时,用户通知方式(如增加邮件、短信通知等) 在小程序云测使用过程中,大家有什么想要吐槽或者反馈的吗?...腾讯WeTest为移动开发者提供兼容性测试、云真机、性能测试、安全防护等优秀研发工具,为百余行业提供解决方案,覆盖产品在研发、运营各阶段的测试需求,历经千款产品磨砺。
有时候,在代码中进行适当的错误处理,可以使代码在实际应用后更健壮,避免由于各种原因导致的代码异常给用户带来的困扰。...已使用Err.Raise代替。 概述 错误处理是指为处理应用程序运行时发生错误而编写的代码。这些错误通常是由编写代码的人无法控制的事情所引起,例如文件丢失、数据库不可用、数据无效等。...这就是VBA错误处理语句起作用的地方,它们使我们的应用程序能够优雅地处理所有意外错误。...VBA的错误类型 在VBA中,有3类错误: 1.语法错误 2.编译错误 3.运行时错误 使用错误处理来处理运行时错误。...我们通常将这些错误称为可预见的错误。如果没有特定的代码来处理错误,则将其视为意外错误。我们使用VBA错误处理语句来处理意外错误。
jsonstring) { var xotree = new XML.ObjTree(); var xml = xotree.writeXML(jsonstring); //使用...jkl-dumper.js中的formatXml方法将xml字符串格式化 //var xmlText = formatXml(xml); return xml; }...; //发起新的流 newopen(); } else if (undefined !...key: "myUsername", data: __test_account__ || this.data.name.toLowerCase() }); // 使用...websocket的xmpp链接openfire的 this.
2、goto是一个有效的语句,我经常使用它 Goto是一个有效的语句,但使用不当会产生难以驾驭的代码,而且会隐藏错误和拙劣的程序设计,当你不能想出一个更好的策略时,不要轻易使用goto语句,当你真正需要一个简单的重定向程序流时可以使用它...如果有就不要使用goto(我在VBA开发中就从未使用过goto语句)。...3、编译器是在浪费时间 和其它编译器不同,VBA编译器不会生成一个可以脱离Office独立执行的模块,相反,VBA编译器实际上是一个语法检查器,在真实运行之前,编译你的代码是捕捉语法错误简单有效的方法...4、无任何错误需要处理 大多数开发人员还没有自信到自己的代码是完美无缺的,但大多数人对错误处理都会掉以轻心,错误处理和你的设计和逻辑一样重要,不要放弃它,相反,在处理错误时应当特别小心,一个未处理的错误通常意味着程序投入使用后...8、我是唯一一个使用应用程序的人,因此我在程序中嵌入了密码 密码和用户id值永远都不应该嵌入到代码中,你可能是唯一被授权使用该应用程序的人,但这并不意味着就可以直接将密码嵌入到程序中,相反,不管是谁要使用这个程序
大多数其他语言使用大括号代替缩进,VBA使用诸如EndIf之类的关键字,正如我们刚才在代码段中看到的那样。拥有可读的代码有助于新程序员(或编写代码几个月后的你自己)回头去了解发生了什么。...科学计算功能后来以第三方软件包的形式添加。这有一个独特的优势,即数据科学家可以使用与web开发人员相同的语言进行实验和研究,web开发人员可能最终围绕计算核心构建一个可用于生产的应用程序。...例如,Excel2016增加了自动化PowerQuery的支持。一种在二十多年前就停止发展的语言正在失去过去几年在所有主要编程语言中引入的现代语言概念。例如,VBA中的错误处理确实显示了它的时代。...错误处理涉及使用标签,如示例中的Finally和ErrorHandler。...通过学习如何将Excel与Python相结合,你可以在这两个方面都获得优势,并通过自动化节省时间,且因为遵循编程最佳实践更容易而犯更少的错误,此外,如果需要,将能够在Excel之外扩展应用程序。
大家好,在介绍VBA基础知识、对象模型、事件等知识过程中,已经使用了很多次的过程,但对过程的认识并不规范。本节就对过程具体整理。...如上图所示,创建过程既有在模块中输入sub和程序名称,也有使用Excel事件时选择对象和事件来创建的。这就涉及过程的不同类型。...3、通用过程 有时再不同的事件过程中,需要执行一段相同的代码,就可以把这段代码独立出来,作为一个过程,这样的过程称为“通用过程”。...Function过程:这类过程完成指定任务,并返回一个值供调用的程序使用。 通用过程都保存着在VBA的“模块”中,一个模块可以包含任意数量的过程,同时一个VBA工程也可以包含任意多个模块。...(如下图可以创建过个模块,在一个模块中也可以添加多个过程。) 对于通用过程的理解,在介绍事件的案例,“每隔一分钟定时保存工作簿的案例中,实际就是在模块中定义了dingshi和baocun两个通用过程。
每进行一次,几乎耗费一两个小时,还不能保证不出错。 于是写下了我的第一个VBA程序,而且基本上是宏录制之后来改的,没有使用参考书及搜索引擎,全靠F1和自动提示,所以贴出来特别纪念一下。...同时为了用颜色的深浅来表示转化率的大小关系而便于比较,使用了VBA对下面的矩阵进行着色。当然有人肯定会说可以使用条件化格式,但是使用VBA保持了最高灵活度和效率。 ?...于是,我又写了一个程序将Excel中的表格输出到Powerpoint中,将一个秘书每次需要数小时才能完成的工作,简化成了一键发布,并可以在Excel中完成对PPT的更新。 ?...然后写VBA程序,根据不同的情景、不同的优先级以及不同的权重来调节零售店的覆盖率、销售拜访频率、拜访中的服务深度等多因素,同时设定这几大因素的可接受范围,逐步逼近HC的预设值。 ?...8 结 语 计算了一下,我在BCG做了三年咨询顾问,大概写了几万行VBA程序(都是自己手工输入的,没有复制拷贝和系统自动生成),每个项目一千至几千行程序不等。
学习Excel技术,关注微信公众号: excelperfect 本文主要介绍使用VBA自定义函数(UDF)实现一个名叫MaxMinFair的有趣的算法。...这个算法的基本思想是在许多需求之间公平地共享供给资源,而不会让贪婪的需求占用过多的资源。...该函数首先设置错误处理并将单元格区域强制转换为值。 该函数的结果放置在一个动态调整大小的数组中,以匹配需求的数量。...VBA代码 下面是该函数的VBA代码: Option Base 1 Function MaxMinFair(Supply AsVariant, Demands As Variant) As Variant...MaxMinFair满足了除2个最大的需求外的所有需求,而这两个最大需求被分配了相同的4.9。 小结 当想要分配资源而不允许大量资源需求来占用太多小资源需求时,MaxMinFair是一个不错的选择。
领取专属 10元无门槛券
手把手带您无忧上云