12 2022 档案

摘要:1776 年亚当斯密发表《国富论》,标志着经济学的诞生。2004 年,一本名为《领域驱动设计·软件核心复杂性应对之道》的书问世,开辟了软件开发的一个新流派:领域驱动设计。看完这本书,十个人有九个人的感觉都是:似懂非懂,若有所得,掩卷长思,一无所得,我个人的感觉同样如此。出于兴趣,多年来仔细研读了几十本相关书籍,融汇贯通,逐步形成了自己的一套看法,本文就和各位分享一下。 冯友兰治哲学,提出“照着讲”和“接着讲”的方法论。近两年,我断断续续梳理出关于领域驱动设计的两个 PPT:《领域驱动设计》和《领域驱动设计四论》。前者的内容主要是关于 DDD 经典著作的读书笔记,可视为照着讲,以证明自己学有所本,讲的不是野狐禅;后者则是在继承的基础上所做的创新阐释,可视为接着讲,发前人之未发。本文重点围绕《四论》展开,从四个方面梳理出 DDD 的整个逻辑脉络。 曾见郭象注庄子,却是庄子注郭象。一些领域驱动设计的拥趸们,如果看到本文的论述和自己的理解相左,丝毫不用奇怪,本文阐述的四论,不是我注六经,而是六经注我。 本文不准备长篇大论,只是提纲挈领地梳理出 DDD 的核心脉络。 阅读全文
posted @ 2022-12-31 09:27 古道轻风 阅读(236) 评论(0) 推荐(0) 编辑
摘要:谈起消息队列,内心还是会有些波澜。 消息队列、缓存、分库分表是高并发解决方案三剑客,而消息队列是我最喜欢,也是思考最多的技术。我想按照下面的四个阶段分享我与消息队列的故事,同时也是对我技术成长经历的回顾。 阅读全文
posted @ 2022-12-30 14:07 古道轻风 阅读(133) 评论(0) 推荐(0) 编辑
摘要:资金核对的数据组装-执行-应急链路,有着千万级TPS并发量,同时由于资金业务特性,对系统可用性和准确性要求非常高;日常开发过程中会遇到各种各样的高可用问题,也在不断地尝试做一些系统设计以及性能优化,在此期间总结了部分性能优化的经验和方法,跟大家一起分享和交流。 阅读全文
posted @ 2022-12-29 08:32 古道轻风 阅读(330) 评论(0) 推荐(0) 编辑
摘要:建模对于大家来讲并不陌生,而且建模的方法也有很多,如用例建模、四色建模、事件风暴等,但在日常工作中,大家又觉得建模挺虚的:怎么把建模落到实际开发工作中。个人认为建模是分两部分:第一部分是业务概念建模,对现实业务抽取核心概念构建出模型(知识层);第二部分是系统建模,系统建模是源于业务概念模型,遵循某些原则最终形成开发可落地的模型(操作层)。在本文中,给出建模的底层逻辑:用图形逻辑地表达现实业务的抽象,通过一些大家通识的技术案例讲述建模的过程。 阅读全文
posted @ 2022-12-28 08:39 古道轻风 阅读(241) 评论(0) 推荐(0) 编辑
摘要:DDD(领域驱动设计)是 Eric Evans 于 2003 年提出的解决复杂的中大型软件的方法,开始一直不愠不火。直到 Martin Fowler 于 2014 年发表的论文《Microservices》引起大家对微服务的关注,DDD 才重新慢慢的回到了大众的视野中。 DDD 这几年升温的同时,也收到了很多行业人员对 DDD 的负面意见,主要原因大概有“晦涩难懂过于抽象”、“很难找到实际的案例参考”、“不知道怎么落地”等。 笔者在学习 DDD 的过程中,也遇到了这些问题。不过在经过几个月的学习-实践,逐渐掌握了 DDD 的一些思想后,感觉还是确实有所受益,所以这里尝试用白话去总结我们从入门到实践的过程,尽量每一个概念都用我们的具体实现做出例子,希望能对想一起学习 DDD 的同事有所帮助。 阅读全文
posted @ 2022-12-27 08:51 古道轻风 阅读(1048) 评论(0) 推荐(0) 编辑
摘要:本文根据digoal(德哥)在〖2019 DAMS中国数据智能管理峰会〗现场演讲内容整理而成。 阅读全文
posted @ 2022-12-26 08:49 古道轻风 阅读(469) 评论(0) 推荐(0) 编辑
摘要:近年来,有关数据泄露相关的新闻事件屡见不鲜,不断地引发大众的讨论和担忧。各家企业都或多或少在承受相关的数据安全风险,这种可能性会给企业运行带来额外的风险,包括大众的质疑以及政府的处罚等。 Facebook超5亿用户个人数据遭到泄露; Elector Software投票应用泄露超650万以色列选民个人数据; T-Mobile数据失窃,超过1亿用户的个人信息被泄露售卖; 亚马逊因违反GDPR被重罚7.46亿欧元…… 从现有的事件统计来看, 数据库未得到正确配置和黑客攻击相对来说是比较主要的诱因;在这种严峻的个人信息保护形势背景下,各国都在强化健全相关的法律合规机制。 阅读全文
posted @ 2022-12-25 17:19 古道轻风 阅读(484) 评论(0) 推荐(0) 编辑
摘要:本文主要讲解在 Git 仓库中如何管理大的二进制文件,详细介绍了什么是 Git LFS,Git LFS 是如何工作的,以及如何使用 Git LFS。 阅读全文
posted @ 2022-12-25 09:17 古道轻风 阅读(315) 评论(0) 推荐(0) 编辑
摘要:作为公司代码委员会 golang 分会的理事,我 review 了很多代码,看了很多别人的 review 评论。发现不少同学 code review 与写出好代码的水平有待提高。在这里,想分享一下我的一些理念和思路。 阅读全文
posted @ 2022-12-24 15:09 古道轻风 阅读(295) 评论(0) 推荐(0) 编辑
摘要:Mysql 作为互联网中非常热门的数据库,其底层的存储引擎和数据检索引擎的设计非常重要,尤其是 Mysql 数据的存储形式以及索引的设计,决定了 Mysql 整体的数据检索性能。 阅读全文
posted @ 2022-12-24 10:01 古道轻风 阅读(152) 评论(0) 推荐(0) 编辑
摘要:从 1989 年万维网(www)诞生,HTTP(HyperText Transfer Protocol)经历了众多版本迭代,WebSocket 也在期间萌芽。1991 年 HTTP0.9 被发明。1996 年出现了 HTTP1.0。2015 年 HTTP2 正式发布。2020 年 HTTP3 或能正式使用。以下将会简单介绍。 阅读全文
posted @ 2022-12-23 20:14 古道轻风 阅读(877) 评论(0) 推荐(0) 编辑
摘要:小程序云开发(Tencent CloudBase)拥有易接入、高性能、高可用等特性,其中云数据库作为核心组件之一,可以有效降低运维成本,帮助开发者实现业务快速上线与迭代。本文将简要介绍如何通过 TEG 云架构平台部的高性能分布式 NoSQL 数据库,为近百万小程序云开发用户提供完整的原生云端数据库能力支持。 阅读全文
posted @ 2022-12-23 08:41 古道轻风 阅读(295) 评论(0) 推荐(0) 编辑
摘要:23种经典设计模式共分为3种类型,分别是创建型、结构型和行为型。 今天,我们把这3种类型分成3个对应的小模块,逐一带你回顾一下每一种设计模式的原理、实现、设计意图和应用场景。 还是那句话,如果你看了之后,感觉都有印象,那就说明学得还不错;如果还能在脑子里形成自己的知识架构,闭上眼睛都能回忆上来,那说明你学得很好; 如果能有自己的理解,并且在项目开发中,开始思考代码质量问题,开始用已经学过的设计模式来解决代码问题,那说明你已经掌握这些内容的精髓。 阅读全文
posted @ 2022-12-22 09:26 古道轻风 阅读(254) 评论(0) 推荐(1) 编辑
摘要:高并发解决的核心问题是在同一时间上有大量的请求过来,然后我们的系统要怎么抗住这些请求带来的压力。本文从基础设施层、服务端架构层、服务应用层分别做了一个简单的梳理,在每一层通过什么的方式去抗并发,给大家提供一个思路。 阅读全文
posted @ 2022-12-21 09:09 古道轻风 阅读(318) 评论(0) 推荐(0) 编辑
摘要:正文开始之前,我们先要了解一个概念,就是什么是 登录态。 主流Web应用比如浏览器是基于http协议的,而http协议是 无状态 的。什么是 无状态?就是服务器不知道是谁发送了这个http请求,无法识别区分用户身份。 所以登录态就是服务端用来区分用户身份,同时对用户进行记录的技术方案。 阅读全文
posted @ 2022-12-20 08:59 古道轻风 阅读(689) 评论(0) 推荐(0) 编辑
摘要:2015 年 HTTP/2 标准发表后,大多数主流浏览器也于当年年底支持该标准。此后,凭借着多路复用、头部压缩、服务器推送等优势,HTTP/2 得到了越来越多开发者的青睐。不知不觉的 HTTP 已经发展到了第三代,鹅厂也紧跟技术潮流,很多项目也在逐渐使用 HTTP/3。本文基于兴趣部落接入 HTTP/3 的实践,聊一聊 HTTP/3 的原理以及业务接入的方式。 阅读全文
posted @ 2022-12-19 08:29 古道轻风 阅读(352) 评论(0) 推荐(0) 编辑
摘要:简介: “让上帝的归上帝,凯撒的归凯撒。” 架构 什么是架构? 关于架构这个概念很难给出一个明确的定义,也没有一个标准的定义。 硬是要给一个概述,我认为架构就是对系统中的实体以及实体之间的关系所进行的抽象描述。 架构始于建筑,是因为人类发展(原始人自给自足住在树上,也就不需要架构),分工协作的需要, 阅读全文
posted @ 2022-12-18 20:19 古道轻风 阅读(268) 评论(0) 推荐(0) 编辑
摘要:RDP,Remote Desktop Protocol,远程桌面协议,是一个多通道(mutil-channel)的协议,让用户(客户端或称“本地电脑”)连上提供微软终端机服务的电脑(服务器端或称“远程电脑”)。大部分的Windows、Linux、FreeBSD、Mac OS X都有相应的客户端。服务端听取送到 TCP 3389 端口的数据。 windows从NT开始提供终端服务,它是微软买来的网络协议技术(Citrix),服务器端要安装、配置,客户端要连接程序。终端服务使任何一台有权限的终端机,用已知的账号登录服务器,可以使用账号内的资源,包括软件,硬件资源;同时,在协议升级后,客户端连接后可以使用本地的资源,包括本地打印机、声音本地回放,本地磁盘资源和本地硬件接口。所有的计算都在服务器端进行,客户端只需要处理网络连接、接收数据、界面显示和设备数据输出。目前,关于RDP服务的linux客户端程序有winconnect,linrdp,rdesktop,前两个没有源码,但redsktop已经由原来的个人开发后公开代码演变成现在的项目组开发。 阅读全文
posted @ 2022-12-18 08:16 古道轻风 阅读(4717) 评论(1) 推荐(0) 编辑
摘要:文件系统是一种存储和组织计算机数据的方法,它使得对计算机的访问和查找变得容易,文件系统使用文件和树形目录的抽象逻辑概念代替了硬盘和光盘等物理设备使用数据块的概念,用户使用文件系统来保存数据不必关心数据实际保存在硬盘(或者光盘)的地址为多少的数据块上,只需要记住这个文件所属目录和文件名。在写入新数据之前,用户不必关心硬盘上的那个地址有没有被使用,硬盘上的存储空间管理(分配和释放)功能由文件系统自动完成,用户只需要记住数据被写到了哪个文件中。 我们都知道磁盘分区后还要进行格式化,之后操作系统才能够使用这个分区。这是因为每种操作系统所设置的文件属性/权限不同,为了存放这些数据所需要的空间,因此就要对分区进行格式化,以便成为操作系统能够利用的文件系统格式。 文件数据除了文件的实际内容外,还含有文件权限(RWX)与文件属性(所有者、群组、时间参数等)。文件系统通常会把这两部分数据放到不同的块中,权限与属性放置到inode中,至于实际数据则放置到data-block中。另外,还有一个Superblock会记录文件的整体信息,包括inode与block的总量、使用量’剩余量等。 阅读全文
posted @ 2022-12-16 17:20 古道轻风 阅读(223) 评论(0) 推荐(0) 编辑
摘要:漏洞扫描器是一种有价值的工具,可以搜索和报告组织的 IT 基础设施中存在哪些已知漏洞。使用漏洞扫描器是一种简单但关键的安全实践,每个组织都可以从中受益。通过深入了解环境中存在的潜在安全漏洞,这些扫描可以让组织了解他们可能面临的安全威胁。 许多组织使用多个漏洞扫描程序来确保他们全面覆盖每项资产,从而创建完整的画面。多年来,已经开发了许多不同的扫描仪,提供了许多不同的选项和功能。那么你怎么知道如何选择哪些?如果您正在为您的 IT 基础架构寻找漏洞扫描程序,以下是核心安全专家青睐的列 阅读全文
posted @ 2022-12-16 11:56 古道轻风 阅读(274) 评论(0) 推荐(0) 编辑
摘要:合适的平台框架往往能够给混合应用的开发,带来事半功倍的效果。本文将向你介绍目前6种最为实用的开发框架。 众所周知,根据使用场景的不同,我们往往需要针对智能手机、平板电脑以及可穿戴设备等不同平台,开发相应的应用。如果为每一类应用都去编写独特的程序代码的话,不但耗时,而且无法实现代码的重用。因此,我们需要引入混合应用开发的机制。 通常,我们可以使用各种现成的框架,去编写一个混合应用,然后将其存储在原生的容器中,以实现在不同的平台上,部署此类原生应用。可见,合适的平台框架,能够给混合应用的开发,带来事半功倍的效果。下面,我将向你介绍目前6种最为实用的开发框架。 阅读全文
posted @ 2022-12-15 08:27 古道轻风 阅读(1424) 评论(0) 推荐(1) 编辑
摘要:前端界有两个“教派”,一个叫 Vue,一个叫 React。Vue 的成员看不起 React,React 成员鄙视 Vue,他们认为手中的“教义”就是真理,可以消灭世界一切苦难。 但正如没有绝对的真理,也没有绝对完美的系统框架,我们需要一双明辨是非的眼睛去解析所面对的难题,带我们找到正确的方法,解决所面对的困难。我们需要抱着怀疑的眼光去看待现代前端开发框架,它们真的能解决我们的问题吗?答案是肯定的,也是否定的。框架并不能独立的发挥作用,其中开发者是一个很大的变量,而开发者这个最大的变量才是最终影响问题是否能够被解决的重要因素。 本文从对现代前端框架的“崇拜”现象,引出了前端开发面临的过于强调工具本身,忽视了开发者怎么写好代码才是影响代码质量的本质问题,最后给出了一种我认为可解决业务型前端项目的代码架构方案(也可以说是一种开发思想),希望能给大家带来一些思路和帮助。 阅读全文
posted @ 2022-12-14 08:20 古道轻风 阅读(315) 评论(0) 推荐(1) 编辑
摘要:"天底下没有完美的数据库,也许Oracle是个例外”,前阵子几个DBA在讨论国产化替代时,有人就这么说。确实是的,Oracle算是比较完美的数据库产品了,不过现在很多用户都在面临从Oracle数据库向其他数据库迁移的问题。中国电信已经宣布了今年年底前全线下架Oracle数据库,全部用国产或者开源数据库替代。本周和中国电信的朋友交流的时候,他们说已经完成了数百套系统从Oracle数据库的迁移,最晚到8月份,这个任务就能够完成了。 阅读全文
posted @ 2022-12-13 20:57 古道轻风 阅读(362) 评论(0) 推荐(0) 编辑
摘要:微服务作为云原生时代下一种开发软件的架构和组织方法,通过将明确定义的功能分成更小的服务,并让每个服务独立迭代,增加了应用程序的灵活性,允许开发者根据需要更轻松地更改部分应用程序。同时每个微服务可以由单独的团队进行管理,使用适当的语言编写,并根据需要进行独立扩缩容。但微服务同样也并非“银弹”,在带来如此多的优势的同时,逐渐膨胀的微服务数量也为系统带来了空前的复杂度,服务之间错综复杂的调用、协作关系如同一层迷雾笼罩在系统之上,借助 Trace、Log、Metric 三驾马车我们的系统具备了一定的可观测性,但所能得到信息是标准化且固定的,往往不能够满足复杂场景下的观测需求,比如微服务引擎 MSE(Microservices Engine)中的微服务治理功能模块为用户用好微服务提供了诸多帮助,但其中的很多功能,比如全链路灰度、无损上下线等会涉及多个应用,且所涉及的信息又不被标准的可观测系统覆盖。而微服务洞察通过动态的信息采集能够填补这其中的一部分空缺,更好地满足这些微服务场景的观测需求,同时也将他们纳入到标准的观测体系中来。 阅读全文
posted @ 2022-12-13 13:14 古道轻风 阅读(89) 评论(0) 推荐(0) 编辑
摘要:团队每年都会来实习生、新人,最后两星期准备转正串讲时候都会感慨“转正好难”。 平时循规蹈矩做一些日常迭代需求,团队也没有给留出足够的技术项目时间,PPT 里实在没有可写的东西,本文对转正需要注意的事项做了一些梳理,供大家做参考。 阅读全文
posted @ 2022-12-10 17:22 古道轻风 阅读(1095) 评论(0) 推荐(2) 编辑
摘要:最后一条大概意思就是有时候我们会在意自己在聚光灯下(述职、晋升、周报、汇报等)的表现,以为大家会根据这个评价自己。实际上日常是怎么完成业务需求、帮助身边同学、创造价值的,才是大家评价自己的依据,而且每个人是什么样的特质,合作过三次的伙伴就可以精准评价,在聚光灯下的表演只能骗自己。 阅读全文
posted @ 2022-12-09 10:17 古道轻风 阅读(152) 评论(1) 推荐(2) 编辑
摘要:自 90 年代初开启 PC 时代以来,随着移动网络的快速普及,在 2010 年左右,进入移动时代、IOT 时代,各种移动互联设备不断涌现,除了最常见的 PC、Pad、智能手机外,它还可能是小小的一块智能手表,也可以是一个大屏终端。智能设备层出不穷,填满了人们生活的各个角落,设备的系统类型、屏幕大小等也是愈发碎片化。 阅读全文
posted @ 2022-12-07 08:32 古道轻风 阅读(102) 评论(0) 推荐(0) 编辑
摘要:近年来大家可能都有这样一种感受:与编程语言市场不同,数据库市场的竞争激烈异常——一线的在停滞甚至下坠,二线的正在反超。有种种迹象表明:MySQL 这个流行榜上的榜一大哥,正在逐渐淡出专业开发者的视野。再见 MySQL,可能不再只是一个哗众取宠的梗了! 阅读全文
posted @ 2022-12-02 15:26 古道轻风 阅读(709) 评论(0) 推荐(0) 编辑
摘要:写软件和造楼房一样需要设计,但是和建筑行业严谨客观的设计规范不同,软件设计常常很主观,且容易引发争论。 设计模式被认为是软件设计的“规范”,但是在互联网快速发展的过程中,也暴露了一些问题。相比过程式代码的简单与易于修改,设计模式常常导致代码复杂,增加理解与修改的成本,我们称之为 “过度设计”。因而很多人认为,设计模式只是一种炫技,对系统没有实质作用,甚至有很大的挖坑风险。这个观点容易让人因噎废食,放弃日常编码中的设计。 本文将深入探索如下问题: 为什么长期来看,设计模式相比过程式代码是更好的? 什么情况下设计模式是有益的,而什么情况下会成为累赘? 如何利用设计模式的益处,防止其腐化? 阅读全文
posted @ 2022-12-02 08:17 古道轻风 阅读(177) 评论(0) 推荐(0) 编辑
摘要:1.说说 Redis 基本数据类型有哪些吧 1.字符串:redis没有直接使用C语言传统的字符串表示,而是自己实现的叫做简单动态字符串SDS的抽象类型。C语言的字符串不记录自身的长度信息,而SDS则保存了长度信息,这样将获取字符串长度的时间由O(N)降低到了O(1),同时可以避免缓冲区溢出和减少修改 阅读全文
posted @ 2022-12-01 19:28 古道轻风 阅读(350) 评论(0) 推荐(0) 编辑
摘要:1.说说进程和线程的区别? 进程是程序的一次执行,是系统进行资源分配和调度的独立单位,他的作用是是程序能够并发执行提高资源利用率和吞吐率。由于进程是资源分配和调度的基本单位,因为进程的创建、销毁、切换产生大量的时间和空间的开销,进程的数量不能太多,而线程是比进程更小的能独立运行的基本单位,他是进程的 阅读全文
posted @ 2022-12-01 10:24 古道轻风 阅读(118) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示