<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: bhanukarkra</title>
    <description>The latest articles on DEV Community by bhanukarkra (@bhanukarkra).</description>
    <link>https://dev.to/bhanukarkra</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F573909%2F66f7791d-5a8d-410e-81dd-5f129ce00092.png</url>
      <title>DEV Community: bhanukarkra</title>
      <link>https://dev.to/bhanukarkra</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/bhanukarkra"/>
    <language>en</language>
    <item>
      <title>How to retrieve managed package (conga) via package.xml</title>
      <dc:creator>bhanukarkra</dc:creator>
      <pubDate>Tue, 03 Sep 2024 03:40:17 +0000</pubDate>
      <link>https://dev.to/bhanukarkra/how-to-retrieve-managed-package-conga-via-packagexml-51ke</link>
      <guid>https://dev.to/bhanukarkra/how-to-retrieve-managed-package-conga-via-packagexml-51ke</guid>
      <description>&lt;p&gt;For managed package we need to append the managed package name as prefix to the component. &lt;br&gt;
For example  &lt;strong&gt;APXTConga4&lt;/strong&gt; is added in front of conga template layout. &lt;br&gt;
If you find the layout name in org, it will be only conga template layout.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;        &amp;lt;members&amp;gt;APXTConga4__Conga_Template__c-APXTConga4__Conga Template Layout&amp;lt;/members&amp;gt;        
        &amp;lt;name&amp;gt;Layout&amp;lt;/name&amp;gt;
    &amp;lt;/types&amp;gt;

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



</description>
    </item>
    <item>
      <title>how to check the schedule class in your org</title>
      <dc:creator>bhanukarkra</dc:creator>
      <pubDate>Thu, 15 Feb 2024 09:17:26 +0000</pubDate>
      <link>https://dev.to/bhanukarkra/how-to-check-the-schedule-class-in-your-org-1mod</link>
      <guid>https://dev.to/bhanukarkra/how-to-check-the-schedule-class-in-your-org-1mod</guid>
      <description>&lt;p&gt;To get the underlying Apex class from the scheduled jobs, the following query can be run.&lt;/p&gt;

&lt;p&gt;Query to get the scheduled job underlying apex class.&lt;/p&gt;

&lt;p&gt;SELECT ApexClassId,ApexClass.name,Id,JobItemsProcessed,JobType,Status,  NumberOfErrors,MethodName, CronTrigger.CronJobDetail.Name FROM AsyncApexJob WHERE JobType ='ScheduledApex'&lt;/p&gt;

&lt;p&gt;after running this verify the ids, if your class id is there&lt;/p&gt;

</description>
    </item>
    <item>
      <title>VF page vs AURA vs L</title>
      <dc:creator>bhanukarkra</dc:creator>
      <pubDate>Fri, 14 Oct 2022 09:14:43 +0000</pubDate>
      <link>https://dev.to/bhanukarkra/vf-page-vs-aura-vs-l-2mfn</link>
      <guid>https://dev.to/bhanukarkra/vf-page-vs-aura-vs-l-2mfn</guid>
      <description>&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--Bb3m_S2---/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/38etf2qmjkgsacu6tnxr.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--Bb3m_S2---/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/38etf2qmjkgsacu6tnxr.png" alt="Image description" width="880" height="508"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Javascript Begineer</title>
      <dc:creator>bhanukarkra</dc:creator>
      <pubDate>Tue, 11 Oct 2022 04:29:27 +0000</pubDate>
      <link>https://dev.to/bhanukarkra/javascript-begineer-1jjj</link>
      <guid>https://dev.to/bhanukarkra/javascript-begineer-1jjj</guid>
      <description>&lt;p&gt;Javascript: Runs on Javascript Engine&lt;br&gt;
On firefox: Spider monkey&lt;br&gt;
On Chrome: V8&lt;/p&gt;

&lt;p&gt;Node: C++ program that include chrome v8 javascript engine, hence Node can be run outside browser and hence makes up Backend.&lt;/p&gt;

&lt;p&gt;Ecmascript vs javascript:&lt;br&gt;
Ecmascript is specification and javascript is programing language that runs on echmascript specification.&lt;/p&gt;

&lt;p&gt;DataTypes:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Primitive: String, Number, boolean, null, undefined 
primitives are copied by value&lt;/li&gt;
&lt;li&gt;Reference type: Object, array, Function
objects are copied by reference&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;eg:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;let x=10;
let y=x;
x=20
console.log(y)//10

