Git Product home page Git Product logo

low-level-design-primer-1's Introduction

The Low-level Design Primer

Low-level design (LLD) is a componenet-level design process and is frequently used while designing data structures, and algorithms. It is also known as Object-Oriented Design (OOD), micro-level/detailed design. In general, a low-level design consists of class diagrams, program specifications and other low-level details for a given software componenet. During the LLD phase, the actual software components are designed by defining the logical and functional segments whereas design of application structure is developed during the high=level design phase. Low-level design is often created based on the high-level design.

Motivation

Learn how to design a given system in an object-oriented approach.

Prep for the low-level design interview.

Low-level design interview questions with solutions

Common low-level design interview questions with sample discussions, code, and diagrams.

Solutions linked to content in the solutions/ folder.

Question
Design a Parking Lot Solution
Design Poker Game - Under Development Solution
Design an Online Shopping Platform Contribute
Design a Movie Ticket Booking System Contribute
Design Facebook Contribute
Design a Car Rental System Contribute
Design an Online Stock Brokerage System Contribute
Design Blackjack Contribute
Design an Airline Management System Contribute
Design an ATM Contribute
Design a Hotel Management System Contribute
Add a system design question Contribute

Contributing

Learn from the community.

Feel free to submit pull requests to help:

  • Fix errors
  • Improve sections
  • Add new sections

Index of low-level design topics

Low-level design topics: start here

New to low-level design?

First, you'll need a basic understanding of OOPS concepts, learning about what they are, how they are used, and their pros and cons.

Step 1: Object Oriented Basics

Step 2: Object Oriented Analysis and Design

Step 3: UML and Diagrams

  • Topics covered:
    • Use Case Diagrams
    • Class Diagram
    • Sequence Diagram
    • Activity Diagrams

Programming Logic

In this topic, we will concentrate on the brains of the problem solution. While design components are important, logic is what determines how a software works. The logic often composed of various algorithms and data strucutres. Also, data structures and algorithms play a major role in the hiring process as well. In this section, the idea is to go over some of the popular algorithms and data structures that are crucial for any aspiring software engineer. We can start off the discussion by discussing some of the basics concepts like Time and Space complexity which can be used to analyse the performance of the algorithms.

Basics

Algorithms

Data Structures

  • Basic Data Structures

    • Sets
    • Stacks
    • Queues
    • Arrays
    • LinkedLists
    • HashMaps
    • Heaps
  • Advanced Data Structures

    • Trees
    • Binary Search Trees
    • m-Array Trees
    • B-Trees
    • Binomial Heaps
    • Fibonacci Heaps
    • Red-Black Trees
    • Graphs

Design Patterns

Note: This section is under development

Under development

Interested in adding a new section or helping complete one in-progress? Feel free to Contribute!

Additional Resources

Inspiration

Inspired from System Design Primer

low-level-design-primer-1's People

Contributors

bharatsesham avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.