30 November 2023

#GIT

#GIT

Key Concepts


S.No Topic Sub-Topics
1 Introduction to Git What is Git, Centralized vs Distributed VCS, Why Git, Git History, Git Workflow
2 Installing & Configuring Git Install Git, Git config, Username & email config, Basic commands, Git help
3 Understanding Git Architecture Working directory, Staging area, Local repository, Remote repository, Commit structure
4 Basic Git Commands git init, git add, git commit, git status, git log
5 Commit Concepts Commit message style, Atomic commits, Commit history, Amending commit, Signed commits
6 Branches git branch, create branch, delete branch, list branches, checkout branch
7 Branching Strategy Feature branch, Bugfix branch, Release branch, Trunk-based, Git Flow
8 Merging git merge, Fast-forward merge, No-ff merge, Merge conflict, Merge strategy
9 Resolving Conflicts Conflict detection, Conflict resolution, Conflict tools, Abort merge, Manual merge
10 Rebase git rebase, Rebase vs merge, Interactive rebase, Rebase conflicts, Rewriting history
11 Remote Repositories git remote, Adding remote, Fetch vs pull, Push to remote, Remote tracking branches
12 Cloning Projects git clone, Clone depth, Clone with branch, Clone over SSH, Clone fork
13 Stashing Changes git stash, Apply stash, Drop stash, Stash pop, Stash list
14 Git Reset & Restore git reset soft, git reset hard, Reset vs revert, git restore, Undo local changes
15 Tags & Releases git tag, Annotated tags, Lightweight tag, Tag release, Tag push
16 Git Logs & History git log formats, Search history, Graph view, git blame, git reflog
17 Patching & Cherry Picking git cherry-pick, git diff patch, Apply patch, Create patch, Use cases
18 Working with Forks Fork concept, Clone fork, Upstream remote, Sync fork, PR from fork
19 Git Pull Requests What is PR, Code reviews, Approvals, Inline comments, Merge strategy
20 Git Ignore .gitignore basics, Patterns, Global gitignore, Ignore rules, Best practices
21 Submodules git submodule add, update submodule, remove submodule, Version sync, Best practices
22 Advanced Git Commands git bisect, git grep, git clean, git describe, git archive
23 Performance Optimization Shallow clone, Sparse checkout, Large files handling, Git GC, Repo cleanup
24 Git Security SSH keys, Token auth, Signing commits, Sensitive data removal, History rewrite
25 Git for Teams Branch protection, Code reviews, Squash merging, Commit guidelines, Team workflow
26 CI/CD Integration GitHub Actions, GitLab CI, Jenkins pipeline, Trigger builds, Automated tests
27 Git & DevOps Release automation, GitOps concept, Git for IaC, Deployment pipelines, Rollback
28 Git & Containers Docker repos, Versioned images, Docker build CI, Image tag strategy, Git for Helm
29 Real World Projects Team branching, PR templates, Semantic commits, Release workflow, Issue linking
30 Resources & Certification Official documentation, Git tutorials, Advanced Git book, Courses, Practice labs

Interview question

Basic

  1. What is Git?
  2. What is the difference between Git and GitHub?
  3. What is a repository in Git?
  4. What is a distributed version control system?
  5. What is the Git working directory?
  6. What is the staging area (index)?
  7. What is a commit?
  8. What does git init do?
  9. What is git clone?
  10. What does git status show?
  11. What is the purpose of git add?
  12. What is git commit?
  13. Difference between git pull and git fetch?
  14. What is .gitignore?
  15. What is HEAD in Git?
  16. What is the default branch in Git?
  17. What does git log do?
  18. What is git diff?
  19. How do you check the Git version?
  20. What is a remote repository?
  21. What does git push do?
  22. What does git pull do?
  23. What is git rm?
  24. What is git mv?
  25. How do you configure username and email in Git?

