自定义博客皮肤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

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

相信大家都有过周末被电话“吵醒”的经历,这个时候,客服同事会火急火燎地告诉你,客户反馈生产环境上某某数据“异常”,然后你花费大量时间去排查这些错误数据,发现这是客户使用某一种“骚”操作搞出来的“人祸”。可更多的时候,你不会这么顺利,因为你缺乏有力的证据去支持你的结论。最终,你不情愿地去处理了这些错...

2020-05-11 11:04:45 158 0

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

Hi,各位朋友,大家好!欢迎大家关注我的博客,我的博客地址是: https://blog.yuanpei.me。今天是远程办公以来的第一个周末,虽然公司计划在远程两周后恢复正常办公,可面对着每天都有人离开的疫情,深知这一切都不会那么容易。窗外的阳光透过玻璃照射进屋子,这一切都昭示着春天的脚步渐渐近...

2020-03-04 11:08:57 400 0

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

最近给博客做了升级,从3.x升级到了4.x,主要是在官网看到了关于静态页面生成效率提升的内容。众所周知,Hexo在文章数目增加以后会越来越慢。博主大概是从14年年底开始使用Hexo这个静态博客的,截止到目前一共有176篇博客,其中的“慢”可想而知,中间甚至动过使用Hugo和VuePress的念头,...

2020-03-04 11:06:40 506 0

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

有时候,版本更新太快并不是一件好事。虽然,两周一个迭代的“敏捷”开发依然被客户嫌弃交付缓慢,可一边是前端领域“求不要再更新了,学不动了”的声音,一边则是.NET Core从1.x到2.x再到3.x的高歌猛进。版本更新太快,带来的是API的频繁变动,无法形成有效的知识沉淀,就像转眼到了2020年,P...

2020-01-23 10:52:46 1958 0

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

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

2019-12-29 14:44:08 405 0

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

诗人郑愁予曾经在一首诗中写道:我达达的马蹄是个美丽的错误,我不是归人,是个过客。而对我来说,十九岁之前的我,一样是个沉浸在诗歌中的文艺少年。十九岁之后的我,作为一名程序员,更多的是邂逅各种错误。可偏偏人类世界对待错误从来都不宽容,所以,错误本身既不美丽,亦不浪漫。接近中年的我,无论如何,都写不出年...

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

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

国庆节前有段时间,新浪的“图床”一直不大稳定,因为新浪开启了防盗链,果然免费的永远是最贵的啊。为了不影响使用,我非常粗暴地禁止了浏览器发送Referer,然后我就发现了一件尴尬的事情,“不蒜子”统计服务无法使用了。这是一件用脚后跟想都能想明白的事情,我禁止了浏览器发送Referer,而“不蒜子”正...

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

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

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

2019-12-29 14:39:55 707 1

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

在上一篇博客中关于Vue表单验证的话题里,我提到了这段时间在做的城市配载功能,这个功能主要着眼于,如何为客户提供一条路线最优、时效最短、装载率最高的路线。事实上,这是目前物流运输行业智能化、专业化的一个趋势,即面向特定行业的局部最优解问题,简单来说,怎么样能在装更多货物的同时满足运费更低的条件,同...

2019-11-26 17:48:37 4306 0

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

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

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

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

最近忙里偷闲的博主,再次迷恋上折腾Linux。话说自从微软推出WSL以后,我就彻底地停止了Windows + Linux 的双系统组合。回想起从前使用过的各种Linux发行版,基本上每隔一段时间就会崩溃一次,所以,面对WSL这种近乎应用级别的方案,我个人是非常愿意去接受的。因为一不小心玩坏了的话,...

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

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

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

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

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

Hi,大家好,我是Payne,欢迎大家关注我的博客,我的博客地址是:https://blog.yuanpei.me。在上一篇文章中,我和大家分享了ASP.NET中动态Web API的实现,这种方案的现实意义是,它可以让我们把任意一个接口转换为Web API,所以,不单单局限在文章里提到的WCF迁移...

2019-08-25 11:19:24 461 0

原创 长安十二时辰随想

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

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

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

Hi,大家好,我是Payne,欢迎大家一如既往地关注我的博客。今天这篇博客里的故事背景,来自我工作中的一次业务对接,因为客户方提供的是长达上百行的XML,所以一度让更喜欢使用JSON的博主感到沮丧,我这里不是想讨论XML和JSON彼此的优缺点,而是我不明白AJAX里的X现在基本都被JSON替代了,...

2019-07-14 23:27:23 1777 0

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

