CS371p Fall 2020 Week 11: Darshan Bhatta

What did you do this past week?

This week I finished up the Darwin Project. This project was interesting to work on because it allowed us to think more about design and which design to go with.

What’s in your way?

Nothing is in my way at the moment. We encountered different memory issues while working on the project that was confusing to solve, but with the help of the TAs, we were able to understand and fix them.

What will you do next week?

Next week, I hope to start on the new and final project. I can’t believe we are already at the final project in the class. It feels just like yesterday when this class started.

If you read it, what did you think of The Dependency Inversion Principle?

I thought it made a lot of sense as a design principle. Separating different chunks of logic into more sizeable modules ensures maintainability in any software. The lamp example that the paper had was a really good example to understand the design, higher-level modules shouldn’t depend on lower-level ones.

What was your experience of continuing to implement std::vector, move semantics, and allocators again? (this question will vary, week to week)

As we starting to implement more parts of the vector class, I understood more of the intricacies that separate it from Java’s ArrayList such as being mindful of the copy constructor and making sure it is not heavy. I was not familiar with the move semantics and always thought setting something equal to one another is the same behavior, but learning more about it started making sense to me. After working on the allocator lab, I thought I had a pretty good understanding of it. However, after Friday’s lecture, I realized I forgot some stuff about it and the lecture was a good refresher to using it and knowing why we need to use it.

What made you happy this week?

I was happy this week to get the Darwin project done. We had everything done except memory issues which were very hard to debug, but happy that once we fixed that everything worked.

What’s your pick-of-the-week or tip-of-the-week?

My pick-of-the-week is TypeScript, a superset of JavaScript that enforces strict types and supports definition files that are similar to C++’s header files. It makes writing large scale projects with JavaScript a lot more maintainable. While it is a lot more upfront work at first, I recommend it to anyone that is making a large scale project as it pays back in the future.