Facebook
Twitter
Google+
Kommentare
31

„Buchtipp“ – PHP Quick & Dirty

Lange musste ich überlegen, wie ich das Buch von Marcus Straßer ankündigen werde. Meine Erwartungen waren wirklich gut, denn unter dem Titel PHP Quick & Dirty habe ich mir ein schön provokatives Buch vorgestellt, dass erklärt wann man mit gewissen Hacks seinen Code doch noch ein Stück schicker bekommt. Obwohl eigentlich habe ich keine Ahnung, was ich mir vorgestellt habe. Ich war eben neugierig und freudig gespannt.

Beim Lesen des Buches standen mir leider oft die Haare zu Berge. Ich habe selten so ein Buch gelesen. Dummerweise bin ich kein Mensch, der gerne Bücher zerreißt, aus diesem Grund habe ich gedacht, ich lasse den Autor das selbst übernehmen. Ich habe mir mal ein paar Zitate aus dem Buch genommen, die ich euch präsentieren will. Ich denke, danach habt ihr einen ganz guten Eindruck der Lektüre.

41iw623WsrL._SL500_AA300_
… Klassen sind eine feine Sache, aber sie lohnen sich eigentlich erst dann, wenn Sie wirklich vorhaben, ihre Funktionen an zahlreichen unterschiedlichen Stellen in Ihrer Programmierung zu verwenden …
Auch wenn sich mächtige Entwicklungsumgebungen, also große IDE-Programme […] nur selten für das schnelle und effiziente Arbeiten eignen … (a.d.R. gemeint war z.B. Eclipse)

Wann immer sie Daten sammeln oder ausgeben wollen, sollten sie sich frage: Kann ich das nicht als Array machen?

Copy & Paste und Search & Replace sind Ihre Freunde. So viel wie möglich zu kopieren und einzufügen ist kein Zeichen eines schlechten Programmierstils, sondern ein wichtiges Mittel zum effektiven Programmieren …

Und noch ein Stück Source Code:

<b>Die neusten Einträge</b>
<?  $sql = "SELECT entry_id, entry_title FROM entries ORDER BY entry_date";
  $teaser_entries = $db->query( $sql );
  if ( count( $teaser_entries ) > 0 ) foreach ( $teaser_entries as $teaser_entry )
  {
?>
    <?= $db->str_unesc( $teaser_entry['entry_title']; ?> <br />
<?
  }
?>
entry_title

Keine Ahnung, ob ihr bei den Sätzen auch eine Gänsehaut bekommt, so wie ich. Falls nicht, könnt ihr das Buch gerne kaufen. Ansonsten lasst die Finger von.

Über den Autor

Nils Langner

Nils Langner ist der Gründer von "the web hates me" und auch der Hauptautor. Im wahren Leben leitet er das Qualitätsmanagementteam im Gruner+Jahr-Digitalbereich und ist somit für Seiten wie stern.de, eltern.de und gala.de aus Qualitätssicht verantwortlich. Nils schreibt seit den Anfängen von phphatesme, welches er ebenfalls gegründet hat, nicht nur für diverse Blogs, sondern auch für Fachmagazine, wie das PHP Magazin, die t3n, die c't oder die iX. Nebenbei ist er noch ein gern gesehener Sprecher auf Konferenzen. Herr Langner schreibt die Texte über sich gerne in der dritten Form.
Kommentare

31 Comments

  1. Wow! Ein weiteres Beispiel, warum ich den getürkten Rezensionen beim großen Fluss nicht vertraue. Dort ist die Bewertung „etwas“ anders ausgefallen: Durchschnittliche Kundenbewertung 5.0 von 5 Sternen (5 Kundenrezensionen)

    Auf der anderen Seite hält das Buch ja, was es verspricht: PHP Quick & Dirty! 😉

    Reply
  2. Ich frage mich, ob Sachbücher nicht manchmal von anderen Sachkundigen korrekturgelesen werden? Offenbar nicht.
    Können wir noch mehr Zitate bekommen, die sind echt gut!

    Reply
  3. Q’n’D. In der Tat.

    Vor allem das Codebeispiel.
    Das unten in der genial verpackten Echo- Ausgabe (mit ekligem <?=) hinter str_unesc() die Klammer zu fehlt, ist wahrscheinlich auch so richtig, oder? 🙂

    Waldmannsheil, für keine 10€ würde ich mir das Ding kaufen.

    Reply
  4. Hallo,

    du hattest vor längerer Zeit mal in einem Post das Buch angekündigt. Ich habs mir dann in der Buchhandlung mal angeschaut. Einige Passagen fand ich ganz interessant, aber der Großteil hat mich auch, sagen wir mal überrascht 😉

    Ich finde das Buch besonders für Anfänger gefährlich, da der Abschnitt über Copy&Paste echt logisch klingt. Jedenfalls wenn man keine praktische Erfahrung hat 😉 Nach 2 Jahren PHP programmieren würde ich nie Copy&Paste machen und auch sonst jedem davon abraten. Das hat noch nie fehlerfrei funktioniert und meistens sind diese Fehler dann auch noch äußert schwer zu finden 🙁

    Kleine Nebenbemerkung noch über deinen Artikel über Code Smells im aktuellen PHP-Magazin. Sehr interessant, aber ich hätte mehr praktische Beispiele zum nachmachen gewünscht. Also konkrete Benutzung der Tools, etc.

    Alex

    Reply
  5. Mal eine andere Frage: Könnt ihr für einen PHP-Anfänger und nicht-Programmierer (lediglich html und css-Kenntnisse) eine gute PHP-Einsteigerlektüre empfehlen? Danke!

    Reply
  6. Kein wunder das PHP teils so einn miesen ruf hat, bei solchen Büchern 🙁

    Das errinert mich an das Barcamp Salzburg wo auch die ganzen Bücher in augenschein genommen wurden, und böseste sachen entdeckt wurden. ein buch hatte alles auf deutsch übersetzt inklusive der pdo methoden namen 😀

    Reply
  7. Bei dem Titel kann man sich gar nicht über das Buch ärgern, denn es hat das erfüllt, was man davon erwartet hat, denn schnelle Lösungen bekommt man vor allem dann, wenn man nicht nachdenkt – ist doch klar, dass da kein sauberer Code entsteht.

    Die einzige Frage, die ich mir stelle: Meint er das ernst? Wenn ja, dann ist es schon zu traurig, um sich darüber zu amüsieren…

    Reply
  8. Naja… das Buch erfüllt halt was es verspricht, ist doch auch was oder??

    Unglaublich, wie kann man solche Blindheit auch noch in ein Buch drucken? Es gibt aber sicher viele Leute die das unterstützen… habe schon genug von diesem Typ kennengelernt. Traurig aber wahr. Da scheidet sich die Spreu vom Weizen!

    Reply
  9. Also soweit ich das nach einem kurzen durchstöbern in der Buchhandlung beurteilen kann, lernt man in dem Buch wirklich wie man „quick und dirty“ programmiert. Und da gehört Copy & Paste und Search & Replace nunmal dazu…

    Reply
  10. Da kann ich nur wieder meinen Lieblingsspruch platzieren. Die Wahrheit liegt vermutlich irgendwo dazwischen. Ich kenne einige Riesenprojekte, denen ein wenig mehr Quick and Dirty ganz gut täte, aber das was Deine Zitate andeuten, macht mir auch Gänsehaut.

    Eine gute IDE ist selbst bei Quick and Dirty-Projekten ein Mehrgewinn, daher kann man die Aussage bzgl. der IDE getrost in die Tonne kloppen.

    Schön also, dass Du „Buchtipp“ in Anführungszeichen festhälst. So ein Buch dürfte indes fatal sein für Programmier-Anfänger.

    Reply
  11. Ich verstehe nicht, warum ihr euch alle über das Buch aufregt. „Quick & Dirty“ und „schnelles Programmieren“ sagt doch, worum es in dem Buch geht. Seinen Zweck scheint es auch zu erfüllen, nämlich dem Leser wie angepriesen beizubringen, „auf die Schnelle zu programmieren“.

    Warum regt man sich denn nun als Softwaretechniker über das Buch auf? Dass es mit gutem Softwaredesign nichts am Hut hat, hätte ich beim angepriesenen „dreckigen“ Programmierstil auch nicht erwartet.

    Reply
  12. Ich weiß ja nicht ob eine IDE so einen großen Mehrgewinn bei sehr schnell programmierten Projekten mit sich bringt. Es dauert teilweise länger bis diese geöffnet ist als dass man zum Copy & Paste programmieren benötigt^^

    Reply
  13. @Lukas:

    Ich finde, das genau solche Programmierbücher den Anfänger derart schädigen können. Meine Frage ist, warum es für die Nische Q’n’D in Softwareprogrammierung überhaupt Bücher gibt? Den Bereich „Quick“ kann man mit langjähriger Erfahrung optimieren, den Bereich „Dirty“ sollte man überhaupt erst gar nicht versuchen zu erklären.

    Ich kenne Programmierer, ‚deren Lieblingsaufgabe‘ es beim Programmieren ist, fertigen Code zu kopieren und einzufügen, und JEDESMAL, JEDES VERDAMMTE MAL, muss ich mich dann mit den Bugs rumschlagen und sie ausmerzen.

    So ist meine Ansicht.

    Reply
  14. @stietze

    Wie man so ein Buch schreiben kann, ist mir allerdings auch ein Rätsel – möglichst schnell und einfach „drauf los“-Programmierung führt selten zu guten Ergebnissen.

    Der Titel scheint jedoch treffend zu sein. Wer als PHP-Anfänger in den Laden geht und die Auswahl zwischen einem „Quick & Dirty“-Buch und einem ordentlichen PHP-Standardwerk hat, der muss selbst wissen, was er möchte.

    Reply
  15. @Nils: Wie dick ist das Buch? Also nicht in Seiten, sondern in Zentimetern… vielleicht taugt es ja als Türstopper, oder um es unter ein wackeliges Tischbein zu klemmen…

    Reply
  16. Wenn man etwas mit einem array erledigen kann, ohne treudoof sich in einer klasse zu verkünsteln, dann muss das noch nichtmal dirty sein. und wenn schon, man kann später immer noch refaktorisieren. das ist wie wenn man ne skizze zeichnet – nur das mann keine zeit verschwendet den bleistift in die hand zu nehmen (falls hier jemand damit noch arbeitet).

    also erst denken, bevor man sich einen auf sein eigenes können per kommentar runterholt. krtik ist sicherlich berechtig, in Grauzonen aber besonders schwierig.

    Reply
  17. @duck:
    1. PHP & HTML vermischt (lassen wir aber mal durchgehen, weil Codebeispiel und daher vielleicht sogar hilfreich, damit einem der Kontext klarer wird)
    2. <?= als Shorthand für <?php echo … sowie <? statt <?php ist generell nicht empfehlenswert, da diese je nach PHP-ini Einstellung nicht erlaubt sind (wobei man bei Webspace oft kein Zugang zu der PHP-ini hat, siehe dazu die short_open_tag Direktive).
    3. Kein Code ident 🙂
    4. Wenn im SQL-Statement schon nur die benötigten Felder ( da fehlen die Klammern vom if-Statement, also if (…) { foreach (…) { … } }
    6. Statt wird benutzt

    Reicht Dir das? Klar, gewisse Punkte sind halt nach meinem persönlichen Code-Stil falsch, darüber lässt sich streiten.

    Grüsse

    Reply
  18. @David Thalmann

    Als Argument für ein Schlechtes Buch, reicht es mir nicht. Bin kein PHP Programmierer. Für mich klingt das ehr nach schlechtem Programmierstil. Was zum Teil, ich nenne es mal schlechtem „Design“ an PHP liegt.
    Jeder macht es wie er will und es gibt zu viele „lasche“ Regeln.
    Dazu kenne ich kein Buch, wo es keine Fehler oder schlechte Beispiele gibt!

    Viel schlimmer finde ich das ein Verlag ein Buch als „Know-how ist blau“ herausgibt. Dabei ist er ehr ein Grundlagen BUch das EINFACHE Planen von PHP Projekten darstellt.

    Reply
  19. @duck In allen Punkten geb ich dir recht. Nur: ich glaube Nils wollte nicht nur wegen dem Codebeispiel das Buch „anprangern“, sondern wegen Sätzen wie „Copy & Paste ist gut“, „IDE’s eignen sich nur selten zum Produktiven arbeiten“ und „Klassen sind eine feine Sache, aber lohnen sich meist nicht“.

    Lehrbücher sollten einen guten Programmierstil vermitteln, ein Art „Vorbild“ sein. Das was da proklamiert wird, ist in meinen Augen einfach nur falsch.

    Reply
  20. ich bekomme eher gänsehaut und essensauswurf beim lesen solcher rezensionen von irgendwelchen realitätserschwerern. das es das buch überhaupt gibt ist lobenswert und natürlich macht copy&paste sinn. es ist zwar nicht besonders gut zu lesen aber trotzdem ein dankenswertes unterfangen. und für jemanden, dem bei dem begriff klassen und ide nicht unbedingt einer abgeht genau richtig, um eine webseite möglichst noch in diesem leben fertig zu kriegen.

    Reply
  21. So ein Buch muss natürlich auch das halten, was der Titel verspricht. Wenn es erklären soll, wie man in PHP Quick & Dirty programmiert, ist dieses Code-Beispiel sicherlich ein Paradebeispiel für Applikationen, die man am Besten nur einmal baut und dann nie wieder.

    Kommentare wie der von jahu zeigen mir, dass es definitiv auch Abnehmer für solche Praktiken gibt. Wenn das Buch also erklären soll, wie man möglichst schnell „zum Ziel“ kommt, klingt das alles doch sehr sinnvoll 🙂

    Aber …
    Hat man wirklich ein Projekt was man einmal baut und dann nie wieder anfasst? Hat man wirklich ein Projekt, dessen Code man nur selbst verstehen muss (und ist man „selbst“ noch der selbe „selbst“ wie in 2 Jahren später?). Ist es immer eine gute Idee einfach MVC links liegen zu lassen?
    Wenn ja, fände ich es interessant von diesen Projekten zu hören. Meiner Erfahrung nach, gibt es diese nämlich nicht. Und gerade diese, die man am schnellsten und in QND-Style programmiert hat sind – nach Murphys Gesetz – genau diese, die Jahre später nochmal Updates vom Kunden verlangen.
    Dann muss man sich nur die Frage stellen, habe ich jetzt – auf die Sicht von x > 2 Jahren im Endeffekt mit meiner Lösung ohne IDE, ohne MVC, ohne Denken, ohne Kommentare, mit viel Copy n Paste und komplett ohne Klassen tatsälich mehr Zeit gespart? Und was mache ich beim nächsten Update?

    Wenn das im Buch klar würde, fände ich, wäre es ein gutes Buch (geht leider aus Deiner Rezension nicht ganz hervor). Denn dann wäre es ein Buch welches sagen würde: QND: ja! … aber …

    Reply

Leave a Comment.

Link erfolgreich vorgeschlagen.

Vielen Dank, dass du einen Link vorgeschlagen hast. Wir werden ihn sobald wie möglich prüfen. Schließen