在《又见AOP之基于RealProxy实现WCF动态代理》这篇文章中,我和大家分享了关于使用动态代理来简化WCF调用过程的相关内容,当时我试图解决的问题是,项目中大量通过T4生成甚至手动编写的“代理方法”。今天,我想和大家分享的是,如何通过动态的Controller来实现从WCF到Web API的...

2019-07-14 23:23:05 271 0

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

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

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

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

最近一直在研究Mongodb和ElasticSearch之间同步数据的问题,苦于到目前为止,并没有取得任何实质性的进展。偶尔“趁得浮生半日闲暇”,看一看Web API设计方面的书籍,和前辈交流下项目中的历史遗留问题,最为直观的感受就是,这个世界上任何方案的最终落地,都经过理想和现实的无数次挣扎,比...

2019-07-14 23:15:57 321 0

原创 WSL下Docker使用踩坑小记

众所周知,Win10中开始提供Linux子系统,即Windows Subsystem for Linux,简称WSL,它可以让我们在Windows系统使用Linux系统,自从有了这个新功能以后,博主果断地放弃双系统的方案,因为折腾起来实在花费时间。关于如何使用WSL,网上有非常多的文章可以参考,这...

2019-05-03 23:05:26 5333 3

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

因为工作中需要同时面向MySQL、Oracle和SQLServer三种数据库进行开发,所以,大概从去年国庆节开始,我开始使用一个开源的数据库管理工具——DBeaver。 使用这个工具的初衷,是因为我不想在同一台电脑上安装三个客户端工具,尤其是Oracle和SQLServer这种令人恐惧的、动辄需要...

2019-04-28 16:48:57 2160 3

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

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

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

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

前段时间,为客户定制了一个类似看板的东西,用户可以通过看板了解任务的处理情况,通过APP扫面页面上的二维码就可以领取任务,而当任务被领取以后需要通知当前页面刷新。原本这是一个相对简单的需求,可是因为APP端和PC端是两个不同的Team在维护,换句话说,两个Team各自有一套自己的API接口,前端页...

2019-02-22 13:39:58 2001 0

原创 博客图片迁移折腾记

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

2019-01-18 11:24:01 839 0

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

  嗨,大家好,欢迎大家关注我的博客,我是Payne,我的博客地址是https://qinyuanpei.github.io。在上一篇博客中,我们使用了.NET Core和Vue搭建了一个基于WebSocket的聊天室。在今天这篇文章中,我们会继续深入这个话题。博主研究WebSocket的初衷是,...

2018-08-27 12:49:33 3270 0

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

  Hi,大家好,我是Payne,欢迎大家关注我的博客,我的博客地址是:https://qinyuanpei.github.io。今天这篇博客,我们来说说WebSocket。各位可能会疑惑,为什么我会突然间对WebSocket感兴趣,这是因为最近接触到了部分“实时”的业务场景,譬如:用户希望在远程...

2018-08-27 12:46:57 5025 0

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

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

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

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

  最近在考虑将整个项目组的产品,努力向着持续集成(CI)/持续部署(CD)的方向靠拢,因为目前我们仅仅实现了基于Docker的自动化部署,而部署包的构建依然依赖于人工打包,而每个版本的测试和部署,基本上都要给所有相关人员发一遍邮件,而写邮件无非是填写版本号和变更历史。身处在这样一个社会化分工逐渐...

2018-06-13 12:43:15 2517 0

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

  太阳照常升起,在每个需要挤公交车上班的日子里,即使窗外早已大雨如注。想来只有在周末,太阳会陪着我一起起床,所谓睡觉睡到自然醒,在雨天里保持晴天的心情,相当大的程度上,是因为今天不必上班。因此,一周里的心情晴雨表,简直就是活生生的天气预报,可惜我并不能预测我的心情,因为Bug会在某一瞬间发动突然...

2018-06-12 17:34:56 2577 0

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

  最近看过了由全智贤主演的电影《暗杀》,虽然说这是一部我们早已熟稔的抗战题材电影,可是在全女神颜值和演技的诱惑下,我终于还是花了点时间来看这部电影。或许是因为我们见识过了太多的“抗日神剧”,所以在面对这样一部电影的时候,我们难免带着某种不屑的眼光去审视它。可是当你看完了这部电影,突然间兴奋到难以...

2018-06-12 17:34:22 1247 0

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

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

2018-05-14 09:52:12 775 0

原创 罗马数字与阿拉伯数字的相互转换

  最近遇到一道非常有趣的题目,题目大意如下:有一个富翁在银河系里做生意,而银河系使用的是罗马数字,所以他需要一个精明能干的助手,帮助他完成罗马数字与阿拉伯数字的相互转换,题目在这个背景下衍生出交易场景,我们需要帮助他计算出相关商品的价格。对于这道题目,如果剥离开这个题目本身的交易场景,这道题目本...

