Week 13
Software Engineering (CS 373) Spring 2017
This week, I finished Phase 3 of the IDB project. That means that our website, sweatshop.tech, is now fully ready. For this phase, we were to add search and visualization to our website. We used Flask-WhooshAlchemyPlus and D3. The details are covered in last week's blog post. Overall, this phase was far less intensive compared to previous phases. The library used for search integrated well with our database. Of course, we still had to highlight and contextualize results but even then, the workload for this phase was significantly less than that of previous phases. Apart from SWE, I have been trying to get most of the work for other classes done. So far, that effort has been successful. I have one quiz on Thursday but apart from that, the semester has basically ended for three of my classes. The only clases that are left are Software Engineering and Algorithms. I've finished the homework assignment for Algo as well meaning that now, I just need to prepare for finals and exams.
What's in your way?Considering that this has been a very productive week, I am expecting some free time next week. I do not anticipate there being anything in my way.
What will you do next week?I will turn in my Algo assignment as soon as it is open for submissions. I will then be working with my IDB project team to get a presentation ready. My team will be talking about our website in class on May 1. I will need to also submit my application for the UTCS Integrated BS/MS Program. After all of these are done, I will use my remaining free time to prepare for exams and finals. I am not entirely sure what to expect for the Software Engineering exam but I will need to start reviewing all the material since that last exam.
What’s my experience of the class?As the semester comes to a close, I think the biggest take away for me from this class is 'writing better code'. That may sound vague but before this class, I did not have tests or documentation for any of my code. As long as it worked, I was happy. This class has changed that. Additionally, I now plan before I write any code. If I see long functions or reusable code embedded within a function, I refactor. We recently started specifically talking about refactoring in class and this has been especially useful.
What's my pick-of-the-week or tip-of-the-week?Codeclimate is a great way to see coverage data and general issues with your code directly on Github. It integrates really well with Travis CI and is free for Open Source projects. Set up is as easy as adding your API key to Travis and adding a few lines to your .travis.yml. It runs a static code analysis and finds not only what you might expect from Pylint but it also finds blocks of similar or identical code. Code climate is customizable and it allows you to specify which languages you want it to run on. It can be set up to run automatically every time you push to Github. Once it is done, just like you can with Travis, you can see your status with badges directly on your GitHub README. ( Example)