Google现已公开云服务设计指南 (www.linuxprobe.com)

【简介】

Google公开了用于创建HTTP或RPC API的API设计指南。对于创建连接Google Cloud Endpoints的gRPC API的开发人员来说,这些设计原则更值得推荐使用。

点击查看原文 >>

@Linux就该这么学 2017-09-13 08:47 / 0个评论
赞过的人: @Linux就该这么学
要不要再学学下面的文章?
IM服务器设计-如何解决消息的乱序 (www.codedump.info)
IM消息需要面对的另一个难题:如何保证收到的消息不乱序。下面先展开看看要解决这个难题有哪些障碍。
by @技术头条 2024-03-21 23:00 查看详情
IM服务器设计-网关接入层 (www.codedump.info)
IM服务系列文章: IM服务器设计-基础 IM服务器设计-消息存储 网关接入层负责维护与客户端之间的长连接,由于它是唯一一个与客户端进行直接通信的服务入口,
by @技术头条 2024-03-21 23:00 查看详情
IM服务器设计-消息存储 (www.codedump.info)
这部分专门讲述IM消息存储的设计。消息存储的难度在于,要考虑以下的场景:

1、离线消息存储。即发送消息时对方不在线该怎么处理。
2、单聊、群聊消息。
3、随着用户量越来越大,应该以后如何扩展。
by @技术头条 2024-03-13 13:33 查看详情
IM服务器设计-基础 (www.codedump.info)
IM做为非常经典的服务器系统,其设计时候的考量具备代表性,所以这一次花几个篇幅讨论其相关设计。

主要内容相当部分参考了 一套海量在线用户的移动端IM架构设计实践分享一文,在此之上补充了更好的消息存储设计以及集群设计。

by @技术头条 2024-03-13 13:32 查看详情
真实世界的Go设计模式 - 对象池模式 (colobu.com)
对象池(object pool pattern)是一种设计模式。一个对象池包含一组已经初始化过且可以使用的对象,而可以在有需求时创建和销毁对象。池的用户可以从池子中取得对象,对其进行操作处理,并在不需要时归还给池子而非直接销毁它。这是一种特殊的工厂对象。

若初始化、实例化的代价高,且有需求需要经常实例化,但每次实例化的数量较少的情况下,使用对象池可以获得显著的效能提升。从池子中取得对象的时间是可预测的,但新建一个实例所需的时间是不确定。

另外,利用对象池,我们可以重用对象,减少对象的分配,对于垃圾回收的编程语言,也是一种提高性能的手段。
by @技术头条 2023-09-10 23:38 查看详情
真实世界的Go设计模式 - 原型模式 (colobu.com)
*原型模式(Prototype Pattern)是创建型模式的一种,其特点在于通过“复制”一个已经存在的实例来返回新的实例,而不是新建实例。被复制的实例就是我们所称的“原型”,这个原型是可定制的。
如果你有一个对象,并希望生成与其完全相同或者类似的一个复制品,你该如何实现呢?首先你必须新建一个属于相同类的对象,或者类似的对象,然后你必须遍历原始对象的所有成员变量,并将成员变量值复制到新对象中。在Go生态圈中,我们常常使用下面的库来做这份工作。
by @技术头条 2023-09-10 23:32 查看详情
架构设计 the Easy Way (blog.alswl.com)
前几日,我在团队内部举行了一场技术分享,我介绍了关于架构设计的最佳实践。将这些实践凝练成了 20 字口诀:架构看问题、需求看用例、设计看模型、细节看时序。

我将顺口溜转到了 Twitter,不少朋友对这些顺口溜产生了浓厚兴趣,希望深入了解。因此,我将我分享中的观点扩展成了这篇文章。
by @技术头条 2023-07-30 17:40 查看详情
真实世界的Go设计模式 - 工厂模式 (colobu.com)
工厂模式是一种创建型模式,就是用来创建新对象的一种设计模式,它可以将复杂对象的建造过程抽象出来(抽象类别),使这个抽象过程的不同实现方法可以构造出不同表现(属性)的对象。

23种设计模式中包含抽象工厂模式,工厂方法模式,其他也有人总结出简单工厂模式。这个工厂大量的依赖接口、抽象类和具体的类实现。在Go中,才不会有这么复杂的工厂创建模式,Go中最常见的工厂模式类似简单工厂模式,而且一般都是通过New或者NewXXX来实现。
by @技术头条 2023-07-30 17:36 查看详情
关掉了 Google 账户的 passkey (blog.delphij.net)
最近, Google 账户新增了一种叫做 passkey 的登录方式。

和 密码 + U2F 的验证方式相比,passkey 实际上类似于在手机等设备上实现了一个 U2F,并使用它代替了两者的组合。对于普通用户来说这固然是比只用密码要安全的多的(因为 passkey证明了用户拥有一个登录了该 Apple ID 或 Google 账户的设备,并且知道其解锁密码,或是向设备以生物信息证明了身份),但由于完全去掉了密码,设备本身的安全性就很重要了,在 Google 的实现中 ,锁屏密码用于生成端到端加密的密钥,因此一个能够登录 Google 账户,并且获知了锁屏 PIN 的人便能恢复出 passkey。根据文章的说法,通过硬件保证了 PIN 只能尝试最多十次,但总体上,无论是 Google 还是 Apple 的实现都依赖于一直在线的手机本身的安全性,而 U2F 设备通常并不是连接在设备上的,因此我认为尽管对普通人来说passkey 已经足够好,但对于需要持续提高电击电压的人群来说,使用 密码 + U2F 会更安全一些。
by @技术头条 2023-06-24 09:37 查看详情
用 Penpot 弥合设计和代码之间的鸿沟 (linux.cn)

用 Penpot 这个开源的设计工作空间来弥合编程和设计之间的鸿沟。

在计算机编程的大部分历史中,在创建应用的代码的程序员和创建应用的用户体验(UX)的设计师之间一直存在着鸿沟。这两个学科接受的培训大不相同,他们使用的工具也不同。程序员使用文本编辑器或集成开发环境来编写代码,而设计师则经常绘制小部件布局和潜在交互的示意图。虽然一些 IDE,像Eclipse和Netbeans,有界面设计组件,但它们通常专注于小部件的位置而不是小部件的设计。开源设计应用Penpot是一个协作式设计和原型设计平台。它有一套新的功能,使设计师和开发者可以很容易地用熟悉的工作流程协同工作。Penpot 的设计界面可以让开发者在设计过程中和谐地编写代码,这是其他工具所无法做到的。自从我们上次介绍它以来,它已经有了长足的进步。它的最新功能不仅改善了你使用 Penpot 的体验,还推动了开源的 Penpot 应用超
by @技术头条 2023-02-20 22:18 查看详情