网上冲浪指南 |> λ

如何在 ASP.NET Core 测试中操纵时间?

2018/08/15

⏳ 时间的膜法,来看一看如何 Mock DateTime.Now 吧~

如何简单的在 ASP.NET Core 中集成 JWT 认证?

2018/07/30

自上一篇介绍如何在 ASP.NET Core 中集成 JWT 的博文发布接近一年后,我又想来分享一些使用 JWT 的经验了。过去的一年中,我每次遇到一些小的,垃圾的项目,就会按照去年的那片文章来进行配置,虽然代码不多,但是每次写这么一些模板代码,又感觉很枯燥、冗余,而且稍不注意就有可能配置的有问题,导致验证不成功。前几天,我继续写自己的垃圾毕设,写到集成 JWT 的时候,我终于忍受不了这种重复的配置工作了,于是便着手封装一个简单易用的 JWT 插件。

博客系统的又一次大重构

2018/07/16

最近在网上瞎逛,发现了一个使用 F# 编写的服务端框架:Giraffe。它除了拥有函数式编程的优雅之外,在自带了一个 Giraffe View Engine —— 可以使用类似 Elm 的 API 来创建服务端页面模板,这对我来这种苦于 Razor 很久的人来说简直是充满了重构的诱惑。另一个使我更加坚定的原因就是 Giraffe 可以非常容易的与 ASP.NET Core 接入,只需 3 行代码,就可以让一个 Giraffe APP 成为 ASP.NET Core 中间件。

Rancher 到 Portainer

2018/07/09

前几天大公鸡突然失去网络连接,向主机商提交了工单后过了大半个星期一直没有回复,我这才断了继续使用大公鸡的念头,于是就着手把博客站点迁移到一台小鸡(1C1G)上面,这种小鸡当然是没法运行 Rancher 的,所以我就使用了 Portainer 作为替代品。

CIL - 运算符

2018/06/29

C# 内置有多种常用的运算符,在这篇文章中,我们将从 CIL 的角度重新学习 C# 中的那些运算符。

CIL - 变量之间的赋值

2018/06/29

在 C# 中,单个 = 表示变量赋值的意思,对于值类型来说,赋值相当于把值拷贝了一份,对于引用类型来说,赋值相当于把引用拷贝了一份,那在 CIL 中是如何实现这样的赋值功能呢?

CIL - 声明变量与初始化

2018/06/29

在 C# 中我们可通过 类型 变量名 [= 初始值] 这样的语句来定义变量,如果变量被定义在一个函数中,那么,这些变量就被称为本地变量(local variable)。为了简单起见,让我们先从最常见的几种类型的变量的声明与初始化来看 IL 是如何达成这个简单的任务的。

CIL - 变量类型

2018/06/29

CIL 是一种面向栈设计的语言,我们可以通过 CIL 提供的很多个操作符来对一个栈进行操作,例如,将一个值推入栈的末尾,或者,把栈末尾的值弹出。他的规则设计的如此简单,以至于让第一次见到它的人感到无所适从。不过这并不重要,我们可以先从 CIL 的变量类型开始上手。

Go vs .NET Core 2.1

2018/06/01

.NET Core 2.1 正式发布之际,微软团队在博客的中提到了 .NET Core 2.1 中的性能提升。这让我想起了去年 Go 语言 Iris MVC 框架作者做的 Go 与 .NET Core 2.0 之间的性能对比,当时的 Iris 在各个方面的表现都基本超出 .NET Core 至少 1 倍,测试结果在社区中引发了不小的讨论,事后,微软团队的成员与 Iris 的作者进行了亲切友好的会谈,并就 Web 框架性能调优相关方面展开了深入的讨论。现在 .NET Core 2.1 版本正式发布,让我们来看看现在的 .NET Core 性能到底如何。

8102 年,用 CSS 实现折叠面板的动画

2018/05/26

