<?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: Nidhi Agrawal</title>
    <description>The latest articles on DEV Community by Nidhi Agrawal (@nidhiagrawal06).</description>
    <link>https://dev.to/nidhiagrawal06</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%2F377685%2F75b47146-5f8a-46e7-8016-53be262298f2.jpg</url>
      <title>DEV Community: Nidhi Agrawal</title>
      <link>https://dev.to/nidhiagrawal06</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/nidhiagrawal06"/>
    <language>en</language>
    <item>
      <title>Hexagonal Architecture: The Port &amp; Adapter Architecture</title>
      <dc:creator>Nidhi Agrawal</dc:creator>
      <pubDate>Wed, 01 Jun 2022 18:13:53 +0000</pubDate>
      <link>https://dev.to/nidhiagrawal06/hexagonal-architecture-the-port-adapter-architecture-30ep</link>
      <guid>https://dev.to/nidhiagrawal06/hexagonal-architecture-the-port-adapter-architecture-30ep</guid>
      <description>&lt;p&gt;Architecture is one of the building blocks of any system and choosing it correctly in initial stage will help you in future maintenance and scalability. Most of us have heard about MVC architecture and its vast usage due to ease in development but in the era of evolving technology we need an architecture which can support this dynamic changes. &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What is hexagonal architecture and why to adopt it?&lt;/strong&gt;&lt;br&gt;
In Conventional methodology, we have a Web layer, which receives requests and routes them to a service in the Domain or business layer. The service does some business logic and calls components from the Persistence layer to query for or modify the current state of our domain entities.&lt;/p&gt;

&lt;p&gt;You know what? Layers are a solid architecture pattern. If we get them right, we can build domain logic that is independent of the web and persistence layers. We can switch the Web or Persistence technologies without affecting our Domain logic if we feel like it. We can add new features without affecting existing features. With a good, layered architecture, we're keeping our options open and can quickly adapt to changing requirements and external factors. &lt;/p&gt;

&lt;p&gt;With Hexagonal architecture you will have enough leverage and hold on your business logic. Its beauty is to put input and outputs at the boundaries of application so in future even if you decide to use another way of getting input or sending back output through new format you won’t need to change your main functionalities.&lt;/p&gt;

&lt;p&gt;The centralize idea behind this architecture is business logic should not be dependent on source or format of data it is coming from it can be anything CSV, XML, JSON, Database or REST and it should not be dependent on how we are giving back data through REST or GraphQL API&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What is Port and Adapter?&lt;/strong&gt;&lt;br&gt;
In simple terms port is the way of communication like how your desktops, and laptops have a USB port through which you can connect any device provided they have USB adapters. Similar like that to hexagonal architecture there are ports basically interfaces and their implementation (adapters) which gives you enough control that you can plug in and plug out adapters according to your requirements.&lt;br&gt;
Ports and adapters play a crucial role in abstraction layer creation, this layer keep the core domain of the application isolated from outside tools and technologies being used&lt;/p&gt;

&lt;p&gt;This architecture is capable of multiple ports and adapter and hence the name of architecture is hexagonal which gives illusion for multiple port/adaptor combination.&lt;br&gt;
There might be a web adapter that interacts with a web browser, some adapters interacting with external systems, and an adapter that interacts with a database.&lt;/p&gt;

&lt;p&gt;The adapters on the left-hand side are adapters that drive our application (because they call our application core) while the adapters on the right-hand side are driven by our application (because they are called by our application core).&lt;/p&gt;

&lt;p&gt;To allow communication between the application core and the adapters, the application core provides specific ports. For driving adapters, port is used this port is interface that is implemented by one of the use cases classes in the core and called by the adapter. For a driven adapter, it might be an interface that is implemented by the adapter and called by the core.&lt;/p&gt;

&lt;p&gt;Hexagonal architecture falls under layer architecture as we can organize it in layers. The outermost layer consists of adapter which communicate with outers tools/systems, further we the ports and it’s use cases can be combine as a application layer and lastly the domain layer containing entities. The main rule in such an architecture is the dependency rule, which states that all dependencies between those layers must point inward.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Conclusion&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The best choice for architecture of your application depends on your requirement of what kind of application you are going to build, its future cases and many more factors. Hexagonal architecture is not the only smart set for application, it involves some level of complexity, When properly implemented and paired with other methodologies, like Domain-Driven Design, Ports and Adapters can ensure an application’s long term stability and extensibility, bringing a great deal of value to the system and the enterprise.&lt;/p&gt;

&lt;p&gt;Thanks for reading!&lt;/p&gt;

</description>
      <category>microservices</category>
      <category>cleanarchitecture</category>
    </item>
    <item>
      <title>Machine Learning: Not just a buzzword anymore..</title>
      <dc:creator>Nidhi Agrawal</dc:creator>
      <pubDate>Fri, 01 May 2020 19:50:24 +0000</pubDate>
      <link>https://dev.to/nidhiagrawal06/machine-learning-not-just-a-buzzword-anymore-3pa1</link>
      <guid>https://dev.to/nidhiagrawal06/machine-learning-not-just-a-buzzword-anymore-3pa1</guid>
      <description>&lt;p&gt;If you have been following the latest trends in technology, you have probably noticed that Machine Learning (ML) is not just a buzzword anymore but is responsible for the most important breakthroughs in Artificial Intelligence (AI). ML will come to change the way you work, earn a livelihood, purchase and consume goods and services. Knowing this today opens up great opportunities for those who move quickly and decisively to anticipate and benefit from this AI-led revolution tomorrow. There are lots of examples to validate the claims (from image classification to text generation to language translation), but this article is about a quick overview of ML for people that either start from zero or those that are after a concise summary.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;ML -- What is it?&lt;/em&gt;&lt;br&gt;
