今天升级了 macOS 系统到最新版本,按苹果的尿性我有得重装 xcode ……毫不意外,系统起来后 go 、make 、git 等等一堆命令都跪了。由于一直被坑,早已形成条件反射,直接执行 xcode 更新命令就是了:
|
|
xcode 安装完毕后,一切似乎恢复正常,直到我执行 git 命令拉代码:
|
|
提示表明,SSH 公钥认证没通过,可我没换过密钥呀!
怀疑跟升级有关,执行 ssh 命令,开启提示信息定位错误:
|
|
今天升级了 macOS 系统到最新版本,按苹果的尿性我有得重装 xcode ……毫不意外,系统起来后 go 、make 、git 等等一堆命令都跪了。由于一直被坑,早已形成条件反射,直接执行 xcode 更新命令就是了:
|
|
xcode 安装完毕后,一切似乎恢复正常,直到我执行 git 命令拉代码:
|
|
提示表明,SSH 公钥认证没通过,可我没换过密钥呀!
怀疑跟升级有关,执行 ssh 命令,开启提示信息定位错误:
|
|
WebAssembly 是一种基于栈的虚拟机二进制指令格式,缩写为 Wasm 。Wasm 被设计成一种可移植的编译目标产出物,支持 Web 部署,客户端和服务端均可。
简言之,Wasm 是一种通用的虚拟机指令格式。任何平台只要实现了虚拟机,即可执行 Wasm 应用。工程师可以使用任何编程语言来发应用程序,只要最终能编译成 Wasm 即可。
因此,Wasm 是一个威力强大的中间层,让开发语言与执行平台完全解耦,可以任意组合。Wasm 可以跑在浏览器上,也可以直接跑在操作系统里面(比如 Linux 、 Windows )。硬件平台当然也不挑,ARM 和 x86 都可以。
已经很多年对双十一无感了,但今年刚好看到别人推荐一个很赞的显示器,又奢侈了一把,哈哈~
废话不多说,直接上图!
互联网应用通常面向海量用户,其后台系统必须支撑高并发请求。在后端开发面试中,高并发技术也是一个常见的考察点。那么,高并发系统通常是怎么设计的呢?需要采用哪些技术呢?本文就简单聊一聊高并发背后的各种技术栈。
必须明确高并发本身是目的,而不是某一项技术;只要能够提高连接数或系统处理吞吐的技术都算。因此,这是一个涉及面非常广的话题,本文无法事无巨细地展开。
我会重点罗列实现高并发的常见技术栈,并简单介绍每种技术的工作原理和应用场景,帮大家快速建立整体的知识脉络。虽然每种技术的讲解篇幅有限,但我会列出更详细的学习资料,方便查阅学习。
大家可以以此知识地图为指引,制定学习计划,查漏补缺。
expect 是一个自动对话命令,可以编程实现与交互式命令的对话交互。
想要学习 expect 命令,掌握它的典型应用场景,我们需要先弄清楚:什么是交互式命令?
Linux 系统中,绝大部分命令都是非交互式的常规命令。非交互式的命令一旦提交执行,它便默默地干活,执行完毕后输出结果。举个例子,我们执行 uname 命令,回车按下后不用再做任何输入:
|
|
uname 命令用于查看操作系统信息,例子输出表明这是一个 Linux 系统。
交互式命令,顾名思义在命令执行期间,可能需要跟用户进行交互。举个例子,我们执行 apt 命令安装软件包,该命令询问是否继续,用户要输入 Y 之后它才会继续安装:
在 4.0 版本之前,MongoDB 是不支持事务的,只能由应用程序自行保证事务性。本文以银行转账为例,讲解如何在不支持事务的 MongoDB 上实现转账事务。
客户账上余额由 accounts 表保存,表结构大致如下:
|
|
如果客户 A 发起一笔转账,转 10 元给 B ,那么余额表应该是这样的(假设没有其他操作):
|
|
由于转账需要同时修改两条账户记录,为保证数据一致性,我们必须保证:它们要么全都修改成功,要么全都保持初始原因,不能有中间状态。
这就是转账操作的事务性要求,那么我们应该如何实现这一点呢?
Blob 对象是 二进制大型对象( binary large object )的简称,顾名思义用来表示二进制数据内容。Blob 对象数据可以按文本或二进制格式进行读取,而且是不可变的。
数据可以来源于文件,因此 Blob 可以用来读写文件,比如读写一个图片文件的内容。操作文件通常采用 File 对象,File 继承了 Blob 的数据读写功能,并在此基础上扩展实现文件系统相关功能。
本文先讲解 Blob 对象相关接口,再讲解一些典型应用场景,最终彻底掌握 Blob 对象用法。
浮点数是计算机程序中最基本的数据类型,几乎所有编程语言都有浮点类型。但你或许不知道,浮点数可能有精度不足的问题,使用不当会酿成大祸。以 JS 为例,我们来看一个例子:
|
|
0.1 加上 0.2 居然不等于 0.3 ,那结果等于多少呢?
|
|
结果等于一个非常接近 0.3 的值,但不等于 0.3 !真是令人瞠目结舌!这是为什么呢?
想要回答这个问题,我们得知道浮点数在计算机内部是怎么表示的。IEEE 754 是目前使用最广泛的浮点数表示和运算标准,从中即可找到问题的答案。不过想要学习它之前,我们得先掌握 科学记数法 ( scientific notation )。
公司有一个应急系统,管理各种类型的应急策略,前端代码质量一言难尽。最近有新需求,领导要求梳理主机异常应急策略,为此我们给系统添加一种新的策略类型——主机异常应急策略。
后端加上新类型后,您猜咋滴?前端好几个页面白屏了!只要数据里有新类型的策略就会!
我看了看代码,您猜咋滴?问题出在策略类型标签上:类型字段后端为英文常量,前端将其展示成一个中文标签。由于类型有好几种,前端用一个字典来映射渲染函数,代码大致如下:
|
|
最近在开发一个通用消息通知工具,可以从 API 、数据库等数据源获取数据,然后根据数据渲染消息模板,然后通过企微、邮件、短信、电话语音等渠道推送消息。整个工作的设计思想,就是想提供一种低代码、配置化的消息通知解决方案。
简言之,工具对日常消息通知开发场景进行抽象建模,让所有要素都支持配置:
那在开发的过程中,就不可避免要面对数据提取问题。比如,有个系统提需求说他们的变更单需要每天催一次,列表通过 API 给我,结构如下:
|
|