Summarize in a few sentences what you have learned this week.
Tuesday, July 29, 2025
Tuesday, July 22, 2025
CST438 - Week 4
What is the most interesting thing you have learned in your reading of "Software Engineering at Google"?
Tuesday, July 15, 2025
CST438 - Week 3
Describe what are the good points about using Git for source code management.
- Helps enable distributed development by allowing multiple developers to work on the same file/project at the same time. Services like GitHub or GitLab build a whole ecosystem around Git to foster a more productive workflow for all
- Git allows people to create branches of a repository so one person's development doesn't interfere with another's
- When it's time to bring those changes back into the main code branch, Git handles merge the changes in. Most of the time it's fairly automatic, but even when there are merge conflicts Git helps show the differences and helps you make a choice on how to proceed.
- Enables tracked revision history - so it's easy to see changes to a file over time by what author
What are possible problems that Git merge does not solve when merging code from different developers?
- For one, even after a clean successful merge, the code could still not work correctly. Changes from one developer can effect the changes from another developer and have unintended consequences. Or changes from two different branches can effect the logic of the overall method/program.
- Git merge doesn't enforce any syntax conventions or style conventions amongst developers
- Dependencies - a Git merge doesn't enforce any dependencies that might be different between two branches.
Thursday, July 3, 2025
CST438 - Week 2
In lab 1 on Junit you used a Mock. In your own words describe what a Mock is and why it is useful in unit testing.
In lab1, after creating our API endpoints we needed a way to verify that they were working properly as expected; meaning when we hit the end point we got the expected/proper data returned, or when we supplied bad data to the end point it returned with the correct failure response. You can manually test this during development of course, but as your API grows larger and has more complex interactions, it becomes harder and harder to quickly and reliably test changes that you make haven't broken anything. That's where unit testing can help out. Creating small, narrow, specific tests to ensure that changes a developer might make don't break things (in sometimes unexpected ways). In order to perform unit testing for a REST API end point, we need to have a functioning sever (and database) and have it populated with known data. What we're doing is using a Mock of a real world setup of a server and database where it contains valid (or sometimes invalid) data that we know about ahead of time. This way we can write small, targeted tests against that data ensuring our API endpoints are working as expected. Mocking up this fake but valid data is often much quicker than setting up a real server and database. It also lets you muck with data that you don't have to worry about if you accidentally mess up and delete or corrupt a database because of a new change you where implementing.