ML enables computers to find patterns in data and then use those patterns to make decisions rather than being explicitly programmed to carry out a certain task. In simple words You're trying to make a computer smart enough to learn from the data it's fed so that after a point of time the computer is able to predict further data.&lt;br&gt;
The workflow is pretty simple:&lt;br&gt;
•You have data which contains patterns.&lt;br&gt;
•You supply it to a ML algorithm which finds the patterns and generates a model.&lt;br&gt;
•The model recognizes these patterns when presented with new data.&lt;br&gt;
Every day examples include:&lt;br&gt;
Medical diagnosis, Customer’s ability to pay back a loan, Market analysis / Stock trading, Customer segmentation, Spam emails.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Need of ML?&lt;/em&gt;&lt;br&gt;
Using Machine Learning, its possible to handle previously unseen scenarios. Once a Machine Learning model with good generalization  capabilities is learned, it can handle them and take decisions accordingly. Note that in a traditional program, you need to tell what decisions need to be taken if a particular scenario occurs. Now imagine a billion scenarios are present, you clearly cannot write a code which can handle all these new scenarios. Hence the need for machine learning. &lt;/p&gt;

&lt;p&gt;Who is a &lt;em&gt;Data Scientist&lt;/em&gt;?&lt;br&gt;
Data Scientist is ‘the amazing job of the 21st century’. Fast forward to 2019, a Data Scientist is someone with multidisciplinary skills ranging from mathematics, statistics, machine learning, computer science, programming and a business domain expertise.&lt;/p&gt;

&lt;p&gt;||ML Pipeline||&lt;br&gt;
Data scientists define a pipeline for data as it flows through their ML solution. Each step of the pipeline is fed data processed from its preceding step. The term ‘pipeline’ is slightly misleading as it implies a one-way flow of data; instead the ML pipelines are cyclical and iterative as every step is repeated to finally achieve a successful algorithm.&lt;br&gt;
The key stages are described below:&lt;br&gt;
1.Problem Definition: Define the business problem you require an answer for.&lt;br&gt;
2.Data Ingestion: Identify and gather the data you want to work with.&lt;br&gt;
3.Data Preparation: Since the data is raw and unstructured, it is rarely in the correct form to be processed. It usually involves filling missing values or removing duplicate records or normalizing and correcting other flaws in data, like different representations of the same values in a column for instance. This is where the feature extraction, construction and selection takes place too.&lt;br&gt;
4.Data Segregation: Split subsets of data to train the model, test it and further validate how it performs against new data.&lt;br&gt;
5.Model Training: Use the training subset of data to let the ML algorithm recognize the patterns in it.&lt;br&gt;
6.Candidate Model Evaluation: Assess the performance of the model using test and validation subsets of data to understand how accurate the prediction is. This is an iterative process and various algorithms might be tested until you have a Model that sufficiently answers your question.&lt;br&gt;
7.Model Deployment: Once the chosen model is produced, it is typically exposed via some kind of API and embedded in decision-making frameworks as a part of an analytics solution.&lt;br&gt;
8.Performance Monitoring: The model is continuously monitored to observe how it behaved in the real world and calibrated accordingly. New data is collected to incrementally improve it.&lt;/p&gt;

&lt;p&gt;||Training Algorithms||&lt;br&gt;
ML algorithms are divided into two broader categories&lt;/p&gt;

&lt;p&gt;Supervised Learning (SL): The value you want to predict is in the training data, so the algorithm can predict future outputs in a reasonable manner. Here Data is labelled&lt;/p&gt;

&lt;p&gt;Unsupervised Learning (UL):The value you want to predict is not in the training data, so the algorithm finds hidden patterns (according to similarities or differences) or intrinsic values. Here Data is unlabeled&lt;br&gt;
The main subcategories are:&lt;/p&gt;

&lt;p&gt;Classification (Supervised Learning — Classification)&lt;br&gt;
A subcategory of Supervised Learning, Classification is the process of predicting categorical/discrete responses i.e. the input data is classified into categories. Another application is anomaly detection i.e. the identification of outliers/unusual objects that do not appear in a normal distribution.&lt;/p&gt;

&lt;p&gt;Regression(Supervised Learning — Regression)&lt;br&gt;
Another subcategory of SL, Regression is the process of predicting continuous responses (i.e. numeric values) which normally answer questions like ‘How many’/ ‘How much’.&lt;/p&gt;

&lt;p&gt;Clustering(Unsupervised Learning — Clustering)&lt;br&gt;
A subcategory of UL, Clustering is the process used for exploratory data analysis to find hidden patterns or groupings/partitions of data.&lt;/p&gt;

&lt;p&gt;Machine Learning is an exciting subject, it is art and it is science! In this article I have just explored the basics — my aim was to make Machine Learning &lt;em&gt;‘as simple as possible, but not one bit simpler’&lt;/em&gt; — as Einstein used to say!&lt;/p&gt;

&lt;p&gt;Thanks for reading!&lt;br&gt;
Nidhi Ghanshyam Agrawal.&lt;/p&gt;

</description>
      <category>machinelearning</category>
      <category>ai</category>
      <category>datascience</category>
      <category>supervisedlearning</category>
    </item>
  </channel>
</rss>