作为一个经常写后端代码的程序员,偶尔写写前端代码也是勉强可以应付的。最近在重构某网站的时候,需要重新实现一个折叠面板。因为用了 Angular 这样酷炫的前端框架,我相信,就算没有 jQuery 这样的工具,手撸一个折叠面板应该没啥问题。就当我按照自己的直觉写完第一版代码之后,简单的运行了一下,我就发现事情好像并没有那么简单。

使用 SQLServer On Linux 作为开发数据库遇到的编码问题

2018/04/04

在维护旧的项目的时候,遇到了使用 varchar 类型存储中文的情况,本地数据库是直接使用来自上古时期的 T-SQL 创建的。为了方便,我就没有安装 Windows 版的 SQLServer,直接用的 SQLServer On Linux On Docker。结果默认创建出来的数据库实例默认使用拉丁文编码,这导致了原有项目中 varchar 字段插入中文会乱码的问题。

读《领域驱动设计》有感

2018/03/02

领域驱动设计本质上就是模型驱动设计,我们使用实体、值对象、模块、聚合、服务、工厂、仓储这些元素设计我们的领域模型,在这个过程中,我们必须从始至终的使用“统一的语言”。在设计过程中,我们需要始终关注业务本身去设计模型,不断的去学习理解业务规则并保持领域层的纯洁性有助于我们构建出正确的符合业务原理的领域模型。

Angular 向组件传递模板的几种方法

2018/05/26

使用 <ng-content> 标签可以更方便的控制传入的模板在 DOM 中的位置,而 NgTemplateOutlet 可以向传入的模板传递渲染数据,两者搭配使用可以起到很好的效果。

使用 RxJS 实现一个简易的仿 Elm 架构应用

2018/02/20

Elm 架构是一种使用 Elm 语言编写 Web 前端应用的简单架构,在代码模块化、代码重用以及测试方面都有较好的优势。使用 Elm 架构,可以非常轻松的构建复杂的 Web 应用,无论是面对重构还是添加新功能,它都能使项目保持良好的健康状态。

C# 函数式编程 —— 使用 Lambda 表达式编写递归函数

2018/05/26

最近看了赵姐夫的这篇博客http://blog.zhaojie.me/2009/08/recursive-lambda-expressions.html,主要讲的是如何使用 Lambda 编写递归函数。其中提到了不动点组合子这个东西,这个概念来自于函数式编程的世界,直接理解起来可能有些困难,所以我们可以一起来尝试使用 Lambda 来编写递归函数,以此来探索不动点组合子的奥秘。

让网站的身份认证同时兼容 JWT 与 Cookie

2017/12/11

在浏览器中直接访问网页是不会在请求头里面自动附加 token 的,所以必须要拓展一下 JWT 的认证方式,让 JWT 也能通过 Cookie 传递。

为什么在搬砖项目中我不用三层架构

2017/11/21

以上的所有内容都是基于这个搬砖项目展开的,所谓的搬砖项目就是几乎完全由 CRUD 组成的各种信息管理系统,并且,系统中出现的所有实体均是贫血模型。针对这样的 XXX 管理系统,三层架构除了能够对代码行数有所提升,其余并没有什么帮助,所以最终我选择放弃三层架构。

我的 Manjaro🐧

2018/06/28

Manjaro 是 邪教 Arch Linux 一个分支,显而易见的好处就是拥有 AUR 这样的浩瀚的软件仓库,而且背靠 Arch Wiki 跟活跃的论坛,对愿意学习 Linux 的新手来说简直是最好的发行版。当然,最最重要的是,Manjaro 在安装的时候能够自动安装硬件驱动,就算是 N 卡也能愉快的玩耍?

利用 Docker 备份、迁移数据库

2017/11/14

最近在把腾讯云的国内主机迁移到香港主机,因为之前使用的 MySql 跟 MongoDb 都是基于 Docker 部署的,所以迁移起来还算比较方便,主要思路就是把数据库容器的数据卷单独做成一个数据镜像,然后把这个镜像提交到香港主机上面的私有仓库,最后用这个镜像生成一个数据容器挂载到应用容器上就好了。

敏捷开发

2017/11/10

敏捷开发最重要的部分在此

1

友情链接