备份远程 Docker 中 PostgreSQL 数据库里的数据到本地

| 后端 , PostgreSQL , Docker

在 Docker 容器中使用数据库非常方便快捷,因为我们随时可以创建或者删除一个运行数据库的容器。然而,当我们想要便捷地导出容器数据库中的数据时,麻烦就出现了。 在阅读后续内容之前,请确保您的数据库容器已经使用了 -v 参数在容器上挂载了指定的主机目录! 因为我们需要导出文件到宿主系统中,如果容器没有挂载主机中的目录,容器无法将内部文件导出到外部的宿主系统。

Docker 中使用 scratch 镜像构建 Go 应用镜像,容器报错:X509: Certificate Signed by Unknown Authority

| 后端 , Docker , Go

当使用 FROM scratch 构建基于 scratch 镜像的 Go 应用镜像时,如果没有向镜像中添加证书颁发机构(CA, Certificate Authority)发布的证书,您就有可能遭遇这个错误:X509: Certificate Signed by Unknown Authority。 其实,解决的方法比较简单,只需要将部署该容器的服务器的证书导入到镜像中即可。或者,采用下策,不使用 HTTPS。

Combine 框架,从0到1 —— 5.Combine 常用操作符

| Swift , iOS , Combine

正所谓,工欲善其事,必先利其器。在开始使用 Combine 进行响应式编程之前,建议您先了解 Combine 为您提供的各种发布者(Publishers)、操作符(Operators)、订阅者(Subscribers)。 Combine 操作符(Operators) 其实是发布者,这些操作符发布者的值由上游发布者提供。操作符封装了很多常用的响应式编程算法,有一些可以帮助我们更轻松地进行调试,而另一些可以帮助我们更轻松地通过结合多个操作符来实现业务逻辑,本文将主要介绍这两大类操作符。

PostgreSQL CPU 使用率异常偏高?

| 后端 , PostgreSQL

在买入一台腾讯云服务器不久后,我在这里部署了我的博客后台。紧接着,腾讯云就提示我,这台云服务器被黑客入侵了!!??当时我还不相信,天真地以为这是腾讯云误报。结果,当我连接到服务器终端的时候才发现,PostgreSQL CPU 使用率高达100%!!所以,到底是什么情况?

Combine 框架,从0到1 —— 5.Combine 中的 Subjects

| Swift , iOS , Combine

正所谓,工欲善其事,必先利其器。在开始使用 Combine 进行响应式编程之前,建议您先了解 Combine 为您提供的各种发布者(Publishers)、操作符(Operators)、订阅者(Subscribers)。 Subject 是一类比较特殊的发布者,因为它同时也是订阅者。Combine 提供了两类 Subject :PassthroughSubject 和 CurrentValueSubject。

Combine 框架,从0到1 —— 5.Combine 提供的发布者(Publishers)

| Swift , iOS , Combine

正所谓,工欲善其事,必先利其器。在开始使用 Combine 进行响应式编程之前,建议您先了解 Combine 为您提供的各种发布者(Publishers)、操作符(Operators)、订阅者(Subscribers)。合理地选择符合需求的预置功能,可以大幅度地提升您的开发效率! 这些都是 Combine 为我们提供的发布者:Just,Future,Deferred,Empty,Publishers.Sequence,Fail,Record,Share,Multicast,ObservableObject,@Published。接下来的几分钟,让我们把它们各个击破!

使用 Swift Package Manager 集成依赖库

| Swift , iOS , Xcode

在 Swift Package Manager 出现之前,我们需要使用 CococaPods, Carthage 等包管理工具来管理依赖。 现在,我们可以直接使用 Xcode 来管理依赖。Xcode 内建了对 Git 版本控制系统的支持,我们可以轻松地使用 Xcode 中的 Swift Package Manager 来管理公开的、私有的仓库中的包。

Github 个人首页的 README,这样玩儿~

| 其他 , Github

大家最近有没有发现这个现象,有些名人的Github首页变得更丰富了?尤其是那个夺目的README!!!想不想自己也弄一个呢?来,现在就开始吧~

Combine 框架,从0到1 —— 4.在 Combine 中执行异步代码

| Swift , iOS , Combine

你的应用可能会使用一些常见的模式来处理异步事件,比如:完成处理器、闭包属性。Combine 为这些模式提供了强大的替换项目。它可以让你消除这种样板代码,并且充分利用 Combine 中的操作符。当你在应用的其他地方采用 Combine 时,将异步调用点转换为 Combine 可以提高代码的一致性和可读性。 朋友,行动起来吧!把现有项目中的旧代码重构成使用 Combine 的代码~

Combine 框架,从0到1 —— 4.在 Combine 中使用 KVO

| Swift , iOS , Combine

KVO(Key-Value Observing) 是苹果开发者常用的功能,很多框架都会使用 KVO 来发送异步改动。将基于回调和闭包的 KVO 代码迁移到 Combine,可以使你的代码更优雅、更易维护。朋友,行动起来吧!把现有项目中的旧代码重构成使用 Combine 的代码~