{"id":649,"date":"2019-04-13T23:18:58","date_gmt":"2019-04-13T23:18:58","guid":{"rendered":"https:\/\/cs.uwc.ac.za\/?page_id=649"},"modified":"2020-09-20T15:57:00","modified_gmt":"2020-09-20T15:57:00","slug":"the-prototype","status":"publish","type":"page","link":"https:\/\/cs.uwc.ac.za\/?page_id=649","title":{"rendered":"The Prototype"},"content":{"rendered":"<h1 style=\"text-align: center;\">The Prototype<strong><br \/>\n<\/strong><\/h1>\n<p>Once you know what the user interface (GUI, CLI, or API) is going to look like, go ahead and try to build a &#8220;shell&#8221; of the user interface as quickly as possible. This is called a prototype. You don&#8217;t have to implement the core functionality &#8211; you just code the interface to see 1) if it&#8217;s possible and 2) how it appears to the user. Ideally, you should end up throwing this prototype away. The prototype should be shown to the user to see if it&#8217;s what the user had in mind. That&#8217;s why you really shouldn&#8217;t put too much effort into it because chances are the user is going to say, &#8220;No, I wanted it to look like this&#8221; or &#8220;I like this screen, but that one sucks&#8221;, etc. You want to ensure that the user sees what they want to see &#8211; and this applies to GUI, CLI, and API. It&#8217;s much easier to change a prototype than it is to do all the work on the internals first and then have to change things. The prototype helps you design things in such a way that the interface is independent of the underlying implementation of the actual problem. The interface is not the solution to the problem. But the interface is the user&#8217;s window to that functionality. That functionality, or solution to the problem, begins with the next step.<\/p>\n<div id=\"themify_builder_content-649\" data-postid=\"649\" class=\"themify_builder_content themify_builder_content-649 themify_builder\">\n    <\/div>\n<!-- \/themify_builder_content -->\n","protected":false},"excerpt":{"rendered":"<p>The Prototype Once you know what the user interface (GUI, CLI, or API) is going to look like, go ahead and try to build a &#8220;shell&#8221; of the user interface as quickly as possible. This is called a prototype. You don&#8217;t have to implement the core functionality &#8211; you just code the interface to see [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-649","page","type-page","status-publish","hentry","has-post-title","has-post-date","has-post-category","has-post-tag","has-post-comment","has-post-author",""],"_links":{"self":[{"href":"https:\/\/cs.uwc.ac.za\/index.php?rest_route=\/wp\/v2\/pages\/649","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/cs.uwc.ac.za\/index.php?rest_route=\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/cs.uwc.ac.za\/index.php?rest_route=\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/cs.uwc.ac.za\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/cs.uwc.ac.za\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=649"}],"version-history":[{"count":2,"href":"https:\/\/cs.uwc.ac.za\/index.php?rest_route=\/wp\/v2\/pages\/649\/revisions"}],"predecessor-version":[{"id":651,"href":"https:\/\/cs.uwc.ac.za\/index.php?rest_route=\/wp\/v2\/pages\/649\/revisions\/651"}],"wp:attachment":[{"href":"https:\/\/cs.uwc.ac.za\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=649"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}