秋风劲似去年时

连续数日的秋雨绵绵,依然固执地不肯转身离开,而之所以选择在国庆节前徘徊,或许是为了让离开家的人,多些同江湖风雨漂泊的味道。印象中这样的日子常常是相似的,譬如穿行在骤雨中被来往车辆溅得一身水,或者行走在上班的路上抬头看见第一场雪,或者是倚靠在

从 React 专利事件看开源软件许可

各位朋友,我是 Payne,大家好,欢迎大家关注我的博客,我的博客地址是https://qinyuanpei.github.io。最近前端技术圈因为 React 专利事件再次被大家关注,印象中 Angular 和 Vue 的纷争刚刚过去不久,果然前端技术圈对"造轮子&

Redis 缓存技术学习系列之 Lua 脚本

各位朋友,大家好,我是 Payne,欢迎大家关注我的博客,我的博客地址是https://qinyuanpei.github.io。想起来大概有一个月没有更新博客啦。或许是因为这中间发生了太多的事情,想来人生原本就充满曲折和变数。在微信群里得知

基于特性(Attribute)的实体属性验证方案设计

各位朋友,我是Payne,大家好,欢迎大家关注我的博客,我的博客地址是https://qinyuanpei.github.io。在这篇文章中,我想和大家探讨下数据校验的相关问题,为什么我会对这个问题感兴趣呢?这其实是来自最近工作中相关需求场

《大护法》:花生镇里的成人童话

猛然间驻足回首这些错落的旧时光,我渐渐意识到我已经有三个月没有写博客了。如果一定要我说出这是种什么样的感觉,大概就是你永远都不会知道永远到底有多远。或许你会喜欢上一个陌生的人,源自不经意间的惊鸿一瞥;或许你会开始厌倦一个熟悉的人,源自不经意

Featured image of post 《大护法》:花生镇里的成人童话

基于过滤器实现异常处理的探索

正如你所看到的那样,今天我想和大家聊聊异常处理这个话题。对于异常处理这个话题,我相信大家都有各自的方法论。而我今天想和大家探讨的这种异常处理方案,我将其称之为基于过滤器的异常处理。我不知道这种定义是否准确,我们的项目上在要引入 AOP 的概念以后,

异步 Lambda 表达式问题的探索

各位朋友,大家好,欢迎大家关注我的博客,我是 Payne,我的博客地址是:http://qinyuanpei.com。今天博主想和大家探讨的是,.NET 中异步 Lambda 表达式的问题。为什么要讨论这个问题呢,这或许要从公司首席架构推广内部框架这件事情说

Redis 缓存技术学习系列之发布订阅

各位朋友,大家好,我是 Payne,欢迎大家关注我的博客,我的博客地址是http://qinyuanpei.com。最近这段时间的天气可谓是变幻莫测,常常是周一到周五像夏天般热烈,而周六和周天像秋天般冷清。你不知道它到底会在何时下雨,即使你可以一直带着伞等雨落下来。但是对于没有伞的我来说,学会努力奔跑以至于不那么狼狈,或许是在这个世界上我唯一可以去做的事情。可是你知道一个人孤独的时候,即使是下雨这种再平常不过的事情,他都可以从雨声里听出孤独的感觉来,所以这个周末我决定继续研究 Redis 缓存技术,而今天我想和大家讨论的话题是 Redis 中的发布-订阅(Pub-Sub),希望大家喜欢!

Redis 缓存技术学习系列之事务处理

 在本系列的第一篇文章中,我们主要针对 Redis 中的“键”和“值”进行了学习。我们可以注意到,Redis 是一个 C/S 架构的数据库,在我们目前的认知中,它是通过终端中的一条条命令来存储和读取的,即它是一个非常典型的“请求-响应”模型。可是我们知道在实际的应用中,我们要面对的或许是更为复杂的业务逻辑,因为 Redis 中不存在传统关系型数据库中表的概念,因此在使用 Redis 的过程中,我们要面对两个实际的问题,即如何更好的维护数据库中的”键“、如何在高效执行命令的同时保证命令执行成功。对于前者,我认为这是一个设计上的问题,而对于后者,我认为这是一个技术上的问题。所以,这篇文章的核心内容就是找到这两个问题的答案。带着这样的问题出发,我们就可以正式进入这篇文章的主题:Redis 中的事务处理。

时间如灰烬般遥远

春天,常常是万物复苏的日子,是以这段时间喜欢去各种地方赏花阅景。相比起三月中旬里裹挟着清冷的青龙寺,此刻到处人山人海的景象,仿佛洋溢着某种热闹的气息。从前读朱自清的《荷塘月色》,一直不明白“热闹是他们的,我什么都没有”这句话该做何解。当你面对梨花胜雪、桃花人面的景致的时候,心中却是如灰烬一般孤独的时候,大概终于明白,为何在熙熙攘攘的人群中会感到一丝清冷,因为唯有行走在人群里的时候,你会发现原来你一个人走了这么久。天地间万事万物更迭交替,本来是自然界中最普通的规则,可是如果每年的这个时候,你都是一个人去看这山山水水,相比时空上的孤寂感,人的孤寂感会更为强烈,“良辰美景奈何天,赏心乐事谁家院”,外面的世界再纷繁多变,对你而言不过是活着的时间。

