22 February 2022

总结项目遇到的几个问题

1、线上用户串号

首先说一个印象比深刻的用户串号的问题。

情况是这样的,当时用户访问网页时,不管是之前登录过的还是没登录过的,都自动登录到同个用户上面去了。检查之后,发现跟最近做的调整有关:用户自动延长登录时长,给频繁调用的接口添加缓存。简单说明一下,自动延长登录时长是通过在接口返回头中带上新的登录 token,用户端检测到新 token 时就替换掉旧的,这样能避免用户每过段时间就重新登录一次。

Desk Ga6583ff19 1280
read more
4 May 2019

Rails中Cookie和Session的关联

上一节介绍了warden是如何验证用户的登录授权身份,但是对于cookie和session之间是如何生成的,是如何产生关联的,然后是怎么通过保存session数据到cookie中的还有点模糊。总结分享下Rails中是如何处理cookie和session的。

Rubyonrailscookies
read more
20 April 2019
DSL

DSL-让你的 Ruby 代码更加优雅

DSL是Ruby这门语言较为广泛的用途之一,不过如果不熟悉Ruby的元编程的话,难免会被这类语法弄得一脸蒙蔽。今天主要就来看看DSL它是个什么东西,它在Ruby社区中地位怎么样,以及如何实现一门简单的DSL。

Capistranologo
read more
11 April 2019

Ruby中的闭包-代码块

在许多编程语言中都会有闭包这个概念。今天主要来谈谈Ruby中的闭包,它在这门语言中地位如何,以什么形式存在,主要用途有哪些?

Closure
read more
1 April 2019

[译] 你的 Rails 应用正确建立索引了吗

原文 Faster Rails: Is Your Database Properly Indexed?

我的 Rails 应用正常流畅的工作了好几个月后,随着产品的增长和用户开始涌入,Web 请求开始变得缓慢,数据库 CPU 使用率开始上升。然而我并没有做过什么更改,为什么应用就开始变慢了?

这个问题是否有解决办法? 或者说在 Rails 下不支持大规模地扩展?

sql
read more
30 March 2019

Eval家族的那些事儿

许多编程语言都会附带eval的功能,通常会出现在动态语言中,它就有点像是一个微型的解释器,可以在运行时解释代码片段。这篇文章主要以Ruby为例,详细介绍Ruby中的eval家族。

Eval Ruby
read more
19 March 2019
C

Memory allocation strategy for struct and union in C programming language

If you are writing program by C programming language, you may need to care about how many memories to allocate, and when you should deallocate them. That is a heavy work for programmers, but at the same time it is very interesting. You will recognize that when defining a float variable, how many memories we need to allocate? Why a function can modify extern variables by passing the pointer of them?

C Bg
read more
12 March 2019

关于散列表的一些思考

散列表(也叫Hash表)是一种应用较为广泛的数据结构,几乎所有的高级编程语言都内置了散列表这种数据结构。然而散列表在不同的编程语言中称呼不一样,在JavaScript中被称为对象,在Ruby中被称为哈希,而在Python中被称为字典。即便称呼不同,语法不同,它们的原理基本相通。

Hash
read more