Peter's Blog

「用有趣的方式看世界」

使用 User Mode 保护你的 Apex 代码

我们知道,在默认情况下,Apex 代码以系统模式 (System Mode) 运行,这意味着它具有比运行代码的用户更高的权限,因此在执行代码的时候将忽略当前用户的权限,这样一来,即使运行的用户没有访问某个对象的权限,但他们也能访问该对象。如果应用程序构建不当,这可能对于数据库的记录来说是一个安全风险。有人可能会删除记录,即使他/她对该对象没有删除权限。这篇文章将解释用户模式 (User Mo...

理解 JavaScript 中的 Async/Await

async/await 是以更舒适的方式使用 promise 的一种特殊语法。 在 Salesforce 中,如果你有开发过 lwc 相关的组件,想必应该使用过 Async/Await 语法。其实在 JavaScript 中做异步开发时,我们通常会毫不犹豫的使用 Async/Await. 不管是并发还是串行,Async/Await 都能处理的很好,而且还保证了代码的可读性。本篇内容...

「译」代码重构的原则和意义?

译自:https://www.techtarget.com/searchapparchitecture/definition/refactoring 什么是重构? 重构是对代码进行重新组织的过程,但不改变它的原始功能。重构的目标是通过进行许多小的改变来改进内部代码,而不会改变代码的外部行为。 计算机程序员和软件开发人员重构代码以改进软件的设计,结构和实现。重构提高了代码的可读性...

使用 Google Cloud Function 创建 Salesforce 数据

由于之前有接触过 GCP 和 Salesforce 集成相关的项目,但是没有认真的了解过中间的实现细节,那么今天这篇文章主要介绍如何在 Google Cloud 上创建一个 Cloud Function 并认证连接到 Salesforce. 在本篇内容中,我们的挑战主要包括: 创建一个 Google Cloud Function 使用 Secret Manager 在 GCP ...

浅谈 LWC 中的数据渲染

在 LWC 中,如果一个属性的值发生了变化,并且该属性在 tempalte 中有使用,或者声明在一个属性的 getter 方法中,该组件会重新显示新的值。如果一个属性被分配给一个对象或一个数组,框架会观察该对象或数组内部的一些变化,比如当你分配了一个新值。 当一个组件重新渲染时,模板中使用的表达式被重新评估,renderedCallback() 生命周期钩子会被执行。 我们来看接下来的一...

Docker vs Virtual Machine (VM)

今天将会介绍虚拟机和 Docker 容器之间的区别,虚拟机和容器都有助于复制开发环境,并更好地管理依赖关系和配置。但你应该意识到某些差异,这将有助于你根据需要选择虚拟机或 Docker 容器。 应用程序开发和部署的挑战 当你在一个开发团队工作时,每个项目或者 Application 都需要安装多个第三方软件和软件包来构建项目环境。为了进行协作和工作,团队中的每个开发人员都应该配置他们的本...

LWC 的生命周期函数

LWC 的生命周期负责创建,插入组件到 DOM 中,并将其渲染和从 DOM 中删除。它还监控已渲染的组件的任何属性变化,Lifecycle 钩子其实是一种回调方法,在组件实例的生命周期的特定阶段被触发。下面为大家介绍 LWC 的几个生命周期 Hooks. 1. Constructor() 当一个组件的实例被创建时,constructor() 被调用。在这个阶段,我们不能访问组件的公共属性...

常用的 Javascript 方法

平时在工作中有些时候需要使用 JS 显示数据列表,并且希望对数据进行分类,过滤,搜索,修改或更新。或者你想进行快速计算,如求和,乘法等等。实现这一目标的最佳方式是什么?今天将会介绍几种常用的方法帮助提高数据处理效率. 1. Spread operator 可以在函数调用/数组构造时,将数组表达式或者 string 在语法层面展开; 还可以在构造字面量对象时,将对象表达式按 key-valu...

在 Salesforce 中设计高吞吐量数据读取的一些想法

在使用 Salesforce 时,架构师学到的第一课是 governor limits 对性能的影响。Salesforce 的多租户架构提供了巨大的灵活性和可扩展性,正是它的共享性质决定了我们在使用 Salesforce 平台的同时也需要考虑的更多。根据我们与 Salesforce 的集成方式,可以使用不同的技术来确保我们适用不同场景所需的业务规模. 随着 API 需求的增加,出现可靠性问...

Apex 最佳实践

A good Salesforce engineer knows how to use Apex. A great Salesforce engineer knows when to not use Apex. 当我们在 Salesforce 平台构建解决方案的时候,首先考虑使用平台的内置功能,比如 Validation rules, flows 等,这些功能可以提供更好的性能,...

Apex 中的设计模式

设计模式概述 设计模式的本质是基于面向对象编程(OOP)原则,通过封装、继承、多态(OOP 三大特性)以及类的关联关系和组合关系来构建。它们遵循以下七大原则: 单一职责原则 开闭原则 里氏替换原则 迪米特法则 依赖倒置原则 接口隔离原则 合成/聚合复用原则 设计模式是经过反复实践、被广泛认可、经过分类和设计的可重用软件设计方式。 本文将介绍在 Sale...