Started learning salesforce 1 month back. Felt somewhat manageable.

Got the repository on Monday. Its a fucking spaghetti. A billion different conventions all around the place, no comments anywhere (except for 1% maybe 5 of the places where it needs to be), and for some reason the Checkpoint sync wont work with this project (although it works if I use a scratch or or trailhead playgrounds).

I am starting to think about unlearning this and try some new department of the company. Problem is, the employer is great at Salesforce himself, and he has high hopes from me.

  • 1
    Salesforce is great if you're implementing something the system is designed to do, you're happy reimplementing things every few years when they deprecate older stuff and release newer stuff, you don't mind basing your career on proprietary stacks that aren't seen anywhere else, you're happy to jump through hoops and wait ages for security reviews before your stuff can he released, and you're happy basing your career on constant certifications.

    Some people make a career out of it very successfully and earn a bunch of money doing so. I ummed and erred about it for a while, but ultimately decided it was just too frustrating.
  • 2
    The biggest issue with Salesforce is, it expects best practices to be adhered to from the get go. Which is doubtful you'll find any instance that's crisp and clean unless it's brand new out of the box, and even then... its debatable what gets customised will be done "right"

    Many Salesforce devs... contractors, yes let's call them contractors, learn enough to be dangerous, take a nasty shit in the code / config and walk away and leave it for someone else to deal with, or worse take their own shit on top.

    It's a challenging platform to build on, but if your crazy enough, it is quite rewarding.

    Since you're learning, I'd hope you're on trailheads... if not do... and accept that Salesforce is a pain on a good day, and life threatening on a bad day.

    And before you trip out trying to work out how Salesforce attempts to run everything in order, learn its execution process.

  • 1
    Salesforce's Apex code is some of the most confusing/convoluted code I've seen...
  • 0
    @AlmondSauce the repository I'm supposed to work on is working from 2012, and the code is total mess, with multiple packages working with each other with zero documentation.
  • 1
    @C0D4 yes, I agree.
    Also, the team lead for SF emphasized on the order of execution on my first day last Monday in the team, and asked me to read it so many time that I understand+memorise the order.

    He also said that it is the most important topic for the PD1 certification.

    I have a few questions that I'll ask him this Friday Review meeting.
  • 0
    @Ethan1498 yes. But what I learnt from Trailhead seemed simple. But here the classes are huge (the linter complains about that a lot and also about naming conventions, structuring, unescaped variables in soql queries, etc, but the team lead said we should ignore them for now), and there is zero documentation about anything anywhere.

    Plus the whole app works with 4 packages that talk to each other (that I know of and have access to in bitbucket), and then there is a lot of custom code customisation for 5-6 of the customers. This makes it very difficult to understand what works how.
  • 1
    @nanobot some... and I stress "some", as in very little, of those issues the linter is picking up are ignorable, however any involving SOQL are not.

    I'd bet it's complaining about SOQL Injection which should not be ignored.

    You'd have something like:

    String sql = "SELECT Id FROM Opportunity WHERE field__c = " + value + ";

    This allows the value to be manipulated to contain something like:, "'123445' OR field2__c = '858493'"

    And introduce unexpected results, especially if your only expecting 1 result to be returned.



    Classes can become unwieldy and that's normal, you would want to refactor those slowly and push some of the methods into service / helper classes for that particular object.

Add Comment