{"id":4667,"date":"2015-11-10T15:30:17","date_gmt":"2015-11-10T14:30:17","guid":{"rendered":"http:\/\/gedankentraeger.de\/?p=4667"},"modified":"2015-11-11T08:22:48","modified_gmt":"2015-11-11T07:22:48","slug":"weniger-schlecht-programmieren","status":"publish","type":"post","link":"https:\/\/gedankentraeger.de\/?p=4667","title":{"rendered":"weniger schlecht programmieren."},"content":{"rendered":"<p><a href=\"http:\/\/gedankentraeger.de\/wp-content\/uploads\/2015\/11\/esel.gif\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-4670\" src=\"http:\/\/gedankentraeger.de\/wp-content\/uploads\/2015\/11\/esel.gif\" alt=\"esel\" width=\"149\" height=\"196\" \/><\/a><\/p>\n<p>Bei der Lekt\u00fcre von <a href=\"http:\/\/www.oreilly.de\/catalog\/wenschleprogger\/\">Weniger schlecht programmieren<\/a> von Kathrin Passig und Johannes Jander hat mich immer wieder der Eindruck beschlichen, dass mich die beiden bespitzelt haben, um all meine Fehler im Buch zu verarbeiten. Wie kann es sein, dass mir schon fast alles passiert ist, was sie beschreiben? Vermutlich liegt das einfach nur daran, dass ich unoriginellerweise alle typischen Fehler mache (&#8222;Du bist wie die anderen&#8220;).<\/p>\n<p>Neben der im Gebrauch befindlichen Version von WordPress hatte ich zum Beispiel lange Zeit auch noch eine veraltete Version installiert, die ich komplett vergessen hatte. Erst eine nette E-Mail meines Webhosts machte mich auf die Sicherheitsl\u00fccke aufmerksam. So viel zum Thema &#8222;Auch die Hintert\u00fcr abschlie\u00dfen.&#8220;<\/p>\n<p>Ich habe schon im PHP dieser Website in der produktiven Version herumgehackt und alles zerschossen. Ich hatte zwar ein Backup angelegt, aber aus irgendeinem Grund funktionierte das nicht. Die Seite war eine Weile weg, bis ich im Schwei\u00dfe meines Angesichts zumindest den entscheidenden Fehler gefunden hatte und am Ende war dann nur noch die linke Spalte des Weblogs verschwunden. Die wiederum habe ich ohne professionelle Hilfe auch nicht wiederbekommen.<\/p>\n<p>Das Buch ist voller hilfreicher Hinweise, wie etwa: &#8222;Der Lerneffekt ist gr\u00f6\u00dfer, wenn der andere selbst bemerkt, was es zu verbessern gibt.&#8220; Das stimmt so sehr und erinnerte mich daran, wie mir ein Bekannter zun\u00e4chst bei der Steuererkl\u00e4rung geholfen hat, nachdem ich mich selbst\u00e4ndig gemacht hatte, und er dann irgendwann meinte: &#8222;Den Rest versuch mal alleine. Aber ruf mich an, wenn Du dabei von Wein auf Whiskey umsteigst.&#8220;<\/p>\n<p>~<\/p>\n<p>Gro\u00dfer Vorteil des Buchs: es ist \u00e4u\u00dferst unterhaltsam geschrieben:<\/p>\n<p>&#8222;Der alte Code war nicht nur schwer zu durchschauen, weil sein Autor damals noch schlechter programmierte als heute, sondern auch, weil er viele Sonderf\u00e4lle und Nebenbedingungen abdecken und sich in eine vorhandene Umgebung einpassen musste. Die Hy\u00e4ne, der Nacktmull und die Vogelspinne gelten gemeinhin nicht als gutaussehende Tiere, aber es gibt Gr\u00fcnde f\u00fcr ihr Aussehen.&#8220;<\/p>\n<p>Ich musste dabei sofort an eine Sitzung im Gemeinsamen Bundesausschuss letzte Woche denken. Wir hatten in der vorigen Sitzung im Oktober einige \u00c4nderungen an der Dokumentation zu einer Richtlinie vorgenommen. Nach einer langwierigen Diskussion hatten wir uns dabei auf bestimmte Formulierungen geeinigt, mit denen alle Sonderf\u00e4lle und Nebenbedingungen abgedeckt wurden. Zwei st\u00e4ndige Teilnehmer der Gruppe waren in dieser Oktober-Sitzung aber nicht dabei gewesen und zeigten sich letzte Woche dann sehr unzufrieden mit unseren \u00c4nderungen.<\/p>\n<p>Wir legten die einzelnen Gr\u00fcnde f\u00fcr die \u00c4nderungen dar, was in eine unerfreuliche Reproduktion der Oktober-Diskussion m\u00fcndete. Einerseits konnten die beiden Teilnehmer, die die vorige Sitzung verpasst hatten, anschlie\u00dfend unsere nacktmulligen Formulierungen besser verstehen, andererseits ergab sich aber bei allen Beteiligten eine neue Unzufriedenheit mit dem Text, der daraufhin letzte Woche wiederum nochmals \u00fcberarbeitet wurde. (Man mag sich denken, wie gro\u00df aktuell meine Hoffnung ist, dass g\u00e4nzlich Au\u00dfenstehende unsere Vorgaben zur Dokumentation am Ende verstehen, geschweige denn sch\u00e4tzen werden.)<\/p>\n<p>~<\/p>\n<p>Dieses Problem h\u00e4ngt direkt zusammen mit der Wichtigkeit des Kommentierens. Auch hierzu gibt das Buch einen hilfreichen Tipp: &#8222;Als Faustregel kann man sich daran orientieren, dass ein Kommentar alles enthalten sollte, was man auch seinen Kollegen sagen w\u00fcrde, ginge man mit ihnen den Code [den Text] durch.&#8220;<\/p>\n<p>Im Gemeinsamen Bundesausschuss werden die Richtlinien in den sogenannten Tragenden Gr\u00fcnden kommentiert. Die Tragenden Gr\u00fcnde erfreuen sich \u2013 weitestgehend zu unrecht, wie ich finde \u2013 keiner gro\u00dfen Beliebtheit. W\u00e4hrend der Verhandlungen muss man zwar vorsichtig sein, dass einem nichts Wichtiges von der Richtlinie in die Tragenden Gr\u00fcnde verschoben wird, denn nur die Richtlinie ist rechtlich bindend, und in den Tragenden Gr\u00fcnden werden Dinge daher gerne beerdigt. Aber gerade wenn ich mich mit Richtlinien auseinandersetze, an denen ich selbst nicht mitgearbeitet habe, hilft mir das Lesen der Tragenden Gr\u00fcnde. Und aus dieser Erfahrung heraus versuche ich, mich beim Verfassen von Tragenden Gr\u00fcnden an obige Faustregel zu halten.<\/p>\n<p>~<\/p>\n<p>Worauf ich eigentlich hinaus will: In &#8222;Weniger schlecht programmieren&#8220; geht es nur vordergr\u00fcndig um das Programmieren, in Wahrheit handelt es sich um einen hervorragenden Ratgeber f\u00fcr alle Lebenslagen. Hier meine Lieblingss\u00e4tze:<\/p>\n<ul>\n<li>Man braucht die Bereitschaft, geduldig Dinge nicht zu verstehen.<\/li>\n<li>Es hilft, sich grunds\u00e4tzlich von der Annahme zu trennen, man k\u00f6nne irgendetwas auf Anhieb entscheiden.<\/li>\n<li>Wissen \u00fcber ein Thema qualifiziert einen noch nicht automatisch dazu, es zu vermitteln.<\/li>\n<li>Interesse ist ein scheues Tier, es kommt zum Menschen entweder freiwillig oder gar nicht.<\/li>\n<li>F\u00fcr abstrakte Prinzipien ist am Ende immer noch Zeit.<\/li>\n<li>Es ist gar nicht so leicht, nur das zu protokollieren, was man tats\u00e4chlich sehen kann.<\/li>\n<li>Metaphern f\u00fchren besonders leicht zu Verwirrung und Missverst\u00e4ndnissen.<\/li>\n<li>Es ist ein Irrglaube, anzunehmen, man k\u00f6nne sich sofort wieder in die Aufgabe hineindenken und zus\u00e4tzlich besser sein als beim letzten Mal.<\/li>\n<li>Am Ende einer Fehlersuche wird man h\u00e4ufig feststellen, dass die Welt eigentlich von Anfang an voll war mit riesigen Hinweisschildern: &#8222;Zum Fehler bitte hier entlang!&#8220;<\/li>\n<li>Die L\u00fccke zwischen zwei \u00dcberzeugungen ist ein fruchtbarer Zustand. Aber es ist ungem\u00fctlich in diesem Zwischenbereich, und die Verlockung ist gro\u00df, so schnell wie m\u00f6glich wieder den vermeintlich festen Boden einer neuen \u00dcberzeugung zu erreichen.<\/li>\n<li>Jede Tatsache, die nicht unseren Erwartungen entspricht, vermittelt uns eine wichtige Botschaft, n\u00e4mlich, dass wir das Problem entweder noch nicht wirklich verstanden haben oder uns sogar eine ganz falsche Vorstellung davon machen.<\/li>\n<li>Wir brauchen einen vern\u00fcnftigen Umgang mit unserer eigenen Fehlbarkeit und der anderer Menschen. Alles kann immer falsch sein und ist es meistens auch.<\/li>\n<li>Nicht nur im Internet ist es h\u00e4ufig am kl\u00fcgsten, aufkommenden Streit durch Nichtbeachtung wieder einschlafen zu lassen \u2013 jede Antwort facht die Flammen nur weiter an, bringt Sie Ihrem Ziel nicht n\u00e4her und zehrt an Ihren Nerven und Ihrer Zeit. Zusatzvorteil: Schon nach einigen Jahrzehnten der \u00dcbung erlangen Sie so die Gem\u00fctsverfassung eines buddhistischen Weisen.<\/li>\n<\/ul>\n<p>~<\/p>\n<p>M\u00f6glicherweise ermutigt mich das Buch sogar, wieder ins PHP dieser Seite einzusteigen und ein paar gew\u00fcnschte Ver\u00e4nderungen an der linken Spalte vorzunehmen, zum Beispiel das Format des Archivs zu \u00e4ndern. Aber: &#8222;Das mache ich dann sp\u00e4ter, wenn ich mal mehr Zeit habe!&#8220;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Bei der Lekt\u00fcre von Weniger schlecht programmieren von Kathrin Passig und Johannes Jander hat mich immer wieder der Eindruck beschlichen, dass mich die beiden bespitzelt haben, um all meine Fehler im Buch zu verarbeiten. Wie kann es sein, dass mir schon fast alles passiert ist, was sie beschreiben? Vermutlich liegt das einfach nur daran, dass [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[12],"tags":[],"class_list":["post-4667","post","type-post","status-publish","format-standard","hentry","category-buecher"],"_links":{"self":[{"href":"https:\/\/gedankentraeger.de\/index.php?rest_route=\/wp\/v2\/posts\/4667"}],"collection":[{"href":"https:\/\/gedankentraeger.de\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/gedankentraeger.de\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/gedankentraeger.de\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/gedankentraeger.de\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=4667"}],"version-history":[{"count":4,"href":"https:\/\/gedankentraeger.de\/index.php?rest_route=\/wp\/v2\/posts\/4667\/revisions"}],"predecessor-version":[{"id":4695,"href":"https:\/\/gedankentraeger.de\/index.php?rest_route=\/wp\/v2\/posts\/4667\/revisions\/4695"}],"wp:attachment":[{"href":"https:\/\/gedankentraeger.de\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=4667"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/gedankentraeger.de\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=4667"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/gedankentraeger.de\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=4667"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}