but
let x={value:10};
let y=x
x.value=20;
console.log(y)//{20,10}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;typeof undefined = undefined&lt;br&gt;
typeof Null= object&lt;br&gt;
typeof NaN=Number&lt;/p&gt;

&lt;p&gt;Object: Object property can be changed in two ways&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Dot notation&lt;/li&gt;
&lt;li&gt;Array bracket&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;eg: 1&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;let person={
name:'john',
age:30
};

person.name='Seema';//dot notation
person['name']='Seema';//array bracket. This gets used in case of dynamic value
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Array: technically Array is an object, hence typeof Array=object&lt;/p&gt;

&lt;p&gt;function: Parameter is at the time of function declaration&lt;br&gt;
          Argument is passed from fucntion call&lt;/p&gt;

&lt;p&gt;Operators: arithmatic, Assignment, comparision, logical, bitwise.&lt;/p&gt;

&lt;p&gt;Arithmatic: +,-,&lt;em&gt;,/,%,&lt;/em&gt;*(exponentiation),++, --&lt;/p&gt;

&lt;p&gt;Assignemnt: let x=10;&lt;br&gt;
            x=x+5; OR x+=5; are same&lt;/p&gt;

&lt;p&gt;lose equality: ==&lt;br&gt;
Strict equality: === (check datatype also)&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;conditional&lt;/strong&gt;: Ternary operator&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;let points=100;
let type=points&amp;gt;110?'gold':'silver';
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Logical operator with non boolean values:&lt;/strong&gt;&lt;br&gt;
false||true=true&lt;br&gt;
false||'abc'=abc&lt;br&gt;
false||1=1&lt;/p&gt;

&lt;p&gt;if value is not boolean, js engine make it truthy or falsy value&lt;/p&gt;

