编程路上的瞎扯
文章平均质量分 85
我是大愚
我是大愚,PHP工程师,专注于服务端技术。热爱开源,在GitHub创建了一个PHP聚合支付的sdk项目,目前是此类最多star拥有的项目(Payment)。希望遇见跟多的同行互相学习进步。
展开
-
Golang技巧之默认值设置的高阶玩法
最近使用 GRPC 发现一个设计特别好的地方,非常值得借鉴。我们在日常写方法的时候,希望给某个字段设置一个默认值,不需要定制化的场景就不传这个参数,但是 Golang 却没有提供像 PHP、Python 这种动态语言设置方法参数默认值的能力。低阶玩家应对默认值问题以一个购物车举例。比如我有下面这样一个购物车的结构体,其中 CartExts 是扩展属性,它有自己的默认值,使用者希望如果不改变默认值时就不传该参数。但是由于 Golang 无法在参数中设置默认值,只有以下几个选择:提供一个初始化函数,所原创 2020-06-24 11:14:35 · 1658 阅读 · 0 评论 -
[Skr-Shop]购物车之架构设计
来还债了,希望大家在疫情中都是平安的,回来的时候公司也还在!原创 2020-04-06 14:18:14 · 993 阅读 · 1 评论 -
[Skr-Shop]购物车设计之需求分析
skr shop是一群底层码农,由于被工作中的项目折磨的精神失常,加之由于程序员的自傲:别人设计的系统都是一坨shit,我的设计才是宇宙最牛逼,于是乎决定要做一个只设计不编码的电商设计手册。项目地址:https://github.com/skr-shop/manuals对于一个电商来讲,购物车是整个购买流程最重要的一步。因为电商发展到今天购物车不仅仅只是为了完成打包下单的功能;也是收藏、对...原创 2019-12-10 15:11:25 · 1712 阅读 · 2 评论 -
第三方支付的流程分析与总结
这几年的工作中一直与支付打交到,借着 skr-shop 这个项目来与大家一起分享探索一下支付系统该怎么设计、怎么做。我们先从支付的一些常见流程出发分析,找出这些支付的共性,抽象后再去探讨具体的数据库设计、代码结构设计。相关项目:PHP 版本的支付SDKGo 版本的支付SDK-开发中支付整体而言的一个流程是:给第三方发起了一笔交易,用户通过第三方完成支付,第三方告诉我支付成功,我把用户...原创 2018-12-09 18:51:08 · 7460 阅读 · 12 评论 -
coder,你会设计交易系统吗(概念篇)?
文中我们从严谨的角度一步步聊到支付如何演变成独立的系统。内容包括:系统演进过程、接口设计、数据库设计以及代码如何组织的示例。若有不足之处,欢迎讨论共同学习。从模块到服务我记得最开始工作的时候,所有的功能:加购物车/下单/支付 等逻辑都是放在一个项目里。如果一个新的项目需要某个功能,就把这个部分的功能包拷贝到新的项目。数据库也原封不动的拷贝过来,稍微根据需求改改。这就是所谓的 单体应用 时代,...原创 2019-03-11 14:23:02 · 627 阅读 · 0 评论 -
coder,你会设计交易系统吗(概念篇)?
文中我们从严谨的角度一步步聊到支付如何演变成独立的系统。内容包括:系统演进过程、接口设计、数据库设计以及代码如何组织的示例。若有不足之处,欢迎讨论共同学习。从模块到服务我记得最开始工作的时候,所有的功能:加购物车/下单/支付 等逻辑都是放在一个项目里。如果一个新的项目需要某个功能,就把这个部分的功能包拷贝到新的项目。数据库也原封不动的拷贝过来,稍微根据需求改改。这就是所谓的 单体应用 时代,...原创 2019-03-11 14:23:12 · 406 阅读 · 0 评论 -
coder,你会设计交易系统吗(实干篇)?
通过 上篇文章 的分析,我们已经明确了这个系统要干些什么。接下来的都是实打实的干货。这些内容认真阅读掌握后,相信你能够以此为基础设计一个维护性好、扩展性好的交易系统。数据库设计数据的设计是按照:交易、退款、日志 来设计的。对于上面说到的对账等功能并没有。这部分不难大家可以自行设计,按照上面讲到的思路。主要的表介绍如下:pay_transaction 记录所有的交易数据。pay_trans...原创 2019-03-22 19:33:02 · 783 阅读 · 0 评论 -
高并发架构的CDN知识介绍
对一次网络请求过程的了解程度,一是展现你的专业知识;二是深刻的理解,让你在大型网站架构中做出更适合、可靠的架构。而DNS是这一切的出发点,本文结合一张常用架构图,来描述一下这个过程。部署架构大型的web服务,我们的部署架构一般如下图。先上图再解释。这里来解释下,为什么要这样架构。首先客户端的请求会通过 DNS 获取到对应的服务器IP(实际上是LB的ip地址),这一层会有 DNS的负载均衡...原创 2019-04-29 18:19:14 · 742 阅读 · 0 评论 -
高并发架构的CDN知识介绍
对一次网络请求过程的了解程度,一是展现你的专业知识;二是深刻的理解,让你在大型网站架构中做出更适合、可靠的架构。而DNS是这一切的出发点,本文结合一张常用架构图,来描述一下这个过程。部署架构大型的web服务,我们的部署架构一般如下图。先上图再解释。这里来解释下,为什么要这样架构。首先客户端的请求会通过 DNS 获取到对应的服务器IP(实际上是LB的ip地址),这一层会有 DNS的负载均衡...原创 2019-04-29 18:20:18 · 906 阅读 · 0 评论 -
线上大量CLOSE_WAIT分析
这一次重启真的无法解决问题了:一次 MySQL 主动关闭,导致服务出现大量 CLOSE_WAIT 的全流程排查过程。近日遇到一个线上服务 socket 资源被不断打满的情况。通过各种工具分析线上问题,定位到问题代码。这里对该问题发现、修复过程进行一下复盘总结。先看两张图。一张图是服务正常时监控到的 socket 状态,另一张当然就是异常啦!图一:正常时监控图二:异常时监控从图中的表现...原创 2018-12-13 09:35:31 · 972 阅读 · 0 评论 -
我想成为一个真的程序员
4年了,我还是个假程序员原创 2017-10-25 13:50:12 · 11123 阅读 · 57 评论 -
数据设计的个人总结
一、什么是数据库设计数据库设计概念 数据库设计就是根据业务系统的具体需求,结合所选择的DBMS,为这个业务系统构造出最优的数据存储模型。并建立好数据库中表的结构,以及表与表之间的关联关系的过程。使之能有效的对应用系统中的数据进行存储,并可以高效的对已经存储的数据进行查询访问。设计对比 优良的设计 槽糕的设计 减少数据冗余 存在大量的数据冗余 避免数据维护异常 存在数据插入、原创 2015-04-11 17:32:36 · 2153 阅读 · 0 评论 -
CentOS下安装XAMPP详细教程
现在php的集成运行环境越来越多,个人比较喜欢XAMPP,更新速度快,好用,安装便捷。windows下面的安装,就是下一步、下一步,没什么好说的,详细说一下linux下面的安装,这里以CentOS为例进行说明。一、 下载XAMPP如果直接使用wget从xampp的官网上下载,由于各种墙,不能下载成功,可以在 该链接 中选择自己需要的版本。我选择的linux下,64位,5.6.14这个版本。使用以下命原创 2015-11-11 15:09:01 · 25522 阅读 · 0 评论 -
CentOs7 中安装 guetzli 详细教程
CentOs7 中安装 guetzli 教程,我的承诺,今天兑现。带你上车周六的时候收到 36kr 推送的一篇文章: Google开源新算法,可将JPEG文件缩小35%测试了结果,惊的我目瞪口呆。如果非要我用一个词形容的话:牛逼太牛逼先来教大家如何在 CentOs7 中安装,项目的说明文档没有很好的说明如何完成 redhat 系列的 linux 如何安装。我是踩了不少坑才完成的。这里边最简单的安装就原创 2017-03-21 11:17:19 · 3264 阅读 · 2 评论 -
Guetzli 图片压缩到底有多牛
忙里偷闲,把一张图片用 guetzli 压缩了13次。你要不要来看看结果 在上一篇文章中,介绍了 guetzli 的安装。伴随 1.0.1 版本移除 gflags ,安装也变的异常简单了。本篇带领大家看一下他的压缩效果。我下面放几张图。大家可以看看效果。看谁能够识别那张图是压缩了的。下面全是图片.原创 2017-03-28 18:40:52 · 7272 阅读 · 1 评论 -
php工程狮感知的前端工作流程
这个时代不懂点前端知识,真的没有办法生存。就算不会写,也得了解它的原理吧!最近做了一些总结,之前都是迷迷糊糊,搞不清楚前端之前的相关定位。好好梳理了一下。错误之处请各位指正。本文主要说的是 JavaScript 工作流程目前前端真的该叫大前端,其越来越细化,越来越复杂。在这种背景下,诞生了很多工具很多前端工作流程。比如热门的: - react - vue - webpack - babel原创 2017-04-01 13:24:10 · 1649 阅读 · 0 评论 -
团队开发Git分支管理策略
开发生涯的前三年都是使用 svn,回首放佛如前世。自从用了 git ,整个人都神经了。下面的内容肯定不是什么教你如何用git提交代码,合并分支之类的。现在本人要从写术的层面提升一下自己文章的品质到道的层面。使用git带来的分支疑惑git 为什么好,为什么要用 git,这不是我本文想要说明的问题。这里想要给大家分享一下自己使用过程中产生的疑惑,以及解决的这些疑惑的过程。话又说回来,我现在依然充满疑惑。原创 2017-04-14 15:35:47 · 3591 阅读 · 0 评论 -
推荐三款我常备开发辅助神器
五一假期过完了,大家都去哪些地方浪了?上班第一天是不是倍感无趣?哈哈,不要紧,今天我来给大家推荐几个神器,让你明天神清气爽,这可是程序员开发必备之良品呀。原创 2017-05-02 20:53:06 · 2190 阅读 · 0 评论 -
Web开发中,什么级别才算是高并发
概念背后的实质,才值得我们真正去畅谈与思考。原创 2017-08-25 10:19:06 · 38713 阅读 · 8 评论 -
解决VMware中装centOS后不能够上网及ping通的问题
在vmware中安装centos不能够上网,解决办法。原创 2015-03-16 17:22:54 · 4657 阅读 · 0 评论