<?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: NRJ</title>
    <description>The latest articles on DEV Community by NRJ (@nrj-21).</description>
    <link>https://dev.to/nrj-21</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%2F1525801%2Fe763501b-b2d4-4f2e-93e0-257c5afa388e.png</url>
      <title>DEV Community: NRJ</title>
      <link>https://dev.to/nrj-21</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/nrj-21"/>
    <language>en</language>
    <item>
      <title>Java String Management: String Pool vs String Heap Explained</title>
      <dc:creator>NRJ</dc:creator>
      <pubDate>Tue, 28 May 2024 19:29:55 +0000</pubDate>
      <link>https://dev.to/nrj-21/java-string-management-string-pool-vs-string-heap-explained-p0a</link>
      <guid>https://dev.to/nrj-21/java-string-management-string-pool-vs-string-heap-explained-p0a</guid>
      <description>&lt;p&gt;In Java, strings are one of the most commonly used data types. To optimize memory usage and improve performance, Java employs a concept known as the String Pool. This blog post will explain the String Pool and String Heap, using a simple code example to illustrate these concepts.&lt;/p&gt;

&lt;h4&gt;
  
  
  Code Example
&lt;/h4&gt;

&lt;p&gt;Let's start with a basic Java program that demonstrates different ways of creating strings and compares them using the &lt;code&gt;==&lt;/code&gt; operator and the &lt;code&gt;.equals()&lt;/code&gt; method.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight java"&gt;&lt;code&gt;&lt;span class="kd"&gt;public&lt;/span&gt; &lt;span class="kd"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;Main&lt;/span&gt; &lt;span class="o"&gt;{&lt;/span&gt;
    &lt;span class="kd"&gt;public&lt;/span&gt; &lt;span class="kd"&gt;static&lt;/span&gt; &lt;span class="kt"&gt;void&lt;/span&gt; &lt;span class="nf"&gt;main&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="nc"&gt;String&lt;/span&gt;&lt;span class="o"&gt;[]&lt;/span&gt; &lt;span class="n"&gt;args&lt;/span&gt;&lt;span class="o"&gt;)&lt;/span&gt; &lt;span class="o"&gt;{&lt;/span&gt;
        &lt;span class="nc"&gt;String&lt;/span&gt; &lt;span class="n"&gt;s1&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s"&gt;"Hello"&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt;
        &lt;span class="nc"&gt;String&lt;/span&gt; &lt;span class="n"&gt;s2&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s"&gt;"Hello"&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt;
        &lt;span class="nc"&gt;String&lt;/span&gt; &lt;span class="n"&gt;s3&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nc"&gt;String&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"Hello"&lt;/span&gt;&lt;span class="o"&gt;);&lt;/span&gt;
        &lt;span class="nc"&gt;String&lt;/span&gt; &lt;span class="n"&gt;s4&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nc"&gt;String&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"Hello"&lt;/span&gt;&lt;span class="o"&gt;);&lt;/span&gt;

        &lt;span class="nc"&gt;System&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;out&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;println&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="n"&gt;s1&lt;/span&gt; &lt;span class="o"&gt;==&lt;/span&gt; &lt;span class="n"&gt;s2&lt;/span&gt;&lt;span class="o"&gt;);&lt;/span&gt; &lt;span class="c1"&gt;// true&lt;/span&gt;
        &lt;span class="nc"&gt;System&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;out&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;println&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="n"&gt;s1&lt;/span&gt; &lt;span class="o"&gt;==&lt;/span&gt; &lt;span class="n"&gt;s3&lt;/span&gt;&lt;span class="o"&gt;);&lt;/span&gt; &lt;span class="c1"&gt;// false&lt;/span&gt;
        &lt;span class="nc"&gt;System&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;out&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;println&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="n"&gt;s3&lt;/span&gt; &lt;span class="o"&gt;==&lt;/span&gt; &lt;span class="n"&gt;s4&lt;/span&gt;&lt;span class="o"&gt;);&lt;/span&gt; &lt;span class="c1"&gt;// false&lt;/span&gt;

        &lt;span class="nc"&gt;System&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;out&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;println&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="n"&gt;s1&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;equals&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="n"&gt;s2&lt;/span&gt;&lt;span class="o"&gt;));&lt;/span&gt; &lt;span class="c1"&gt;// true&lt;/span&gt;
        &lt;span class="nc"&gt;System&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;out&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;println&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="n"&gt;s1&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;equals&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="n"&gt;s3&lt;/span&gt;&lt;span class="o"&gt;));&lt;/span&gt; &lt;span class="c1"&gt;// true&lt;/span&gt;
        &lt;span class="nc"&gt;System&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;out&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;println&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="n"&gt;s3&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;equals&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="n"&gt;s4&lt;/span&gt;&lt;span class="o"&gt;));&lt;/span&gt; &lt;span class="c1"&gt;// true&lt;/span&gt;
    &lt;span class="o"&gt;}&lt;/span&gt;