Intermediate

  1. What is branching in Git?
  2. Why are Git branches lightweight?
  3. What does git branch do?
  4. What is git checkout?
  5. What is git switch?
  6. Difference between merge and rebase?
  7. What is a fast-forward merge?
  8. What is a merge conflict?
  9. How do you resolve merge conflicts?
  10. What is git stash?
  11. Difference between git stash pop and git stash apply?
  12. What is git reset?
  13. Difference between soft, mixed, and hard reset?
  14. What is git revert?
  15. Difference between revert and reset?
  16. What is git cherry-pick?
  17. What is tagging in Git?
  18. Difference between lightweight and annotated tags?
  19. What does git show do?
  20. What is git blame?
  21. What is git reflog?
  22. How do you rename a Git branch?
  23. How do you delete a branch locally and remotely?
  24. What is git clean?
  25. What is detached HEAD state?

Advanced

  1. Explain Git internal architecture.
  2. What are Git objects?
  3. Difference between blob, tree, commit, and tag objects?
  4. What is SHA-1 in Git?
  5. What is interactive rebase?
  6. Explain git rebase -i.
  7. What is squashing commits?
  8. What is git bisect?
  9. How does Git detect file renames?
  10. What is git submodule?
  11. Difference between submodule and subtree?
  12. What is a shallow clone?
  13. What does git fetch --prune do?
  14. What is git worktree?
  15. What is patch mode in Git?
  16. Difference between git apply and git am?
  17. What is git archive?
  18. What is git fsck?
  19. How do you recover a deleted commit?
  20. What is a commit graph?
  21. What is a bare repository?
  22. How does Git compression work?
  23. What are Git hooks?
  24. Types of Git hooks?
  25. What is a pre-commit hook?

Expert

  1. Explain Git pack files.
  2. How does Git optimize storage?
  3. Explain three-way merge in detail.
  4. How does Git detect file changes internally?
  5. What happens internally during git commit?
  6. What happens internally during git clone?
  7. How does Git handle large binary files?
  8. What is Git LFS?
  9. Monorepo vs multirepo ? comparison.
  10. How do you enforce commit message standards?
  11. How do you secure Git repositories?
  12. Explain Git branching strategies.
  13. What is GitFlow?
  14. What is Trunk-Based Development?
  15. How does Git integrate with CI/CD pipelines?
  16. How do you handle hotfixes in Git?
  17. What is fork-based workflow?
  18. How do you reduce merge conflicts in large teams?
  19. Git vs Mercurial ? key differences.
  20. Common Git performance issues?
  21. How do you audit Git history?
  22. How do you remove sensitive data from Git history?
  23. Explain git filter-branch.
  24. Explain git filter-repo.
  25. Design a Git workflow for a large enterprise project.

Related Topics


20 November 2023

#Spring_Framework


Key Concepts


