Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
  • Loading branch information
eagledev-am committed Aug 20, 2024
2 parents f4b8ceb + 999a254 commit 5743dae
Show file tree
Hide file tree
Showing 2 changed files with 7 additions and 68 deletions.
5 changes: 3 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
# Fawry intern
## About
This repo has the Fawry Summer Internship content which was in In the period from July 15th to October 15th . You can find all the content and all of the tasks.
There are some fetched resources to most of topics.
This repo has the Fawry Summer Internship content which was in In the period from July 15th to October 15th 2023 . You can find all the content and all of the tasks.
There are some attached resources to most of topics.
## Table of contents

| Week | Content | Task |
Expand All @@ -11,3 +11,4 @@ There are some fetched resources to most of topics.
| [Week3](https://github.com/eagledev-am/fawry-intern/tree/main/week3) | Database , Design pattern (Creational) , Rest Api ( part1 ) |[Abstract Factory](https://github.com/eagledev-am/fawry-intern/tree/main/week3/Task/AbstractFactoryTask) - [Singleton](https://github.com/eagledev-am/fawry-intern/tree/main/week3/Task/SingletonTask)|
| [week4](https://github.com/eagledev-am/fawry-intern/tree/main/week4) | Unit tesing , Design pattern (Structural) | [Unit testing task](https://github.com/eagledev-am/fawry-intern/tree/main/week4/unit-testing-task) - [Design Pattern task](https://github.com/eagledev-am/fawry-intern/tree/main/week4/design-pattern-task) |
| [week5](https://github.com/eagledev-am/fawry-intern/tree/main/week5) | Java 8 , Design Pattern (Behavioral) | [Java 8 Task](https://github.com/eagledev-am/fawry-intern/tree/main/week5/java8-task) - [Design pattern Task](https://github.com/eagledev-am/fawry-intern/tree/main/week5/design-pattern-task) |
|[week6](https://github.com/eagledev-am/fawry-intern/tree/main/week6)|Reactive Programming|
70 changes: 4 additions & 66 deletions week6/README.md
Original file line number Diff line number Diff line change
@@ -1,72 +1,10 @@
# Week 5
## Java 8
> Java 8, released in March 2014, is a major update to the Java programming language. It introduced several new features and enhancements that greatly improved the language and its ecosystem. Key features of Java 8 include
<br>

<details close>
<summary><h3>Some Features</h3></summary>

#### Lambda Expressions
* **Syntax**: (parameters) -> expression or (parameters) -> { statements; }
* Lambda expressions enable you to treat functionality as a method argument, or pass a block of code that can be executed later.

```
List<String> names = Arrays.asList("John", "Jane", "Max");
names.forEach(name -> System.out.println(name));
```
#### Functional Interfaces
* An interface with a single abstract method (SAM) is known as a functional interface. Java 8 provides several built-in functional interfaces like Predicate, Function, Consumer, and Supplier
```
@FunctionalInterface
interface MyFunctionalInterface {
void myMethod();
}
```
#### Streams API
* A new abstraction that lets you process sequences of elements (e.g., collections) in a functional style.
```
List<String> names = Arrays.asList("John", "Jane", "Max");
names.stream()
.filter(name -> name.startsWith("J"))
.forEach(System.out::println);
```

#### Optional Class
* A container object that may or may not contain a non-null value. This helps avoid NullPointerException.
```
Optional<String> optionalName = Optional.ofNullable(null);
System.out.println(optionalName.orElse("Default Name"));
```

#### New Date and Time API (java.time)
* A new, more robust and flexible API for working with dates and times, replacing the old java.util.Date and java.util.Calendar.
```
LocalDate today = LocalDate.now();
LocalDate birthday = LocalDate.of(1990, Month.JANUARY, 1);
Period age = Period.between(birthday, today);
System.out.println("Age: " + age.getYears());
```
</details>

# Week 6
## Programming Paradigms ( Reactive programming )
> Reactive programming is a programming paradigm focused on designing systems that react to changes, such as user inputs, network responses, or data streams, in a timely and efficient manner. Instead of writing code that pulls or requests data at regular intervals, reactive programming allows the system to automatically respond to data as it becomes available.
<br>
| Resource | instructor |
| ---------| ---------|
|[Java8(part 1)](https://drive.google.com/file/d/1tJ-Y-unioZZrnXB57dMuH-11o33IW4Wh/view?usp=sharing) | Eng. Adel Zaid |
|[Java8(part 2)](https://drive.google.com/file/d/15Sl5KnhQalhsbyZxR6PsFIhdUNYKhb1J/view?usp=sharing)|Eng. Adel Zaid |
|[Reactive Programming](https://drive.google.com/file/d/1cey50WFYm50H6blVIZt11bfTAckKlnly/view?usp=sharing) | Eng. Hany Ahmed |

<br>

## Design Pattern
> Design patterns are general reusable solutions to common problems encountered in software design and development. They are not code or libraries but rather guidelines on how to structure code to solve specific problems efficiently. Design patterns help developers create software that is more flexible, maintainable, and scalable by providing proven solutions to recurring design challenges.
### Behavioral Design Patterns
Behavioral design patterns are concerned with how objects interact and collaborate to achieve specific objectives. They focus on improving communication and responsibility between objects.
- Observer Pattern
- Template Pattern
- Strategy Pattern

| Resource | instructor | impl.|
| ---------| ---------|-----------|
|[Design pattern (part 3)](https://drive.google.com/file/d/1rXxhMd9HpD6ltyruTG7K49VHkWzy5fe4/view?usp=sharing) | Eng. Ahemd Ali |[Behavioral pattern](https://github.com/eagledev-am/Design-Pattern/tree/main/behavioral) |

0 comments on commit 5743dae

Please sign in to comment.