1. 前言 HeaderedContentControl是WPF中就存在的控件,这个控件的功能很简单:提供Header和Content两个属性,在UI上创建两个ContentPresenter并分别绑定到Header和Content,让这两个ContentPresenter合体组成HeaderedContentControl. 2. 以前的问题 在WPF中,HeaderedContentControl是Expander.GroupBox.TabItem等诸多拥有Header属性的控件的基类,虽然…
最近解决了一个生产bug,bug的原因很简单,就是清理缓存的方式不对.本来没啥好说的,但是考虑到我们有时候确实会在一些小问题上栽跟头,最终决定把这个小故事拿出来跟大家分享下. 风起有一天在撸代码,突然有个人加我微信,看头像是个妹子.我第一反应:对方是微商或者卖茶叶的(忍住,别笑).因为已经有很多次这种加我好友的情况了,问对方是谁就从来没有下文.所以这次我也没有通过,而是像以前一样追问了一句“我们认识吗”,就没再管它,心想对方肯定不回的.然后继续然后继续撸串,哦不,是撸代码.还没1分钟,对方竟然回…
使用mybatis逆向工程的时候,delete方法的使用姿势不对,导致表被清空了,在生产上一刷新后发现表里没数据了,一股凉意从脚板心直冲天灵盖. 于是开发了一个拦截器,并写下这篇文章记录并分享. 这锅只能自己背了 你用过 mybatis 逆向工程(mybatis-generator-maven-plugin)生成相关文件吗? 就像这样式儿的: 可以看到逆向工程帮我们生成了实体类.Mapper 接口和 Mapper.xml. 用起来真的很方便,我用了好几年了,但是前段时间翻车了. 具体是怎么回事呢…
大概所有的程序员应该都接触过批量插入的场景,我也相信任何的程序员都能写出可正常运行的批量插入的代码.但怎样实现一个高效.快速插入的批量插入功能呢? 由于每个人的工作履历,工作年限的不同,在实现这样的一个需求时,可能技术选型各有不同,有直接生成insert语句的,有用EF的或者其他的orm框架的.其实不管是手写insert还是使用EF,最终交给数据库执行的还是insert语句.下面是EF批量插入的示例代码: var list = new List<Student>(); for (int i =…
前言 刚入行测试的小伙伴可能不知道,Fiddler默认抓http的包,如果要抓https的包,是需要装证书的!什么鬼证书?不明白的话继续往下看. Fiddler 抓取 https 数据 第一步:下载 Fiddler https://www.telerik.com/download/fiddler 第二步:安装 安装 Fiddler(傻瓜式安装,无需解释) 第三步:配置 Fiddler 设置 HTTPS1.Tools-->Options-->HTTPS,配置如下置 设置 Connections2…
List<>是c#中很常见的一种集合形式,近期在阅读c#源码时,发现了一个很有意思的定义: [DebuggerTypeProxy(typeof(Mscorlib_CollectionDebugView<>))] [DebuggerDisplay("Count = {Count}")] [Serializable] public class List<T> : IList<T>, System.Collections.IList, IRea…
我们知道 Java 8 增加了一些很有用的 API, 其中一个就是 Optional. 如果对它不稍假探索, 只是轻描淡写的认为它可以优雅的解决 NullPointException 的问题, 于是代码就开始这么写了 Optional<User> user = --if (user.isPresent()) {return user.getOrders();} else {return Collections.emptyList();} 那么不得不说我们的思维仍然是在原地踏步, 只是本能的认为…
一:背景 在一个项目中,我需要修改一个全部由数字(0~9)组成的字符串的特定位置的特定数字,我采用的方式是先将字符串转换成字符数组,然后利用数组的位置来修改对应位置的值.代码开发完成之后,发现有乱码出现([]),经过排查发现,我将数字(0~9)转换成字符的姿势不对,现记下一笔,以加深印象. 二:错误的使用方式 如下代码所示,直接将int类型的数字直接转换成了char类型的数据,就会出现如(图-1)所示的情况 public class TestChar { public static void m…
前言 经常有人在群里反馈,明明代码一样的啊,为什么别人的能出报告,我的出不了报告:为什么别人运行结果跟我的不一样啊... 这种问题先检查代码,确定是一样的,那就是运行姿势不对了,一旦导入unittest模块,pycharm会自动识别以unittest的姿势去运行了. 一.unittest运行单个用例 1.如下代码,如果我只想运行其中的一个,如test1,如何运行呢?…
Spring之RequestBody的使用姿势小结 SpringMVC中处理请求参数有好几种不同的方式,如我们常见的下面几种 根据 HttpServletRequest 对象获取 根据 @PathVariable 注解获取url参数 根据 @RequestParam 注解获取请求参数 根据Bean的方式获取请求参数 根据 @ModelAttribute 注解获取请求参数 对上面几种方式有兴趣的可以看一下这篇博文: SpringMVC之请求参数的获取方式 除了上面的几种方式之外,还有一种 @Req…
[From] https://unmi.cc/proper-ways-of-using-java8-optional/ 我们知道 Java 8 增加了一些很有用的 API, 其中一个就是 Optional. 如果对它不稍假探索, 只是轻描淡写的认为它可以优雅的解决 NullPointException 的问题, 于是代码就开始这么写了 Optional<User> user = ...... if (user.isPresent()) {    return user.getOrders();…
前言 经常有人在群里反馈,明明代码一样的啊,为什么别人的能出报告,我的出不了报告:为什么别人运行结果跟我的不一样啊... 这种问题先检查代码,确定是一样的,那就是运行姿势不对了,一旦导入unittest模块,pycharm会自动识别以unittest的姿势去运行了. 一.unittest运行单个用例 1.如下代码,如果我只想运行其中的一个,如test1,如何运行呢?…
Description Fat brother and Maze are playing a kind of special (hentai) game on an N*M board (N rows, M columns). At the beginning, each grid of this board is consisting of grass or just empty and then they start to fire all the grass. Firstly they c…
为了方便,我们会在系统中加入一些调试代码,比如自动登录,这样会省掉很多精力时间,但用的姿势不对, 第一重姿势:打包注释 我看一些人在vs中加调试代码(比如自动登录),然后打包的时候注释掉,这样操作是省时了.但要时刻记得去掉代码,否则可能会出大事. //注释代码,正式发布时去掉 string UserName = "administrator"; "; AutoLogin(UserName, Password); 第二重姿势:用#if预处理器指令 当C# 编译器遇到 #if 指…
Description Fat brother and Maze are playing a kind of special (hentai) game on an N*M board (N rows, M columns). At the beginning, each grid of this board is consisting of grass or just empty and then they start to fire all the grass. Firstly they c…
SpringBoot 系列教程之编程式事务使用姿势介绍篇 前面介绍的几篇事务的博文,主要是利用@Transactional注解的声明式使用姿势,其好处在于使用简单,侵入性低,可辨识性高(一看就知道使用了事务):然而缺点也比较明显,不够灵活,稍不注意,可能就因为姿势不对,导致事务不生效 本文将介绍另外一种事务的使用姿势,借助TransactionTemplate的编程式事务 I. 配置 本篇主要介绍的是jdbcTemplate+transactionTemplate来完成一个编程式事务的实例 de…
我是3y,一年CRUD经验用十年的markdown程序员‍常年被誉为优质八股文选手 今天来聊些大家都用得上的东西:数据链路追踪.之前引入了系统的监控来快速定位应用操作系统上的问题,而业务问题呢?在这篇文章中你可以看到用注解的方式打印日志,也能看到简易版的全链路追踪是怎么实现的. 不多BB,开始吧 01.注解日志打印 日志的搭建我在austin最开始的前几篇已经有提及了,之前一直在等我的基友@蛮三刀酱他的日志组件库上传到Maven库,好让我使用使用下.在最近,他已经更新了两个版本,然后传到了Mav…
在项目中使用异步(async await)的时候发现一个现象,HttpContext.Current为null,导致一系列的问题. 上网查了一些资料后找到了一个对象: System.Threading.SynchronizationContext (提供在各种同步模型中传播同步上下文的基本功能.), 跟踪代码后发现 SynchronizationContext.Current 返回的是一个叫 System.Web.LegacyAspNetSynchronizationContext 的内部类对象…
        题目1001:       大意:已知$n$个角色,$m$种怪物种族,$k$个怪物,给出一组角色编号,编号$P_{i}$的角色能肝死编号$i$的怪物,对于给定的一组怪物编号,为了打通关,求切换角色的次数.另外初始默认第$1$个角色上场.       思路:模拟水题,没啥好说的,先随便弄个数组比如叫$monitors$,于是$monitors[i]$$=$$P_{i}$,然后去肝那群怪,初始变量$actor$$=$$1$,循环每次读一个怪物编号$x$,如果$monitors[x]$…
Android Studio开发环境配置-Windows 最近突发奇想,开始研究Android开发.开始时使用Eclipse作为开发IDE,结果各种不好使,首先下载和安装SDK,以及不同版本的Image文件就快把我搞到半死,记得之前有一次下载一个Inter x86 Atom_64 System Image,搞了快一天的时间,解压缩竟然花费了3-4个小时,也不知道是不是我打开的姿势不对.后来果断更换Google的亲儿子Android Studio,用了之后就感觉“天亮啦”!现在年纪大了,记忆力变差…
http://blog.csdn.net/myarrow/article/details/45242403 1. 简介 Mecanim把游戏中的角色设计提高到了一个新的层次,使用Mecanim可以通过Retargeting(重定向)来提高角色动画的重用性.在处理人类角色动画时,用户可以使用动画状态机来处理动画之间的过渡及动画之间的逻辑. Mecanim支持运动重定向(Retargeting)功能:即把动画从一个角色模型应用到另一个角色模型上的功能. 2. Animator关键元素 2.1 Ani…
现有的webtest是基于Robot 和 Selenium 来写的,没出问题的时候还挺好的,出了问题想debug介个麻烦啊(也可能是姿势不对), 特罗列如下,如有不对,求指正,指导. 1. RIDE 基本没办法在Mac上跑起来RIDE 是Robot Test Framework最好的IDE, 无论是编辑还是跑case都是一把好刷子,只是到了mac上,安装就很费劲,跑起来经常崩溃... 2. Selenium go to 不能忽略404错误 有一些测试网页上面的元素会报404, selenium…
web: 1.web萌新福利 没啥好说的,右键查看源码得key 2.you are not admin 一看题目,就想到http头修改,常见的x-forwarded-for,referer,host,client-ip,location更改x-forwarded-for为127.0.0.1即可得key 3.简单的注入: 直接丢sqlmap,没有过滤什么参数,--dump即可. 4.萌新题目 svn泄露,算是一个源码泄漏的漏洞吧,直接在url后面加上.svn/entries即可暴露出源码. 关于S…
滑屏动画 在Android系统中,通过手势识别切换界面时,通常会在界面切换时加入动画,以提高用户的体验效果,这种动画一般都采用平移动画,下一个界面进入时,上一个界面移除屏幕. 图中标识的均为左上角坐标,进入屏幕的界面坐标是(100%p,0),从屏幕切出界面的坐标是(-100%p,0).需要注意的是,p指的是屏幕,100%p表示整个屏幕.切入和切出界面都是以整个屏幕为单位计算的. 界面切换的平移动画有四个,分别是下一个界面的进入和切出效果,以及上一个界面进入和切出的效果.接下来分别是这四个动画文件…
java与c#都支持反射,但是从网络上搜索两大阵营对于反射的态度,基本上.net开发人员都建议慎用反射,因为会有性能开销:反到是java阵营里好象在大量肆无忌惮的使用反射.于是写了下面的测试代码: c#版的: 二个project,如上图,Model项目中就只有一个实体类Person,代码如下: using System; namespace Model { public class Person { private int Add(object i,object j) { return (int…
从setTimeout说起 众所周知,JavaScript是单线程的编程,什么是单线程,就是说同一时间JavaScript只能执行一段代码,如果这段代码要执行很长时间,那么之后的代码只能尽情地等待它执行完才能有机会执行,不像人一样,人是多线程的,所以你可以一边观看某岛国动作片,一边尽情挥洒汗水.JavaScript单线程机制也是迫不得已,假设有多个线程,同时修改某个dom元素,那么到底是听哪个线程的呢? 既然已经明确JavaScript是单线程的语言,于是我们想方设法要想出JavaScript的…
传送门 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 131072/131072 K (Java/Others)Special Judge Problem DescriptionThere is a river on the Cartesian coordinate system,the river is flowing along the x-axis direction. Rower Bo is placed at $(0,a…
Codeforces Round #270 A - Design Tutorial: Learn from Math 题意:给出n,求出两个合数x和y使x+y=n. 题解:暴力筛合数,然后暴力找 //#pragma comment(linker, "/STACK:102400000,102400000") #include<cstdio> #include<cmath> #include<iostream> #include<cstring&g…
先来贴几个比较全面的帖子,看完就差不多了. 1   iOS 9 通用链接(Universal Links) 帖子注意项非常重要,仔细阅读. 自己补充几点: 1 服务器上配置的json文件apple-app-site-association中的path可以使用通配符.比如:/a/*. 第一个*是通配域名. /a/是为了区分不同的客户端,比如有两个客户端,一个是a客户端,一个是b客户端.另外一个可以这么写:/b/*. 第二个*是通配子路径,可以带参数来区分拉起app后做什么. 2 测试步骤很重要,一…
MZL's endless loop Time Limit: 3000/1500 MS (Java/Others)    Memory Limit: 131072/131072 K (Java/Others)Total Submission(s): 898    Accepted Submission(s): 178Special Judge Problem Description As we all kown, MZL hates the endless loop deeply, and he…