I was reflecting on a week filled with deploys last night and thought there was an interesting takeaway about two different instances of scope creep - and the two _very_ different outcomes we as a team ended up with in two of our applications. It's a story where you as the reader get to decide at the end of the day what the takeway is. I'll be interested to hear if you end up with the same takeaway that I did.| www.jamessimone.net
Expressing intent through naming is a challenge, but well-named methods can help to expose even the most complicated of programming mechanisms. In programming, as in life, context is key - let's explore how naming can elevate the intent and rationale behind code! Whether you're just beginning your programming journey or you're a veteran programmer of many years, it's my hope that there's something in this post for everybody.| www.jamessimone.net
Learn how to implement the Fisher-Yates / Knuth random sort or shuffling algorithm in order to select random elements out of a list in this entry from the Joys Of Apex. Revisit some older code and watch as it gets spruced up with the help of algorithms and hindsight to produce a better version than existed previously. How often do you revisit old code?| www.jamessimone.net
Setting delays programmatically within Apex represents a unique challenge. We don't have access to the current thread instructions that are being carried out, nor do we have any kind of higher-level `delay` function. While this is frequently fine for internal usage, where the last thing you would want is for your compiled code to be slow, that's not always the case when interacting with external APIs. It's common for APIs to be 'rate-limited' - go over the number of requests you're supposed t...| www.jamessimone.net
So-called Lazy evaluated functions have their actual execution delayed until a terminator function is called. It's common for lazy functions to be chained together using fluent interfaces, culminating with actions being performed when the terminator function is called. What can Salesforce developers writing Apex code stand to gain by learning more about lazy functions? Fluent interfaces -- or objects that return themselves during function calls -- also tend to satisfy one of the prerequisites...| www.jamessimone.net
Learn more about performance testing the CRUD framework, the cost of sorting, and how to implement custom sorting easily.| www.jamessimone.net
Learn about Apex from the ground-level upwards: the basics of object-oriented programming, static types and type inference, virtual and abstract classes, interfaces, polymorphism, encapsulation and inheritance.| www.jamessimone.net
Dependency injection is a crucial method for correctly initializing & testing objects, and the Factory pattern can help to standardize how your SFDC Apex objects are produced| www.jamessimone.net