Day Topic Topic & Sub Topic
1 Spring Fundamentals IoC, DI, Spring Container, BeanFactory, ApplicationContext, POJO
2 Dependency Injection Constructor Injection, Setter Injection, Field Injection, @Autowired , @Qualifier , @Primary
3 Spring Beans Bean Lifecycle, Scopes, Singleton, Prototype, Request, Session, Custom Scopes
4 Configuration Java Configuration, @Configuration , @Bean , Component Scanning, Profiles, Properties
5 Advanced IoC BeanPostProcessor, FactoryBean, ApplicationContext Events, Environment, Property Sources
6 AOP Fundamentals Aspect-Oriented Programming, Join Points, Pointcuts, Advice, Proxies
7 Advanced AOP @Aspect , Around Advice, Transaction Interceptors, Security Interceptors, Custom Aspects
8 Spring MVC DispatcherServlet, Controllers, Request Mapping, Model, View Resolution, REST Architecture
9 REST APIs @RestController , Request/Response Mapping, DTOs, Validation, Exception Handling
10 Web Application Design Filters, Interceptors, CORS, Content Negotiation, HTTP Message Converters
11 Spring Validation Bean Validation, Custom Validators, Validation Groups, Error Responses
12 Data Access JDBC Template, DAO Pattern, Transactions, Connection Management, Exception Translation
13 Spring Transactions @Transactional , Propagation, Isolation, Rollback, Read-Only Transactions, Transaction Boundaries
14 Spring Data Repository Pattern, Spring Data JPA, Query Methods, Specifications, Pagination, Auditing
15 Spring Security Fundamentals Security Filter Chain, Authentication, Authorization, SecurityContext, Password Encoding
16 Advanced Security OAuth2, JWT, Resource Server, Method Security, RBAC, Security Architecture
17 Spring Integration Events, Application Events, Messaging, Integration Patterns, Async Processing
18 Reactive Spring Project Reactor, Mono, Flux, Reactive Streams, Backpressure, WebFlux
19 Async & Scheduling @Async , Executor, CompletableFuture, Scheduling, Thread Pools, Virtual Threads
20 Spring Testing Unit Testing, Integration Testing, MockMvc, TestContext, Mockito, Testcontainers
21 Production Architecture Layered Architecture, Hexagonal Architecture, Clean Architecture, SOLID, Design Patterns
22 Spring Performance Caching, Connection Pooling, Lazy Loading, Async Processing, Profiling, JVM Optimization
23 Spring Observability Logging, Metrics, Tracing, Micrometer, Actuator, Distributed Tracing, Correlation IDs
24 Spring + AI Fundamentals Spring AI Architecture, Chat Models, Prompt Templates, Structured Output, AI Client
25 Spring AI + LLM OpenAI/Azure OpenAI, Ollama, Chat Memory, Streaming, Function Calling, Tool Calling
26 Spring AI + RAG Document Loaders, Chunking, Embeddings, Vector Stores, Retrieval, RAG Pipeline
27 Agentic AI with Spring AI Agents, Tool Use, Agent State, Memory, Planning, Reflection, Agent Workflows
28 Spring + MCP Model Context Protocol, MCP Client, MCP Server, Tools, Resources, Prompts, Secure Tool Access
29 Enterprise Agentic Architecture Spring Boot + Spring AI + MCP + RAG + Kafka + PostgreSQL + Vector DB + Security
30 Expert Capstone Build Production Agentic AI System with Spring Boot, RAG, MCP, Tools, Memory, Security, Observability

Interview question

