Re: Joomla! Oder wie Mirgation nicht aussehen sollte
Von: Niels Braczek (nbraczek@freenet.de) [Profil]
Datum: 01.07.2008 10:56
Message-ID: <g4cr9k$kt7$03$1@news.t-online.com>
Newsgroup: de.comp.lang.php.misc
Datum: 01.07.2008 10:56
Message-ID: <g4cr9k$kt7$03$1@news.t-online.com>
Newsgroup: de.comp.lang.php.misc
Torsten Zühlsdorff schrieb: > Niels Braczek schrieb: > >> Komponenten verwenden Joomla! als Framework. Insofern gibt es da für >> diese Art von Extensions keinen Unterschied. Die beiden anderen Formen - >> Plugins und Module - haben strenger definierte Schnittstellen. > > Gibt es eigentlich einen Mechanismus gleich welcher Art, der darauf > achtet, dass diese nur die definierten Schnittstellen nutzen? Nein, das nicht; Module und Plugins werden insofern "kontrolliert", dass sie innerhalb von Funktionen aufgerufen werden, also (theoretisch) nur begrenzten Zugriff auf Dinge außerhalb haben. >> Zu 1 und 3 stimme ich dir zu; bei 2 kann ich das nicht, weil ich nicht >> weiß, was du unter "weite Teile" verstehst und welche Anforderungen du >> an die Inline-Doku stellst. > > "Weite Teile" bedeutet bei mir in diesem speziellen Fall einfach ein > Großteil dessen, was ich rein zufällig geöffnet habe - etwa 15 Dateien. > Der Rest war Induktion. Ok. > Meine typische Anforderungen an Inline-Doku: > - vernünftige Erklärung der Klasse > - vernünftige Erklärung der Methoden (ink. Parameter, Rückgabewerten > usw., was keine Beschränkung auf die Datentypen sein soll) Einverstanden. > - eine Prefixierung von Variablen, um auf ihren Datentyp schließen zu können Das ist Geschmackssache; ich mag das gar nicht. Ich finde, das stört die Lesbarkeit des Codes erheblich. Allerdings verstehe ich die Motivation dafür, das einzusetzen. > - eine gute Benennung von Variablen, Methoden, Klassen und Konstanten > - eine ordentliche Einrückung Das finde ich ist im Großen und Ganzen gegeben. Es gibt nicht viele Stellen, an denen gegen den Styleguide verstoßen wird; was irgendwie fehlt, ist die (Nutzung der) Möglichkeit, die Einhaltung des Styleguides zu prüfen und ggf. durch Umformatierung zu erzwingen. >> Jeder Patch wird von wenigstens drei Leuten getestet, bevor er >> freigegeben wird. Das ist zwar nicht so gut wie Unit-Tests, aber >> durchaus geeignet, die Funktionalität des Codes zu gewährleisten. > > Das hängt ganz stark von den Testern an sich ab. ;) > > Außerdem sind - meiner persönlichen Meinung nach - 3 Tester bei einer > Software, die unter einer Hunderschaft an Kombinationen von Umgebung und > Konfiguration laufen kann, einfach nicht genug. Ich teste unter Linux und Windows, jeweils mit 4 PHP-Versionen. Ich mache das meist mit Skripten, die den Fehler mit der Fassung vor der Behebung provozieren. Das sind zwar keine Unit-Tests, aber das funktioniert ganz gut. Diese Vorgehensweise hat übrigens die Joomla!-Crew zu den Unit-Tests inspiriert. >>> Ich weiß, >>> - dass verschiedene Joomla! Releases einige dutzend, manchmal sogar weit >>> über 100, Bugfixes und Änderungen hatten >> >> Das ist eher normal und gilt wohl für so ziemlich jedes Projekt. > > Normal != Gut. Mal abgesehen davon, dass es überhaupt so viele Bugs > gibt, ist das nicht sehr hilfreich. Die Gefahr bei einem Upgrade einen > neuen Bug zu erliegen, ist deutlich zu hoch. "Viele Bugs" könnte ja auch bedeuten, dass aufgrund der Gründlichkeit der Community besonders viele Ungereimtheiten gefunden werden. Allerdings kann ich das nicht mit Fakten unternmauern ;-) > Auch erschwert es bei einem > neu auftretenden Bug die Suche nach dem Fehler - schließlich gibt es > über 100 Änderungen. Und ich bezweifle sehr stark, dass automatisierte > Fehlersuchalgorithmen verwendet werden. Da zweifelst du wahrscheinlich richtig. Zumindest habe ich nichts Gegenteiliges gehört. Mit der Fehlersuche in Joomla! habe ich allerdings nie Schwierigkeiten gehabt - im Gegensatz zu der in manchen Erweiterungen. >> Logisch. Mit Bugfixes *können* Bugs auftauchen. Ohne sind da mit >> Sicherheit welche. Was soll das also aussagen? > > Das die Wahrscheinlichkeit neuer Bugs mit der Anzahl der Bugfixes steigt > und es sinnvoller ist, weniger Bugs, dafür noch besser getestet, zu > beheben. Oder grundlegend über den Entwicklungsprozess nachzudenken - > aber das ist bei Open-Source-Projekten immer außerordentlich schwer. Das leuchtet mir nicht ein. Warum soll es besser sein, ein einfaches Problemchen nicht mal eben zu lösen, sondern es von Release zu Release mitzuschleppen? Selbst wenn (was bisher eher selten vorkam) so ein Fix nicht (ordentlich) funktioniert, ist damit kein neuer Bug hinzugekommen. >> Dass die Zahl der Bugs aber ständig sinkt, sieht man, wenn man den >> Tracker beobachtet. Also kann die Vorgehensweise so verkehrt nicht sein. >> Sie kann durch Unit-Tests noch verbessert werden, und das wird ja auch >> getan. > > Ihr kennt die absolute Zahl der Bugs? ;) Sicher, sie ist PI/E mal so groß wie die Zahl der Einträge im Tracker ;-) >>> - Extensions setzen auf den Kern auf >> >> Gib mir das bitte nochmal etwas verboser. Ich bin mir nicht sicher, was >> du damit meinst. > > Ich habe dich nur zitiert. :P Du hast behauptet, dass Extension zum Teil > direkt auf den Joomla!-Kern aufsetzen. Zumindest nicht mit dem Begriff "auf den Kern aufsetzen". Ich verstehe nicht, was du mit diesem Begriff meinst; so wie ich ihn verstehe, kann ich daran nichts Verkehrtes finden. >>> Ich >>> könnte auch bemerken, dass es keine Nomenklatur gibt. >> >> Was meinst du damit? Eine Namenskonvention gibt es: >> http://docs.joomla.org/Coding_style_and_standards#Naming_Conventions > > Ok. Dann verbessere ich mich auf: Die Namenskonvention sieht keine > Variablenprefixierung vor. Ich persönlich empfinde es als > außerordentlich wichtig, den Datentyp am Variablennamen ablesen zu können. Ich finde Konstrukte wie bolState grausam; ich bevorzuge isConnected - nur um mal ein Beispiel zu nennen, aus einer Erweiterung, die ich gerade nutzbar mache. >>> Oder das an vielen >>> Stellen im Quelltext Konstanten hätten verwendet werden sollen. >> >> Beispiel? > > $Id: application.php 9764 2007-12-30 07:48:11Z ircmaxell $ > > Zeile 154: > [..] user->get('gid') < '23' [..] > > Da die gid (?) "23" offensichtlich eine Besonderheit ist (Verschwörung! > ;) ), fehlt eindeutig die Erklärung, warum dem so ist. Die > Methodenbeschreibung sagt lediglich "Display the application." - der > Quellcode enthält keine weitere Beschreibung. Wofür steht also 23? > Das ist ein typischer Fall von bösen[tm] Zahlen im Quellcode. Stimmt. ADMINISTRATOR wäre sprechender. Auf den Bezug zu den Illuminaten war ich noch gar nicht gekommen ;-) >> Das dachte ich ja auch, aber API-Dokumentation und Inline-Dokumentation >> sind nicht identische Begriffe. API-Dokumentation ist vorhanden und kann >> unter docs.joomla.org eingesehen werden. > > Wo ist für dich der Unterschied zwischen API- und Inline-Dokumentation? > Für mich ergibt sich das eine aus dem Anderen. Nicht zwingend. Inline-Dokumentation muss sich nicht (nur) auf das API beziehen. Das API kann unabhängig davon auch extern dokumentiert sein. Aber es ist mir klar, dass im Idealfall die API-Doku so vorliegt, dass eine IDE sie für Hints verwenden kann. Damit ließe sich eine externe Doku auch viel schneller produzieren. Das ist zugegebenermaßen nicht gegeben. MfG Niels -- | http://www.kolleg.de · Das Portal der Kollegs in Deutschland | | http://www.bsds.de · BSDS Braczek Software- und DatenSysteme | | Webdesign · Webhosting · e-Commerce · Joomla! Content Management | ------------------------------------------------------------------[ Auf dieses Posting antworten ]
Antworten
- Christoph Herrmann (01.07.2008 11:17)
- Andreas Baer (01.07.2008 11:43)
- Christoph Herrmann (01.07.2008 12:25)
- Andreas Baer (01.07.2008 13:45)
- Christoph Herrmann (01.07.2008 14:06)
- Andreas Baer (01.07.2008 14:23)
- Christoph Herrmann (01.07.2008 14:34)
- Johannes Müller (01.07.2008 14:46)
- Christoph Herrmann (01.07.2008 14:53)
- Niels Braczek (01.07.2008 17:37)
- Fabian_Möller (01.07.2008 12:30)
- Niels Braczek (01.07.2008 18:13)
- Fabian_Möller (02.07.2008 09:29)
- Niels Braczek (02.07.2008 20:40)
- Fabian_Möller (03.07.2008 09:45)