&lt;span class="o"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h4&gt;
  
  
  String Pool
&lt;/h4&gt;

&lt;p&gt;The String Pool, also known as the interned string pool, is a special memory region where Java stores string literals. When you create a string literal, Java first checks if the string already exists in the pool. If it does, it returns the existing reference; if not, it adds the new string to the pool. This helps save memory by avoiding the creation of multiple instances of the same string.&lt;/p&gt;

&lt;p&gt;In the code above:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;code&gt;String s1 = "Hello";&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;String s2 = "Hello";&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Both &lt;code&gt;s1&lt;/code&gt; and &lt;code&gt;s2&lt;/code&gt; point to the same string in the String Pool. Therefore, &lt;code&gt;s1 == s2&lt;/code&gt; returns &lt;code&gt;true&lt;/code&gt; because both references point to the same object in memory.&lt;/p&gt;

&lt;h4&gt;
  
  
  String Heap
&lt;/h4&gt;

&lt;p&gt;When you create a string using the &lt;code&gt;new&lt;/code&gt; keyword, Java creates a new string object in the heap memory, even if an identical string exists in the String Pool. The heap is a larger memory area where all Java objects, including strings created with &lt;code&gt;new&lt;/code&gt;, are stored.&lt;/p&gt;

&lt;p&gt;In the code above:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;code&gt;String s3 = new String("Hello");&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;String s4 = new String("Hello");&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Here, &lt;code&gt;s3&lt;/code&gt; and &lt;code&gt;s4&lt;/code&gt; are two different objects in the heap, each containing the string "Hello". Therefore, &lt;code&gt;s3 == s4&lt;/code&gt; returns &lt;code&gt;false&lt;/code&gt; because they are distinct objects.&lt;/p&gt;

&lt;h4&gt;
  
  
  Comparing Strings
&lt;/h4&gt;

&lt;p&gt;Java provides two ways to compare strings:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;The &lt;code&gt;==&lt;/code&gt; operator checks if two references point to the same object.&lt;/li&gt;
&lt;li&gt;The &lt;code&gt;.equals()&lt;/code&gt; method checks if two strings have the same value.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;In the code example:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;s1.equals(s2)&lt;/code&gt; returns &lt;code&gt;true&lt;/code&gt; because both strings have the same value "Hello".&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;s1.equals(s3)&lt;/code&gt; returns &lt;code&gt;true&lt;/code&gt; because both strings have the same value, despite being different objects.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;s3.equals(s4)&lt;/code&gt; returns &lt;code&gt;true&lt;/code&gt; for the same reason.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;However, using &lt;code&gt;==&lt;/code&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;s1 == s2&lt;/code&gt; returns &lt;code&gt;true&lt;/code&gt; because both refer to the same object in the String Pool.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;s1 == s3&lt;/code&gt; returns &lt;code&gt;false&lt;/code&gt; because they refer to different objects (one in the pool, one in the heap).&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;s3 == s4&lt;/code&gt; returns &lt;code&gt;false&lt;/code&gt; because they are different objects in the heap.&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  Conclusion
&lt;/h4&gt;