&lt;p&gt;Falsy values: undefined, null, '', 0, false, NaN&lt;br&gt;
Anthing that is not falsy is truthy&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;short-circuting&lt;/strong&gt;: false||1||2= 1&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;if-else&lt;/strong&gt;&lt;br&gt;
&lt;strong&gt;Switch&lt;/strong&gt;:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;let role='guest'
switch(role){
case 'guest': console.log('Guest User');
break;

case 'moderator': console.log('Moderator user');
break;

default: console.log('default');
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Loops: For, while, do-while, for-in, for-of&lt;/p&gt;

&lt;p&gt;for-in &amp;amp; for-of are used to access objects/arrays&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;for-in:&lt;/strong&gt;&lt;br&gt;
`const person={&lt;br&gt;
name='john';&lt;br&gt;
age=30;&lt;br&gt;
}&lt;br&gt;
for(let key in person) &lt;br&gt;
console.log(key, person[key]);&lt;br&gt;
//name john&lt;br&gt;
// age 30&lt;/p&gt;

&lt;p&gt;similarly for array&lt;br&gt;
&lt;code&gt;const colours='red','green','Blue';&lt;br&gt;
for(let index in colours) &lt;br&gt;
console.log(index, colours[inded])&lt;br&gt;
//0 red,1 green,2 blue&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;For-of&lt;/strong&gt;&lt;br&gt;
&lt;code&gt;for(let color of colours)&lt;br&gt;
console.log(color);&lt;br&gt;
//red, green, blue&lt;br&gt;
&lt;/code&gt;&lt;br&gt;
with for-of loop no need to have index as in for-in.&lt;br&gt;
For-of loop cannot iterate over object&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Break&lt;/strong&gt;: this is used to jump out of loop &lt;br&gt;
&lt;strong&gt;continue&lt;/strong&gt;: used to jump to execute loop next iteration.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Function vs method.&lt;/strong&gt;&lt;br&gt;
If a function is a part of object it is called as method.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Factory function:&lt;/strong&gt; if function is for producing objects, it is called as factory function&lt;/p&gt;

&lt;p&gt;In object if key and value are same, then only key can be written&lt;br&gt;
like radius:radius is same as radius.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;constructor function:&lt;/strong&gt; works same to produce objects, however naming convention is used with capital first letter.&lt;br&gt;
Also object can be initialized with this.&lt;/p&gt;

&lt;p&gt;cloning an object:&lt;br&gt;
&lt;code&gt;&lt;/code&gt;`&lt;br&gt;
const circle{&lt;br&gt;
radius:1,&lt;br&gt;
draw(){&lt;br&gt;
console.log('draw')&lt;br&gt;
}&lt;br&gt;
};&lt;/p&gt;

&lt;p&gt;const another={...circle};//taking each property/method of circle object and assigning to another object.&lt;br&gt;
`&lt;code&gt;&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;const message='hi'//string primitive &lt;br&gt;
const another=new string('hi')//string object&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;(...) spread operator vs (...) rest operator&lt;/strong&gt;&lt;br&gt;
Spread operator: takes each element of array.&lt;/p&gt;

&lt;p&gt;rest operator accommodate each parameter of function &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Getters:&lt;/strong&gt; To access properties&lt;br&gt;
&lt;strong&gt;Setters&lt;/strong&gt;: To mutate them&lt;/p&gt;

&lt;p&gt;var=function scope&lt;br&gt;
Let, const= block scope&lt;/p&gt;

&lt;p&gt;This: this reference to the object that is executing the current function&lt;/p&gt;

</description>
    </item>
    <item>
      <title>SCRUM</title>
      <dc:creator>bhanukarkra</dc:creator>
      <pubDate>Mon, 10 Oct 2022 16:58:48 +0000</pubDate>
      <link>https://dev.to/bhanukarkra/scrum-116i</link>
      <guid>https://dev.to/bhanukarkra/scrum-116i</guid>
      <description>&lt;p&gt;&lt;strong&gt;Stories: INVEST&lt;/strong&gt;&lt;br&gt;
I:Independent&lt;br&gt;
N:Negotiable&lt;br&gt;
V:Valuable&lt;br&gt;
E:Estimable&lt;br&gt;
S:Small&lt;br&gt;
T:Testable&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;User stories Tasks: SMART&lt;/strong&gt;&lt;br&gt;
S:Specific&lt;br&gt;
M:Measurable&lt;br&gt;
A:Achievable&lt;br&gt;
R:Relevent&lt;br&gt;
T:Time-Bound&lt;/p&gt;

&lt;p&gt;Scrum Master checklist: &lt;a href="https://scrummasterchecklist.org"&gt;https://scrummasterchecklist.org&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;User story estimation Technique: Planing Pocker&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Burndown Charts: Linear/Bar.&lt;/strong&gt;&lt;br&gt;
It shows how much work is done and how much needs to be done.&lt;/p&gt;

&lt;p&gt;Mark story points on Y-axis and individual working days on x-axis&lt;/p&gt;

&lt;p&gt;Team Velocity: Avg number of points/sprint&lt;br&gt;
pessimistic velocity: Low value&lt;br&gt;
Optimistic velocity: High value&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Check you are on which page from LWC</title>
      <dc:creator>bhanukarkra</dc:creator>
      <pubDate>Sun, 18 Sep 2022 12:19:49 +0000</pubDate>
      <link>https://dev.to/bhanukarkra/check-you-are-on-which-page-from-lwc-i5l</link>
      <guid>https://dev.to/bhanukarkra/check-you-are-on-which-page-from-lwc-i5l</guid>
      <description>&lt;p&gt;To check if the Lightning component is in Lightning Community Page or in Salesforce Lightning CRM page, we can make use of Site Class‘s method – getSiteType().&lt;/p&gt;

&lt;p&gt;this return these values&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--abTDxCBM--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/26u2el14rpfowryehfja.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--abTDxCBM--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/26u2el14rpfowryehfja.png" alt="Image description" width="676" height="239"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Create an @AuraEnabled method in Apex Controller:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;@AuraEnabled
public static String getSiteType() {
    return Site.getSiteType();
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;controller to fetch&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;var communityPageKeys = ['ChatterNetwork', 'ChatterNetworkPicasso'];
var action = component.get("c.getSiteType");

action.setCallback(this, function (response) {
    if (response.getState() === "SUCCESS") {
        if (communityPageKeys.indexOf(response.getReturnValue()) &amp;lt; 0) {
            // This is not a community page
        } else {
            // This is a community page
        }
    }
});

$A.enqueueAction(action);

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Reference [&lt;a href="https://vijayasankarn.wordpress.com/2018/02/12/lightning-component-is-it-in-community-or-in-lightning-page/"&gt;https://vijayasankarn.wordpress.com/2018/02/12/lightning-component-is-it-in-community-or-in-lightning-page/&lt;/a&gt;]&lt;/p&gt;

</description>
    </item>
    <item>
      <title>How to use Hyperlink of image in formula field</title>
      <dc:creator>bhanukarkra</dc:creator>
      <pubDate>Fri, 01 Jul 2022 14:24:04 +0000</pubDate>
      <link>https://dev.to/bhanukarkra/how-to-use-hyperlink-of-image-in-formula-field-ime</link>
      <guid>https://dev.to/bhanukarkra/how-to-use-hyperlink-of-image-in-formula-field-ime</guid>
      <description>&lt;p&gt;Make an image clickable and navigate to any page in salesforce.&lt;br&gt;
Use hyperlink function with Image function as below:&lt;/p&gt;

&lt;p&gt;If statement to make the formula field empty if value is coming empty&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;IF( NOT(ISBLANK(PublicUrlText__c) ) , HYPERLINK("https://emaarservice--mysterysho--c.documentforce.com/sfc/dist/version/renditionDownload?rendition=THUMB720BY480&amp;amp;" + PublicUrlText__c, IMAGE("https://emaarservice--mysterysho--c.documentforce.com/sfc/dist/version/renditionDownload?rendition=THUMB720BY480&amp;amp;" + PublicUrlText__c, "No Image", 200,200)),"" )
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



</description>
    </item>
    <item>
      <title>How to navigate to a page in LWC after button click/record creation</title>
      <dc:creator>bhanukarkra</dc:creator>
      <pubDate>Tue, 28 Jun 2022 04:02:30 +0000</pubDate>
      <link>https://dev.to/bhanukarkra/how-to-navigate-to-a-page-in-lwc-after-button-clickrecord-creation-1jbl</link>
      <guid>https://dev.to/bhanukarkra/how-to-navigate-to-a-page-in-lwc-after-button-clickrecord-creation-1jbl</guid>
      <description>&lt;p&gt;use navigation mixing&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1)Add library&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;import { NavigationMixin } from 'lightning/navigation';
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;2)add navigation mixing in default class&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;export default class ObservationCreationPage extends NavigationMixin(LightningElement) {
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;3)add navigation mixing in function&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;
handleSuccess(event) {
        this.loaded = true;
        this.closeQuickAction()
Successfully!! ${event.detail.id}`, "success")
        console.log("handle Success",JSON.stringify(event.detail))
        this.showToast("Success!!", `Observation Created Successfully!!   Obs No.: ${event.detail.fields.Name.value}`, "success")
        this[NavigationMixin.Navigate]({
            type: 'standard__recordPage',
            attributes: {
                recordId: event.detail.id,
                actionName: 'view'
            }
        });
    }

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



