Kiba518

Kiba518

三线城市架构师一枚。

Fork me on GitHub
摘要: 前言 部署,通常的情况下,它其实也是项目开发的一个难点。 为什么这么说呢?因为,它不是代码开发,所以很多开发者本能的拒绝学习它。 并且一个项目配置好一次以后,部署的步骤和部署的人通常很固定,所以大部分开发者也没机会去学习它。 就算学会了部署的开发者,如果长期不使用,也是很容易忘记部署的方法的。 所以 阅读全文
posted @ 2019-03-04 09:21 kiba518 阅读(5419) 评论(8) 推荐(8) 编辑
摘要: 相信我,这不是一篇吐槽文章。。。。 基础控件 Android的控件和控件样式非常特别,它是一种内联特别高的设计模式,换句话说,它是非常烂的设计。。。。 但在这种特别的关系里还是有一定的规律的,下面我们一起来看看控件的使用方式。 首先我们定义一个ImageButton,如下: 如上代码所示,我们定义了 阅读全文
posted @ 2019-02-20 11:50 kiba518 阅读(4376) 评论(4) 推荐(17) 编辑
摘要: 创建项目 使用Xamarin开发安卓项目,首先需要安装VS2017以上版本。因为VS2017以上的版本,可以直接创建Xamarin项目。 另外用Xamarin开发安卓项目,还需要使用Intel的CPU,并且得是双核以上的CPU,因为调试时,需要使用电脑的虚拟化,奔腾4之类的CPU是不支持虚拟化的。 阅读全文
posted @ 2019-02-14 09:04 kiba518 阅读(9653) 评论(16) 推荐(22) 编辑
摘要: 死锁杂谈 当数据库死锁时,SqlServer会释放一个优先级较低的锁,让另一个事务运行;所以,即时去捕捉数据库死锁,是挺不容易的。 如果,数据库死锁比较长时间,那么死锁是可以被捕捉的。 可以用SqlServer活动监视器来查看,哪些进程锁了数据库。 首先打开SqlServer活动监视器,然后可以看到 阅读全文
posted @ 2019-02-02 08:38 kiba518 阅读(8051) 评论(4) 推荐(15) 编辑
摘要: WPF自定义控件创建 本文简单的介绍一下WPF自定义控件的开发。 首先,我们打开VisualStudio创建一个WPF自定义控件库,如下图: 然后,我们可以看到创建的解决方案如下: 在解决方案中,我们看到了一个Themes文件夹和一个CS文件。 其中CS文件,就是我们需要编写的自定义控件,里面的类继 阅读全文
posted @ 2019-01-23 10:20 kiba518 阅读(3339) 评论(0) 推荐(5) 编辑
摘要: 技术文档编写首先寻找资料,阅读资料可以和编写文档同时进行,即编写段落一时查询段落一的相关资料,当编写到后面的段落时,发现和前面的段落有冲突,在回头整改,整个过程类似于ABSD和螺旋开发模式。 第一部分技术文档的开头无外乎背景、目标、范围、参考资料等等,这些是纯商务描述,有成型的资料最好,不然就只能在 阅读全文
posted @ 2018-12-28 13:21 kiba518 阅读(613) 评论(0) 推荐(2) 编辑
摘要: 前言 领域驱动设计,其实已经是一个很古老的概念了,但它的复杂度依旧让学习的人头疼不已。 互联网关于领域驱动的文章有很多,每一篇写的都很好,理解领域驱动设计的人都看的懂。 不过,这些文章对于那些初学者而言,还是如同天书一样。 买本驱动领域的书来看?别逗了,这可不是C#语法入门,哪里有书能写明白的。 想 阅读全文
posted @ 2018-12-03 08:31 kiba518 阅读(1530) 评论(3) 推荐(4) 编辑
摘要: 前言 AOP,大家都是听过的,它是一种面向切面的设计模式。 不过AOP虽然是被称为设计模式,但我们应该很少能看到AOP设计的框架。为什么呢? 因为,AOP单独设计的框架几乎是无法使用的。普遍的情况是,AOP要是和其他设计模式结合在一起使用。 所以,AOP虽然是设计模式,但我认为它更接近一种设计元素, 阅读全文
posted @ 2018-11-12 09:38 kiba518 阅读(4755) 评论(13) 推荐(27) 编辑
摘要: 前言 这篇文章是WPF框架系列的最后一篇,在这里我想阐述一下我对框架设计的理解。 我对框架设计的理解是这样的: 框架设计不应该局限于任何一种设计模式,我们在设计框架时,应该将设计模式揉碎,再重组;这样设计出来的框架才具有一战之力。 框架设计应该根据项目团队成员水平量身定制。 我上一篇文章《我们都知道 阅读全文
posted @ 2018-10-29 09:13 kiba518 阅读(3622) 评论(5) 推荐(8) 编辑
摘要: 要获取WPF控件的原始样式,需要我们安装Blend for Visual Studio。 然后,我们打开Blend for Visual Studio,创建一个WPF项目。 然后,我们向页面拖动一个Button,页面如下: 接下来,我们右键Button控件,选择编辑模板,在选择编辑副本,页面如下: 阅读全文
posted @ 2018-10-27 09:53 kiba518 阅读(1855) 评论(1) 推荐(3) 编辑
摘要: 前言 这个框架写到这里,应该有很多同学发现,框架很多地方的细节,其实是违背了MVVM的设计逻辑的。 没错,它的确是违背了。 但为什么明知道违背设计逻辑,还要这样编写框架呢? 那是因为,我们编写的是框架,是使用MVVM的概念编写框架,而并不是要完美的实现MVVM设计。 两者有什么区别呢?区别就是前者是 阅读全文
posted @ 2018-10-11 15:57 kiba518 阅读(4496) 评论(3) 推荐(15) 编辑
摘要: 这世上,没人能一次性写出完美无缺的框架;因为,任何一个框架都需要项目的淬炼,然后才能升华,趋近完美。 所以,框架是个反复修改的东西,最终形成的东西。 如果你学了一点技术,觉得自己可以写出框架了,觉得自己有架构师的能力,然而自己总是怀才不遇——那一定是你的错觉。 因为,你框架没有经过项目淬炼;而淬炼过 阅读全文
posted @ 2018-09-20 10:40 kiba518 阅读(5606) 评论(35) 推荐(27) 编辑
摘要: MVVM的特点之一是实现数据同步,即,前台页面修改了数据,后台的数据会同步更新。 上一篇我们已经一起编写了框架的基础结构,并且实现了ViewModel反向控制Xaml窗体。 那么现在就要开始实现数据同步了。 DataContext—数据上下文 在实现数据同步前,我们要了解一个知识点——DataCon 阅读全文
posted @ 2018-09-10 09:05 kiba518 阅读(7546) 评论(16) 推荐(9) 编辑
摘要: 前言 我想,有一部分程序员应该是在二三线城市的,虽然不知道占比,但想来应该不在少数。 我是这部分人群中的一份子。 我们这群人,面对的客户,大多是国内中小企业,或者政府的小部门。这类客户的特点是,资金有限,人力有限。 什么意思呢?就是你如果敢给他安一台Linux服务器,客户的信息员和测试员会把你堵在墙 阅读全文
posted @ 2018-09-03 09:19 kiba518 阅读(23439) 评论(23) 推荐(71) 编辑
摘要: 前言 编程其实就是写代码,而写代码目的就是实现业务,所以,语法和框架也是为了实现业务而存在的。因此,不管多么高大上的目标,实质上都是业务。 所以,我认为不要把写代码上升到科学的高度。上升到艺术就可以了,因为艺术本身也没有高度。。。。 软件设计存在过度设计,语法和框架的理解,也存在过度理解。比如,反编 阅读全文
posted @ 2018-08-27 09:11 kiba518 阅读(7685) 评论(20) 推荐(49) 编辑
摘要: 在C#中消息有两个指向,一个指向Message,一个指向INotify。这里主要讲INotify。 INotify也有人称之为[通知],不管叫消息还是通知,都是一个意思,就是传递信息。 消息的定义 INotify消息其实是一个接口,接口名叫INotifyPropertyChanged。接口定义如下: 阅读全文
posted @ 2018-08-15 08:33 kiba518 阅读(10352) 评论(6) 推荐(19) 编辑
摘要: 事件是C#的基础之一,学好事件对于了解.NET框架大有好处。 事件最常见的比喻就是订阅,即,如果你订阅了我的博客,那么,当我发布新博客的时候,你就会得到通知。 而这个过程就是事件,或者说是事件运行的轨迹。 事件是发散,以我的博客为核心,向所有订阅者发送消息。我们把这种发散称之为[多播]。 最常见的事 阅读全文
posted @ 2018-08-13 08:57 kiba518 阅读(3554) 评论(5) 推荐(5) 编辑
摘要: 本篇文章主要介绍SqlServer使用时的注意事项。 想成为一个高级程序员,数据库的使用是必须要会的。而数据库的使用纯熟程度,也侧面反映了一个开发的水平。 下面介绍SqlServer在使用和设计的过程中需要注意的事项。 SqlServer注意事项 Sql事务启动语句 开始事务:BEGIN TRANS 阅读全文
posted @ 2018-07-30 09:09 kiba518 阅读(5226) 评论(25) 推荐(15) 编辑
摘要: 本篇文章主要介绍委托的应用。 委托是大家最常见的语法了,但会用与精通之间的差距是巨大的。 一个程序员如果不能精通委托,那么,他永远无法成为高级程序员。 所以,让我们把委托刻到血液里吧。 这样,你才能称为Developer。 阅读全文
posted @ 2018-07-23 08:53 kiba518 阅读(6680) 评论(28) 推荐(37) 编辑
摘要: 本篇文章主要介绍泛型的应用。 泛型是.NET Framework 2.0 版类库就已经提供的语法,主要用于提高代码的可重用性、类型安全性和效率。 泛型的定义 下面定义了一个普通类和一个泛型类,我们可以明确看到泛型类和普通类最大的区别就是多了一个<T>。 所以,这个<T>就标记了,这个类是泛型类。其中 阅读全文
posted @ 2018-07-18 07:06 kiba518 阅读(6132) 评论(7) 推荐(17) 编辑
摘要: C#—Nhibernate探索 本篇文章,让我们一起来探索Nhibernate。 首先我们去搜索Nhibernate下载地址,如下链接所示。 该版本可能是最新版,我下载的4.0.4.GA。其中GA意思我没搞清楚。不过应该不重要。 https://sourceforge.net/projects/nh 阅读全文
posted @ 2018-07-16 08:57 kiba518 阅读(2147) 评论(14) 推荐(6) 编辑
摘要: C#5.0推出了新语法,await与async,但相信大家还是很少使用它们。关于await与async有很多文章讲解,但有没有这样一种感觉,你看完后,总感觉这东西很不错,但用的时候,总是想不起来,或者不知道该怎么用。 为什么呢?我觉得大家的await与async的打开方式不正确。 正确的打开方式 首 阅读全文
posted @ 2018-07-12 10:25 kiba518 阅读(8741) 评论(31) 推荐(33) 编辑
摘要: 什么是SA? SA即Systems Architecture,是系统体系结构。 系统体系结构是定义系统的结构、行为和系统视图的概念模型。架构师将其系统的形式化描述或表示出来,以支持结构和行为的推理的方式组织。 谈起SA,我第一印象总觉得他是一个概念,一个混淆的概念,因为他被提出时就是模糊的。然而随时 阅读全文
posted @ 2018-07-03 13:05 kiba518 阅读(1047) 评论(1) 推荐(1) 编辑
摘要: CancellationToken的多种应用 这是线程安全的最后一篇了,主要介绍CancellationToken的多种应用。 1,ThreadPool直接启动线程,传递CancellationToken。 2,Task启动线程,传递CancellationToken。Task传递方式分为两种,一种 阅读全文
posted @ 2018-06-28 20:11 kiba518 阅读(787) 评论(1) 推荐(0) 编辑
摘要: 元组Tuple 我们现在使用的C#语法已经可以满足日常的开发需求,但C#语法还在进行版本的更新,在创造更多更优秀的语义来让我们使用。这里介绍一下C#5.0里的提供的语法——元组。 在C#中定义Tuple对象,转到定义查看,我们会看到如下代码 即该语法在.Net Framework4框架中已经可以支持 阅读全文
posted @ 2018-06-28 13:05 kiba518 阅读(3650) 评论(3) 推荐(2) 编辑
摘要: 一个团队的成员有很多人,其中包括项目经理,架构师,组长,组员等等其他人员。就纯开发而言,编写代码的人员只有架构师和组长、组员三个角色。要完成架构,就要利用好三种角色的关系,并且使用正确的人。架构师的责任是架构,构建出框架的摸样,而架构在实际应用中包含着两个概念:业务和开发。 业务是什么? 业务是架构 阅读全文
posted @ 2018-06-26 08:28 kiba518 阅读(3752) 评论(12) 推荐(15) 编辑
摘要: 架构师要做什么? ADMEMS矩阵,明确介绍了架构师需要思考的问题,而在这个矩阵中,做为一个架构师最需要了解的什么呢?技术?业务?都不是,最需要了解的是你的领导,其次是你的团队成员。 如果你的领导是不懂且不放权的类型,那你的好架构要如何实现呢。如果你的团队技术烂的一塌糊涂,又如何开发出成熟的产品?看 阅读全文
posted @ 2018-06-25 09:04 kiba518 阅读(1124) 评论(8) 推荐(7) 编辑
摘要: 关于开发者的技术水平到底该如何定义,到底一个人的技术水平应该定位在高、中、低的标准是什么呢?很多人觉得这是一个仁者见仁的问题,有人觉得根据公司的那个员工等级判断。答案是肯定不是,从纯开发技术的角度来分析。很多人觉得自己一门语言精通了就去学其他语言了,美其名曰集大成者,这样的工作十几年却是初级水平的技 阅读全文
posted @ 2018-06-21 08:38 kiba518 阅读(9847) 评论(80) 推荐(40) 编辑
摘要: 这是时隔多年第四篇,主要是因为身在东软受内网限制,好多文章就只好发到东软内部网站,懒的发到外面,现在一点点把在东软写的文章给转移出来。 这里主要讲解下CancellationTokenSource,CancellationTokenSource是用于取消线程,具体使用起来有点另类:首先定义实体,然后 阅读全文
posted @ 2017-05-27 13:55 kiba518 阅读(877) 评论(0) 推荐(0) 编辑
摘要: 首先说下算法原理: 1,设0为源点,建立两个集合S,T,S保存节点0,T集合保存节点1,2,3,4。(S,T是官方定义名称,个人理解S应该是source的缩写,T是target的缩写,看了英文是不是就明白点了) 2,先找出0到其他点最短的点,0到1等于10,即0-1为最短。那么将1添加进S,将1从T 阅读全文
posted @ 2013-11-19 14:07 kiba518 阅读(1632) 评论(0) 推荐(0) 编辑
摘要: 在讲CancellationTokenSource之前我决定先讲一下lock和Interlocked,如果能很好的理解这两个,再去理解CancellationTokenSource就会方便很多,由于我也是后起使用多线程,使用的时候就是直接运用FramWork4的东西,这样导致了很多东西学起来很吃力, 阅读全文
posted @ 2013-10-21 15:46 kiba518 阅读(1280) 评论(0) 推荐(1) 编辑
摘要: 刚才想了半天文章应该起什么名字,最后决定起名为《线程安全使用》,线程安全这个词很难理解,感觉就像托管这词一样,但是托管翻译成英文是managed,我通常把他翻译成被管理,这样就好理解多了,线程安全也是一样,可以理解为可以被多个线程同时使用的集合,而且同时使用的时候是该集合的值是准确的。 MSDN将在 阅读全文
posted @ 2013-10-18 10:24 kiba518 阅读(1309) 评论(0) 推荐(0) 编辑
摘要: 关于Task的使用,一直都是半知半解,最近终于有时间详细的看了一遍MSDN,作为备忘录,将心得也记录下来和大家分享。 首先,根据MSDN的描述,Task是FrameWork4引进的新功能,他和ConCurrent命名空间一起被引进,用来替代Thread的使用。 根据我的使用,个人觉得,他确实比The 阅读全文
posted @ 2013-10-18 09:39 kiba518 阅读(1757) 评论(4) 推荐(0) 编辑
摘要: 任务嵌套就是指在一个任务中又创建了一个任务,而这个新建的任务,就被称为子任务。在没有特殊声明的情况下,父子任务是一起运行的,如SimpleNestedTask方法。 如果想让父子任务关联起来的话,需要在创建子任务的时候,增加参数TaskCreationOptions.AttachedToParent 阅读全文
posted @ 2013-06-14 08:58 kiba518 阅读(1631) 评论(0) 推荐(0) 编辑
摘要: 对于在SQL里循环是件挺难受的事,虽然可以利用游标,但是游标的表如果正在被频繁使用那就悲剧了,于是只能想别的方法循环了,这里利用CHARINDEX循环。循环的模式可以是存储过程查询传递过来的内含规则的变量,也可以是数据库数据,如果是传递的变量看下面的代码即可。declare @str varchar(100) --字符串declare @k int --字符串的断点位置 数值型declare @start int --当前字符串开始位置set @str=''set @start=2set @k=charindex('>',@str,@start)--pri 阅读全文
posted @ 2012-08-07 14:49 kiba518 阅读(791) 评论(0) 推荐(0) 编辑
摘要: 鉴于上一篇文章代码过多,被版主从首页删除了,本文只提取部分代码展示。 同上一篇文章一样,游戏还是小鸡快跑,不同的是,这次的小鸡不在是跳大坑,而是躲子弹了。 关于做游戏,还是那两样要点,对象和屏幕。不过,由于WPF不同Winform,它没有paint方法,所以使用WPF做游戏,只能考虑用别的方法来进行 阅读全文
posted @ 2012-06-14 15:27 kiba518 阅读(3514) 评论(9) 推荐(2) 编辑
摘要: 首先,了解下WinForm做游戏的基本思路: 做游戏需要的最基本的两个元素,一个是屏幕,另一个就是在屏幕的移动的对象了。 然后,了解下parint事件,WinForm的对象都是继承至Control类的,而Control类中包含一个事件PaintEventHandler Paint,paint翻译过来 阅读全文
posted @ 2012-06-11 16:43 kiba518 阅读(5215) 评论(8) 推荐(4) 编辑