&lt;p&gt;Understanding the String Pool and String Heap is crucial for writing efficient Java code. The String Pool helps save memory and improve performance by reusing immutable string objects, while the String Heap provides space for dynamically created strings. Using the &lt;code&gt;==&lt;/code&gt; operator for reference comparison and the &lt;code&gt;.equals()&lt;/code&gt; method for value comparison allows developers to correctly handle strings based on their specific needs. By leveraging these concepts, you can write more efficient and reliable Java programs.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Dive in Spring framework - Beginner Guide</title>
      <dc:creator>NRJ</dc:creator>
      <pubDate>Sat, 25 May 2024 11:28:50 +0000</pubDate>
      <link>https://dev.to/nrj-21/shallow-dive-in-spring-framework-beginner-guide-20mn</link>
      <guid>https://dev.to/nrj-21/shallow-dive-in-spring-framework-beginner-guide-20mn</guid>
      <description>&lt;p&gt;Many fresher want to get SDE role in big banks like Deutsche Bank, UBS, Barclays, HSBC, etc.. But they don't know is that in every bank main tech stack is Spring. &lt;/p&gt;

&lt;p&gt;So now let's shallow dive in Spring and Spring Boot.&lt;/p&gt;

&lt;p&gt;Pre-requisite - Java basics with OOP's concepts.&lt;/p&gt;

&lt;p&gt;So lets understand using basic example &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Creation of object as a normal Java with &lt;code&gt;new&lt;/code&gt; keyword&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;public class MyClass {
    private String message;

    public MyClass() {
        this.message = "Hello, I'm created using the new keyword!";
    }

    public String getMessage() {
        return message;
    }
}

