Hey, hi, how are ya? Now that we got that unpleasantness out of the way, allow me to introduce you to this forthcoming book.
This book aims to make you a Salesforce Development Rockstar.
(Correction: It aims to make me a rock star, because the best way to master a subject is to teach it. But if you follow along, you’ll get to be a rock star, too. By osmosis or alchemy or some other mechanism I don’t quite understand.)
At the time of this writing in 2017, Salesforce is rocking its way to the top of the technology food chain. Fortune just named them #1 on the Fortune 50 list. Developers (and admins) are in hot demand. It’s virtually impossible to be a Salesforce Developer and not have a good job at this point. Many companies are willing to hire remotely because they just can’t find local talent.
What I’m trying to say is there’s never been a better time to be a Salesforce developer, and short of being an A.I. scientist, there may be no other type of developer with the job security of a Salesforce developer.
But first, what’s Salesforce?
Salesforce is billed as the world’s leading Customer Relationship Management system. It started out as a system focused on helping sales people keep tabs on all their leads, prospects, and customers. It has now grown to be a platform where businesses can run literally all of their information systems. Instead of having one system for CRM, another for Marketing, another for Finance, etc., Salesforce opened its system as a platform on which you, yes you, can build anything you damn well please.
To make sense of this, imagine a house. A house is very nice. It has a certain number of rooms and toilets and a yard. Maybe your house has a pool. Maybe I like you a little less now. Whatever your house is like, we can agree that a house is a house. Furthermore, it would be very problematic for me to come over to your house and declare that it should be more like a shopping mall. You’d be unhappy. Your neighbours would be unhappy. And I’d have to spend a fortune to make it happen.
The point is that getting a thing to be a different thing is expensive and wasteful.
The same goes for software. It will do you no good to yell at your word processor to be a better web browser. It’s not a web browser. It’s a word browser. Very different things.
Now, imagine I’m building a new neighbourhood. I’ve built my house, and I’ve build a house for you, too. But I’ve also given you a big chunk of land on which you can build whatever you like. In short, I’ve given you a platform to extend and build upon the house I gave you. You can build anything. Build a roller coaster for all I care.
Most software is like a house. It does what its designed to do, and it doesn’t particularly like to do anything else. Salesforce, however, is like a neighbourhood. It’s a platform you can use to build whatever you like. You can extend the database as much as you like to hold any kind of data you choose. And every year they’re releasing new tools to make it easy to build crazy things.
For example, this year they’ve released Einstein, giving all us wacky Salesforce Hackers an artificial intelligence platform to build on. Salesforce is crazy like that. They just keep giving us new goodies.
What’s the deal with Lightning?
The simplest reason to use Lightning is because Salesforce wants you to use Lightning. You will always have better luck and better support using the tools they recommend. Again, being a platform, you could manage to develop with any set of technologies you like. (Literally, if your programming language of choice supports RESTful APIs, have at it.) But you should know that Salesforce is pouring millions upon millions of R&D into Lightning.
As the saying goes, go where the money is.
So what is Lightning? It’s a collection of technologies designed to make it easier for you to build upon the Salesforce platform.
A big part of Lightning is the Lightning App Builder. This tool is mainly used by administrators to click-and-drag Lightning Components onto a page or app. It’s pretty awesome and it’s a great idea to get familiar with it. But you’re not an administrator. This book isn’t for administrators. This book is for developers. It’s for hackers. It’s for you and me.
A Lightning Component is a self-contained package of files that provide some functionality. For example, I could have a component that simply says “Hey there, Willow.” Or I could have a component contain all the fields for a signup form. Or I could have a component be a complex app that allows users to create documents and edit images and play Kumbaya on their keyboards. In other words, anything you could build on the web can be built as a component. And then an administrator using Lightning App Builder can drag Kumbaya World onto their Salesforce page.
You can even embed components within other components. This is helpful when you’re building something that you think you could use elsewhere.
For example, one of the first Lightning Components I made was an address form that used the Google Places API to auto-populate the address fields. This component has been useful in many different contexts, so I’m glad my boss made me break it out as its own piece of functionality.
This was a sneak peak
I know, I called it an announcement. But surprise! If you’ve read this far you’ve actually read a sneak peak of my forthcoming book, A Terrible Guide to Salesforce Lightning Components.
There are many ways to learn about Salesforce. My book promises to be the most inappropriate way to do so.