</description>
    </item>
    <item>
      <title>SFDC software Jargons</title>
      <dc:creator>bhanukarkra</dc:creator>
      <pubDate>Thu, 28 Apr 2022 10:37:59 +0000</pubDate>
      <link>https://dev.to/bhanukarkra/sfdc-software-jargons-3611</link>
      <guid>https://dev.to/bhanukarkra/sfdc-software-jargons-3611</guid>
      <description>&lt;p&gt;&lt;strong&gt;CI/CD Tools&lt;/strong&gt; -Continuous integration/continuous delivery (CI/CD). like Netflix. As the data get deployed immediately.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Salesforce DX&lt;/strong&gt; - Salesforce Developer Experience -Salesforce DX is much more than just a new set of tools and rules. It serves as an alternative to change set development and shifts the source of truth from Org to Version Control System (VCS). It shifts our development focus from org development to package development and more. Make Disposable instance exact copy of sandbox. VSCode is a part of SFDX. &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Java JDK&lt;/strong&gt; - Java Development Kit-&lt;br&gt;
&lt;strong&gt;Java JRE&lt;/strong&gt; - Java RunTime Engine-&lt;br&gt;
The JVM is the Java platform component that executes programs.&lt;br&gt;
The JRE is the on-disk part of Java that creates the JVM.&lt;br&gt;
The JDK allows developers to create Java programs that can be executed and run by the JVM and JRE.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Product Line Manager&lt;/strong&gt; A product line manager oversees the efforts to increase market share and profitability of products in a company. As a product line manager, you research and study the market to determine fair price points and compare competitor's products.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Cross Product Lead&lt;/strong&gt;&lt;br&gt;
Product leads are responsible for the development of new products within a particular company. They are key members of cross-functional product development teams that typically include engineers, researchers, technologists, and representatives of marketing, finance, and manufacturing departments.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Product Line Architect&lt;/strong&gt; Perform design, development and support of existing and new products.&lt;br&gt;
Understand product vision and business needs to define product requirements and product architectural solutions.&lt;br&gt;
Develop architectural and design principles to improve performance, capacity, and scalability of product.&lt;br&gt;
Work with Product Manager in planning and execution of new product releases.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;BDD&lt;/strong&gt; Behavior Driven Development: This means creating an executable specification that fails because the feature doesn't exist, then writing the simplest code that can make the spec pass. You repeat this until a release candidate is ready to ship.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;TDD&lt;/strong&gt; Test Driven Development: This means writing a test that fails because the specified functionality doesn't exist, then writing the simplest code that can make the test pass, then refactoring to remove duplication, etc. You repeat this Red-Green-Refactor loop over and over until you have a complete feature.&lt;br&gt;
The key difference is the scope. TDD is a development practice while BDD is a team methodology. In TDD, the developers write the tests while in BDD the automated specifications are created by users or testers (with developers wiring them to the code under test.) For small, co-located, developer-centric teams, TDD and BDD are effectively the same.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;SIT&lt;/strong&gt;  System integration testing (SIT) involves the overall testing of a complete system of many subsystem components or elements. The system under test may be composed of hardware, or software, or hardware with embedded software, or hardware/software with human-in-the-loop testing.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;DLR&lt;/strong&gt; Dynamic Language Runtime: The DLR makes it easier to develop dynamic languages to run on the .NET Framework and to add dynamic features to statically typed languages. &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;POC&lt;/strong&gt; Proof of Concept: Showing workable demo to show capability&lt;br&gt;
&lt;strong&gt;Regression Testing&lt;/strong&gt;: Testing whole code based on new code changes&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Penetration Testing&lt;/strong&gt;: To test for security breach&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Load testing&lt;/strong&gt;: To check load or Bulk Data&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;SDET&lt;/strong&gt; Software Development Engineer in Test. SDET professionals who can participate in development of the application and also in testing of the software developed&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Aura Components</title>
      <dc:creator>bhanukarkra</dc:creator>
      <pubDate>Sun, 20 Jun 2021 06:37:18 +0000</pubDate>
      <link>https://dev.to/bhanukarkra/aura-components-7m</link>
      <guid>https://dev.to/bhanukarkra/aura-components-7m</guid>
      <description>&lt;p&gt;*8 components in Aura Bundle.&lt;br&gt;
