Skip to content

Commit

Permalink
Update README.md (ndg8743#41)
Browse files Browse the repository at this point in the history
Added 5 Why's to README
  • Loading branch information
ndg8743 authored May 10, 2024
1 parent f077e19 commit a3baf60
Showing 1 changed file with 18 additions and 0 deletions.
18 changes: 18 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -88,3 +88,21 @@ This project is a web application that will generate a fractal image based on th

### After
![image](https://github.com/ndg8743/Software-Engineering-Spring-2024/assets/73437724/e258108a-ef9e-4ed4-a88b-629aba15e762)

# Restrospective
## Issue
The Vue.js application is not implemented with gRPC
### Why? The Vue.js application is currently using HTTP requests (axios) to communicate with the server.
The Vue.js application is using axios, a promise-based HTTP client, to send HTTP requests to the server. This is evident in the startComputeJob, pollJobStatus, and fetchJobResults methods in the App.vue file. While HTTP/axios is a common choice for client-server communication in web applications, it does not utilize the benefits of gRPC such as efficient binary serialization, HTTP/2 protocol advantages, and full-duplex streaming.
### Why? We weren’t familiar with gRPC or how to use it in a Vue.js application.
Implementing gRPC in a Vue.js application requires knowledge of gRPC concepts, protobufs, and how to set up a gRPC client in JavaScript. We maybe just are unexperienced with gRPC usage in JavaScript.
### Why? The project requirements did not necessitate the use of gRPC.
The decision to use gRPC or HTTP could be influenced by various project requirements or constraints such as the need for real-time communication, the complexity of the data structures being transmitted, the need for low latency, and the supported technologies of the server and client platforms. The requirements or constraints did not necessitate the use of gRPC, and to be honest HTTP/axios was better at the moment for its simplicity and ease of use.
### Why? The existing server-side implementation might not support gRPC.
The server-side implementation needs to support gRPC for the Vue.js application to use it. If the server-side implementation is using technologies that do not support gRPC or if it is not set up to handle gRPC requests, we would not be able to use gRPC in the Vue.js application. In this case, the server-side implementation is using Java and gRPC, so this is not a limiting factor.
### Why? The benefits of using gRPC may not outweigh the time of implementing it.
In-depth explanation: Mike was tired really didn’t want too. Implementing gRPC in the Vue.js application would require significant changes to the codebase and could introduce new complexities and challenges. Mike would need to weigh the benefits of using gRPC, such as improved performance and efficiency, against these costs. If the benefits do not outweigh the costs, it would be rational to continue using HTTP/axios.
## Actionable Change
To address this issue, we could learn about gRPC and how to use it in a Vue.js application. They could then refactor the startComputeJob, pollJobStatus, and fetchJobResults methods to use a gRPC client instead of axios. This would also involve updating the server-side implementation to handle the gRPC requests from the Vue.js application. But we should also consider the project requirements and constraints and evaluate whether the benefits of using gRPC outweigh the time it would take.


0 comments on commit a3baf60

Please sign in to comment.