salesforce开发
Seven years ago, I transitioned from being a C# enterprise developer to a Salesforce developer.
七年前,我从成为C#企业开发人员过渡到了Salesforce开发人员。
Let me start by saying that I had a good career as a C# developer — working at a large organization and developing some interesting solutions. However, it got to the stage where I felt that the technology being used was limiting the impact I could make. One day, a manager contacted me and asked if I would like to move to a different development stack, to further progress my career.
首先,我要说我作为C#开发人员的职业生涯很好–在大型组织中工作并开发一些有趣的解决方案。 但是,到了我觉得所使用的技术限制了我可能产生的影响的阶段。 有一天,一位经理联系我,问我是否想转到其他开发堆栈,以进一步发展我的职业。
I jumped at the opportunity, and over the next few years, I implemented different Salesforce clouds and led a team of developers implementing solutions that made the impact I craved in the past: ranging from the internal sales process to sales portals for resellers, and banking apps for consumers.
我抓住了这个机会,在接下来的几年中,我实施了不同的Salesforce云,并带领一个开发人员团队实施了一些解决方案,这些解决方案使我过去产生了巨大的影响:从内部销售流程到经销商的销售门户以及银行业务面向消费者的应用程序。
Fast forward to today: I work with ClaimVantage, a global Salesforce ISV (Independent Software Vendor) partner, delivering InsurTech solutions to insurance companies, Third-party Administrators (TPAs), and large global employers to streamline their claims and absence management.
快进到今天:与我的工作ClaimVantage ,全球Salesforce的ISV(独立软件供应商)的合作伙伴,提供InsurTech解决方案,保险公司,第三方管理员(第三方协议),以及庞大的全球雇主,以简化他们的要求和缺勤管理。
Here are some reasons why I don’t regret the move from C# developer to Salesforce developer.
我不后悔从C#开发人员迁移到Salesforce开发人员的一些原因如下。
Salesforce makes it easy to bootstrap data-entry apps. All you have to do is create an object, which resembles a table, that gives you:
通过Salesforce,可以轻松引导数据输入应用程序。 您要做的就是创建一个类似于表的对象,该对象将为您提供:
A way to perform access control. 一种执行访问控制的方法。 A page layout (that you can easily customize with drag-and-drop functionality), that respects access control. 遵循访问控制的页面布局(您可以使用拖放功能轻松自定义)。 A way to query it in Apex without ORM (Object-Relational Mapping). 在不使用ORM(对象关系映射)的Apex中查询它的一种方法。 Audit fields that are populated automatically (i.e. created by, created date, etc). 自动填充的审计字段(即创建日期,创建日期等)。Depending on your business needs, you can add more fields before adding them to Page Layouts, create a tab for easy access, and grant access to users. That is it, feature shipped.
根据您的业务需求,您可以先添加更多字段,然后再将它们添加到“页面布局”中,创建一个易于访问的选项卡,并授予用户访问权限。 就是这样,功能已交付。
Seven years ago, I transitioned from being a C# enterprise developer to a Salesforce developer.
七年前,我从成为C#企业开发人员过渡到了Salesforce开发人员。
One of the great benefits of the platform is the ability to extend objects. Unlike other technology stacks, you don’t have to deal with tedious database migration scripts or database procedures. For me, having that embedded in the platform is a huge benefit.
该平台的一大优势是能够扩展对象。 与其他技术堆栈不同,您不必处理繁琐的数据库迁移脚本或数据库过程。 对我来说,将其嵌入平台是一个巨大的好处。
Salesforce also makes it easy to create test environments that closely resemble production environments, including relevant data. For anyone with experience working in enterprises, that can be a huge pain point.
使用Salesforce,还可以轻松创建与生产环境非常相似的测试环境,包括相关数据。 对于任何有在企业工作经验的人来说,这可能是一个巨大的痛点。
During my transition, I had to learn to use Eclipse, but now there are a few integrated development environments (IDEs) that you can choose from. Visual Studio Code is the one supported by Salesforce itself, which is my preferred environment, even though it is not close to full Visual Studio running C# — at least not yet.
在过渡期间,我必须学习使用Eclipse,但是现在您可以选择一些集成开发环境(IDE)。 Visual Studio Code是Salesforce本身支持的代码 ,这是我的首选环境,即使它尚未接近运行C#的完整Visual Studio(至少目前还没有)。
As well as the development platform, there is a vibrant Salesforce community with many meetups, conferences, as well as its own Stackoverflow community. Salesforce also offers a marketplace — the AppExchange — where users can leverage and install additional solutions without having to write code.
除了开发平台之外,还有一个充满活力的Salesforce社区,其中有许多聚会,会议以及它自己的Stackoverflow社区 。 Salesforce还提供了一个市场-AppExchange-用户可以在其中无需编写代码就可以利用和安装其他解决方案。
It is easier than ever to learn Salesforce. When I started you had to either take formal training classes (in my case, DEV-401 and DEV-501) or you had to read available training documentation.
学习Salesforce比以往任何时候都容易。 当我开始时,您必须参加正式的培训课程(在我的情况下为DEV-401和DEV-501),或者您必须阅读可用的培训文档。
Today, you can jump straight into Trailhead, where you can start learning the basics before leading to more advanced techniques, such as Selector Pattern in Apex or How To use Einstein Vision to categorize images.
今天,您可以直接进入Trailhead ,在那里您可以开始学习基础知识,然后再使用更高级的技术,例如Apex中的选择器模式或如何使用Einstein Vision对图像进行分类。
One of the great benefits of the platform is the ability to extend objects. Unlike other technology stacks, you don’t have to deal with tedious database migration scripts or database procedures.
该平台的一大优势是能够扩展对象。 与其他技术堆栈不同,您不必处理繁琐的数据库迁移脚本或数据库过程。
Most of the syntax is similar to C# (including properties), so, for the most part, I was comfortable during the transition. Unit tests work really well and Salesforce requires 75% of code coverage to deploy to production.
大多数语法与C#(包括属性)相似,因此,在大多数情况下,过渡期间我感到很舒服。 单元测试工作得非常好,Salesforce需要将代码覆盖率的75%部署到生产中。
As mentioned before, environment management is great in Salesforce. However, there is a learning curve to understanding the terminology, different environment use-cases, and the deployment toolset.
如前所述,环境管理在Salesforce中非常出色。 但是,要了解术语,不同的环境用例和部署工具集有一条学习曲线。
The platform has a huge range of out-of-the-box features, which you should leverage before writing a piece of code: Salesforce has been building the platform for over 20 years and continues to roll out new releases three times a year. So chances are you can find the functionality you want, which can be easily configured.
该平台具有广泛的即用型功能,您在编写代码之前应该利用这些功能:Salesforce建立该平台已有20多年的历史,并且继续每年发布三次新版本。 因此,您很可能会找到所需的功能,可以轻松对其进行配置。
However, there are a few things that you should consider before taking the leap.
但是,在进行飞跃之前,您应该考虑一些事项。
This is not an exhaustive list, but the main challenges I faced when transitioning Salesforce developer to for me were:
这不是一个详尽的列表,但是在将Salesforce开发人员迁移到我时,我面临的主要挑战是:
Governor Limits: Salesforce runs on a multi-tenant architecture and it imposes restrictions on how much your code can consume, ranging from CPU time to memory amount to total transaction time. This can be useful for many apps, but in some cases, it can make things more complicated, as your code will need to optimize efficiency and scalability. For example when building queries or DML (Data Manipulation Language) operations.
调速器限制 :Salesforce在多租户体系结构上运行,它对您的代码可以消耗多少施加了限制,范围从CPU时间到内存量再到总事务时间。 这对于许多应用程序可能很有用,但是在某些情况下,由于代码需要优化效率和可伸缩性,因此会使事情变得更复杂。 例如,在构建查询或DML(数据操作语言)操作时。
Static Variables: Instead of usual static variables that can live up until the process is finalized, they work similarly to ThreadStatic and ThreadLocal classes.
静态变量 :它们可以代替ThreadStatic和ThreadLocal类工作,而不是在过程完成之前可以使用的常规静态变量。
Environments: For the most part, you don’t have a local environment or a local compiler. You can have a scratch org or sandbox for development and testing. The production environment remains the same and most, if not all environments, are tied to production at some point.
环境:在大多数情况下,您没有本地环境或本地编译器。 您可以拥有一个临时组织或沙盒进行开发和测试。 生产环境保持不变,并且大多数(如果不是全部)环境都在某个时候与生产联系在一起。
Debugging: In general, you don’t have logs being fed to log analysis tools and you end up relying on unit tests or manual log analysis to debug issues.
调试 :通常,您没有将日志输入到日志分析工具中,最终只能依靠单元测试或手动日志分析来调试问题。
A Monolithic Architecture: Many resources are shared among different components and it can be troublesome if teams work on the same org. You can leverage Unlocked Packages and Platform Events; but at the end of the day, the production instance is either a big ball of mud or a not so ugly, happy soup.
整体架构 :许多资源在不同组件之间共享,如果团队在同一个组织中工作,可能会很麻烦。 您可以利用解锁包和平台事件 ; 但归根结底,生产实例要么是一个大泥泞的球,要么是不是那么丑陋,快乐的汤。
Dependency Injection (DI): There is no inherited DI. You could leverage Stub API and fflib-apex-mocks, but it means that you can only perform a small fraction of design choices to use DI or Inversion of Control.
依赖注入(DI) :没有继承的DI。 您可以利用Stub API和fflib-apex-mocks ,但这意味着您只能执行一小部分设计选择,才能使用DI或控制反转。
Salesforce owns Heroku, which offers plenty of opportunities with many interesting use-cases, as Heroku allows you to run custom code with more platform choices and finer control. Salesforce is also working on Salesforce Functions to bring Function as a Service (FaaS) into the platform, which will allow implementation using different languages, other than Apex.
Salesforce拥有Heroku,它在许多有趣的用例中提供了很多机会,因为Heroku允许您使用更多平台选择和更好的控制来运行自定义代码。 Salesforce还致力于Salesforce Functions,以将功能即服务(FaaS)引入平台,这将允许使用Apex以外的其他语言来实施。
The platform has a huge range of out-of-the-box features, which you should leverage before writing a piece of code.
该平台具有广泛的即用型功能,您在编写代码之前应该利用这些功能。
There are many opportunities for Salesforce developers and there is a huge demand for architects, as implementation becomes more complex to manage.
随着实施变得更加复杂,Salesforce开发人员将有很多机会,并且对架构师的需求也很大。
I feel that being a Salesforce developer has provided me with new experiences and given me a great opportunity to progress my personal development. I would highly recommend this career to anyone considering taking the leap.
我觉得作为Salesforce开发人员为我提供了新的经验,并给了我很大的机会来进行个人开发。 我强烈建议所有考虑实现这一目标的人推荐这个职业。
翻译自: https://medium.com/inside-the-salesforce-ecosystem/c-developer-to-salesforce-developer-c0e8d43d3461
salesforce开发
相关资源:微信小程序源码-合集6.rar