- 博客(39)
- 收藏
- 关注
转载 【技巧】如何清空SQLServer的日志文件
一、应用场景在一次项目实施的过程中,发现一个小问题,在开发环境中备份下来的数据库大约15G,压缩后更小一些,但是在另外一台设备上部署的时候,发现总是提示空间不足。通过查询发现数据库的日志文件比较大,导致空间的不足,找到问题的原因所在,就可以针对这个问题,找到一个简单的解决方案。二、解决问题首先将数据库的【恢复模式】设置成【简单】,操作步骤是右键单击目标数据库,选中【选项】,右...
2018-12-14 16:33:00
289
转载 【拾遗】理解Javascript中的Arguments
前言最近在看JavaScript相关的知识点,看到了老外的一本Javascript For Web Developers,遇到了一个知识盲点,觉得老外写的很明白很透彻,记录下来加深印象,下面是我摘出来的一些片段,片段下有对应的解释,希望也能帮助其他人扫除这个盲点。如有翻译的不得体的地方还请在评论区指出,不胜感激。理解Javascript中的ArgumentsFunctio...
2018-07-25 08:36:00
172
转载 【源码】进入ASP.NET MVC流程的大门 - UrlRoutingModule
UrlRoutingModule的功能在ASP.NET MVC的请求过程中,UrlRoutingModule的作用是拦截当前的请求URL,通过URL来解析出RouteData,为后续的一系列流程提供所需的数据,比如Controller、Action等等。其实,UrlRoutingModule和我们自定义的HttpModule都是实现了IHttpModule接口的两个核心方法,Init...
2018-07-04 15:18:00
211
转载 【原理】解析一致性哈希算法
前言在了解一致性哈希算法之前,最好先了解一下缓存中的一个应用场景,了解了这个应用场景之后,再来理解一致性哈希算法就容易多了,也更能体现出一致性哈希算法的优点。那么,我们先来描述一下这个经典的分布式缓存的应用场景。应用场景假设,我们有三台缓存服务器,用于缓存图片,我们为这三台缓存服务器编号为0号、1号、2号,现在有三万张图片需要缓存,我们希望这些图片被均匀地缓存到这三台服务器上...
2018-05-31 09:55:00
179
转载 【总结】数据库优化的若干方法
导图下图是我结合自己的经验以及搜集整理的数据库优化相关内容的思维导图,如果图片不清楚,可以在浏览器中右键,在新窗口中查看(Chrome)或者查看图像(FireFox)。常用关键字优化在编写T-SQL的时候,会使用很多功能类似的关键字,比如COUNT和EXISTS、IN和BETWEEN AND等,我们往往会根据需求直奔主题地来编写查询脚本,完成需求要求实现的业务逻辑即可,但...
2018-05-22 09:20:00
153
转载 【转载】JavaScript基础知识体系
前言最近总是有一种感觉,对于知识没有积淀,很多时候都是忘记了哪里就去查一下,比如JS这种语言,很是浪费时间,如果能够把这些知识形成知识体系塞进大脑,做到即用即取就好了,那么就可以借助思维导图来帮助我们完成这项工作。所谓温故而知新,今天把JavaScript相关的知识整理下(图片来自网络)。JavaScript变量JavaScript数据类型JavaScript运算...
2018-04-24 15:51:00
139
转载 【转载】理解正则表达式的贪婪与非贪婪模式
概述 贪婪与非贪婪模式影响的是被量词修饰的子表达式的匹配行为,贪婪模式在整个表达式匹配成功的前提下,尽可能多地匹配,而非贪婪模式在整个表达式匹配成功的前提下,尽可能少地匹配。非贪婪模式只被部分NFA引擎(确定性有穷自动机)所支持。属于贪婪模式的量词,也叫做匹配优先量词,包括:1 “{m,n}?”、“{m,}?”、“??”、“*?”、“+?”从正则语法的角度来讲,...
2018-04-19 18:41:00
105
转载 【基础】Attribute的妙用
一、何为Attribute下面是微软官方对Attribute的解释:公共语言运行时允许你添加类似关键字的描述声明,叫做Attributes,它对程序中的元素进行标注,如类型、字段、方法和属性等。Attributes和Microsoft .NET Framework文件的元数据保存在一起,可以用来向运行时描述你的代码,或者在程序运行的时候影响应用程序的行为。通俗地理解,...
2017-11-16 09:41:00
287
转载 【翻译】.Net Core的意义
想要了解.Net Core的意义,就必须要了解拥有很长历史的.Net Framework,.Net Framework1.0于2002年发布。从那开始,每隔两年就会有一个主版本推出。伴随着Visual Studio 2013我们发布了C#5.0和.Net Framework4.5 。.Net Framework4.5是巨大的,拥有超过20000余个类。如此巨大的.Net Fra...
2017-11-07 08:01:00
118
转载 【基础】迭代器详解
一、前言在我们的日常工作中,使用foreach循环对集合进行迭代操作,是最常用的操作之一。有时我们会遇到这样的需求,在遍历迭代元素集合的过程中,根据需求去筛选修改元素,于是就顺手使用foreach进行迭代并修改,当然编译的时候会报错,提示我们在迭代的过程重视不允许对元素进行修改的,此时我们关心的是业务逻辑而并非代码本身,于是我们掉头寻找其他的解决方案。下面我们就来看看foreach迭...
2017-02-08 08:46:00
135
转载 【总结】数据库索引的实现原理
一、概述数据库索引,是数据库管理系统中一个排序的数据结构,以协助快速查询、更新数据库表中数据。索引的实现通常使用B树及其变种B+树。在数据之外,数据库系统还维护着满足特定查找算法的数据结构,这些数据结构以某种方式引用(指向)数据,这样就可以在这些数据结构上实现高级查找算法。这种数据结构,就是索引。其实说穿了,索引问题就是一个查找问题。二、索引的原理当我们的业务产生了大量的数据...
2017-02-07 11:27:00
71
转载 【实践】基于接口的插件机制
一、前言插件,意味着可扩展,且宿主程序不依赖于插件,即插即用。这种软件设计方式可以使我们的应用程序最大化地获得可扩展性、适应性和稳定性,而且便于软件的维护和升级。在什么场景下使用插件呢?例如在本篇文章中,我个人有一个小需求就是希望记事本带行号,于是我自己写了一个极简易的编辑器(CodeEditor),以这个编辑器为例,主体程序功能包括常见的新建、复制、查找、保存等已经完成,但是在使用...
2017-01-18 09:03:00
140
转载 【总结】设计模式应用之单例模式
一、前言单例模式的应用场景十分清晰,就是一句话,在整个的软件运行周期内,对于某个类只能允许有零个或一个实例。单例模式应用十分广泛,比如我们电脑上的任务管理器就是一个单例模式,无论开多少个任务管理器,你会发现只有一个窗口,这就是典型的单例模式的应用;还有,网站的访问次数统计,如果不采用单例模式会很难统计;多线程的线程池的设计一般也是采用单例模式,这是由于线程池要方便对池中的线程进行控制...
2017-01-10 08:27:00
64
转载 【基础】多线程更新窗体UI的若干方法
前言在单线程中设置窗体某个控件的值很简单的事,只需要设置控件文本的值就可以了,但是有的业务场景很是复杂,界面上的控件也很多,这种情况下当数据量比较多的时候,在单线程中更新UI不可避免地会发生假死或卡顿现象,用户体验十分不爽,所以必须采用多线程来处理数据和UI。但是如果直接添加一个线程来更新控件信息,就会抛出错误,很显然微软并不希望我们这样做,因为UI控件不是线程安全的,如果随意地在任...
2017-01-08 23:29:00
412
转载 【基础】MVC路由规则
RouteData解析过程在ASP.NET MVC中,服务器收到来自客户端的请求后,会经过一些列的处理拿到请求的数据,比如在Pipeline 管线事件中,通过订阅适当的事件,将HttpContext作为参数传入HttpContextWrapper进行封装,然后取得当前路由集合的数据RouteData进行解析,拿到具体的参数,包括请求路径、请求的参数、IRouteHandler等,通过...
2016-12-16 23:02:00
175
转载 【原创】记一次Project插件开发
开发背景最近在使用微软的Office Project 2010 进行项目管理,看到排的满满的计划任务,一个个地被执行完毕,还是很有成就感的。其实,不光是在工作中可以使用Project进行项目进度控制,同样可以把这款软件应用在日常的生活中,比如为阅读某本书排一个计划,而任务单元就是本书的目录,当然粒度可以自己定制;也可以为健身排一个计划,每周去几次健身房、每次做多少个动作、做什么类型的...
2016-12-12 09:12:00
189
转载 【总结】浅谈JavaScript中的接口
什么是接口接口是面向对象JavaScript程序员的工具箱中最有用的工具之一。在设计模式中提出的可重用的面向对象设计的原则之一就是“针对接口编程而不是实现编程”,即我们所说的面向接口编程,这个概念的重要性可见一斑。但问题在于,在JavaScript的世界中,没有内置的创建或实现接口的方法,也没有可以判断一个对象是否实现了与另一个对象相同的一套方法,这使得对象之间很难互换使用,好在Ja...
2016-09-23 08:55:00
229
转载 【总结】富有表现力的JavaScript
JavaScript的灵活性JavaScript是目前最流行、应用最广泛的语言之一,它是一种极富表现力的语言,它具有C家族语言所罕见的特性。这种语言允许我们使用各种方式来完成同一个任务或者功能,还允许我们在面向对象编程的过程使用函数式编程中的概念来丰富其实现方式。这种语言允许我们采用多种不同的编程风格进行编程,如简单一些的函数式编程,复杂一些的面向对象编程。所以我们可以在长期的编码...
2016-09-18 09:42:00
118
转载 【总结】Javascript基础
Javascript的数据类型 Number String Boolean Undefined Null Object如下图,其中Number、String、Boolean、Undefined、Null是原始类型,Object是对象类型,Object中可以包含Array、Function等类型。常规运算符下面来看几行...
2016-09-08 22:05:00
69
转载 【实践】Memcached实例解析
关于MemcachedMemcached是一个自由开源的,高性能,分布式内存对象缓存系统。 Memcached是一种基于内存的Key-Value存储,用来存储小块的任意数据(字符串、对象)。这些数据可以是数据库调用、API调用或者是页面渲染的结果。 Memcached简洁而强大。它的简洁设计便于快速开发,减轻开发难度,解决了大数据量缓存的很多问题。它的API兼容大部分流行的开发语言。...
2016-08-18 22:31:00
90
转载 【实战】设计模式应用之策略模式
前言关于设计模式的文章,园子里实在是太多太多,而且讲解的也非常精彩,那为什么我还要在这里记录下这篇文章?本文以实际项目应用“自己动手写工具--XSmartNote”为切入点,来讲述策略模式的应用。很多初学者都有一种感觉,就是在看设计模式相关文章的时候,都看得懂,而且小Demo也是手到擒来,但是就是不知道该怎么用在实际的项目中,不管你之前有没有过这种感觉,反正我是曾经有过。在前几天Re...
2016-06-01 09:03:00
134
转载 【原创】自己动手写控件----XSmartNote控件
一、前面的话在上一篇博文自己动手写工具----XSmartNote [Beta 3.0]中,用到了若干个自定义控件,其中包含用于显示Note内容的简单的Label扩展控件,用于展示标签内容的label扩展控件,还有包含自定义事件的含checkbox的控件。自定义控件的好处就是其灵活程度很高,不但可以扩展控件的外观,还可以扩展控件的事件,甚至从底层拦截Windows消息进行处理,这也是...
2016-05-24 15:52:00
142
转载 【原创】自己动手写工具----XSmartNote [Beta 3.0]
一、前面的话在动笔之前,一直很纠结到底要不要继续完成这个工具,因为上次给它码代码还是一年多之前的事情,参考自己动手写工具----XSmartNote [Beta 2.0],这篇博文里,很多园友提出了宝贵的意见。最后决定吸收园友的建议把这个工具重构一下。首先给它换了个名 称,XSmartNote。因为各种自身的原因,并没有完成这个工具的基本功能,只是实现了基本的框架。最近有点时间就搞了...
2016-05-23 08:50:00
103
转载 【总结】使用WebBrowser遇到的陷阱
前言一直想用WebBrowser做一些好玩的东西,比如抓取分析感兴趣的网站页面、自动点击提交页面等,所以最近在研究WebBrowser。WebBrowser的功能十分强大,就是一个微型的Browser,不过它也有自己的一些不足,为了下次避免再次出现这个坑,特在此总结一下。故障描述本打算用WebBrowser做一个自助登录的小程序,来登录公司内部的系统(其实公司的登录系统形同虚...
2016-02-23 16:57:00
210
转载 【基础】泛型的简单理解
前言最近工作不是很忙,抽出时间来看看C#中基础的东西,也算是“温故而知新”了,于是就看到了泛型这块儿,看了园子里其他园友的文章,讲的都很到位。这篇文章本着简单、容易理解为前提,记录下我自己对泛型的认识,方便以后查看。泛型是什么泛型是一种开放式类型,它的出现保证了我们可以创建类型安全的集合。泛型的应用场景<1>当一种逻辑适用于多种数据类型时,可以采用泛型,简...
2016-02-19 11:28:00
91
转载 【翻译】如何在AJAX生成的内容中再次运行Prism.js
前言最近用一个十分轻量级的网页代码高亮Js库,应用到项目中发现了一个问题,对于静态的已经写好的代码,Prism的高亮插件是没有问题的,但是通过Ajax异步获取数据并修改DOM时发现,Prism高亮插件失效了,经过各种调试还是没办法解决,最后终于找到了解决办法。原文是英文版的,我做了简要的翻译,如有不妥之处还请指出。以下是原文地址:http://schier.co/blog/201...
2015-09-15 12:46:00
289
转载 【基础】理解接口、抽象类及虚函数
一、前面的话对于C#中的接口、抽象类中的抽象方法以及虚方法的比较,网上有很多的例子,讲得也很到位,这篇博文的目的一方面是为了巩固自己的基础知识,另一方面是能够让初学者更加深刻、轻松地去理解和接受这三者之间的区别与联系。二、接口与抽象类首先说说接口和抽象类的区别与联系,接口是什么?接口是一组规则,它对应着自然界中“如果你是……则必须能……”的思想,如:猫猫是动物,动物可以吃食物...
2015-02-13 22:40:00
109
转载 【总结】为数据库建立索引的一般依据
建立索引常用的规则如下1、表的主键、外键必须有索引;2、数据量超过300的表应该有索引;3、经常与其他表进行连接的表,在连接字段上应该建立索引;4、经常出现在Where子句中的字段,特别是大表的字段,应该建立索引;5、索引应该建在选择性高的字段上;6、索引应该建在小字段上,对于大的文本字段甚至超长字段,不要建索引;7、复合索引的建立需要进行仔细分析;尽量考虑用...
2015-01-20 16:26:00
124
转载 【总结】.Net面试题集锦 (二)
一、前面的话本文的面试题不是很难,这里只是想记录个人的思考过程,另一方面希望有更好的解决办法的大牛留下宝贵的思路,大家共同学习进步。二、题目思路:第一步:把一维数组的值和次数存入Dictionary中;第二步:获取Dictionary中大于等于指定值的元素存入List; 第三步:将结果存入int数组并返回结果 1 ...
2015-01-09 15:14:00
78
转载 【总结】.Net面试题集锦(一)
一、背景最近一直在准备面试,收到的面试邀请邮件里还有面试题,真是要当面霸的节奏,不过看看也好,一方面能够锻炼锻炼生锈的脑子,查缺补漏一下,另一方面,万一靠这几个面试题拿到offer呢,哈哈。开个玩笑,拿offer不容易,但是连笔试都过不去的话,那就说不过去了。有些题目是概念题,有些是算法题,过于简单的大家不要喷,也许就是我们知识体系的一个盲点。下面看看一些比较有意思的面试题吧~二...
2014-12-31 15:43:00
91
转载 【技巧】为ComboBox添加自动提示
需求来源最近有个项目用到了ComboBox控件,在演示的时候,要对Word文档中选中部分添加符合DocBook标准的标签,这些标签是DocBook中元素的集合,数据量不多,大概170多个吧,但是在演示的时候我发现每次添加标签的时候都要点击ComboBox并找到指定的标签,这样在170多个标签里上下寻找也是很耗时的操作,于是我就把ComboBox的自动提示以及自动补全功能加了进去。...
2014-12-29 17:06:00
511
转载 【原创】自己动手写工具----XSmartNote [Beta 2.0]
前面的话在上一篇自己动手写工具----XSmartNote中,我简单介绍了这个小玩意儿的大致界面和要实现的功能,看了一下园子里的评论,评价褒贬不一,有人说“现在那么多云笔记的工具”,“极简版evernote”,我想说的是,别人的工具再好用,终究不是自己写的,其实写这个的目的,一方面是锻炼自己的技术能力,在coding的时候,或多或少会遇到一些问题,在解决这些问题的过程中,技术能力就会...
2014-12-16 17:16:00
91
转载 【原创】自己动手写工具----XSmartNote [Beta 1.0]
背景有个朋友是在他们单位的市场部,手里的策划文案以及PPT,少则数百,多则上千,多年下来也是一笔不可小觑的财富,每一次新的策划都可以从以往的文案或PPT中“拿来主义”,有着很好的借鉴意义,但是这么多的材料,如果挨个翻看还不得累死。我们知道每个Word或者PPT打开至少要4秒钟(我的电脑是这样,配置不赖),那几百个下来什么也不用做了,时间都在打开这些材料中度过了。而记录这些东西,又不需...
2014-11-28 17:40:00
71
转载 【原创】自己动手写工具----签到器[Beta 2.0]
前面的话上一篇中基本实现了简单的签到任务,但是不够灵活。在上一篇自己动手写工具----签到器的结尾中,我设想了几个新增功能来提高工具的灵活程度,下面把新增功能点列出来看看:(1)新增其他的进程任务;(2)任务按照进程进行分类:用IE就是执行IE的任务,与其他(如资源管理器等)无关;(3)每执行完一个任务关闭任务窗口;(4)对签到性质的任务进行”已签到“过滤;(5)...
2014-11-25 11:43:00
169
转载 【原创】自己动手写工具----签到器[Beta 1.0]
写在前面最近公司没有什么项目,想通过项目练练手的机会也没有,只能自己学习了,因此空下来的时间也挺多的,就打开网页看看吧,哎,一打开就让签到(像什么百度知道啊、百度云盘啊之类的),我签到的目的是获取积分,便于下载资料^_^,真是烦的很,要是有个工具能帮助我全自动处理该有多好,想着想着大概的思路就出来了,无非就是开启进程,传入参数,确定坐标,点击。OK啦啊哈哈~ 起来码砖了……好了,不闲...
2014-11-21 15:19:00
156
转载 【总结】详细说说Html.ActionLink的用法
Html.ActionLink概述在MVC的Rasor视图引擎中,微软采用一种全新的方式来表示从前的超链接方式,它代替了从前的繁杂的超链接标签,让代码看起来更加简洁,通过浏览器依然会解析成传统的a标签。除此之外,还允许我们添加Html属性。下面来看看@Html.ActionLink()的使用方法吧。Html.ActionLink的使用详解@Html.ActionLink(...
2014-11-19 10:24:00
192
转载 【整理】Word OpenXML常用标签
一、背景最近在做关于Word内容自动标引,需要了解Word的底层结构,顺便梳理一下OpenXML的标签含义,方便后续开发,提高对OpenXML标签的查找效率,也是一个熟悉的过程。二、内容<w:p> <!--表示一个段落--><w:val > <!--表示一个值--><w:r> <!--表示一个样式串...
2014-11-12 14:53:00
135
转载 【总结】浅谈ref与out
ref——仅仅是一个地址(1)当一个方法或函数在使用ref作为参数时,在方法中或函数中对ref参数所做的更改都将反映在该变量中。(2)如果要使用ref参数,则必须将参数作为ref显示传递到方法中。ref参数的值可以被传递到ref参数。(3)ref参数传递的变量必须初始化,因为ref参数在进入方法后还是它自己,它这个地址指向的还是原来的值,也因为这个原因,ref参数可以在使用它...
2014-10-29 10:25:00
84
转载 【原创】从另一个角度看代码统计
背景最近因为项目需要,要对工程的代码进行统计,网上有很多的代码统计工具,最常用的是<SourceCounter>,但是我发现没有针对我的需求的功能,大多是递归目录、指定文件类型、统计所有代码行数和注释行、空白行等,而我的需求是在此基础之上,还要统计每个文件中方法的个数、每个方法的行数、方法的分级(这里说的分级是指每个方法的代码行数在某个范围内,就对应一个等级)等信息。在网...
2014-04-21 10:36:00
96
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人