Only administrators can merge articles. This week’s SaaS homework has been the most elaborate so far. SaaS Legacy Homework 2: The overwhelming answer was “how to work with legacy code”. I also feel like testing frees up my brain from worrying about every little bit of my application. I’ve used them in previous apps but they always seemed like a mystery to me.
So all I have to do now is concentrate on writing whatever little bit I’m working on now, instead of trying to keep the entire app in my head and worry about not breaking anything else. And thus we have legacy homework 1 and 2 last week and this week. If what I’m doing now will break something else, then I’ll know about it soon enough if I wrote my tests right. Our feature in a nutshell: SaaS Legacy Homework 2:
The title and author will be from one of the two articles. I spent a LONG time on this homework. This week, we had to add a new feature! I’ve used them in previous apps but they always seemed like a mystery to me. So instead of putting all the tests there, I just wrote a few to make sure the controller was asking the model for that information.
But this time I played around with them in the debugger gem. This is so different than the way I used to program. It was hard but satisfying.
SaaS Legacy Homework 2: Lessons Learned · jlc
Instead of working on a new custom app, we are given an existing app the Typo blog platform that has a long history, sometimes messy code, and spotty test coverage. Related Leagcy Week 4: The overwhelming answer was “how to work with legacy code”. But I’m proud to say that I rrfactoring to it this time and wrote all the tests before writing the actual code except for the view and some skeleton methods so it didn’t throw method-not-found errors–basically I had to get it to the point where the tests failed for the right reasons and not because it couldn’t find some method.
As the instructors explain in the lectures, after teaching the class for a while, they asked some of the top software companies what one thing they wish graduates of computer science programs would learn before entering the workforce. Only administrators can merge articles. Twitter Fitter—the tweet generator!
All other users will not see the option at all. This week’s SaaS homework has refaactoring the most elaborate so far. And also having the ability to revert any single change without messing anything else up.
I also feel like testing frees up my brain from worrying ahd every little bit of my application. I really like the idea of my git history telling the story of my code. So all I have to do now is concentrate on writing whatever little bit I’m working on now, instead of trying to keep the entire app in regactoring head and worry about not breaking anything else.
Even though I could have knocked out the homework in probably less than half the time without testing, I really liked the practice.
SaaS Legacy Homework 2: Lessons Learned
And thus we have legacy homework 1 and 2 last week and this week. Then I had to write a bunch of unit tests for the model.
So even though at first they had no idea how to teach this, they set out to do so in this legayc.
That shouldn’t be a surprise because writing the test is always the hardest part refactoriny me! And the comments of all previous articles if any will now be comments of this article. I tried really hard to keep my git commits small, task based, and meaningful this time, which gomework I had to do a few git things I’ve never done before like adding specific lines instead of entire files. The hardest part was writing the tests. The one thing that was SUPER helpful was using the debugger gem and plain old rails console with the –sandbox option while writing the tests, because it helped me figure out exactly how to get to certain elements in order to test them.
You can find out more here. There’s probably a lot of other things but these are the easy ones that I can remember off the top of my head And if you’re curious about the code I wrote for this week’s homework, legay up on Github.
Then I wrote the unit test for the controller. Then at the very end I wrote the cucumber integration tests for the sad paths. Our feature in a nutshell: If what I’m doing now will break something ocde, then I’ll know about it soon enough if I wrote my tests right.