Redis 缓存技术学习系列之邂逅 Redis

 作为一个反主流的开发者,在某种程度上,我对传统关系型数据库一直有点“讨厌”,因为关系型数据库实际上和面向对象思想是完全冲突的,前者建立在数学集合理论的基础上,而后者则是建立在软件工程基本原则的基础上。虽然传统的 ORM、序列化/反序列化在一定程度上解决了这种冲突,但是软件开发中关于使用原生 SQL 语句还是使用 ORM 框架的争论从来没有停止过。可是实际的业务背景中,是完全无法脱离数据库的,除非在某些特定的场合下,考虑到信息安全因素而禁止开发者使用数据库,在主流技术中数据库是一个非常重要的组成部分。为了弥补这个技术上的短板,从这篇文章开始,我将会学习一个经典的缓存技术:Redis。我们这里将 Redis 定性为一门缓存技术,这说明 Redis 和 MySQL 等主流的数据库存在本质上的区别,那么这些区别到底在哪里呢?或许在看完这个系列文章以后,你心中自然就会有了答案。

使用 C#开发 HTTP 服务器之支持 HTTPS

各位朋友大家好,我是秦元培,欢迎大家关注我的博客,我的博客地址是http://qinyuanpei.com。本文是“使用 C#开发 HTTP 服务器”系列的第六篇文章,在这个系列文章中我们实现了一个基础的 Web 服务器,它支持从本地读取静态 HTML 页面,支持 GET 和 POST 两种请求方式。该项目托管在我的Github上,项目地址为https://github.com/qinyuanpei/HttpServer,感兴趣的朋友可以前往了解。其间有朋友为我提供了 HTTPS 的 PR,或许这偏离了这个系列开发 HTTP 服务器的初衷,可是我们应该认识到普及 HTTPS 是大势所趋。所以在今天这篇文章中,我将为大家带来 HTTPS 相关知识的普及,以及如何为我们的这个 Web 服务器增加 HTTPS 的支持。

愿浮萍乘风破浪

或许是今年的贺岁档电影全部遭遇“滑铁卢”的缘故,在这种情况下,电影《乘风破浪》或许会成为拯救整个贺一个岁档的奇迹。同往常一样,我依然选择一个人去看电影,而庆幸的是韩寒真的没有让我们失望。虽然前期在微博上经常看到韩寒在为这部电影做宣传,但我一直想知道它会一种什么样的方式来讲述这个故事,我隐隐约约觉得徐太浪(邓超饰)、徐正太(彭于晏饰)、小花(赵丽颖饰)三个人之间的关系非同寻常,我甚至臆想这是一部俗套的三角恋的故事。可结果却是完全出人意料的,我很喜欢这个故事。

函数式编程常用术语

近年来函数式编程这种概念渐渐流行起来,尤其是在 React/Vuejs 这两个前端框架的推动下,函数式编程就像股新思潮一般瞬间席卷整个技术圈。虽然博主接触到的前端技术并不算深入,可这并不妨碍我们通过类似概念的延伸来理解这种概念。首先,函数式编程是一种编程范式,而我们所熟悉的常见编程范式则有命令式编程(Imperative Programmming)、函数式编程(Functional Programming)、逻辑式编程(Logic Programming)、**声明式编程(Declarative Programming)和响应式编程(Reactive Programming)**等。现代编程语言 在发展过程中实际上都在借鉴不同的编程范式,比如 Lisp 和 Haskell 是最经典的函数式编程语言,而 SmartTalk、C++和 Java 则是最经典的命令式编程语言。微软的 C#语言最早主要借鉴 Java 语言,在其引入 lambda 和 LINQ 特性以后,使得 C#开始具备实施函数式编程的基础,而最新的 Java8 同样开始强化 lambda 这一特性,为什么 lambda 会如此重要呢?这或许要从函数式编程的基本术语开始说起。

基于 Mono 和 VSCode 打造轻量级跨平台 IDE

最近 Visual Studio 推出 Mac 版本的消息迅速在技术圈里刷屏,当工程师们最喜欢的笔记本电脑 Mac,邂逅地球上最强大的集成开发环境 Visual Studio 的时候,会碰撞出怎样精彩的火花呢?在微软新任 CEO 纳德拉的“移动为先、云为先”战略下,微软的转变渐渐开始让人欣喜,从.NET Core、VSCode、TypeScript 再到近期的 Visual Studio For Mac,这一系列动作让我们感觉到,微软的技术栈越来越多地向着开源和跨平台两个方向努力。我们曾经固执地认为,微软的技术栈注定永远无法摆脱 Windows 的束缚,而事实上这个世界每天都在发生着变化。或许这次 Visual Studio 推出 Mac 版这件事情,本质上是微软收购的 Xamarin 公司旗下产品 Xamarin Studio 的一次改头换面。可是这件事情说明,微软正在努力让.NET 技术栈融入更多的应用场景。对我而言,我是没有钱去买一台 Mac 的,所以在这篇文章中,我们将在 Linux 下通过 Mono 和 VSCode 来打造一个轻量级的 IDE。而据说 Mono 会和 Xamarin 一样,将来会成为.NET 基金会的一部分。

Built with Hugo v0.110.0
Theme Stack designed by Jimmy
已创作 269 篇文章,共计 1015986 字