{"id":2098,"date":"2016-11-03T17:34:24","date_gmt":"2016-11-03T16:34:24","guid":{"rendered":"http:\/\/uwe.s2000.at\/?p=2098"},"modified":"2016-11-03T17:34:24","modified_gmt":"2016-11-03T16:34:24","slug":"work-harder-not-smarter","status":"publish","type":"post","link":"https:\/\/www.domaratius.de\/blog\/2016\/11\/03\/work-harder-not-smarter\/","title":{"rendered":"Work harder, not smarter"},"content":{"rendered":"<p>Gegeben sei folgende Aufgabe: Kopiere eine Textdatei von einem Verzeichnis in ein anderes.<\/p>\n<p>L\u00f6sung der Kollegen: \u00d6ffne die Quelldatei A, \u00f6ffne die Zieldatei B und kopiere den Inhalt zeilenweise von A nach B. Vom Aufwand her fragw\u00fcrdig, aber macht zumindest theoretisch das was es soll. Zur Sicherheit haben dann gleich noch vier Kollegen Review gemacht, denn acht Augen sehen mehr als zwei.<\/p>\n<p>Einziges Problem: Es crasht. Und zwar im ersten Test, der diesen Code aufruft &#8211; und dieser Test wird automatisch bei jedem Build ausgef\u00fchrt. Vermutung der Kollegen: Der b\u00f6se Uwe hat da was am Buildserver gedreht, denn da war ja letzte Woche eine \u00c4nderung, und das mu\u00df es ja daher sein.<\/p>\n<p>Zehn Minuten Review inkl. einmal Bauen und in den Test debuggen sp\u00e4ter stellt der b\u00f6se Uwe fest: Die Kollegen haben die Variable f\u00fcr die Zieldatei nicht initialisiert&#8230; Leerer Dateiname f\u00fchrt zu Nullpointer, nullpointer f\u00fchrt zu access violation, access violation f\u00fchrt zu \u00c4rger, \u00c4rger f\u00fchrt zu Wut, Wut f\u00fchrt zu Ha\u00df, Ha\u00df f\u00fchrt auf die dunkle Seite der Nacht (oder so \u00e4hnlich).<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Gegeben sei folgende Aufgabe: Kopiere eine Textdatei von einem Verzeichnis in ein anderes. L\u00f6sung der Kollegen: \u00d6ffne die Quelldatei A, \u00f6ffne die Zieldatei B und kopiere den Inhalt zeilenweise von A nach B. Vom Aufwand her fragw\u00fcrdig, aber macht zumindest theoretisch das was es soll. Zur Sicherheit haben dann gleich noch vier Kollegen Review gemacht, [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[2],"tags":[],"_links":{"self":[{"href":"https:\/\/www.domaratius.de\/blog\/wp-json\/wp\/v2\/posts\/2098"}],"collection":[{"href":"https:\/\/www.domaratius.de\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.domaratius.de\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.domaratius.de\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.domaratius.de\/blog\/wp-json\/wp\/v2\/comments?post=2098"}],"version-history":[{"count":0,"href":"https:\/\/www.domaratius.de\/blog\/wp-json\/wp\/v2\/posts\/2098\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.domaratius.de\/blog\/wp-json\/wp\/v2\/media?parent=2098"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.domaratius.de\/blog\/wp-json\/wp\/v2\/categories?post=2098"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.domaratius.de\/blog\/wp-json\/wp\/v2\/tags?post=2098"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}