What is the Spring Framework?
What are the main features of Spring Framework?
What are the core modules of Spring Framework?
What is Inversion of Control (IoC) in Spring?
What is Dependency Injection (DI)?
What are the types of Dependency Injection in Spring?
What is a Spring IoC container?
What is BeanFactory?
What is ApplicationContext?
What is the difference between BeanFactory and ApplicationContext?
What is a Spring bean?
What is bean lifecycle in Spring?
What is bean scope in Spring?
What are the different bean scopes in Spring?
What is singleton scope?
What is prototype scope?
What is request scope?
What is session scope?
What is application scope?
What is WebSocket scope?
What is component scanning?
What is @Component?
What is @Service?
What is @Repository?
What is @Controller?
What is @RestController?
What is @Configuration?
What is @Bean?
What is @ComponentScan?
What is @Autowired?
What is @Qualifier?
What is @Primary?
What is @Value?
What is @PropertySource?
What is @Profile?
What is @Scope?
What is @Lazy?
What is @DependsOn?
What is @Import?
What is @ImportResource?
What is @Lookup?
What is constructor injection?
What is setter injection?
What is field injection?
What is circular dependency?
What is lazy initialization?
What is eager initialization?
What is dependency resolution in Spring?
What is autowiring?
What are Spring configuration classes?
What is Java-based configuration?
What is XML-based configuration?
What is annotation-based configuration?
What is XML bean configuration?
What is ApplicationContextAware?
What is BeanNameAware?
What is BeanFactoryAware?
What is EnvironmentAware?
What is ResourceLoaderAware?
What is MessageSourceAware?
What is ApplicationEventPublisherAware?
What is InitializingBean?
What is DisposableBean?
What is BeanPostProcessor?
What is BeanFactoryPostProcessor?
What is FactoryBean?
What is DefaultListableBeanFactory?
What is AbstractApplicationContext?
What is ApplicationEvent?
What is ApplicationEventPublisher?
What is @EventListener?
What is Spring event handling?
What is Spring Resource abstraction?
What is ResourceLoader?
What is Environment abstraction?
What is PropertyResolver?
What is Spring Expression Language (SpEL)?
What is @ConfigurationProperties?
What is Spring's validation support?
What is Spring AOP?
What is Aspect-Oriented Programming?
What is an aspect?
What is a join point?
What is a pointcut?
What is advice?
What is a target object?
What is a proxy in Spring AOP?
What is JDK dynamic proxy?
What is CGLIB proxy?
What is @Aspect?
What is @Before?
What is @After?
What is @AfterReturning?
What is @AfterThrowing?
What is @Around?
What is @Pointcut?
What is proxy-based AOP?
What is Spring JDBC?
What is JdbcTemplate?
What is NamedParameterJdbcTemplate?
What is RowMapper?
What is ResultSetExtractor?
What is Spring transaction management?
What is @Transactional?
What is PlatformTransactionManager?
What is TransactionDefinition?
What is TransactionStatus?
What is transaction propagation?
What is transaction isolation?
What is declarative transaction management?
What is programmatic transaction management?
Why was the Spring Framework created?
Why is Spring widely used in Java applications?
Why is IoC important in Spring?
Why does Spring use Dependency Injection?
Why is constructor injection preferred?
Why should field injection generally be avoided?
Why is ApplicationContext commonly used instead of BeanFactory?
Why are Spring beans managed by the container?
Why does Spring use singleton scope by default?
Why would you use prototype scope?
Why is component scanning useful?
Why use @Service instead of @Component?
Why use @Repository?
Why use @Configuration?
Why use @Bean?
Why use @Qualifier?
Why use @Primary?
Why use @Profile?
Why use @Lazy?
Why does Spring support multiple configuration approaches?
Why does Spring use proxies for AOP?
Why is AOP useful in enterprise applications?
Why use Spring transaction management?
Why use @Transactional?
Why are transactions important for database operations?
Why use JdbcTemplate instead of plain JDBC?
Why use NamedParameterJdbcTemplate?
Why does Spring translate database exceptions?
Why use Spring events?
Why use ApplicationContext events?
Why use SpEL?
Why use Spring Resource abstraction?
Why use Spring Environment abstraction?
Why use externalized configuration?
Why use BeanPostProcessor?
Why use BeanFactoryPostProcessor?
Why use FactoryBean?
Why does Spring support lazy initialization?
Why can circular dependencies be problematic?
Why is bean lifecycle management important?
Why does Spring support custom scopes?
Why use @Import?
Why use @ImportResource?
Why use @Value?
Why use @ConfigurationProperties?
Why use profiles in Spring applications?
Why is loose coupling important in Spring?
Why does Spring promote POJO-based development?
Why is Spring suitable for enterprise applications?
Why is Spring extensible?
Why does Spring support multiple persistence technologies?
Why does Spring provide abstraction layers?
Why is Spring commonly used as the foundation for Spring Boot?
When should you use Spring Framework?
When should you use Dependency Injection?
When should you use constructor injection?
When should you use setter injection?
When should you use @Autowired?
When should you use @Qualifier?
When should you use @Primary?
When should you use @Component?
When should you use @Service?
When should you use @Repository?
When should you use @Configuration?
When should you use @Bean?
When should you use @ComponentScan?
When should you use @Import?
When should you use @Profile?
When should you use @Lazy?
When should you use prototype scope?
When should you use request scope?
When should you use session scope?
When should you use ApplicationContext?
When should you use BeanFactory?
When should you use ApplicationEvent?
When should you use @EventListener?
When should you use Spring AOP?
When should you use @Around advice?
When should you use @Before advice?
When should you use @AfterReturning?
When should you use @AfterThrowing?
When should you use @Transactional?
When should you use programmatic transactions?
When should you use JdbcTemplate?
When should you use NamedParameterJdbcTemplate?
When should you use RowMapper?
When should you use ResultSetExtractor?
When should you use SpEL?
When should you use @Value?
When should you use @ConfigurationProperties?
When should you use externalized configuration?
When should you use BeanPostProcessor?
When should you use BeanFactoryPostProcessor?
When should you use FactoryBean?
When should you use ApplicationContextAware?
When should you use a custom bean scope?
When should you use lazy bean initialization?
When should you use eager initialization?
When should you use Java-based configuration?
When should you use XML-based configuration?
When should you use annotation-based configuration?
When should you use Spring JDBC instead of plain JDBC?
When should you use Spring transaction management?
Which Spring module provides IoC functionality?
Which Spring module provides AOP functionality?
Which Spring module provides JDBC support?
Which Spring module provides transaction management?
Which Spring module provides MVC functionality?
Which Spring module provides WebFlux?
Which dependency injection type is preferred?
Which bean scope is the default?
Which annotation defines a Spring-managed component?
Which annotation is used for service-layer components?
Which annotation is used for repository-layer components?
Which annotation is used for controller components?
Which annotation is used for REST controllers?
Which annotation defines a configuration class?
Which annotation defines a bean method?
Which annotation enables component scanning?
Which annotation resolves multiple bean candidates?
Which annotation marks the preferred bean?
Which annotation injects configuration properties?
Which annotation activates a Spring profile?
Which annotation enables lazy initialization?
Which annotation controls bean scope?
Which interface allows access to the ApplicationContext?
Which interface provides bean lifecycle initialization callbacks?
Which interface provides bean destruction callbacks?
Which interface can modify beans before initialization?
Which interface can modify bean definitions before creation?
Which interface is used to create custom factory beans?
Which class is the common implementation of ApplicationContext?
Which class is commonly used for annotation-based context loading?
Which class is commonly used for XML-based context loading?
Which annotation is used for event listeners?
Which class represents a Spring application event?
Which interface publishes application events?
Which class is used for JDBC operations?
Which class supports named JDBC parameters?
Which interface maps JDBC rows to Java objects?
Which interface extracts complex JDBC result sets?
Which annotation enables declarative transactions?
Which interface manages Spring transactions?
Which abstraction defines transaction properties?
Which abstraction represents transaction status?
Which annotation defines an aspect?
Which annotation defines a pointcut?
Which annotation executes advice before a method?
Which annotation executes advice after a method?
Which annotation executes advice around a method?
Which proxy mechanism is used when a target implements an interface?
Which proxy mechanism can proxy classes without interfaces?
Which abstraction handles application properties?
Which abstraction resolves environment properties?
Which Spring feature provides expression evaluation?
Which annotation binds grouped configuration properties?
How does Spring IoC work?
How does Dependency Injection work in Spring?
How does constructor injection work?
How does setter injection work?
How does field injection work?
How does Spring resolve dependencies?
How does autowiring work?
How does @Qualifier work?
How does @Primary work?
How does component scanning work?
How does Spring create a bean?
How does the Spring bean lifecycle work?
How does singleton bean scope work?
How does prototype bean scope work?
How does lazy initialization work?
How does eager initialization work?
How does @Configuration work internally?
How does @Bean work?
How does @ComponentScan discover classes?
How does @Import work?
How does @Profile work?
How does @Value resolve properties?
How does @ConfigurationProperties bind values?
How does Spring resolve environment properties?
How does SpEL work?
How does BeanPostProcessor work?
How does BeanFactoryPostProcessor work?
How does FactoryBean work?
How does ApplicationContext work internally?
How does Spring publish application events?
How does @EventListener work?
How does Spring AOP work?
How does a Spring AOP proxy work?
How does JDK dynamic proxy work?
How does CGLIB proxy work?
How does @Around advice work?
How does pointcut matching work?
How does Spring JDBC work?
How does JdbcTemplate execute queries?
How does RowMapper work?
How does Spring transaction management work?
How does @Transactional work internally?
How does transaction propagation work?
How does transaction isolation work?
How does Spring handle transaction rollback?
How does Spring translate database exceptions?
How does Spring handle circular dependencies?
How does Spring resolve multiple implementations of an interface?
How does Spring manage bean destruction?
How does Spring integrate with external resources?
How do you create a custom Spring bean?
How do you configure Spring without XML?
How do you define multiple beans of the same type?
How do you inject a specific implementation?
How do you configure different environments?
How do you implement custom initialization logic?
How do you implement custom destruction logic?
How do you create a custom annotation-based aspect?
How do you implement transaction management?
How do you troubleshoot a missing Spring bean?
Where is Spring Framework used?
Where is IoC used in a Spring application?
Where is Dependency Injection used?
Where should constructor injection be used?
Where should @Service be used?
Where should @Repository be used?
Where should @Controller be used?
Where should @RestController be used?
Where should @Configuration be used?
Where should @Bean be used?
Where should @Component be used?
Where should @Qualifier be used?
Where should @Primary be used?
Where should @Profile be used?
Where should @Lazy be used?
Where should prototype scope be used?
Where should request scope be used?
Where should session scope be used?
Where should component scanning be configured?
Where should application properties be stored?
Where should environment-specific configuration be stored?
Where should SpEL expressions be used?
Where should Spring AOP be applied?
Where should logging aspects be applied?
Where should security aspects be applied?
Where should transaction boundaries be defined?
Where should @Transactional typically be placed?
Where should JdbcTemplate be used?
Where should database exception translation occur?
Where should application events be published?
Where should @EventListener methods be defined?
Where should BeanPostProcessor be used?
Where should BeanFactoryPostProcessor be used?
Where should custom bean initialization be implemented?
Where should custom bean destruction be implemented?
Where should FactoryBean be used?
Where should external resources be configured?
Where should configuration validation be performed?
Where should service-layer transactions be managed?
Where should DAO logic be placed?
Where should business logic be placed?
Where should cross-cutting concerns be implemented?
Where should reusable Spring configuration be placed?
Where should multiple implementations be resolved?
Where should dependency interfaces be defined?
Where should integration code be isolated?
Where should Spring context initialization happen?
Where should transaction rollback handling be configured?
Where should Spring Framework fit in a layered architecture?
Where should Spring be used in a microservices architecture?
What is the difference between Spring Framework and Spring Boot?
What is the difference between IoC and Dependency Injection?
What is the difference between BeanFactory and ApplicationContext?
What is the difference between @Component and @Bean?
What is the difference between @Component and @Service?
What is the difference between @Service and @Repository?
What is the difference between @Controller and @RestController?
What is the difference between @Configuration and @Component?
What is the difference between @Autowired and @Inject?
What is the difference between @Qualifier and @Primary?
What is the difference between constructor injection and setter injection?
What is the difference between setter injection and field injection?
What is the difference between singleton and prototype scope?
What is the difference between eager and lazy initialization?
What is the difference between @Value and @ConfigurationProperties?
What is the difference between BeanPostProcessor and BeanFactoryPostProcessor?
What is the difference between JDK dynamic proxy and CGLIB proxy?
What is the difference between @Before and @Around advice?
What is the difference between declarative and programmatic transaction management?
What is the difference between Spring JDBC and plain JDBC?
A Spring application fails with NoSuchBeanDefinitionException. How would you troubleshoot it?
Two beans implement the same interface and Spring reports ambiguity. How would you fix it?
A bean is not being detected by component scanning. What would you check?
A @Transactional method is not rolling back. What could be the reasons?
A @Transactional method works when called externally but not through self-invocation. Why?
A Spring application has a circular dependency. How would you diagnose and resolve it?
Application startup is very slow because thousands of beans are created. How would you optimize initialization?
A prototype bean is injected into a singleton bean. What problem can occur and how would you solve it?
You need different implementations of a service for DEV, TEST, and PROD. How would you design it?
You need to inject three implementations of the same interface. How would you configure the beans?
You need to add logging to every service method without modifying business code. How would you implement it?
You need to measure execution time for selected methods. Which Spring feature would you use?
You need to publish an event after an order is created. How would you implement it?
You need database operations to execute atomically across multiple repository calls. How would you design the transaction boundary?
A database exception is leaking vendor-specific exceptions into the service layer. How would you fix it?
You need to integrate a third-party library whose class cannot be annotated with @Component. How would you register it as a Spring bean?
You need configuration values grouped by application, database, and Kafka settings. How would you implement configuration binding?
You need to load a bean only when a specific feature is enabled. How would you design the configuration?
You need to prevent a bean from being created until it is first requested. How would you implement it?
You need to create a custom bean initialization mechanism for auditing. Which Spring extension point would you consider?
You need to modify bean definitions before Spring creates the beans. Which extension point would you use?
AOP advice works for one service but not another. How would you troubleshoot proxy creation and pointcut matching?
A method marked @Transactional is private and the transaction is not applied. How would you explain and resolve the issue?
Design a Spring-based enterprise application using IoC, DI, AOP, transaction management, events, JDBC, externalized configuration, and multiple environment profiles.

Related Topics