2018-05-02 09:27:22 5830 1

原创 邂逅AOP:说说JavaScript中的修饰器

  Hi,各位朋友,大家好,欢迎大家关注我的博客,我是Payne,我的博客地址是https://qinyuanpei.github.io。这个月基本上没怎么更新博客和公众号,所以今天想写一篇科普性质的文章,主题是JavaScript中的修饰器。 为什么使用了”邂逅”这样一个词汇呢?因为当你知道无法...

2018-04-17 17:17:23 1166 0

原创 一念执着,千山无阻

  上周看了部印度电影《小萝莉的猴神大叔》,以一言敝之,这是一部被名字耽误的好电影,就像我们所熟知的《三傻大闹宝莱坞》、《偶滴个神呐》、《外星醉汉PK地球神》等等电影一样。不过作为一部由“印度三汗”之一萨尔曼·汗主演的电影,可能因为其在国内的知名度不及阿米尔·汗,所以早在这部2015年就上映的电影...

2018-04-03 13:42:11 508 0

原创 漫谈应用程序重试策略及其实现

  最近随项目组对整个项目进行联调,在联调过程中暴露出各种问题,让我不得不开始反思,怎么样更好地去做好一件事情,譬如说在开发过程中如何保证Web服务的稳定性,在敏捷开发中如何降低文档维护的成本,以及如何提高多环境服务部署的效率等等。我为什么会考虑这些问题呢?通常我们都是在约定好接口后并行开发的,因...

2018-04-01 21:35:46 963 0

原创 基于新浪微博的男女性择偶观数据分析(下)

  各位朋友,大家好,我是Payne,欢迎大家关注我的博客。我的博客地址是:https://qinyuanpei.github.io。对于今天这篇文章的主题,相信经常关注我博客的朋友一定不会陌生。因为在2017年年底的时候,我曾以此为题写作了一篇文章:基于新浪微博的男女择偶观数据分析(上)。这篇文...

2018-03-24 23:42:45 2378 4

原创 使用Unity框架简化应用程序异常处理及日志记录流程

  最近公司安排学习项目代码,前后花了一周左右的时间,基本熟悉了项目中的各个模块,感觉项目难度上整体偏中等。这是一个具备完整前端和后端流程的项目,在学习这个项目的过程中,我逐渐发现某些非常有趣的东西,比如在Web API的设计中采用严谨而完善的错误码、使用OAuth和JWT对API资源进行访问控制...

2018-03-21 00:05:16 1471 6

原创 行走在消逝中

  从昨天到今天,关于霍金逝世的消息,一直在朋友圈里刷屏。昨天同事告诉我这个消息的时候,我心底先是一片恍惚,而后习惯性地打开微信,发现朋友圈和公众号里都在讨论这件事情。而等到我吃饭的时候,居然听到临桌的一名男生,在向同伴讲述霍金辐射的理论,堪称我在这一天所见过的一股清流。不知道从什么时候开始,一个...

2018-03-20 23:48:29 608 0

原创 我是猫,一只特立独行的猫

  终于在除夕夜到来前,在Kindle上读完了2017年的最后一本书,来自夏目漱石先生的《我是猫》。起初买这本书的动机说起来非常滑稽,一来以为这会是一本诙谐幽默的书,二来对夏目这个名字莫名地充满好感。我读的是曹曼翻译的中文译本,读时觉得这位作者的文字清新素雅,即使全书行文节奏堪称缓慢到极点,想来应...

2018-03-12 09:06:29 1071 0

原创 基于Travis CI实现 Hexo 在 Github 和 Coding 的同步部署

  各位朋友,大家好,我是Payne,欢迎大家关注我的博客,我的博客地址是 https://qinyuanpei.github.io .在曾经的一篇博客:《持续集成在Hexo自动化部署上的实践》中,我为大家分享了在线持续集成服务 Travis CI 的相关内容,在这篇文章中我们通过 Travi...

2018-02-27 15:28:18 2378 0

原创 基于Python实现的微信好友数据分析

  最近微信迎来了一次重要的更新,允许用户对”发现”页面进行定制。不知道从什么时候开始,微信朋友圈变得越来越复杂,当越来越多的人选择”仅展示最近三天的朋友圈”,大概连微信官方都是一脸的无可奈何。逐步泛化的好友关系,让微信从熟人社交逐渐过渡到陌生人社交,而朋友圈里亦真亦幻的状态更新,仿佛在努力证明每...

2018-02-24 13:03:25 17059 33

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