这里是2022年第2期的 OneAuth《身份月报》——致力于成为对大家“有用”的 Highlight 看板——每月初通过公众号以及 EDM 邮件等渠道发布。也欢迎大家转发和反馈。
下面分享OneAuth工程设计原则,并随着我们的实践和学习,不断进化,以及五月的新的发布。以下为月报正文:
守正出奇,聚焦核心价值
首先,编写软件是为了为用户创造价值。这看起来很简单,但随着系统的发展和变得更加复杂,我们开始引入更多的抽象和分层,这使我们远离我们试图解决的具体问题,甚至于开发者忘记了编写软件的原因。
在OneAuth,每个新的功能的开发,都在秉持一个原则,我们开发这一功能将给客户带来何种价值。基于受众的理解和充分的沟通来传递用户价值和告知优先级,这一点对于SaaS的提供者来说,至关重要。
市场分析师们关注的是ARR(年度经常性收入),但对于SaaS的服务者来说,SaaS的核心价值是客户成功。这意味着几乎总是有很多客户渴望测试我们正在开发的新功能,这需要我们与客户密切合作,允许在每两周的发布中迭代客户最迫切的需求和获取更改时持续的反馈。
OneAuth从一开始就是一个敏捷开发团队,敏捷的一个重要方面是实现自下而上和自上而下决策的结合。特别是在明确传达高层次愿景和战略的情况下,使团队能够自主地交付价值,同时还可以将从一线的沟通中学到的知识向上反馈,为高层次目标提供信息。
保持简单,做好SaaS的第一要素
Everything should be made as simple as possible, but no simpler — Albert Einstein 任何事情都应保持简单,但这事并不简单——爱因斯坦
这一真理已存在多年,它与上一条原则密切相关,如果它现在不能为用户增加价值,你就不需要它了。
极限编程(XP)的原则是,在你真正需要的时候实现它们,而不是在你预见到你需要它们的时候。
我们都会遇到过于复杂的代码,几乎无法对其功能进行推理来还原其原始的逻辑(即便是有详细的注释)。造成这种混淆现象的原因是,一般来说,读代码比写代码更难,但除此之外,一些代码显然具有一些基本特性,使其比其他代码更直观。
在这个主题上有很多现有技术,最好从Robert C.Martin的《Clean Code-代码整洁之道》开始,这本书对代码的质量进行了分解,使其更直观,并提供了一个关于代码质量的推理框架。
下面是一些关于在实践中如何编写的干净代码的指导原则,Clean Code中也介绍了这些原则:
-
明确意图,在代码表达不够时使用注释
-
可以被其他人(或几年后继任)阅读和改进
-
提供一种而不是多种方法来执行特定任务
-
表达方式地道的,符合(某一)语言习惯的
-
拆分成几块,每一块都仅做一件事,而且做得很好
归根结底,经验是无法替代的,就像任何手艺一样,编写“干净”的代码需要练习。慢就是快、快即是慢,每个工程师都在不断磨练自己的技能,我们在很大程度上依赖于代码审查和结对编程来帮助磨练彼此的技能。
专注手头任务,拒绝给牦牛剃须
2012年,Facebook公司以10亿美元的价格收购Instagram的开发团队,后者仅有13名成员,但却拥有3000万用户。
当我们期望构建一个伟大的产品时,并非需要非常多的工程师,而是避免团队快速扩张而产生的剃牦牛须现象。牦牛剃须是指一项任务,它会导致你执行另一项相关任务等等,这些都会分散你对最初目标的注意力。
让我们来看一个例子。
你想烤一个苹果派,所以你去厨房。
在走廊里,你注意到墙上有一些油漆碎裂。
所以你走到五金店买一些油漆。
在路上,你经过一家面包店,
停下来吃一个纸杯蛋糕。
吃蛋糕的时候,嘴巴会痛。
正是你一直在拖延的那个口腔。
您拿起手机打电话给牙医预约,
但您看到朋友雪儿发来的通知,
他正在参加聚会。
你不想空手而归,
所以你停下来喝一瓶酒…
你得到了什么。那个苹果派又怎么了?
在编码中,它可能会是这样的。
您着手修复一行代码中的错误。
但在你这样做之前,
你将它重构为它自己的函数。
为什么这个函数不在它自己的文件中?
事实上,整个文件应该被分解成
一个主函数和多个实用函数…
修复原始错误发生了什么?当然,所有这些其他事情本身都很好,但它们会分散注意力。
简而言之:专注于手头的任务,不要给牦牛剃毛!
5月OneAuth产品更新
5月是温煦的春夏之交,在过去的一个月中,OneAuth完成两次发布,完成以下Feature的发布,您可以线上进行体验。
云端的LDAP服务
OneAuth提供了全新的云托管的LDAP实现,提供了LDAP协议的强大功能,而无需传统LDAP实施的常规设置、维护工作。 由此,OneAuth具备了连接“人”与“设备”的能力,支持客户端通过OneAuth LDAP进行认证和同步账号。
具有以下特性:
-
云托管的LDAP服务,免去了用户实施和运维的工作;
-
可视化的管理界面;
-
支持使用LDAP命令的方式调用OneAuth的查询和认证接口;
-
支持各类应用程序或设备通过OneAuth进行LDAP协议的身份认证和数据同步;
SAML2.0协议单点登录
SAML 全称 Security Assertion Markup Language (当前流行的是2.0版本),通常简称为SAML2.0。它通过 XML 封装的认证断言来描述用户。通过 SAML2.0 协议,OneAuth支持了 SAML 协议应用接入的单点登录,如华为云、腾讯云、Teambition等。
支持CAS协议单点登录
CAS 全称 Central Authentication Service(中心认证服务),是一种单点登录实现,支持应用通过CAS协议进行单点登录,如Jumpserver 通过CAS协议与OneAuth集成单点登录。
应用市场新增应用
华为云,腾讯云,阿里云,Teambiton,Jumpserver。