Payment Core System Design - 1

学习支付大佬文章,参考原文

这篇是系列文章的第1篇,下面是目录:

系列文章一 : 01. 全局内核

系列文章二 : 02. 交易内核 03. 支付内核

系列文章三 : 04. 清结算内核

系列文章四 : 05. 账户钱包内核 06. 对账内核 07. 二清内核 08. 调拨内核 09. 业财内核


内核是看到一个事物的底层框架,无论外界如何变化,这个内核保持稳定和灵活的兼容性

内核不是一成不变的,它可以不断吸收新的知识,慢慢长大,而我们也随之不断蜕变

现在我将这几年抽象沉淀出来的“内核”展示给大家,这将短时间重塑你“曾经、现在、未来”的产品之路

01. 全局内核

认识任何事物,都可以从全局出发,从宏观上把握,心有乾坤,永不偏向

内核1:从业务上理解支付的关系

做事情,记账务,动资金。这个内核高度概括,支付的一切无非就是做事记账,记账交钱,通过系统逻辑实现三者的完美契合,于是我画了这张图:

图1:做事情,记账务,动资金

More...

用超多案例,帮你掌握尼尔森十大可用性原则

复习一下尼尔森设计原则,原文在此


尼尔森设计原则是人机交互学博士 Jakob Nielsen 于 1995 年发表的“十大可用性原则”。尼尔森博士分析了两百多个可用性问题而提炼出的十项通用型原则,它是产品设计与用户体验设计的重要参考标准,值得每个交互设计师理解与思考。今天把尼尔森设计原则结合一些产品案例进行总结:

原则一:状态可见性原则

系统应该让用户时刻清楚当前发生了什么事情,也就是快速的让用户了解自己处于何种状态、对过去发生、当前目标、以及对未来去向有所了解,一般的方法是在合适的时间给用户适当的反馈,防止用户使用出现错误。

沟通是所有关系的基础,无论人还是设备。产品应该通过在合理时间内的适当反馈,向用户通知正在发生的事情或者当前的状态。

  1. 用户知道系统在做什么
  2. 用户知道自己在什么位置
  3. 用户知道下一步操作应该去往哪里


产品名称:抖音

More...

Recap The TDD Process

From《Test-Driven Development with Python, 3rd Edition》by Harry Percival


We’ve now seen all the main aspects of the TDD process, in practice:

  • Functional tests
  • Unit tests
  • The unit-test/code cycle
  • Refactoring

What does the overall TDD process look like?

  • We write a test.
  • We run the test and see it fail.
  • We write some minimal code to get it a little further.
  • We rerun the test and repeat until it passes (the unit test / code cycle)
  • Then, we look for opportunities to refactor our code, using our tests to make sure we don’t break anything.
  • And start again from the top!

More...

解决Docker打包报错问题

背景


报错:

ERROR: failed to solve: nginx: blob sha256:cd64407576751d9b9ba4924f758d3d39fe76a6e142c32169625b60934c95f057 expected at /media/richard/N1/data/docker/buildkit/content/blobs/sha256/cd64407576751d9b9ba4924f758d3d39fe76a6e142c32169625b60934c95f057: blob not found: not found



解决方案


清除缓存:

1
sudo docker system prune -a --force

对应 -a 删除全部未使用的镜像,-f 或 --force 不经过确认强行删除。

再检查一下缓存情况,使用命令

1
sudo docker system df

About Comments and TDD

From《Test-Driven Development with Python, 3rd Edition》by Harry Percival

When I first started at Python Anywhere, I used to virtuously pepper my code with nice descriptive comments. My colleagues said to me: “Harry, we have a word for comments. We call them lies.” I was shocked! I learned in school that comments are good practice?

当我第一次开始使用 Python Anywhere 时,我常常用漂亮的描述性注释来填充我的代码。我的同事对我说:“哈利,关于注释我们有话要说。我们称之为谎言。”我很震惊!我在学校学到注释是很好的做法?

They were exaggerating for effect. There is definitely a place for comments that add context and intention. But my colleagues were pointing out that comments aren’t always as useful as you hope. For starters, it’s pointless to write a comment that just repeats what you’re doing with the code:

他们为了效果而夸大其词。肯定有一个地方可以发表评论来添加上下文和意图。但我的同事指出,评论并不总是像你希望的那样有用。对于初学者来说,编写只是重复您对代码所做的事情的注释是没有意义的:

1
2
# increment wibble by 1
wibble += 1
More...

产品笔记:好产品与“人性原罪需求”理论

2018年的老文章,记录学习一下,原文

一、产品是什么(Product)

首先,我们来谈谈产品,“产品究竟是什么?”

1.产品指什么

(1)产品的定义

很多人对于产品的定义,都是什么APP啊,什么应用啊,这都是比较狭义上的对于产品的理解。外行的朋友对于产品的认知可能比较局限,产品的范围其实非常之广。

产品的广义概念可以通过很多资料得出:产品是指满足人们需求的载体。

(2)产品的作用(价值)

解决用户需求与商业需求。

产品存在我们生活的各个角落,如:你现在正在移动的鼠标、正在看着的电脑屏幕,也是属于产品范畴。包括:你所接触的这个网站、你所打开的这个软件、你在玩的这个游戏,也归属于产品范畴。

产品存在形式多得数不胜数,可能你会说两者都不一样:一个是由实物制作而成的,一个是用代码编写而成的。

其实他们的区别在于:产品的存在形态不同,但是相同点都是**“为了满足用户需求”**。

如:电脑解决了你上网、获取知识的需求;鼠标解决了你操作的需求;而网站,为你带来了你想要的视频资源;软件,让你的办公需求得到满足;游戏,满足你的娱乐需求等等。

其实我们只需要记住两点,便可以区分。“需求决定了产品的存在价值,而解决方法决定了产品的存在形态”。

而本篇文章内容主要围绕互联网产品来展开。

More...

请我喝杯咖啡吧~

支付宝
微信