Rewrite in 45 Days, First Week
My team and I received a mandate to rewrite an older Django rest project to a new fastAPI project. We said we can do it within 45 days. I will update on our progress daily to see if we can meet this challenge. The Game is ON ! The team is 4 people strong and there are many challenges ahead. We have to reuse some of the legacy logic, while throwing/rewriting other stuff. Docker, Helm, Jenkinsfile... as I said. Challenging! I almost forgot. Some interactions with Redis and Kafka as well.
Jun 22, 2022
Day 1 Update: Today we did many initializations of the project, created a Git repo and added the initial code. We also had some design sessions. We really want to have this project stand out in terms of code quality and order. We will challenge ourselves with each commit on that issue.
Jun 23, 2022
Day 2 Update: After creating a repo and some design sessions on day 1, so far we have: 1. First 2 endpoint stubs 2. Pydantic models for stubs 3. Basic tests for stubs 4. Dockerfile 5. Basic working and running project. I am pleased! For Day 3 we are planning: 1. Helm chart for the service 2. Helm chart for other services we need to interact for our dev env 3. Start implementation of first 2 stubs and integrating some legacy code.
Jun 26, 2022
Day 3 Update: Today we did some project restructuring to keep things nice and tidy to begin with. Helm chart for external services and for our service is almost ready and we continued implementing the first API E2E. The plans for tomorrow (day 4) are to finalise the Helm charts, continue API E2E, add some more stubs and start working on the CI/CD pipeline for continuous tests and getting this service out to a test env asap! The idea is to get this service up and running asap with basic tests and basic functionality. This way we can have product management, QA and other dependants involved as early in the in the process as possible.
My team is doing a great job and really pushing this thing forward at a great pace!
领英推荐
Jun 27, 2022
Day 4 Update: Today we finished the 2 Helm charts: one for the app and one for the dev env including Kafka and Redis. A legacy analytics module is being imported and integrated. Integration of pylint and black for code quality is underway. Research and implementation of the first API E2E was halted today due to a mac screen malfunction needing a new computer and a 1 day setup ?? ♂?. In Linux this would not have happened ??. We'll pick up on that tomorrow I guess. Tomorrow we will also continue with more API stubs, especially the more complex ones, trying to get product management and QA involved as early as possible.
All in all, it was a good day with some wins, a minor setback. The usual stuff in working in software.
Jun 28, 2022
Day 5 Update: It was a challenging day today. Some API stubs are quite hard in what the product team defined, so we are still on it. The ci/cd pipeline is quite difficult and needs more work. The analytics module is almost done. Each step is accompanied with tests, and whenever we add more functionality we ask ourselves whether the folder structure needs to change in order to be more verbose and self explanatory. The luxuries of a greenfield project ??
Jun 29, 2022
Day 6 Update: It was a really hard day today. We've hit several brick walls we are still trying to overcome. Pydantic is giving us a hard time with pattern propertis and we have some dependency conflicts with legacy modules. The requested objects in these REST APIs are really complex and non standard with multiple optional multi type objects and dynamic names. That's a tough one and we might have to go redesign some of the endpoints so we can enjoy OpenAPI to the fullest. There is also a legacy module we need to use with a very old mysql dependency which we want to upgrade, but only in our service. We still don't know how to solve this problem. I thought poetry might help with that, but so far we have come up empty handed. I do like believe we made some progress, as we are deep in research on solving our problems. Tomorrow is a new day !
Jun 30, 2022
Day 7 Update: Perfect for the weekend! We were able to mitigate the API problems by redesigning some of them, and now they are done! The Jenkins pipeline is done and we have a QA version up and running in K8s !!! Have a great weekend everyone! In terms of the legacy module, it is SO LEGACY that we were told to extract and use only the functions we need. This will make life so much easier! Nice decision by management! Next week will be very interesting as we implement the APIs E2E and start integration the project into their system. But until then, it's time to rest!
Help finance teams to control corporate spending | B2B Sales Enthusiast | Travel | Account Executive at Mesh
2 年Interesting to see how you handled the LEGACY code. Well done!
Senior Software Developer at Unit
2 年Great work - following up on this. Keep the updates coming and good luck!
Automating IT Logistics | Linux Guru | Cyber Nice Guy | Ex-Tikal
2 年Outstanding!