*3js, 1css, 1svg, 1 cmp, 1doc, &lt;br&gt;
*TO run Bundle need App&lt;/p&gt;

&lt;p&gt;Attributes name="xyz" value =1 replaces variables to show in front end&lt;br&gt;
To show {!v.xyz}&lt;br&gt;
v signify Component (ie; visual value)&lt;br&gt;
c signify controller (ie; Controller value)&lt;/p&gt;

&lt;p&gt;For back end use .js controller&lt;/p&gt;

&lt;p&gt;&lt;a&gt;aura:attribute&lt;/a&gt; can be defined directly in application also because both are front end.&lt;br&gt;
 Now we have 2 different ways to to to define aura:attribute &lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Creating a lightning component and then calling it in the lightning application, &lt;/li&gt;
&lt;li&gt;lightning component attribute inside application&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Button&lt;br&gt;
&lt;/p&gt;

&lt;p&gt;Js Controller = all functionality inside this.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;implements&lt;/strong&gt;&lt;br&gt;
 : to make your component available for record pages and any other type of page,&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Calculator App&lt;/strong&gt;&lt;br&gt;
Component=AddComponent.cmp&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;&amp;lt;aura:component &amp;gt;
    &amp;lt;aura:attribute name="num1" type="Integer" default="30"/&amp;gt;
    &amp;lt;aura:attribute name="num2" type="Integer" default="20"/&amp;gt;
    &amp;lt;aura:attribute name="sum" type="Integer" /&amp;gt;
      {!v.num1} + {!v.num2} = {!v.sum}
   &amp;lt;br&amp;gt;&amp;lt;/br&amp;gt;
  &amp;lt;ui:button label= "Press Me" press="{!c.add}"/&amp;gt;
