Posts

Final Week - CST 438

 Some of the most important topics I learned about were how to build REST APIs with Spring because it shows how the frontend and backend handle data by using GET, POST, PUT and DELETE requests. The React components were also important because it showed us how to display data, use state and how users interact with the frontend. The JPA and repositories gave me more experience working with databases in a more efficient way since every queries does not have to be manually written. It was also important to know how to use Git and Github to be able to collaborate on projects with other developers and how to review each others work so that bad code in to pushed into the main branch of a project. Learning about the documentation side of software engineering was definitely a new area I had not put much thought into, since the curriculum mainly focuses on learning best coding practices and putting them to use. These will all be useful in future personal projects that I will make to continue...

Week 7 - CST 438

 In Plan and Document, many of the requirements and design are completed before development begins, which can make changes later on more difficult. Plan and Document can be used when requirements are established far in advanced.  Agile breaks a project up into smaller iterations allowing the team to develop and test smaller parts of the system. This allows the requirements to be adjusted as the project progresses. Agile works better when all requirements are not yet known. 

Week 6 - CST 438

This week we learned about Compute as a Service and how it is used to run your applications without having the physical hardware to do so. It uses automation as a form of maintenance to detect when programs have failed, restart processes and continually move workloads to systems that can handle it better. This prevents the needs for constant human interaction as it would take a lot of man power to manually maintain the service. Containers are also run faster than virtual machines since they don't require an operating system to run. Overall, serverless computing can work well for some applications that are stateless. 

Week 5 - CST 438

 One thing I learned was that although unit tests can be helpful in identifying bugs, they do not tell us whether a whole system works correctly with real dependencies, configurations and developer workflows. Larger tests are used in testing environments that are similar to real-world production, taking into account how real users might react to different scenarios. It is also important that there be clear ownership for larger tests so that support can be provided in case of test failures. Overall, larger tests provide a more realistic approach than unit tests but require more time, resources and maintenance. 

Week 4 - CST 438

 One interesting thing I learned about code review is that it is not just about finding bugs but also keeping the code consistent so that it is easy for other engineers to understand. This encourages engineers to be more careful about the work they are submitting. After all, it is a team effort. Another thing I found interesting was that changes are kept small so that they are easier to review when necessary and fixes happen quicker. It was surprising to see that only one review's approval is required since Google is such a large company. 

Week 3 - CST 438

 Git is useful in that it tracks and keeps history of all the changes that are made in files through commits. It allows developers to make changes to a project separately and safely by using copies of the main version. It allows collaboration on the same repositories using pulling and pushing to send and receive new changes and by merging changes made on different branches.  Although Git detects conflicting changes made to same lines from different commits, it does not detect modifications to other lines of code that can cause the program to stop working. I have found that when collaborating on one project, developers must agree on variable and class names so that they the merges occur seamlessly. Git does not have a minimum requirement for how big a commit may be, how frequent they are or commit messages include to better understand the changes that are being made which can lead to difficulty in understanding what is being changed. 

Week 2 - CST 438

This week we learned about React components such as useState, useEffect, useContext and Props. These components are javascript functions that help build the layout of a page. useState is important because it helps store data and update pages when the data changes. useEffect helps run code that retrieves information from the server when a page loads. useContext helps to share data between components. One of the pros of React is that components can be used in many instances which makes it easier to manage projects. It also makes it easier to implement multiple pages into a single application. A weakness I found is that small mistakes can cause webpages to no load properly. For example, a JSX file that had a variable that was undefined would cause the whole application to not load and it had to be fixed before being able to see the other parts which were coded correctly.