因为功能级的耦合度就很高。因此,我认为我的产品的复杂度应该相当于普通应用程序500K+的水平。 目前单元测试有1300+。这些单元测试主要是自5.1和6.0阶段引入的。对遗留代码的单元测试很少。...对已有代码编写单元测试的难度非常高 4. 当单元测试很多的时候,组织和命名会比较有挑战。 5. 目前很少遇到单元测试影响重构的情况。 6. 单元测试对重构的帮助不如预期 7....目前的现状下,很多平台的限制,使能够单元测试的部分很少。 再说想法 1. 单元测试可以作为开发Leader掌控设计的一种工具 2. 单元测试可以帮助开发人员设计出更好的结构 3....当时,项目突击了一段时间的单元测试。硬任务,每人必须写nnn个单元测试。后来,产品升级的过程中,就不断的删除原有的单元测试。那是因为后来没有人将单元测试作为指标了。...这一点,应该说和单元测试的覆盖率较低有关。 7. 目前的现状下,很多平台的限制,使能够单元测试的部分很少。 虽然我很有意识的推动单元测试,并且在实际开发中使用单元测试。
阅读更多 1、MS的JVM是那个版本的? 是1.1.4的,你可以用这个工具来检测就知道了。...工具的下载地址在我的Java资料站里http://61.131.30.58/123/Develop/Java/ 里的资料工具里有个叫MSJVMVerChecker的,在DOS下运行即可知道信息的。...编译的Applet不用下载jre用IE内置的JVM就可以?...Javac -target 1.1 YourClass.java即可,如果你用了swing等其它包的话请把附加的一些包在applet的cabbase里进行说明即可。...但是如果你在程序中如果用了其它的高版本的Java的特性的话,那就不行了,比如你在Applet里用了Java的泛型,那肯定再怎么编译IE自带的JRE也运行不了的。
盒模型分为:W3C标准盒模型和IE盒模型 W3C 盒子模型的范围包括 margin、border、padding、content,并且 content 部分不包含其他部分。...IE 盒子模型的范围也包括 margin、border、padding、content,和标准 W3C 盒子模型不同的是:IE 盒子模型的 content 部分包含了 border 和 pading。...Media Query(Bootstrap) viewpoint缩放 固定高度 浮动百分比 动态计算与rem(淘宝的flexible) 二、JQuery方面 1、事件on和click有何不同...//事件流即当事件触发某个元素的同时,也触发了包含这个元素的所以祖先容器 //IE:事件冒泡(由最开始具体的元素接收,然后逐级向上传播) //Netscape:事件捕获(最外层更早接收到事件,最具体的元素最后接收到事件...解除事件 //IE事件处理程序 btn3.attachEvent("onclick",showMes) //btn3.detachEvent("onclick",showMes);//解除事件 2、关于
注意点:其中伪元素before和after插入的content是插入到class=“clearfix”的div内部的头部和尾部的。...2、浮动的一些问题 1、如果原来的空间有块级标签,浮动元素不会占用其空间,换行找到空的空间进行浮动。 的效果,与我们的期望不符); 2.鼠标经过的“已访问链接”同时拥有a:visited、a:hover两种属性,后面的属性会覆盖前面的属性定义(解释同上); 所以说,a:...解析:1、设置width设置的是盒子当中content的宽度,%表示时是指占父元素width的多少(即父元素content)不包括boder,padding和margin宽度,由于页面渲染是从左往右的,...padding都是有效的,因为padding是距离content的距离,始终有参照物 2、当width=100%设置margin时,因为content的width不变,但是因为又设置了
13 Aug 2016 关于单元测试(go) 在最近开发过程中,需要每个模块都写单元测试,由于之前开发没有写单元测试的习惯,突然要求写单元测试,还不知道从何入手...,于是花了点时间学习如何写单元测试,收获很多,因此本文算是近期学习单元测试的总结,主要有以下4个方面: 1 单元测试的定义 首先看看什么是单元测试(unit testing),单元测试是将开发人员编写的一个完整的类...比如开发一个计算器,那么实现加法功能的子程序就可以从系统中隔离出来进行单元测试,当然前提是你写的代码具有可测性,我的理解是尽量模块化和函数功能单一。...2 单元测试的好处 如果开发人员在开发过程中已经做了足够的单元测试,确保了单元测试的覆盖率,那么当这些类和子程序在组合使用或者被其他模块调用时就会确保少出现bug,当然要确保没有任何bug是不可能的。...还是以开发计算器为例,如果实现加法、减法、乘法和除法的模块都已经做了充分的单元测试,那么这些模块组合在一起就能确保计算器能正常工作,不会出现很严重的bug,在一定程度上保证了软件的质量。
关于jdk环境安装的一些问题 jdk在自己电脑上安装完成之后,会有一个安装的目录,默认是放在C盘目录下,但最后放在其他盘符上,因为有的时候电脑要重装系统C盘中的文件会被清掉。...安装JDK的时候其实JDK中就自带了jre,但也可以默认安装例外的jre,默认情况下是自动安装的,例外的jre一般是跟JDK在同一目录下。如: ? ?...重新在电脑上安装JDK和直接从例外一台电脑上拷贝来的JDK的区别就是:重装的JDK会有注册表在电脑上,在联网的情况下回更新JDK。但移植过来的JDK不会更新。两者都是可以使用的。...这也会导致不小心把其他环境的路径给误删掉,解决的办法有: 先把容易变化的路径目录给提出来,%%表示动态获取某一个已存在的环境变量的值如: JAVA_HOME = D:\Java\jdk1.8.0_221...如果新开的dos窗口不是通过cmd开的,而是在原有的窗口输入start打开的dos窗口,而这个窗口会沿袭原窗口变量的值。 ?
isConnected 是判断是否处于TP钱包的 DApp 中。...基于TokenPocket钱包的Dapp 开发 需要再TP钱包的开发者模式下 输入 自己的测试地址 调用 tp.isConnected 才会return true。...如何获取当前账号由于TP钱包 支持多个底层多个账号,如果只返回当前的账号 是有问题的,所以 getWalletList 是返回的 一个数组,开发时候需要注意下,最好是提供一个 下拉列表 允许用户选择 对应的账号
注:本人感觉是STM32 Flash本身的问题....最近做STM32的远程升级,保存到Flash里面,用于记录更新状态的信息总是无故的清理掉 最终测试发现 STM32的 Flash 擦除操作 并不一定会真正的清除, 测试代码 ,底层为原子哥的底层,注:底层程序没有问题...擦除前后都是 4 ,说明操作是完全没有问题的!!!!!! ? 但是执行擦除以后却........ ? 所以写入数据的时候就会报错 ?...说明STM32的Flash确实有bug 出现这种bug...有点蒙, 为了应对这个问题,我做了少许修改 一,擦除以后,再次判断是否真的擦除 ? 二,存储数据的地址从每一页的第十个字节开始 ?...当前方式正在测试,每隔10S更新切换一次程序,每次皆会大量的操作Flash,我让它执行一天时间,看下数据出错的概率. ?
上次的网游加速文章发表后,有人留言问了机房的选择问题,这个不是一句两句能说明白了,我单开文章进行一下说明。 机房应该如何选择 机房的选择我们要结合你的ISP运营商来进行选择。...但是像对IP地址不熟悉的很难一眼看出是怎么走的最多能看出是经过多少跳,并且到达目的地延迟的情况。这里要推荐一个工具BestTrace图形化,可以告诉你这个IP地址的物理地址以及AS号。...各平台版本长的有点小区别,其中Windows版本是功能最多的。但我手边只有macOS的机器,我们以这个版本为例。...在地址栏里可以输入域名或IP后敲击Enter开始查询,上侧列表为显示明细的每一跳的地址、延迟、物理地址、AS编号。当所有路径解析完毕后会在下侧的地图标出路由所经过的地点。...ISP的选择 上面说了这么多远程机房的选择,但如果你接入的是一个二级运营商,或者你在北方用【中国移动】都不会有太好的出国路由。那么该怎么选择ISP。 1.
highlight=eval#pandas.DataFrame.eval pandas.eval在官方文档中提示到的有点是执行高效率,同时可以使用字符串表达式进行计算,那么对于一些数学校验来说,是十分方便的...df.eval(""" c = a + b d = a + b + c a = 1 f = (c>5) or (d > 9)""", inplace=False) 可以方便的得出校验...df.eval(""" c = a + b d = a + b + c a = 1 f = (c>5) or (d > 9)""", inplace=False) 2、如果计算的键值不存在
liteos-a和Linux内核并不是共存的关系,比如手机上使用Linux,物联网上使用liteos-a,这是在华为的框架构思中这样做的。...对于6ull来说,其内部有一个固件,这个固件会根据你烧录的文件的头部把你的程序加载到内存来启动,所以只需要加头部就可以了,不需要添加额外的启动代码。 liteos-a一定要用MMU。...它里面也有设备树的概念,不过和linux相比这个概念比较简化,也可以做到设备树同样的功能。 在liteos-a里面并没有明显的总线模型。没有这么分。 GPIO子系统不是输入子系统。...Liteos-a和linux的开发非常类似,只不过linux做的比较完善,结构考虑的比较完美,也导致linux的代码很庞大。 大家不要总是将鸿蒙和linux比较。...Liteos-a启动快得益于这两点,首先它的各个驱动层次没有搞的那么复杂;第二,它挂载根文件系统时是用一个进程来实现的,所以这样就比较快。
写在开始 最近项目中出现一些问题,以前可能不大关注,但是问题是实实在在存在的。...解决方案 突然想起,以前是没有这个问题的,自从升级了Ehcache的jar包,这个问题时常出现。...false,返回false表示不执行后续的过滤器,直接返回跳转到登录页面。...,这里可以把return false 改为 return true 执行后续的过滤器,自定义Action重定向不同的页面。...第二个问题,基本就是由于未理解shiro的原理导致的,所以大家使用开源框架的时候一定要弄清楚其原理,这样才可以精确的定位问题。
关于MarkdownPad MarkdownPad是Windows下的一个多功能Markdown编辑器。即时看到你的Markdown文件,当你创建它们的时候,看起来就像是在HTML中的一样。...2.下载软件所需安装包 打开后发现预览的右边界面没有生效 ? ?...Awesomium 1.6.6 SDK.安装重启即可,下载地址:链接:https://pan.baidu.com/s/1OkfmjDCv-vAFrJRlyAbPtQ 提取码:yqgd 选择第一个常见的类型安装即可...3.关于MarkdownPad专业版 专业版的激活邮箱及秘钥,在此分享给大家。
大家好,又见面了,我是你们的朋友全栈君。 在C语言当中,我们经常会遇见一些平时感觉怎么用都不会出错的小知识点,但是再将它的难度提高一点点的时候,或者将它改变一点点,我们就不再将它用起来那么的得心应手。...左值和右值正是一个这样的十足十的例子。在学习了指针知识之后,高度理解左值与右值便不再显得那么的无聊。...例如:a=b+25; 这里,a是左值,它标识了一个可以存储结果值的点,也就是说,他有一个可以自己掌控的固定的空间,b+25是右值,因为他指定了一个值。 那么他们可以互换吗?...但是程序员并没有办法预测该结果会存储在什么地方,也无法保证下一次这个表达式的值仍然会存在原来的那个地放。其结果就是b+25不能当左值。因为他没有固定的标识一个点。...*cp+1; //它的运算顺序是,现将cp解引用,再将cp的值加1,所以是一个常量(在本题中,他表示给a+1,也就是字符b),只能做右值,不能左值; *(cp+1); //这里的运算表示ch之后的一块空间
关于 vue3,虽然之前很早就看过了,但是也只是简单的了解一番写了几个小 demo,而且我司的主要技术栈也是 vue, 近期趁着这股学习的劲,赶紧向上申请了一个内部项目,想着用 vue3 实践一波,希望这一篇总结对一些小伙伴提供一些帮助...关于 vue3 的一些疑问点 1: 使用了 Vue3,是否都要遵循用 Composition API 的形式去写页面? 答案是否定的。...不应该被option api限制思维,而更多关注逻辑内聚问题 3: 关于 setup 中没有 this 的问题 vue 官方文档是这么解释的:在 setup() 内部,this 不会是该活跃实例的引用,...6: Vue Composition API VS React Hooks Vue3 的Composition API和React Hooks的写法很像,大家都会忍不住拿他们去做个对比,关于这部分内容的...除了一些常见的问题时,更重要的就是实践,对于新项目,可以直接使用 vue3 起步,但更多的对于已有的项目,在 vue2 升级到 vue3 实践时,肯定会踩不少坑,以下是关于在实践过程中可能会遇到的一些注意点
要为 App 注册新的精确套装 ID,请访问“证书、标识符和描述文件”。...今天打开 App Store Connect 后台准备将 APP 相关的素材上传上去,发现 App Store Connect 已经改版(我猜是为了迎合 WWDC 2020 开幕 ),具体改版的样式如图...: 、 整体概括一下,主要有以下几点: 更加突出了 App 的名称,使用了黑色加粗的样式 突出了 App 的状态(已上线,正在审核或等待审核,拒绝) 重新排列了各 APP 之间的间距 将 App 提审操作整合到同一个页面...,IDFA等操作 支持第三方浏览器上传视频,譬如Chrome, 之前只能使用Safari 视频上传速度与效果明显改善 素材操作会自动保存,以前需要手动点保存 不过,发布新版本必然会带来一些意想不到的Bug..., 苹果也不例外,我习惯在"在媒体管理中查看所有尺寸"的页面中上传我的素材,但在我使用过程中我就发现上传 iPad 视频没有反应(iPhone 正常),开发者压根就不知道这个视频有没有上传,最后,偶然发现在外面的页面上传视频是能上传的
做SDK也有一段时间了,SDK底层是用java写的,早期也只提供java层的接口。...SDK的C++接口由JNI实现,使用SDK的C++接口的游戏在集成时,SDK直接向游戏游戏提供源码编译,因此需要使用NDK完成编译。在编译和环境配置过程中经常会遇到一些问题,在此总结一下。...解决方法如下: 下载eclipse关于ndk的插件com.android.ide.eclipse.ndk_23.0.2.1259578.jar 将下载好的com.android.ide.eclipse.ndk...ADT 配置(支持native编译) 使用ADT自带的Android Tools 完成配置(推荐): ADT中已经整合了关于CDT编译的相关内容。...在Builder中手动增加native的支持 对于不是使用ADT的环境,或者其他原因无法使用上面的方法配置的。也可以直接手动去配置natave的编译。
背景:项目采用的是ssh,使用urlrewrite做的转发,页面数据使用的Ajax加载。...本文讨论头信息 中带缓存控制信息的HTML页面(JSP/Servlet生成好出来的也是HTML页面)在中间缓存服务器中的缓存情况。...HTTP协议中关于缓存的信息头关键字包括Cache-Control(HTTP1.1),Pragma(HTTP1.0),last-Modified,Expires等。...; no-store,请求和响应的信息都不应该被存储在对方的磁盘系统中; must-revalidate,对于客户机的每次请求,代理服务器必须想服务器验证缓存是否过时; Last-Modified只页面的最后生成时间...,GMT格式; Expires过时期限值,GMT格式,指浏览器或缓存服务器在该时间点后必须从真正的服务器中获取新的页面信息; 上面两个值在JSP中设置值为字符型的GMT格式,无法生效,设置long类型才生效
关于文章的发布方向,虽然是单片机为主,但也尽量考虑一些其它的类型。毕竟固步自封,没什么好的结果。也欢迎大家留言,把你们感兴趣的话题说出来。...如果在停电的情况下,你想把电瓶里的电变成220V给家里电器用,那么就需要一个逆变器。用的时候注意使用功率,不要超过逆变器的功率上限。...你怎么保证逆变器的波形相位刚好和家庭用电的相位一致? 如果同一时间逆变器的电压在零下,而家里的电在零上,直接接入的话,可以看烟花了! 当然,并不是绝对不行。如果能把相位的问题解决,是可以接入的。...有人又有脑洞了,如果我弄一片太阳能发电,然后逆变入网,我家的电表会不会倒着走? 关于个人发电,能否卖给国家电网,是有相关的政策的,只是我个人不了解。欢迎了解的同学发言,如果没人发言就百度吧!...他这里说的能量反馈,并不是类似PID算法里的反馈控制的“反馈”。前面我提到说,电子负载在工作的时候,能量都哗啦啦的浪费掉了。
input是我们接受来自用户的数据常用标签,在前端开发中,相信每个人都会用到这个标签,所以在开发过程中也时候也会遇到一些问题,本文的内容是我在跟input相爱相杀过程中产生的,文章主要内容包括: 1....移动端底部input被弹出的键盘遮挡。 2. 控制input显/隐密码。 3. 在input中输入emoji表情导致请求失败。 4. input多行输入显示换行。 5.