&amp;lt;/aura:component&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Js.Controller =AddComponent.js&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;({
 add : function(component) {
       var xyz = component.get("v.num1") + component.get("v.num2");
        component.set("v.sum",xyz);
                                              }
})
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Output:&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--pRWSEh8X--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/9xpdxrancob8hm0dnc0g.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--pRWSEh8X--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/9xpdxrancob8hm0dnc0g.png" alt="image"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;You can only use {!} Syntax in markup languages like HTML, hence in .app and .cmp  we are using {!} for expression.&lt;/p&gt;

&lt;h4&gt;ifElse&lt;/h4&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;&amp;lt;aura:component&amp;gt;
  &amp;lt;aura:attribute name="edit"
                             type="Boolean"
                             default="True"/&amp;gt;
   &amp;lt;aura:if isTrue="{!v.edit}"&amp;gt;
      &amp;lt;ui:button label="submit"/&amp;gt;
       &amp;lt;aura:set attribute="else"&amp;gt;
          Hello, Welcome to SalesfrceKid Platform
     &amp;lt;/aura:set&amp;gt;
   &amp;lt;/aura:if&amp;gt;
&amp;lt;/aura:component&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Output&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--Hw82w-nU--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/8dgu2l75f77t5b615ioy.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--Hw82w-nU--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/8dgu2l75f77t5b615ioy.png" alt="image"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h4&gt;Value Providers&lt;/h4&gt;

&lt;p&gt;Value providers encapsulate related value together, similar to how an object encapsulates properties and methods.&lt;br&gt;
The value providers for a component are v(view) and c(controller).&lt;br&gt;
A component's view refers to its attribute set.&lt;br&gt;
A component's controller enables you to wire up event handlers and action for the components. It's where you control your component's logic.&lt;/p&gt;


&lt;h5&gt;Global Value Providers /h5&amp;gt;&lt;br&gt;
Here are some global value providers you need to know :

&lt;/h5&gt;
&lt;p&gt;globalId: It returns the global ID for a component has a unique globalId, which is generated runtime-unique ID of the component instance.&lt;br&gt;
$Browser: It returns information about the hardware and operating system of the browser accessing the application.&lt;br&gt;
$Label: It enables you to access labels stored outside your code.&lt;br&gt;
.&lt;br&gt;
.&lt;br&gt;
.&lt;br&gt;
.&lt;br&gt;
etc&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;&amp;lt;aura:component&amp;gt;
  Browser running on Tablet: {!$Browser.isTablet}
   &amp;lt;br&amp;gt;&amp;lt;/br&amp;gt;
    Is it running on IPhone: {!$Browser.isIPhone}
    &amp;lt;br&amp;gt;&amp;lt;/br&amp;gt;
     Is it running on Android: {!$Browser.isAndroid}
     &amp;lt;br&amp;gt;&amp;lt;/br&amp;gt;
I am Running on : {!$Browser.FormFactor}
&amp;lt;/aura:component&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;output&lt;br&gt;
Browser running on Tablet: false&lt;br&gt;
Is it running on IPhone: false&lt;br&gt;
Is it running on Android: false&lt;br&gt;
I am Running on DESKTOP&lt;/p&gt;

&lt;h4&gt;Server Side Controller or Apex Class&lt;/h4&gt;

