Page:
Technical future
6
Technical future
Andreas Svanberg edited this page 2025-03-18 16:03:38 +01:00
💚 = work actively towards 🔴 = should not do 〰️ = no opinion 😃 = agree
Suggestion | Andreas | Nico | Tom |
---|---|---|---|
💚 | 💚 | 💚 | |
Replace java.util.Date with java.time | 💚 | 💚 | 💚 |
Update wiki with onboarding information | 💚 | 💚 | 💚 |
💚 | 💚 | 💚 | |
--- | --- | --- | --- |
Remove all database operations (JPA) from services and delegate to repositories | 💚 | 💚 | 💚 |
Stop with the "1 table-1 entity-1 repository-1 service" thing | 💚 | 💚 | 💚 |
Replace Jersey (JAX-RS client) with Spring's RestClient | 💚 | 💚 | 💚 |
Remove stack traces from Maven test output | 💚 | 💚 | 💚 |
Fix all warnings during Maven build | 💚 | 💚 | 💚 |
Stop using DomainObjects dateCreated and lastModified for business logic | 💚 | 💚 | 💚 |
--- | --- | --- | --- |
Never return @Entity classes from services | 💚 | 💚 | 💚 |
No Jakarta Persistence API usage in core Maven module | 💚 | 💚 | 💚 |
--- | --- | --- | --- |
Replace Wicket with Spring Web + Thymeleaf + Htmx | 😃 | 😃 | 😃 |
Better modularization is needed in Scipro, it has too much stuff in core module | 💚 | 〰️ | 💚 |
Use whitelist to manage dependencies, and only include dependencies we use | 🔴 | 🔴 | 😃 |
User interface needs a better organization, it's not obvious to see "intention and action" | 😃 | 😃 | 😃 |
Must repository layer be implemented with JPA. Why not consider a more SQL-native approach like jOOQ | 💚 | 😃 | 💚 |
Go all-in on Spring | 〰️ | 😃 | 〰️ |
Merge Maven modules | 🔴 | 〰️ | 🔴 |
Remove manual processes | 💚 | 💚 | 😃 |
Add a Maven mirror/repository | 😃 | 😃 | 😃 |
Never return @Entity classes from repositories | 💚 | 💚 | 😃 |
Remove manual transaction handling inside workers (AbstractWorker base class) | 😃 | 😃 | 😃 |
Make all notifications event-based rather than direct calls from other service methods | 😃 | 😃 | 〰️ |
Make event handling asynchronous (such that a failure or slowdown in an event consumer does not interfere with the event producer) | 🔴 | 〰️ | 🔴 |
💚 | 💚 | 〰️ | |
Use Spring Boot Maven plugin / main method to start SciPro | 😃 | 😃 | 😃 |
Use a local database running in Docker | 😃 | 😃 | 🔴 |
Create a mock Docker container for Daisy API | 😃 | 😃 | 😃 |
Try to minimize / move to edges the Daisy integration to make as much functionality as possible useable without it | 💚 | 😃 | 💚 |
Make it easier to schedule new jobs | 😃 | 😃 | 〰️ |
Replace Wicket with Spring Web (REST API) + React (TypeScript) | 😃 | 🔴 | 🔴 |
Automatic deployment to production after pull request is merged | 😃 | 〰️ | 🔴 |
Do not accept null as a method parameter | 😃 | 😃 | 😃 |
Do not return null | 😃 | 😃 | 😃 |
Do not use repositories directly in Wicket components | 💚 | 😃 | 💚 |
"Make the change easy then make the easy change" | 💚 | 😃 | 😃 |
Add UI tests (like Selenium/Upright) | 😃 | 😃 | 😃 |