{"id":17,"date":"2022-10-28T06:26:51","date_gmt":"2022-10-28T06:26:51","guid":{"rendered":"https:\/\/blogs.oregonstate.edu\/chenxia3\/?p=17"},"modified":"2022-10-28T06:26:51","modified_gmt":"2022-10-28T06:26:51","slug":"documentation-and-testing","status":"publish","type":"post","link":"https:\/\/blogs.oregonstate.edu\/chenxia3\/2022\/10\/28\/documentation-and-testing\/","title":{"rendered":"Documentation and Testing"},"content":{"rendered":"\n<p>Hey everyone! I wanted to spend this blog finally talking about my project. I can&#8217;t share details due to a non-disclosure agreement, however I really wanted to discuss some learnings about legacy code and technical debt.<\/p>\n\n\n\n<p>Here&#8217;s an except about technical debt:<\/p>\n\n\n\n<p><em>Technical debt (also known as tech debt or code debt) describes what results when development teams take actions to expedite the delivery of a piece of functionality or a project which later needs to be refactored.<\/em><\/p>\n\n\n\n<p>I don&#8217;t think the author of this paragraph is talking about the quality of the resulting product, but rather the context around the product itself. There is a lot more that goes into software development that goes beyond design and implementation. Hint: the two phrases mentioned in the title of this post are kind of important, especially when new developers inherit your code.<\/p>\n\n\n\n<p>From Michael Feather&#8217;s <span style=\"text-decoration: underline\">Working Effectively With Legacy Code<\/span>, he states that &#8220;legacy code is simply code without tests.&#8221; Without tests, it&#8217;s difficult to refactor existing code without a way to verify if introduces bugs. It took me very long into my journey to learn about the importance of regression testing but every interviewer I&#8217;ve spoken with so far has stopped my spiel about a project to ask if any tests were written. <\/p>\n\n\n\n<p>While I learned a lot in Web Development and Mobile Development, two of the more programming heavy courses, the most critical skills I gained were near the end of the program. From Software Engineering II, I learned about TDD (Test Driven Development) which as the name implies, is about incrementally building a program by writing the tests first and satisfying all prior tests as well as the current problem to solve. From Cloud Development, I learned how to design a backend according to API specifications and how to develop and document my own API. <\/p>\n\n\n\n<p>Inheriting code that someone else wrote is an inevitability. I hear about it all the time from software engineers at large companies. A lot of their work comes from implementing minor bugfixes or refactoring a project to the newest tech in the stack. For example, classic multi-page websites to React SPAs. Work is often incremental, updating one page at a time until the site is finally transferred. There are cases where it&#8217;s not that clean, for example incompatibilities in the existing code with the new tech stack. But that&#8217;s a topic for another time.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Hey everyone! I wanted to spend this blog finally talking about my project. I can&#8217;t share details due to a non-disclosure agreement, however I really wanted to discuss some learnings about legacy code and technical debt. Here&#8217;s an except about technical debt: Technical debt (also known as tech debt or code debt) describes what results [&hellip;]<\/p>\n","protected":false},"author":12874,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-17","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"_links":{"self":[{"href":"https:\/\/blogs.oregonstate.edu\/chenxia3\/wp-json\/wp\/v2\/posts\/17","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blogs.oregonstate.edu\/chenxia3\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blogs.oregonstate.edu\/chenxia3\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blogs.oregonstate.edu\/chenxia3\/wp-json\/wp\/v2\/users\/12874"}],"replies":[{"embeddable":true,"href":"https:\/\/blogs.oregonstate.edu\/chenxia3\/wp-json\/wp\/v2\/comments?post=17"}],"version-history":[{"count":1,"href":"https:\/\/blogs.oregonstate.edu\/chenxia3\/wp-json\/wp\/v2\/posts\/17\/revisions"}],"predecessor-version":[{"id":18,"href":"https:\/\/blogs.oregonstate.edu\/chenxia3\/wp-json\/wp\/v2\/posts\/17\/revisions\/18"}],"wp:attachment":[{"href":"https:\/\/blogs.oregonstate.edu\/chenxia3\/wp-json\/wp\/v2\/media?parent=17"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blogs.oregonstate.edu\/chenxia3\/wp-json\/wp\/v2\/categories?post=17"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blogs.oregonstate.edu\/chenxia3\/wp-json\/wp\/v2\/tags?post=17"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}