Skip to content

dorrzun/lu-playground

Repository files navigation

LU Playground

A multi-module Java "playground" for Longwood student interns/alumni to demonstrate understanding of key software design principles, while learning some industry techniques and tools!

Description

This project is divided into multiple modules with various degrees of "scaffolding" for you to complete or design from scratch.

Ideally, you will complete this project feeling much more equipped to work with Java in the industry, or even create projects on your own!

These assignments are not intended to be gospel or cover all possible bases, but they will hopefully help you understand what can make code readable and maintainable for years to come.

Modules I to III: Covers both old/new material, some pertaining to Java itself or software development as a whole
Module IV: Demonstrates the high quality "off the shelf" functionality that modern frameworks can offer
Module V: Best suited for graduates and/or people with prior significant exposure to Java

Youtube tutorials to be included for each Tier (WIP)

Tier I: Playing in the Vault

  • What is Domain Driven Design (DDD)
  • Dependency Injection/Inversion of Control (IOC)
  • Encapsulation, Separation of Concern and Design By Contract
  • JavaDoc: How to use it and why it's important

Tier II: Making Bank (Accounts)

  • What is Failing Fast and Offensive/Defensive Programming?
  • What are Annotations?
  • Lombok: Boilerplate Be Gone!
  • Polymorphism
  • Validation Libraries
  • Unit Testing with JUnit 5

Tier III: Bringing Home The Bankon

  • Working with JSON
  • Service Oriented Architecture
  • Complete a business process/workflow from start to finish
  • TBD

(BONUS) Tier IV: Banking With (Spring) Boot

  • Light intro to the Spring Boot Framework
  • RESTful APIs & Best Practices
  • Swagger

(BONUS) Tier V: Java, the Double Shot

  • Lazy Evaluation
  • Optionals
  • Streams
  • Lambda Functions and "Functional" Iteration
  • Switch Expressions (Switch Case's Cooler Twin)

Dependencies

  • This repository uses Gradle to manage its dependencies
  • Ensure you have the Java Development Kit (JDK) installed on your machine and that the $JAVA_HOME env. variable is set appropriately

Getting Started

  • Install VSCode
  • Install the following VSCode extensions:
    • "Extension Pack for Java" by Microsoft
    • "Gradle for Java" by Microsoft
    • "Test Runner for Java" by Microsoft
    • (Optional) "Live Share" by Microsoft; allows real-time "Google Docs" style editing with your peers!

Installing

  • To install the project's dependencies, you have multiple options:
    • Under the Explorer tab, (accessed via View > Explorer) navigate to Gradle Projects > tier-one and select "tier-one > tasks > build > build"
      • If it doesn't appear as an option, right click on tier-one/build.gradle and select "Show Gradle Tasks"

Executing program

  • To execute the program, if necessary, navigate to application/run in Gradle's Tasks

Additional Info

Bear with me, as you might encounter an error or two during setup, depending on how accurate my crash course instructions are :)

Contact Info

Austin Youngerman austin.youngerman@live.longwood.edu

About

A small "playground" for LU alum/student interns looking to test their skills with Java in an industry oriented mindset

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages