---
product_id: 225675917
title: "Learning Salesforce Development with Apex: Write, Run and Deploy Apex Code with Ease (English Edition)"
price: "R1130"
currency: ZAR
in_stock: true
reviews_count: 12
url: https://www.desertcart.co.za/products/225675917-learning-salesforce-development-with-apex-write-run-and-deploy-apex
store_origin: ZA
region: South Africa
---

# Learning Salesforce Development with Apex: Write, Run and Deploy Apex Code with Ease (English Edition)

**Price:** R1130
**Availability:** ✅ In Stock

## Quick Answers

- **What is this?** Learning Salesforce Development with Apex: Write, Run and Deploy Apex Code with Ease (English Edition)
- **How much does it cost?** R1130 with free shipping
- **Is it available?** Yes, in stock and ready to ship
- **Where can I buy it?** [www.desertcart.co.za](https://www.desertcart.co.za/products/225675917-learning-salesforce-development-with-apex-write-run-and-deploy-apex)

## Best For

- Customers looking for quality international products

## Why This Product

- Free international shipping included
- Worldwide delivery with tracking
- 15-day hassle-free returns

## Description

Learning Salesforce Development with Apex: Write, Run and Deploy Apex Code with Ease (English Edition) [Battisson, Paul] on desertcart.com. *FREE* shipping on qualifying offers. Learning Salesforce Development with Apex: Write, Run and Deploy Apex Code with Ease (English Edition)

Review: The Author is knowledgeable and writes clean code //HOWEVER - The author writes well written code and introduces all relevant concepts well. However, there are massive cons to this book as well as someone who is 40% done with it: 1. He doesn't show you where to write the code. 2. He goes over the order of triggers and how they execute without actually showing you how to order them yourself thus making the entire introduction of the concept pointless. 3. I'm sitting here unable to write basic code although I understand the logic behind everything he says, I can't use it in production in Salesforce. 4. I don’t know how to pass variables or values from a class to a trigger meanwhile this dude is talking about Checkbox lists with a query that folds in on itself. Upset and watching even more disconnected people on youtube introduce the topic and equally skip over basic stuff thus making it even more impossible to follow along as they jump from triggers to classes with no possible way of making sense of the information. I hate when books skip over massive topics. LIKE DUDE THE SOQL DOESNT EVEN HAVE AN EXPORTER FOR THE RECORDS THAT IT RETRIEVES WHY DONT YOU WRITE AN APEX TRIGGER/CLASS THAT EXPORTS THE SOQL RESULTS Also, he has a typo in his OpportunityTrigger example he wrote 'Closed/Won' instead of 'Closed Won' it was probably intentional. Also, the SOQL chapter literally doesn't do anything I followed along and can't process: trigger TaskTrigger on Task (after insert, after update) { switch on Trigger.operationType { when AFTER_INSERT { Set contactIds = new Set(); For(Task t: Trigger.new) { If(t.WhoId != null && String.valueOf(t.WhoId).startsWith('003')) { contactIds.add(t.WhoId); } } Map contactMap = new Map ([SELECT Id, No_Of_Open_Tasks__c FROM Contact WHERE Id in: contactIds]); For(Task t :Trigger.new) { If(contactMap.containsKey(t.WhoId)) { contactMap.get(t.WhoId).No_of_Open_Tasks__c += 1; } } Update contactMap.values(); } when AFTER_UPDATE { Set contactIds = new Set(); For(Task t : Trigger.new) { If(t.IsClosed && !Trigger.oldMap.get(t.Id).IsClosed && t.WhoId != null && String.valueOf(t.WhoId).startsWith('003')) { contactIds.add(t.WhoId); } } Map contactMap = new Map([SELECT Id, No_Of_Open_Tasks__c FROM Contact WHERE Id in :contactIds]); For(Contact con : contactMap.values()) { Con.No_of_open_tasks__c = 0; } For(AggregateResult ar : [SELECT WhoId, Count(Id) total FROM Task WHERE IsClosed = false AND WhoId in :contactIds GROUP BY WhoID]) { String who = String.Valueof(ar.get('WhoId')); Decimal total = (Decimal)(ar.get('total')); contactMap.get(who).No_of_Open_Tasks__c = total; } update contactMap.values(); } } }
Review: Super helpful! - This book is well written and extremely helpful. I have been learning Apex for about a year now and this really helped me to see the big picture and understand how everything fits together. Paul's code examples are very helpful. Additionally the chapters and structure of the book were perfect. Thank you so much for this book Paul!

## Technical Specifications

| Specification | Value |
|---------------|-------|
| Best Sellers Rank | #1,510,739 in Books ( See Top 100 in Books ) #102 in Object-Oriented Software Design #387 in Object-Oriented Design #1,764 in Web Development & Design Programming |
| Customer Reviews | 4.5 4.5 out of 5 stars (185) |
| Dimensions  | 7.5 x 0.58 x 9.25 inches |
| ISBN-10  | 9389898188 |
| ISBN-13  | 978-9389898187 |
| Item Weight  | 15.7 ounces |
| Language  | English |
| Print length  | 254 pages |
| Publication date  | August 10, 2020 |
| Publisher  | BPB Publications |

## Images

![Learning Salesforce Development with Apex: Write, Run and Deploy Apex Code with Ease (English Edition) - Image 1](https://m.media-amazon.com/images/I/91qc4-LL-sL.jpg)

## Customer Reviews

### ⭐⭐⭐⭐⭐ The Author is knowledgeable and writes clean code //HOWEVER
*by C***O on December 25, 2020*

The author writes well written code and introduces all relevant concepts well. However, there are massive cons to this book as well as someone who is 40% done with it: 1. He doesn't show you where to write the code. 2. He goes over the order of triggers and how they execute without actually showing you how to order them yourself thus making the entire introduction of the concept pointless. 3. I'm sitting here unable to write basic code although I understand the logic behind everything he says, I can't use it in production in Salesforce. 4. I don’t know how to pass variables or values from a class to a trigger meanwhile this dude is talking about Checkbox lists with a query that folds in on itself. Upset and watching even more disconnected people on youtube introduce the topic and equally skip over basic stuff thus making it even more impossible to follow along as they jump from triggers to classes with no possible way of making sense of the information. I hate when books skip over massive topics. LIKE DUDE THE SOQL DOESNT EVEN HAVE AN EXPORTER FOR THE RECORDS THAT IT RETRIEVES WHY DONT YOU WRITE AN APEX TRIGGER/CLASS THAT EXPORTS THE SOQL RESULTS Also, he has a typo in his OpportunityTrigger example he wrote 'Closed/Won' instead of 'Closed Won' it was probably intentional. Also, the SOQL chapter literally doesn't do anything I followed along and can't process: trigger TaskTrigger on Task (after insert, after update) { switch on Trigger.operationType { when AFTER_INSERT { Set<Id> contactIds = new Set<Id>(); For(Task t: Trigger.new) { If(t.WhoId != null && String.valueOf(t.WhoId).startsWith('003')) { contactIds.add(t.WhoId); } } Map<Id, Contact> contactMap = new Map<Id, Contact> ([SELECT Id, No_Of_Open_Tasks__c FROM Contact WHERE Id in: contactIds]); For(Task t :Trigger.new) { If(contactMap.containsKey(t.WhoId)) { contactMap.get(t.WhoId).No_of_Open_Tasks__c += 1; } } Update contactMap.values(); } when AFTER_UPDATE { Set<ID> contactIds = new Set<Id>(); For(Task t : Trigger.new) { If(t.IsClosed && !Trigger.oldMap.get(t.Id).IsClosed && t.WhoId != null && String.valueOf(t.WhoId).startsWith('003')) { contactIds.add(t.WhoId); } } Map<Id, Contact> contactMap = new Map<Id, Contact>([SELECT Id, No_Of_Open_Tasks__c FROM Contact WHERE Id in :contactIds]); For(Contact con : contactMap.values()) { Con.No_of_open_tasks__c = 0; } For(AggregateResult ar : [SELECT WhoId, Count(Id) total FROM Task WHERE IsClosed = false AND WhoId in :contactIds GROUP BY WhoID]) { String who = String.Valueof(ar.get('WhoId')); Decimal total = (Decimal)(ar.get('total')); contactMap.get(who).No_of_Open_Tasks__c = total; } update contactMap.values(); } } }

### ⭐⭐⭐⭐⭐ Super helpful!
*by J***J on December 13, 2020*

This book is well written and extremely helpful. I have been learning Apex for about a year now and this really helped me to see the big picture and understand how everything fits together. Paul's code examples are very helpful. Additionally the chapters and structure of the book were perfect. Thank you so much for this book Paul!

### ⭐⭐⭐⭐ A good introduction
*by A***R on February 25, 2022*

The book was a good introduction to the salesforce platform. I suspect it will help me when I start working with the platform in the near future

## Frequently Bought Together

- Learning Salesforce Development with Apex: Write, Run and Deploy Apex Code with Ease
- Ultimate Salesforce LWC Developers’ Handbook: Build Dynamic Experiences, Custom User Interfaces, and Interact with Salesforce data using Lightning Web Components (LWC) for Salesforce Cloud

---

## Why Shop on Desertcart?

- 🛒 **Trusted by 1.3+ Million Shoppers** — Serving international shoppers since 2016
- 🌍 **Shop Globally** — Access 737+ million products across 21 categories
- 💰 **No Hidden Fees** — All customs, duties, and taxes included in the price
- 🔄 **15-Day Free Returns** — Hassle-free returns (30 days for PRO members)
- 🔒 **Secure Payments** — Trusted payment options with buyer protection
- ⭐ **TrustPilot Rated 4.5/5** — Based on 8,000+ happy customer reviews

**Shop now:** [https://www.desertcart.co.za/products/225675917-learning-salesforce-development-with-apex-write-run-and-deploy-apex](https://www.desertcart.co.za/products/225675917-learning-salesforce-development-with-apex-write-run-and-deploy-apex)

---

*Product available on Desertcart South Africa*
*Store origin: ZA*
*Last updated: 2026-03-25*