自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

一个人的孤落时辰

本博客不再重点维护,新博客请移步至: https://blog.yuanpei.me.。另:5年.NET后端、熟悉.NET Core、微服务,坐标西安,求一份工作

  • 博客(260)
  • 资源 (2)
  • 论坛 (7)
  • 收藏
  • 关注

原创 一个西漂打工人的求职心路

其实,这段故事说出来,多少有一点难为情,因为我实在没有想到,这一切会变得这样艰难。10月份从上一家公司离职的时候,当时,我手上有两个Offer,一家是做旅游类产品的创业公司,一家则是声名狼藉的中软国际。因为刚来西安时,面对人生地不熟的新环境,曾经在这里有过一段时间的工作经历,所以,我从本能上排斥再回到那种地方。而创业公司本身的不稳定性,一度让我感到纠结,而最终的结果是,我放弃了这两份Offer。此时,对于一个工作刚满年的人来说,一个月13K或14K的薪水,我感到相当的知足。此后,我面试了奥博杰天(Obj

2020-11-19 13:27:30 137 1

原创 使用dotTrace对.NET应用进行性能分析

前几天,有位朋友问我,你平时都是怎么去排查一个程序的性能问题的啊。不要误会,这位朋友不是我啦,因为我真的有这样一位叫做 Toby 的朋友。说到性能问题,可能大家立马会想到类似并发数、吞吐量、响应时间、QPS、TPS等等这些指标,这些指标的确可以反映出一个系统性能的好坏。可随着我们的系统结构变得越来越复杂,要找到这样一个性能的“损耗点”,同样会变得越来越困难。在不同的人的眼中,对于性能好坏的评判标准是不一样的,譬如在前端眼中,页面打开速度的快慢代表着性能的好坏;而在后端眼中,并发数、吞吐量和响应时间代表着性能

2020-11-02 15:59:18 3743 12

原创 一道HashSet面试题引发的蝴蝶效应

没错,我又借着“面试题”的名头来搞事情了,今天要说的是 HashSet ,而这确实是一个实际面试中遇到的问题。当时的场景大概是这样的,面试官在了解了你的知识广度以后,决心来考察一番你的基本功底,抛出了一个看起来平平无奇的问题:说一说你平时工作中都用到了哪些数据结构。你心想,这还不简单,Array、ArrayList、List、Dictionary、HashSet、Stack、Queue…等等各种集合类简直如数家珍,甚至你还能说出这些数据结构间的优劣以及各自使用的场景。可没想到,面试官话锋一转,直接来一句,“

2020-10-26 10:10:37 3846

原创 基于选项模式实现.NET Core的配置热更新

最近在面试的时候,遇到了一个关于 .NET Core 配置热更新的问题,顾名思义,就是在应用程序的配置发生变化时,如何在不重启应用的情况下使用当前配置。从 .NET Framework 一路走来,对于 Web.Config 以及 App.Config 这两个配置文件,我们应该是非常熟悉了,通常情况下, IIS 会检测这两个配置文件的变化,并自动完成配置的加载,可以说它天然支持热更新,可当我们的视野伸向分布式环境的时候,这种配置方式就变得繁琐起来,因为你需要修改一个又一个配置文件,更不用说这些配置文件可能都.

2020-10-13 00:33:20 1935 2

原创 .NET Core中对象池(Object Pool)的使用

在此前的博客中,博主参考 eShopOnContainers 实现了一个基于RabbitMQ的事件总线(EventBus)。在这个项目中,它提供了一个持久化连接的类DefaultRabbitMQPersistentConnection,主要解决了RabbitMQ在连接断开后自动重连的问题,可实际上我们都知道,RabbitMQ提供的连接数是有一个上限的,如果频繁地使用短连接的方式,即通过ConnectionFactory的CreateConnection()方法来创建一个连接,从本质上讲,一个Connecti

2020-08-25 17:54:54 614

原创 利用MySQL的Binlog实现数据同步与订阅(下)

终于到这个系列的最后一篇,在前两篇博客中,我们分别了介绍了Binlog的概念和事件总线(EventBus)的实现,在完成前面这将近好几千字的铺垫以后,我们终于可以进入正题,即通过EventBus发布Binlog,再通过编写对应的EventHandler来订阅这些Binlog,这样就实现了我们“最初的梦想”。坦白说,这个过程实在有一点漫长,庆幸的是,它终于还是来了。Binlog读取与解析首先,我们通过 Python-Mysql-Replication 这个项目来读取Binlog,直接通过pip insta

2020-08-25 17:21:07 617

原创 利用MySQL的Binlog实现数据同步与订阅(中)

紧接上一篇博客中的思路,这次我们来说说事件总线(EventBus),回首向来,关于这个话题,我们可能会联想到发布-订阅模式、观察者模式、IObservable与IObserver、消息队列等等一系列的概念。所以,当我们尝试着去解释这个概念的时候,它到底是什么呢?是一种设计模式?是一组API接口?还是一种新的技术?显而易见,发布-订阅模式和观察者模式都是设计模式,而IObservable与IObserver、消息队列则是具体的实现方式,就像你可以用委托或者事件去实现一个观察者模式,而Redis里同样内置了发布

2020-08-25 17:16:22 686

原创 利用MySQL的Binlog实现数据同步与订阅(上)

终于等到了周末,在经历了一周的忙碌后,终于可以利用空闲写篇博客。其实,博主有一点困惑,困惑于这个世界早已“堆积”起人类难以想象的“大”数据,而我们又好像执着于去“造”一个又一个“差不多”的“内容管理系统”,从前我们说互联网的精神是开放和分享,可不知从什么时候起,我们亲手打造了一个又一个的“信息孤岛”。而为了打通这些“关节”,就不得不去造一张巨大无比的蜘蛛网,你说这就是互联网的本质,对此我表示无法反驳。我更关心的是这其中最脆弱的部分,即:一条数据怎么从A系统流转到B系统。可能你会想到API或者ETL这样的关键

2020-08-25 16:55:22 1423 2

原创 原生JavaScript实现Hexo博客推荐功能

有时候,我不禁在想,我们到底处在一个什么样的时代呢?而之所以会有这样的疑问,则是因为我们的习惯在不断地被这个时代向前推进,就像我用了两年多的魅蓝Note6屏幕出现了问题,扫视了一圈新手机,居然再找不出一款带实体键的手机,刘海屏、水滴屏、破孔屏、异形屏、曲面屏等等简直令人眼花缭乱,唯独没有一款让我感到熟悉的非全面屏手机。做软件的时候,会不明白那些似是而非的定制需求的差异,可为什么偏偏到了硬件的时候,大家就能被迫适应这些越来越同质化的东西呢?也许有和我一样怀念非全面屏的人,可对于这个时代而言,一切都好像无足轻重

2020-06-22 11:44:11 567

原创 .NET Core原生DI扩展之基于名称的注入实现

接触 .NET Core 有一段时间了,最大的感受无外乎无所不在的依赖注入,以及抽象化程度更高的全新框架设计。想起三年前 Peter 同学手写 IoC 容器时的惊艳,此时此刻,也许会有不一样的体会。的确,那个基于字典实现的 IoC 容器相当“简陋”,就像 .NET Core 里的依赖注入,默认(原生)都是采用构造函数注入的方式,可其实从整个依赖注入的理论上而言,属性注入和方法注入的方式,同样是依赖注入的实现方式啊。最近一位朋友找我讨论,.NET Core 里该如何实现 Autowried,这位朋友本身是 J

2020-06-22 11:39:00 790

原创 通过EF/Dapper扩展实现数据库审计功能

相信大家都有过周末被电话“吵醒”的经历,这个时候,客服同事会火急火燎地告诉你,客户反馈生产环境上某某数据“异常”,然后你花费大量时间去排查这些错误数据,发现这是客户使用某一种“骚”操作搞出来的“人祸”。可更多的时候,你不会这么顺利,因为你缺乏有力的证据去支持你的结论。最终,你不情愿地去处理了这些错误数据。你开始反思,为什么没有一种流程去记录客户对数据的变更呢?为什么你总要花时间去和客户解释这些数据产生的原因呢?好了,这就要说到我们今天这篇博客的主题——审计。什么是审计?结合本文引言中的描述的场景,当我们

2020-05-11 11:04:45 379

原创 .NET Core + ELK搭建可视化日志分析平台(上)

Hi,各位朋友,大家好!欢迎大家关注我的博客,我的博客地址是: https://blog.yuanpei.me。今天是远程办公以来的第一个周末,虽然公司计划在远程两周后恢复正常办公,可面对着每天都有人离开的疫情,深知这一切都不会那么容易。窗外的阳光透过玻璃照射进屋子,这一切都昭示着春天的脚步渐渐近了。可春天来了,有的人却没有再回来。那些在2019年结束时许下的美好期待、豪言壮语,在这样一场灾难面前...

2020-03-04 11:08:57 1387

原创 使用 jsDelivr 为 Hexo 博客提供高效免费的CDN加速

最近给博客做了升级,从3.x升级到了4.x,主要是在官网看到了关于静态页面生成效率提升的内容。众所周知,Hexo在文章数目增加以后会越来越慢。博主大概是从14年年底开始使用Hexo这个静态博客的,截止到目前一共有176篇博客,其中的“慢”可想而知,中间甚至动过使用Hugo和VuePress的念头,所以,听说有性能方面的提升,还是决定第一时间来试试。整个升级过程挺顺利的,唯一遇到的问题是关于外部链接...

2020-03-04 11:06:40 1426

原创 从 .NET Core 2.2 升级到 3.1 的踩坑之旅

有时候,版本更新太快并不是一件好事。虽然,两周一个迭代的“敏捷”开发依然被客户嫌弃交付缓慢,可一边是前端领域“求不要再更新了,学不动了”的声音,一边则是.NET Core从1.x到2.x再到3.x的高歌猛进。版本更新太快,带来的是API的频繁变动,无法形成有效的知识沉淀,就像转眼到了2020年,Python2.x和Windows7都引来了“寿终正寝”,可能你都还没有认真地学习过这些知识,突然就被告...

2020-01-23 10:52:46 4273

原创 使用Liquid实现简单的数据交换

在平时的开发工作中,接口对接是一件无可避免的事情。虽然在“前后端分离”的大趋势下,后端的角色逐渐转换为数据接口的提供者,然而在实际的应用场景中,我们面对的往往是各种不同的“数据”,譬如企业应用中普遍使用的企业服务总线(ESB),这类服务要求服务接入者必须使用WebService来作为数据交换格式;再譬如电子数据交换(EDI)这种特定行业中使用的数据交换格式,从可读性上甚至还不如基于XML的WebS...

2019-12-29 14:44:08 734

原创 Referrer还是Referer? 一个迷人的错误

诗人郑愁予曾经在一首诗中写道:我达达的马蹄是个美丽的错误,我不是归人,是个过客。而对我来说,十九岁之前的我,一样是个沉浸在诗歌中的文艺少年。十九岁之后的我,作为一名程序员,更多的是邂逅各种错误。可偏偏人类世界对待错误从来都不宽容,所以,错误本身既不美丽,亦不浪漫。接近中年的我,无论如何,都写不出年轻时令人惊艳的句子,这或许和我们面对错误时的不同心境,有着莫大的关联,而今天这篇博客,同样要从一个历史...

2019-12-29 14:43:01 742 1

原创 浅析网站PV/UV统计系统的原理及其设计

国庆节前有段时间,新浪的“图床”一直不大稳定,因为新浪开启了防盗链,果然免费的永远是最贵的啊。为了不影响使用,我非常粗暴地禁止了浏览器发送Referer,然后我就发现了一件尴尬的事情,“不蒜子”统计服务无法使用了。这是一件用脚后跟想都能想明白的事情,我禁止了浏览器发送Referer,而“不蒜子”正好使用Referer来识别每个页面,所以,这是一个再明显不过的因为需求变更而引入的Bug。这个世界最离...

2019-12-29 14:41:21 2403 1

原创 使用Python开发插件化应用程序

插件化应用是个老话题啦,在我们的日常生活中更是屡见不鲜。无论是多年来臃肿不堪的Eclipse,亦或者是扩展丰富著称的Chrome,乃至近年来最优秀的编辑器VSCode,插件都是这其中重要的组成部分。插件的意义在于扩展应用程序的功能,这其实有点像iPhone手机和AppStore的关系,没有应用程序的手机无非就是一部手机,而拥有了应用程序的手机则可以是Everything。显然,安装或卸载应用程序并...

2019-12-29 14:39:55 1324 2

原创 百度地图加载海量标注性能优化策略

在上一篇博客中关于Vue表单验证的话题里,我提到了这段时间在做的城市配载功能,这个功能主要着眼于,如何为客户提供一条路线最优、时效最短、装载率最高的路线。事实上,这是目前物流运输行业智能化、专业化的一个趋势,即面向特定行业的局部最优解问题,简单来说,怎么样能在装更多货物的同时满足运费更低的条件,同时要考虑超载等等不可抗性因素,所以,这实际上是一个数学问题。而作为这个功能本身,在地图上加载大量标注更...

2019-11-26 17:48:37 4917

原创 Vue快速实现通用表单验证

本文开篇第一句话,想引用鲁迅先生《祝福》里的一句话,那便是:“我真傻,真的,我单单知道后端整天都是CRUD,我没想到前端整天都是Form表单”。这句话要从哪里说起呢?大概要从最近半个月的“全栈工程师”说起。项目上需要做一个城市配载的功能,顾名思义,就是通过框选和拖拽的方式在地图上完成配载。博主选择了前后端分离的方式,在这个过程中发现:首先,只要有依赖jQuery的组件,譬如Kendoui,即使使用...

2019-11-26 17:10:54 8484 10

原创 在WSL中使用Linux桌面环境的尝试与总结

最近忙里偷闲的博主,再次迷恋上折腾Linux。话说自从微软推出WSL以后,我就彻底地停止了Windows + Linux 的双系统组合。回想起从前使用过的各种Linux发行版,基本上每隔一段时间就会崩溃一次,所以,面对WSL这种近乎应用级别的方案,我个人是非常愿意去接受的。因为一不小心玩坏了的话,可以直接对应用程序进行重置,或者重新从应用商店下载,相比重装系统,我觉得这种方式要更友好一点。虽然说W...

2019-08-25 11:22:03 7735 5

原创 通过ApiExplorer为Swagger提供MVC扩展

我一直想吐槽下运维同事提供的Jekins项目模板,因为它居然不支持含有多个项目的解决方案。作为一个有追求的程序员,每个解决方案下最少应该含有两个项目,即项目本身和项目对应的单元测试。可惜在这样一种情形下,我没法再去坚持这样的原则,而这真正让我感到难过的是,为了在编译环节向Jekins妥协,大家在一个项目里极尽所能,在这一个项目里居然混合了MVC、WebApi和WebService三种技术,甚至到最...

2019-08-25 11:20:53 813 4

原创 .NET Core POCOController在动态Web API中的应用

Hi,大家好,我是Payne,欢迎大家关注我的博客,我的博客地址是:https://blog.yuanpei.me。在上一篇文章中,我和大家分享了ASP.NET中动态Web API的实现,这种方案的现实意义是,它可以让我们把任意一个接口转换为Web API,所以,不单单局限在文章里提到的WCF迁移到Web API,任意领域驱动开发(DDD)中的服务层,甚至是更为普遍的传统三层,都可以通过这种方式快...

2019-08-25 11:19:24 721

原创 长安十二时辰随想

年少时未见长安,难以想象万国来朝的盛唐气象,心中最为仰慕的人物,是那个“好剑术、喜任侠“、二十五岁“仗剑去国、辞亲远游”的李白。人在年少轻狂的时候,容易因为一个人的豪迈不羁,而选择性地模糊一个时代的印象。于是,长安就蓦地变成了李太白大放异彩的舞台。印象里的长安,是一个可以让人吟咏“安能摧眉折腰事权贵,使我不得开心颜”的地方,是一个可以让“贵妃捧墨、力士脱靴”的地方,是一个“绣口一吐,就是半个盛唐”...

2019-08-25 11:17:35 935 3

原创 使用ASP.NET Core和Hangfire实现HTTP异步化方案

Hi,大家好,我是Payne,欢迎大家一如既往地关注我的博客。今天这篇博客里的故事背景,来自我工作中的一次业务对接,因为客户方提供的是长达上百行的XML,所以一度让更喜欢使用JSON的博主感到沮丧,我这里不是想讨论XML和JSON彼此的优缺点,而是我不明白AJAX里的X现在基本都被JSON替代了,为什么还有这么多的人坚持使用并友好的XML作为数据的交换协议呢?也许你会说,因为有这样或者那样等等的理...

2019-07-14 23:27:23 2821

原创 通过动态Controller实现从WCF到Web API的迁移.

在《又见AOP之基于RealProxy实现WCF动态代理》这篇文章中,我和大家分享了关于使用动态代理来简化WCF调用过程的相关内容,当时我试图解决的问题是,项目中大量通过T4生成甚至手动编写的“代理方法”。今天,我想和大家分享的是,如何通过动态的Controller来实现从WCF到Web API的迁移。为什么会有这个环节呢?因为我们希望把一个老项目逐步迁移到.NET Core上面,在这个过程中首当...

2019-07-14 23:23:05 452

原创 《Web API 的设计与开发》读书笔记

设计优美的Web API:易于使用、便于更改、健壮性好、不怕公开REST的两层含义:指符合Fielding的REST架构风格的Web服务系统指使用符合RPC风格的XML或JSON + HTTP接口的系统(不使用SOAP)端点的基本设计:短小便于输入的URI-人可以读懂的URI没有大小写混用的URI修改方便的URI不暴露服务端架构的URI规则统一的URIHTTP方法和...

2019-07-14 23:20:09 1202 1

原创 又见AOP之基于RealProxy实现WCF动态代理

最近一直在研究Mongodb和ElasticSearch之间同步数据的问题,苦于到目前为止,并没有取得任何实质性的进展。偶尔“趁得浮生半日闲暇”,看一看Web API设计方面的书籍,和前辈交流下项目中的历史遗留问题,最为直观的感受就是,这个世界上任何方案的最终落地,都经过理想和现实的无数次挣扎,比如我们希望迁移项目到.NET Core平台上,初步分析大概有将近1000多个无法兼容的地方,维持现状固...

2019-07-14 23:15:57 481

原创 WSL下Docker使用踩坑小记

众所周知,Win10中开始提供Linux子系统,即Windows Subsystem for Linux,简称WSL,它可以让我们在Windows系统使用Linux系统,自从有了这个新功能以后,博主果断地放弃双系统的方案,因为折腾起来实在花费时间。关于如何使用WSL,网上有非常多的文章可以参考,这里不再赘述。今天想说的是,WSL下使用Docker遇到的各种坑。装完WSL以后,对各种编译环境的使用...

2019-05-03 23:05:26 9984 4

原创 由DBeaver与PL/SQL引发的数据库吐槽

因为工作中需要同时面向MySQL、Oracle和SQLServer三种数据库进行开发,所以,大概从去年国庆节开始,我开始使用一个开源的数据库管理工具——DBeaver。使用这个工具的初衷,是因为我不想在同一台电脑上安装三个客户端工具,尤其是Oracle和SQLServer这种令人恐惧的、动辄需要重装系统的应用程序。我不想再使用类似Navicat这样的软件,因为它的画风像是上个世纪VB6.0的产品...

2019-04-28 16:48:57 3739 4

原创 聊聊前端跨域的爱恨情仇

今天是过完春节以后的第二周啦,而我好像终于回到正常工作的状态了呢,因为突然间就对工作产生了厌倦的情绪,Bug就像无底洞一样吞噬着我的脑细胞。人类就像一颗螺丝钉一样被固定在整部社会机器上,除了要让自己看起来像个正常人一样,还要拼命地让所有人都像个正常人一样。过年刚经历过被催婚的我,面对全人类近乎标准的“幸福”定义,大概就是我此刻这种状态。其实,除了想自己定义“幸福”以外,我还想自己定义“问题”,因为...

2019-04-08 08:30:25 26730 5

原创 基于Server-Sent Events实现服务端消息推送

前段时间,为客户定制了一个类似看板的东西,用户可以通过看板了解任务的处理情况,通过APP扫面页面上的二维码就可以领取任务,而当任务被领取以后需要通知当前页面刷新。原本这是一个相对简单的需求,可是因为APP端和PC端是两个不同的Team在维护,换句话说,两个Team各自有一套自己的API接口,前端页面永远无法知道APP到底什么时候扫描了二维码,为此前端页面不得不通过轮询的方式去判断状态是否发生了变化...

2019-02-22 13:39:58 2955

原创 博客图片迁移折腾记

  去年国庆的时候,七牛官方开始回收测试域名,这直接导致博客中大量图片出现无法访问的情况,虽然博主第一时间启用了新的域名:https://blog.yuanpei.me,可是因为七牛官方要求域名必须备案,所以,这件事情一直耽搁着没有往下进行。至于为什么会一直拖到2019年,我想大家都能猜到一二,没错,我就是懒得去弄域名备案这些事情

2019-01-18 11:24:01 1052

原创 基于WebSocket和Redis实现Bilibili弹幕效果

  嗨,大家好,欢迎大家关注我的博客,我是Payne,我的博客地址是https://qinyuanpei.github.io。在上一篇博客中,我们使用了.NET Core和Vue搭建了一个基于WebSocket的聊天室。在今天这篇文章中,我们会继续深入这个话题。博主研究WebSocket的初衷是,我们的项目上有需要实时去推送数据来完成图表展示的业务,而博主本人对这个内容比较感兴趣,因为博主有对爬虫...

2018-08-27 12:49:33 4183

原创 使用.NET Core和Vue搭建WebSocket聊天室

  Hi,大家好,我是Payne,欢迎大家关注我的博客,我的博客地址是:https://qinyuanpei.github.io。今天这篇博客,我们来说说WebSocket。各位可能会疑惑,为什么我会突然间对WebSocket感兴趣,这是因为最近接触到了部分“实时”的业务场景,譬如:用户希望在远程视频通话过程中,实时地监控接入方的通话状态,实时地将接入方的响应时间、通话时长以及接通率等信息推送到后...

2018-08-27 12:46:57 8555 2

原创 声明式RESTful客户端WebApiClient在项目中的应用

  自从项目上采用敏捷开发的流程以后,我们的开发任务中出现了不少“联调”的任务,而所谓的“联调”任务,完全是拜前后端分离所赐。通常来讲,按照前后端分离的思想,我们的团队会被分成前端和后端两个组,前端负责页面内数据的展示,后端负责提供相关服务的接口。这样听起来非常合理,对吧?可问题在于,后端常常在等前端联调这些接口,因为后端不知道具体有哪些异常需要处理;同样,前端常常在等后端接口稳定,因为一旦出现问...

2018-07-17 18:20:23 6492 1

原创 基于Docker构建-NET持续集成环境

  最近在考虑将整个项目组的产品,努力向着持续集成(CI)/持续部署(CD)的方向靠拢,因为目前我们仅仅实现了基于Docker的自动化部署,而部署包的构建依然依赖于人工打包,而每个版本的测试和部署,基本上都要给所有相关人员发一遍邮件,而写邮件无非是填写版本号和变更历史。身处在这样一个社会化分工逐渐加剧的『摩登时代』,我们唯一的希望就追求技能的多元化,你越是担心有一天会被AI所替代,就越是应该去追求...

2018-06-13 12:43:15 2997

原创 一个由服务器时区引发的Bug

  太阳照常升起,在每个需要挤公交车上班的日子里,即使窗外早已大雨如注。想来只有在周末,太阳会陪着我一起起床,所谓睡觉睡到自然醒,在雨天里保持晴天的心情,相当大的程度上,是因为今天不必上班。因此,一周里的心情晴雨表,简直就是活生生的天气预报,可惜我并不能预测我的心情,因为Bug会在某一瞬间发动突然袭击。一周前测试同事小J得到用户的反馈,我们某一笔订单突然无法从系统中查到,可就在数分钟前用户创建了这...

2018-06-12 17:34:56 3157

原创 关于电影《暗杀》背后的故事和想法

  最近看过了由全智贤主演的电影《暗杀》,虽然说这是一部我们早已熟稔的抗战题材电影,可是在全女神颜值和演技的诱惑下,我终于还是花了点时间来看这部电影。或许是因为我们见识过了太多的“抗日神剧”,所以在面对这样一部电影的时候,我们难免带着某种不屑的眼光去审视它。可是当你看完了这部电影,突然间兴奋到难以自制,不由地惊呼一声:想不到韩国拍这种主旋律电影都能这么好看。我想,这是一种由视角转换所引起的代入感,...

2018-06-12 17:34:22 1442

原创 使用SonarCloud为.NET-NET-Core项目集成静态检查

  Hi,朋友们,大家好,欢迎大家关注我的博客,我是Payne,我的博客地址是http://qinyuanoei.github.io。在不知不觉间,5月份已然度过大半,最近无论是读书还是写作均停滞不前,被拖延症支配的我深感有虚度时光之嫌。今天这篇文章,我将为大家介绍如何使用SonarCloud,来为.NET/.NET Core项目集成静态检查。如果大家使用过SonarCube的话,对接下来我要讲的...

2018-05-14 09:52:12 882

2DToolKIit插件

用于Unity3D的2DToolKIit插件,可以帮助你快速开发2D游戏

2014-03-19

NGif动画编码/解码库

一个可以解码和编码GIF动画的类库,可以生成动画和解码动画,你值得拥有!

2014-03-07

PayneQin的留言板

发表于 2020-01-02 最后回复 2020-01-02

我还是觉得我这两篇文章的访问量有问题

发表于 2014-04-29 最后回复 2014-04-30

CSDN博客访问量统计是不是有问题啊?

发表于 2014-04-27 最后回复 2014-04-27

CSDN博客升级后出现Bug,望官方快速解决

发表于 2014-04-24 最后回复 2014-04-27

一个异常的问题,求助

发表于 2012-10-07 最后回复 2014-04-27

喜欢语音识别的童鞋们过来!

发表于 2014-01-06 最后回复 2014-01-08

ZBar条形码扫描

发表于 2013-12-24 最后回复 2014-01-06

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人 TA的粉丝

提示
确定要删除当前文章?
取消 删除