&lt;p&gt;&lt;strong&gt;With Sharing&lt;/strong&gt;: To respect salesforce security to connect with client side controller&lt;br&gt;
&lt;strong&gt;Static and stateless methods&lt;/strong&gt;: Method don't care who is calling them&lt;br&gt;
&lt;strong&gt;@AuraEnabled&lt;/strong&gt;:to enable the client and server-side access to the method.&lt;br&gt;
Example: Apex class (server side component).apxc&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;public with sharing class simpleController//with sharing to share
{
 @AuraEnabled //to enable access
 public static String serverEcho (String firstName) //static
 {
  return('Hello from the server'+ firstName); 
 }
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h6&gt; component&lt;/h6&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;&amp;lt;aura:component controller="simpleController"&amp;gt; //linking apex
  &amp;lt;aura:attribute name="firstName" 
                             type="string" 
                             default="salesforceKid"/&amp;gt;
&amp;lt;ui:button label ="callServer" press="{!c.echo}"/&amp;gt; //calling js
&amp;lt;/aura:component&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h6&gt;JS controller (client side controller)&lt;/h6&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;//This is not class. It is JSON object with map of name value pair. Having only action handlers.
In function (component, event, and helper—though you can name them differently)
({
 echo : function(cmp, event, helper) { //Action handler as func.
                                       //can have only 3 paramtr 
  var action = cmp.get("c.serverEcho");//linking serverside (ssc) 
                                   controller function serverEcho
        action.setParams({         //Sending parameter to SSC
            firstName : cmp.get("v.firstName")
        })
        action.setCallback(this, function(response){ //callback
            var state = response.getState(); //add to variable
            if(state === "SUCCESS")          //comparing
            {
                alert("This is from server ::"+ response.getReturnValue());      //gets the value returned from 
                                  the server.              
            }
            else if(state === "INCOMPLETE")
            {
                //do something 
            }
            else if(state === "ERROR")
            {
             var error = response.getError();
             if(error)
             {
                 console.log("error"+errors);
             }
            }
        });
          $A.enqueueAction(action);// $A.enqueueAction adds the 
                                 server-side action to the queue.
                                 All actions that are enqueued 
                           will run at the end of the event loop

 }
})
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Important:&lt;/strong&gt;&lt;br&gt;
c. IN component  represent client side Component&lt;br&gt;
c. in JS controller represent server side component (apex)&lt;br&gt;
c: is the default namespace. It represents Aura component code you’ve added to your org.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Lightning Application&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;&amp;lt;aura:application extends="force:slds"&amp;gt; //for SLDS
    &amp;lt;c:serverSide/&amp;gt;
&amp;lt;/aura:application&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;wrapper Class&lt;/strong&gt;: Reduce server call and get data at one call&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;public class wrapperClassController {

 @AuraEnabled 
    public static wrapper method(){
    //Get Required Account And Contact List by SOQL STEP 2
        List&amp;lt;Account&amp;gt; getAccount = [Select Id, Name  FROM Account];
        List&amp;lt;Contact&amp;gt; getContact = [Select Id, Name FROM Contact];    
//Instance before adding a list STEP 3
        wrapper wrp = new wrapper();
        wrp.accList = new List&amp;lt;Account&amp;gt;(getAccount);
        wrp.conList = new List&amp;lt;Contact&amp;gt; (getContact);
        return wrp;
    }

//Main Wrapper Class STEP 1
    public class wrapper{
       @AuraEnabled //Annotation when using for lightning component
          public List&amp;lt;Account&amp;gt; accList;
       @AuraEnabled 
          public List&amp;lt;Contact&amp;gt; conList;
    }   
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Init&lt;/strong&gt;&lt;br&gt;
//doInIt Handler To call the c.doInIt action when screen load&lt;br&gt;
   &lt;br&gt;
//abc is funtion name on CSC.(client side controller)&lt;/p&gt;

&lt;h4&gt;Events in Aura&lt;/h4&gt;

&lt;h6&gt;component composition &lt;/h6&gt;

&lt;p&gt;communicate from parent component to child component, we include child component inside the parent component. &lt;/p&gt;

&lt;h6&gt; Parent To Child&lt;/h6&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--4zrL3KBp--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ohqpoxufaayo37gizejm.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--4zrL3KBp--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ohqpoxufaayo37gizejm.png" alt="image"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;example: parentComponent.cmp&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;&amp;lt;aura:component&amp;gt;
&amp;lt;aura:attribute name="valueToChild" 
                          value="String"&amp;gt;
&amp;lt;h6&amp;gt;This is parent component&amp;lt;/h6&amp;gt;
//Including child component in parent 
&amp;lt;c:childComponent value="{v.valueToChild}"/&amp;gt;
&amp;lt;/aura:component&amp;gt; 
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Parent To Child Component Communication : &lt;br&gt;
In parent to child component communication, we can communicate by passing value from parent to child as explained above example. &lt;br&gt;
But when we want to communicate from Child To Parent we cannot directly pass value inside an attribute. In that case, we use lightning Events ⚡️&lt;/p&gt;

&lt;h6&gt; Event for Child to parent&lt;/h6&gt;

&lt;p&gt;1)Component Event&lt;br&gt;
2) Application Event&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--gRsBCFCV--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/0bd7xbo1plxrkklcnnwf.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--gRsBCFCV--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/0bd7xbo1plxrkklcnnwf.png" alt="image"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1)Component Event&lt;/strong&gt;&lt;br&gt;
Component Event On child--&amp;gt;Register it on Childcmp--&amp;gt;fire Event from Child Js--&amp;gt;use parent JS to handle Event--&amp;gt; pass value to parent cmp to use.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;lightning Tag vs UI tag&lt;/strong&gt;&lt;br&gt;
UI tag was initially introduced&lt;br&gt;
lightning tag has inbuilt SLDS we do not need to put extra effort to improve the look and feel, also it has may awesome tags to handle the Error or bad inputs.  &lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.sfdckid.com//2020/02/component-events-in-salesforce-lightning.html"&gt;Link&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://developer.salesforce.com/blogs/developer-relations/2017/04/lightning-inter-component-communication-patterns.html"&gt;Link&lt;/a&gt;&lt;/p&gt;

