暂无个人介绍
能力说明:
精通JVM运行机制,包括类生命、内存模型、垃圾回收及JVM常见参数;能够熟练使用Runnable接口创建线程和使用ExecutorService并发执行任务、识别潜在的死锁线程问题;能够使用Synchronized关键字和atomic包控制线程的执行顺序,使用并行Fork/Join框架;能过开发使用原始版本函数式接口的代码。
能力说明:
熟悉微服务常用开放框架,理解Spring、Spring Boot,以及Spring Cloud的概念和不同,对Spring Cloud Alibaba有较为全面的认知。对Istio具备基础运维能力,掌握基本组件的知识。
暂时未有相关云产品技术能力~
阿里云技能认证
详细说明近日愈发觉得编程是一件有趣的事。 三年前退伍时,还没有确定要继续干这行。去了北京之后,决定写代码吧。Why? 我是一个唯物主义者。 过去两年,一直抱有的念头是,怎么着也要至少干个三年,再寻求不写代码的人生道路。
随着平台数据的积累,对于数据访问的速度要求愈来愈高。优化后台访问性能,将是之后的一个重点任务。 但是,后台在项目开发初期采用的是Abp(Lite DDD)框架,集成EnityFramework。因为之前的项目经验有用过EF,对于开发者编码来说,着实高效。
昨儿个使用远程桌面,意外发的发现连不上测试环境了。身边的同事也有连不上的。一开始以为是远程机器可能出了问题,但是而后排查确认是自个儿机器问题。原因在与机器前天晚上自动升级了系统补丁,也有部分网友反映了这个问题。
使用SignalR实现Websocket实时数据传输时,前后端各自实现编码后,无法将Websocket调试通过。沮丧之时,负责配置网络代理的同事说,网络访问这块使用了Ngnix代理设置,可能是造成Websocket链接不上的原因。
今天看到篇对于静态、动态、强类型、弱类型总结的很到位的一篇博文,在此Mark下。 编译型语言和解释型语言 1、编译型语言 需通过编译器(compiler)将源代码编译成机器码,之后才能执行的语言。一般需经过编译(compile)、链接(linker)这两个步骤。
这两天在工作中使用SignalR的WebSocket做数据实时传递的功能开发,在后端主动向前端广播数据以Json传递时,前端获取的Json中对应类的变量名首字母默认传递的是大写。而前端一直获取到的后台返回给Json中字段均为首字母小写的驼峰命名法。
最近在Refix一个支持Excel文件导入导出功能时,发现有用到反射的相关技能。故而在网上查了些资料,通过代码调试加深下理解。 class Program { static void Main(string[] args) { ...
最近在做SQL Server数据库性能优化,因此复习下一索引、视图、存储过程等知识点。本篇为索引篇,知识整理来源于互联网。 索引加快检索表中数据的方法,它对数据表中一个或者多个列的值进行结构排序,是数据库中一个非常有用的对象。
虽然之前在做Winform开发时候,经常遇到Partial关键字,但是最近在代码中看到使用Partial将同名类文件写在多个源文件中,因此想要记录下Partial的详细使用。 Partial types允许把类,结构和接口打破为多个代码碎片存在不同的源代码文件,以便于简化开发和维护。
近来开始恶补前端知识,在一定的技能基础上,逐渐开始进阶的学习和使用。因此在这里罗列下,SubLime Text3 常用插件: 1、Emmet 提高HTML & CSS3编写速度。 2、Theme – Soda 一直用的一款皮肤 3、sideBarEnhancements 侧边栏右键增效插件,提高页面处理速度。
最近开始接触Oracle,想要了解下同SQL Server使用时的区别。搜寻网上信息找到具体区别分类如下: 一、数据类型比较 类型名称 Oracle SQLServer 比较 字符数据类型 CHAR CHAR 都是固定长度字符资料但oracle里面最大度为2...
领域驱动设计备忘录: 参考:https://www.cnblogs.com/cnblogsfans/p/4284462.html#undefined 前言 领域驱动设计最近貌似开始火起来了,越来越多的人开始认识到领域设计的重要性,从我做过的项目来看,似乎欧洲已经有很多的公司开始实施领域驱动设计了...
17年入手Python语言,直接学的是Python3的语法,后来出去面试发现几乎所有招Python后端开发的都会问到Python2和Python3的区别,而且说得越详细则向面试官证明Python的内功不错。
最近一次的面试中,被面试官问到varchar和nvarchar的区别,脑海里记得是定长和可变长度的区别,但却没能说出来。后来,在网上找了下网友总结的区别。在这里做个备忘录: 一,SQL Server中char,varchar,nchar,nvarchar的区别(援引:https://www.cnblogs.com/limeiky/p/5313312.html) 1,定义: char: 固定长度,存储ANSI字符,不足的补英文半角空格。
最近在调研数据库查询时因使用IEnumerable进行Linq to entity的操作,造成数据库访问缓慢。此文讲述的便是IEnumerable和IQueryable的区别。 微软对IEnumerable的定义使用场景为Linq to Object,也就是涉及到内存操作时使用。
The Zen of Python, by Tim Peters Beautiful is better than ugly. Explicit is better than implicit. Simple is better than complex.
最近工作中遇到数据库组合查询带来的一些问题,因此有必要调研一下Linq to Objects Join Linq to Entity。参考一些网友的代码案例,深入实践了一下使用EntityFramework Code First 下的组合查询。
最近因调研Linq to object 和Linq to Entity的数据组合查询问题,需要用到Sql Server Profiler检测在数据上执行的语句,在调试sql语句时,给了很大的帮助。 这里简述下SQL Server Profiler使用过程中常用到的功能。
在客户端和网页的开发过程中,我们都会或多或少遇到过模式窗体和无(非)模式窗体(以下简称无模式窗体), 在传统的Windows窗体开发过程中,对话框有两种模式:模式窗体和无模式窗体。 模式窗体为创建后,只能在当前窗体进行相关操作。
1, Dictionary的用法:Add(), ContainsKey();value为一个数组;value为一个类;参见:www.cnblogs.com/linlf03/archive/2011/12/09/2282574.html 2,DataGridView及其子控件(Column),具备换行的属性(column.DefaultCellStyle.WrapMode=DataGridVierTriState.True) 3,更新控件字号的方法,重新设置改字体及其大小。
1)对于泛型结构的变量,使用FirstOrDefault(i=>i.Name==_someType.Name),可以进行遍历查询适配。 2)强化对switch case default的使用。 3)对于程序中某控件的Visible和Enabled逻辑条件必然存在相同部分的条件变量。
一、关于Remote Debugger 使用VS远程调试器Remote Debugger,我们可以调试部署在不同机器上的应用程序,如桌面应用程序和Asp.Net应用程序。 二、Remote Debugger 的获取 获取方式有两种,我们经常使用的是从开发人员的机器中VS 2015的安装目录下,e.g : C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\IDE\Remote Debugger,将Remote Debugger文件夹拷贝到目标机器(任意路径下)。
1)虚函数virtual和override的使用。 2)Path.ChangeExtension(destinationFileName,stringExtensionChanged); 3)File.
1)对于形如List objectTypes, 转换为字符串时,可以使用string.Join();形如:var objectType=string.Join(",",objectTypes); 2) 加深面向对象设计原则至单一职责原则:一个类应该只有一个发生变化的原因,同样一个接口的实现应该也只有引起其变化的原因。
1)注意不同工程项目间的接口调用的方式及不同业务逻辑的使用。 2)对于Debug.Assert()的合理使用。 3)观察者与被观察者间的相互作用。 4)注意对函数方法的调用执行效率优先使用。如:itemList.Add()和itemList.Insert()的区别。
1)系统级设置的构造、初始LoadSetting()、保存SaveSetting()。 2)Dictionary字典的使用:Dictionary 3)可空类型强转(Color?)null; 4)Enum.Parse(); 5)枚举值的数组长度定义(EnumType.etFirst-EnumType.etLast); 6)定制化控件(DataGridView)的初始化Initial&Adjust 7)DataGridView进行数据绑定后,允许表头排序,否则不允许。
1)系统级(SystemGenericSetting)和用户级(UserGenericSetting)的设置。 2)代码重构,Load系统或用户级设置。 3)UI于Presenter之间参数的传递。 4)UI控件的类型与泛型变量的Mapper(as的使用)。
服务端程序员需要拥有的技能和知识: C++/Java/C#语言基础,比如C++的虚函数,或者java的jvm 数据结构和算法,比如排序,链表,hash_map 多线程并发知识,比如锁,线程切换 网络编程知识,比如tcp/http协议相关知识 Linux常用命令和问题排查办法 ...
1)Control control as RichTextBox,对as的使用 2)控件内嵌套控件的情况,foreach(Control control in Controls) { if(control is TextBox){}; } 3)lambda表达式的使用,.orderBy(o=>o.TableIndex) 4)List和IList的区别。
1)(float?)null的使用 2)float.TryParse(str, out fl)的判断是否为数字型 3)开始学习正则表达式。 4)博闻强记string.IsNullOrWhiteSpace和string.IsNullOrEmpty() 5)string.Format($"{str}") 的使用。
总结过去一周技术积累要点: Environment.NewLine(换行); string.Concat()的时间复杂度低于+=; 单元测试的规则; 创建日志的规则(LoggerFactory.
良好的程序修养在于灵活运用各类语法(修饰符)。本文介绍下,在C#语言中的??(双问号操作符)、?:(三元表达式)、?(单问好操作符) 1,?? 为了实现Nullable数据类型转换成non-Nullable型数据,就有了一个这样的操作符”??(两个问号)“,双问号操作符意思是取所赋值??左边的,如果左边为null,取所赋值??右边的。
这篇博客记录在此,用以自勉自束。 简评:这十戒是出自 1971 年的经典书 The Psychology of Computer Programming(程序开发心理学),字字珠玑。虽然技术日新月异,但这些对人性的观察确实经得起时间的考验。
形如, 1) ICollection imageInfos = new List(); imageInfos = imageInfos.OrderBy(i => i.CreationTime).ToList(); 2)IList fileNameList = new List(); fileNameList = fileNameList.OrderBy(i => i).ToList(); 此处OrderBy不同于Linq中的OrderBy,需注意。
事件响应是观察者模式的核心点。 我们在某个基础类中定义这么一个成员变量,该成员变量的属性值为Get和Set,具备默认值,在Set下赋值后,加上一行代码用来触发事件响应。当外部程序,为该属性值赋予新值时,将会触发事件响应,做出相应操作。
对于设计文档的一点体会就是,明确需求、精简语言、图文并绘、代码相辅、易于沟通。 下文援引:http://blog.csdn.net/zzhdi/article/details/50929828 在产品研发过程中经常需要编写很多文档,例如:需求文档、设计文档、API文档、验收文档等等。
我们知道,树类型作为数据结构中的重要一员,树的很多实现都是来自递归。本文想要实现的就是在桌面客户端项目开发中,经常用到的树结构(.Net平台下有个控件为TreeView)。事实上,我们可能因业务需求自行定义一个树类型的数据结构。
去年学习软件工程教材,初识敏捷开发。目前所在的团队,也是使用敏捷开发方式。今天读了这篇文章,对于这段时间的效率有所警醒。其次,个人认同文章中的用户故事,结对编程思想。 文章援引:http://gitbook.cn/books/59302486629b6a357de3f85b/index.html 软件开发包含了前期调研、需求收集、需求分析、功能实现以及测试上线等一系列过程,旨在帮助客户满足用户的需求,实现商业价值。
最近实现一个功能需要继承两个接口,然而父类接口有这重名的方法,且方法实现一致。两个父接口均被多个子接口继承,并在类实例中实现。起初,我是通过new重名方法来实现我的功能调用。后被指正,在网上看了一个工友解决类似问题的方法,这里引用记录一下。
首先援引一名工友几年前的文章:http://csharper.blog.51cto.com/3052247/1330022,结合当前微软技术领域及平台工具现状,文章有增改。 .NET是个很大、很宽、很广的概念。
为什么将Tuple和Func混合起来谈呢? 首先,介绍一下:Tuple叫做元组,是.Net Framwork4.0引入的数据类型,用来返回多个数值。在C# 4.0之前我们函数有多个返回值,通常是使用ref,out 。
前段时间,接手同事的一个项目,经理要求我对于项目内的重复代码尽可能的抽象优化。对于个别难以抽象的基类,我也是深受其教。 首先,写一个抽象基类,用来概括多个实现子类可能共同需要的方法或属性实现,包括构造函数中的初始化参数。
基于MVP模式四则运算器 来到新东家,项目的框架采用的是MVP模式,刚来公司的时候,项目经理给予分配小任务,首先熟悉MVP模式,而后普通的四则运算器的实现使用MVP分层。这里主要回顾当时做任务时候的对于MVP模式的理解。
2010年9月北上求学,在一所普通本科院校学习计算机专业,年少轻狂未能领悟计算机技术的本质渐生弃学之意。 2013年9月南下参军,在一个电抗部队从事通信指控专业,填补了扛枪演练的男儿情怀却又无法抵制对自由的向往。
1、嵌入式开发 传统的arm linux开发、新兴的智能硬件、物联网等技术的发展,都让整个方向成为热门领域。 2、游戏开发 cocos2d-x、unity3d、html5,都可以用来开发游戏。