public class Main {
    public static void main(String[] args) {
        // Creating an instance of MyClass using the 'new' keyword
        MyClass obj = new MyClass();

        // Accessing the message
        System.out.println(obj.getMessage());
    }
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Object Creation using Spring:&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 org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

@Configuration
public class AppConfig {
    @Bean
    public MyClass myClass() {
        return new MyClass();
    }
}

public class Main {
    public static void main(String[] args) {
        // Creating Spring application context
        AnnotationConfigApplicationContext context = new AnnotationConfigApplicationContext(AppConfig.class);

        // Retrieving bean from Spring context
        MyClass obj = context.getBean(MyClass.class);

        // Accessing the message
        System.out.println(obj.getMessage());

        // Closing Spring context
        context.close();
    }
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Let's compare the two approaches:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Using the new Keyword:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;In the first code snippet:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;MyClass obj = new MyClass();
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Here, an instance of MyClass is created directly within the main method using the new keyword. The MyClass constructor is invoked, setting the message field to a specific value. This approach is straightforward and doesn't involve any external dependencies or frameworks.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Using Spring Dependency Injection:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;In the second code snippet:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;AnnotationConfigApplicationContext context = new AnnotationConfigApplicationContext(AppConfig.class);
MyClass obj = context.getBean(MyClass.class);
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Here, the Spring Framework is used to manage the creation and initialization of the &lt;code&gt;MyClass&lt;/code&gt;instance. In the &lt;code&gt;AppConfig&lt;/code&gt;class, a method annotated with &lt;code&gt;@Bean&lt;/code&gt; is defined to indicate that a bean of type MyClass should be created and managed by the Spring container. In the main method, an application context is created based on the configuration defined in &lt;code&gt;AppConfig&lt;/code&gt;, and then the &lt;code&gt;MyClass&lt;/code&gt;bean is retrieved from the context using &lt;code&gt;context.getBean(MyClass.class)&lt;/code&gt;. This approach allows for loose coupling, easier unit testing, and better management of dependencies, especially in large-scale applications.&lt;/p&gt;

</description>
      <category>programming</category>
      <category>java</category>
      <category>spring</category>
    </item>
    <item>
      <title>Data Transfer between 2 PC's in lemon terms</title>
      <dc:creator>NRJ</dc:creator>
      <pubDate>Fri, 24 May 2024 20:24:06 +0000</pubDate>
      <link>https://dev.to/nrj-21/data-transfer-between-2-pcs-in-lemon-terms-55pm</link>
      <guid>https://dev.to/nrj-21/data-transfer-between-2-pcs-in-lemon-terms-55pm</guid>
      <description>&lt;p&gt;If you are sending some file form PC-1 to PC-2 how that files goes ?&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Data Generation:&lt;/strong&gt; Data can be anything from a simple text message to a complex file. When you create or request data on your computer, it needs to be transmitted to another computer.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Packetization:&lt;/strong&gt; Data is broken down into smaller chunks called packets. Each packet contains a piece of the original data along with additional information such as the source and destination addresses.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Routing:&lt;/strong&gt; Once the data is packetized, it needs to find its way to the destination computer. This is where routing comes into play. Routers are devices that forward packets between networks based on their destination addresses.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Transmission:&lt;/strong&gt; The packets are transmitted over a physical medium, such as Ethernet cables, Wi-Fi signals, or fiber-optic cables. Each packet travels independently and can take different routes to reach the destination.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Reassembly:&lt;/strong&gt; When the packets arrive at the destination computer, they are reassembled into the original data. This process involves checking for any missing or corrupted packets and arranging them in the correct order.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Delivery:&lt;/strong&gt; Finally, the reassembled data is delivered to the appropriate application or service on the destination computer, where it can be processed or displayed to the user.&lt;/p&gt;

</description>
      <category>networking</category>
    </item>
    <item>
      <title>BFE- Backend for Front-End</title>
      <dc:creator>NRJ</dc:creator>
      <pubDate>Fri, 24 May 2024 20:09:41 +0000</pubDate>
      <link>https://dev.to/nrj-21/bfe-backend-for-front-end-g5g</link>
      <guid>https://dev.to/nrj-21/bfe-backend-for-front-end-g5g</guid>
      <description>&lt;p&gt;Let's say you are designing some web application, and your main role is develop all Backend API's. As a good backend developer your aim is to write generic API's for any other applications also like Android App, IOS App, etc. etc.. &lt;/p&gt;

&lt;p&gt;Take a example that you are building an E-commerce Web and Mobile Application. And as per the size of screen UI designer made below like pattern - &lt;br&gt;
For Desktop view of specific product - &lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Image of product, price&lt;/li&gt;
&lt;li&gt;Rating in terms of stars &lt;/li&gt;
&lt;li&gt;Reviews&lt;/li&gt;
&lt;li&gt;FAQ's &lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;For Mobile Application view of specific product - &lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Image, price&lt;/li&gt;
&lt;li&gt;Rating&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;FAQ's also there in mobile app but these things are in different tabs and UI/UX Developer made UI according to screen size.&lt;br&gt;
So the main part is that for a different type of screen we are sending different kind of data. &lt;/p&gt;

&lt;p&gt;To Desktop -&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Product1= {
 "Image": "IMG_1",
 "Rating": "5",
 "Reviews": ["R1", "R2"],
 "FAQ": ["Q1A1", "Q2A2"]
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;To Mobile App-&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Product1 = { 
 "Image": "IMG_1", 
 "Rating": "5"
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;So the problem is if you are as a Backend Developer made generic API for Product data and Different Screen Size Device need different data then how these things works ?&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Answer from Noob - &lt;/strong&gt;&lt;br&gt;
As a fresher or beginner backend developer you would say that send all these data and render only those data which is needed at that time from frontend. &lt;/p&gt;

&lt;p&gt;But as a good backend developer this is wrong. It's like user can access Reviews and FAQ's on same page where we don't want to show on that page. Yes, it is not bad for security but I think it's more of &lt;strong&gt;EGO of Backend Developer&lt;/strong&gt; 😅😅. (Joking)&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Actual Answer - &lt;/strong&gt;&lt;br&gt;
As I said it is not good practice for backend developer to send all data and use only required data, if developer do that then anyone can go to inspect and call that object and view all JSON of that data. (Still EGO of developer reason is at top).&lt;/p&gt;

&lt;p&gt;To send data according to device type - &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Noob Advice:&lt;/strong&gt; Check device properties every time before sending data - &lt;br&gt;
&lt;strong&gt;Cons of it-&lt;/strong&gt; It will fucked up in between our Business Logic&lt;br&gt;
Then &lt;strong&gt;BFE- Backend for Front-End came in picture&lt;/strong&gt; to help these kind of scenarios. &lt;/p&gt;

&lt;p&gt;BFE is basically a additional layer we add, whenever any request goes, it will first come to BFE in which BFE identifies that Device type/ Screen Size/ Desktop/ Mobile/ Tab and send request to our generalized Backend, and Backend will send our generalized request to BFE and according to Device type BFE modifies data (BFE make new object of required entities and render that object instead of Generalized response).&lt;/p&gt;

</description>
      <category>backenddevelopment</category>
      <category>systemdesign</category>
      <category>architecture</category>
    </item>
  </channel>
</rss>