</description>
    </item>
    <item>
      <title>VisualForce Basics</title>
      <dc:creator>bhanukarkra</dc:creator>
      <pubDate>Wed, 26 May 2021 13:38:27 +0000</pubDate>
      <link>https://dev.to/bhanukarkra/visualforce-basics-3mk8</link>
      <guid>https://dev.to/bhanukarkra/visualforce-basics-3mk8</guid>
      <description>&lt;p&gt;{! } - Anything inside this format is used to assign values dynamically&lt;/p&gt;

&lt;p&gt;$- Prefix is used to denote global action&lt;/p&gt;

&lt;p&gt;&amp;amp; - character is the formula language operator that concatenates strings.&lt;/p&gt;

&lt;p&gt;$Resource - For static Resource&lt;br&gt;
URLfor() - For combining zipped static resource&lt;/p&gt;

&lt;p&gt;*when the {! contacts } expression is evaluated. On this page, Visualforce translates that expression into a call to your controller’s getContacts() method. &lt;br&gt;
The getContacts() method is called a getter method&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Wrapper Class vs Helper Class vs Controller Class</title>
      <dc:creator>bhanukarkra</dc:creator>
      <pubDate>Wed, 26 May 2021 03:37:43 +0000</pubDate>
      <link>https://dev.to/bhanukarkra/wrapper-class-vs-helper-class-vs-controller-class-abm</link>
      <guid>https://dev.to/bhanukarkra/wrapper-class-vs-helper-class-vs-controller-class-abm</guid>
      <description>&lt;p&gt;&lt;strong&gt;Wrapper Class&lt;/strong&gt;: To wrap the Data types to make a single object which can be assessable easily in other classes.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Controller Class&lt;/strong&gt; Controller class contains public methods called Action methods. Each method has a one-to-one link with a possible user action, ranging from the click of a button to another trigger. The controller class methods process input data, execute application logic and determine view.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;public class WrapNitesh {

//CONTROLLER CLASS

    public list&amp;lt;wrapaccount&amp;gt; wrapaccountList { get; set; }
    public list&amp;lt;account&amp;gt; selectedAccounts{get;set;}    

      public WrapNitesh (){

     //if(wrapaccountList ==null){
          wrapaccountList =new list&amp;lt;wrapaccount&amp;gt;();
          for(account a:[select id,name,billingcity,phone from account limit 10]){
           wrapaccountlist.add(new wrapaccount(a));

           }
        // }
      }

    //### SELECTED ACCOUNT SHOWN BY THIS METHOD
      public void ProcessSelected(){
     selectedAccounts=new list&amp;lt;account&amp;gt;();

      for(wrapaccount wrapobj:wrapaccountlist){
           if(wrapobj.isSelected==true){
           selectedAccounts.add(wrapobj.accn);
           }

         }
      }

  //##THIS IS WRAPPER CLASS
   // account and checkbox taken in wrapper class

   public class wrapaccount{

    public account accn{get;set;}
    public boolean isSelected{get;set;}

       public wrapaccount(account a){

         accn=a;
         isselected=false;
       }
  }
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Helper Class&lt;/strong&gt; helper class is used to assist in providing some functionality, which isn't the main goal of the application or class in which it is used&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;function linesOf($mls) {
    return preg_split('/\s*\n\s*/',trim($mls));
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



</description>
      <category>programming</category>
    </item>
  </channel>
</rss>
