Ich bin jetzt auch hier…

Hier geht es um die Programmierung von Opencaching.de - User mit Erfahrungen im Bereich PHP, MySQL, HTML, JavaScript, CSS werden hier ständig gesucht
mbirth

Hallo,

nachdem mich Schrottie heute wieder mit seinem Hundeblick indirekt gebeten hat, doch mal über die Entwicklung an OCDE nachzudenken, hab ich jetzt mal den aktuellen Git-Stand auf meinem Homeserver zum Leben erweckt. Den DB-Dump und eine kleine Anleitung hatte ich ja schon im November von mic@ bekommen.

Jetzt hab ich noch ein paar allgemeine Fragen zum Programmierstil:

Für welche PHP-Version soll entwickelt werden? Ist OCDE schon auf PHP 5.3 (Stichwort: Namespaces)?

Spricht etwas dagegen, neuen Code und Code, den man anfässt, nach PSR-2 zu formatieren? Gibt es schon allgemeine Coding-Guidelines?

Spricht etwas dagegen, das HTML, was mir begegnen wird, soweit wie möglich von xHTML auf HTML5 umzustellen?


Und gibt es einen IRC-Channel oder sowas, wo ihr Entwickler so rumhängt? Wo man auch mal ein paar dumme Fragen stellen kann, ohne, dass die gleich auf ewig in ein Forum gebrannt sind? ;)
Schrottie

Hundeblick? Ich doch niemalsnienicht! :)

Einen IRC Chanel gibt es zwar, aber der wird weniger genutzt. ~> #opencaching.de@freenode

Ansonsten ist heute abend etwas Smalltalk via Teamspeak angesagt: ts.opencaching.de mit Passwort "occhat".
Schrottie

Übrigens: Surrogard, der sich rund um die Uhr im IRC-Channel aufhält, hat auch schon ein wenig an OC geschraubt, zog sich dann aber aus familiären Gründen zurück. Vielleicht lässt er sich ja auf diesem Wege reaktivieren... :D
Benutzeravatar
bohrsty
Administrator
Administrator
Beiträge: 1367
Registriert: 30.03.2012, 22:54

[quote="mbirth"]
Hallo,

nachdem mich Schrottie heute wieder mit seinem Hundeblick indirekt gebeten hat, doch mal über die Entwicklung an OCDE nachzudenken, hab ich jetzt mal den aktuellen Git-Stand auf meinem Homeserver zum Leben erweckt. Den DB-Dump und eine kleine Anleitung hatte ich ja schon im November von mic@ bekommen.
[/quote]

moin, herzlich willkommen und vielen dank fuer deine bereitschaft hier etwas zu bewegen...
obwohl ich hier eigentlich nicht primaer entwickler bin, versuche mich mal an den antworten soweit ich etwas dazu sagen kann...

[quote="mbirth"]
Jetzt hab ich noch ein paar allgemeine Fragen zum Programmierstil:

Für welche PHP-Version soll entwickelt werden? Ist OCDE schon auf PHP 5.3 (Stichwort: Namespaces)?
[/quote]

wenn die frage darauf abziehlt welche php-version auf den server laeuft, dann ist die antwort 5.3... ;)
ob sich das alles auch im code wiederfindet, oder ob wir evtl. nur nie auf eine deprecate warnung gestossen sind, kann ich dir nicht sagen...

zum stichwort namespaces: wir haben uns (ich hatte mich irgendwann mal mit Peter (following) darueber unterhalten) darauf geeinigt sie zu ignorieren, verwendet werden sie meines wissens eh nicht...

sollten sie verwendet werden wollen ::), bitte entsprechend dokumentieren, so dass auch andere (einsteiger und "nicht-entwicker" wie ich) das konzept verstehen koennen...

[quote="mbirth"]
Spricht etwas dagegen, neuen Code und Code, den man anfässt, nach PSR-2 zu formatieren? Gibt es schon allgemeine Coding-Guidelines?
[/quote]

es gibt ein paar grundlegende, die sich aus den bisherigen arbeiten der entwickler abgeleitet haben (http://wiki.opencaching.de/index.php/Entwicklung/Stil)

im schnellen ueberblick unterscheiden sie sich vor allem im klammersetzungsstil der kontrollstrukturen (der oc-code verwendet hauptsaechlich den allman-stil), die bestehenden sollten wohl schon beibehalten werden, alles andere kann gerne aus erfahrung ergaenzt werden...

[quote="mbirth"]
Spricht etwas dagegen, das HTML, was mir begegnen wird, soweit wie möglich von xHTML auf HTML5 umzustellen?
[/quote]

ich kann nicht abschaetzen, was die folgen daraus waeren... aber ich meine, dass genau dieser punkt ein thema heute abend im oc-talk ist (da sind wohl gaeste die sich mit html(5) und css etc. auskennen und sich mal ueber ein neues frontend unterhalten (http://www.opencaching.de/viewcache.php?cacheid=169479), vielleicht einfach mal vorbeischauen...

[quote="mbirth"]
Und gibt es einen IRC-Channel oder sowas, wo ihr Entwickler so rumhängt? Wo man auch mal ein paar dumme Fragen stellen kann, ohne, dass die gleich auf ewig in ein Forum gebrannt sind? ;)
[/quote]

es gibt zwar einen irc-channel, der ist aber fuer die user...
...und da es nie die menge an entwicklern gab, dass fragen nicht per forum (da sind sie auch gleich fuer leute mit der gleichen frage dokumentiert ;) ), pn oder email klaerbar waren, hatte bisher auch niemand nachgefragt...

falls noch weitere fragen sind, gibt es in den wikis (http://wiki.opencaching.de/index.php/Kategorie:Entwicklung und http://teamwiki.opencaching.de/index.php/Hauptseite#Softwareentwicklung/Hauptseite#Softwareentwicklung) einige info-sammlungen von Peter (u.a. auch der beginn einer code-doku)... ich weiss aber nicht ob du schon zugang zum team-wiki hast, ansonsten hilft dir das noch nicht...
gruss Nils (bohrsty)

Bild
mbirth

[quote="bohrsty"]
zum stichwort namespaces: wir haben uns (ich hatte mich irgendwann mal mit Peter (following) darueber unterhalten) darauf geeinigt sie zu ignorieren, verwendet werden sie meines wissens eh nicht...

sollten sie verwendet werden wollen ::) , bitte entsprechend dokumentieren, so dass auch andere (einsteiger und "nicht-entwicker" wie ich) das konzept verstehen koennen...
[/quote]


Das Prinzip ist im Grund ganz einfach. Pro Namespace kann man identische Klassennamen verwenden. Außerdem kann der Autoloader dadurch (und zusammen mit einer entsprechenden Verzeichnisstruktur) die Dateien leichter finden. Bei Symfony2 kann man sich das angucken - tolle Sache. Ich hab das bei OC auch z.B. in der okapi_settings.php gesehen.



[quote="bohrsty"]es gibt ein paar grundlegende, die sich aus den bisherigen arbeiten der entwickler abgeleitet haben ([url=http://wiki.opencaching.de/index.php/Entwicklung/Stil]http://wiki.opencaching.de/index.php/Entwicklung/Stil[/url])

im schnellen ueberblick unterscheiden sie sich vor allem im klammersetzungsstil der kontrollstrukturen (der oc-code verwendet hauptsaechlich den allman-stil), die bestehenden sollten wohl schon beibehalten werden, alles andere kann gerne aus erfahrung ergaenzt werden...[/quote]Ohne mich jetzt gleich unbeliebt machen zu wollen: Aber mit wem müsste ich alles abstimmen, ob man das nicht langfristig auf PSR-2 umstellen könnte? Der Standard etabliert sich langsam in der PHP-Welt und das bringt z.B. den Vorteil, dass es für etliche Editoren Plugins gibt, die auf Probleme im Programmierstil hinweisen.[quote="bohrsty"]ich kann nicht abschaetzen, was die folgen daraus waeren... aber ich meine, dass genau dieser punkt ein thema heute abend im oc-talk ist (da sind wohl gaeste die sich mit html(5) und css etc. auskennen und sich mal ueber ein neues frontend unterhalten ([url=http://www.opencaching.de/viewcache.php?cacheid=169479]http://www.opencaching.de/viewcache.php?cacheid=169479[/url]), vielleicht einfach mal vorbeischauen...[/quote]Mir kam vor allem in den Sinn, erstmal den DOCTYPE umzustellen und womöglich in Formularen die browsereigene [url=http://forum.opencaching-network.org/http:/eintohtml5.info/forms.html]Validierung[/url] zu nutzen (required-Attribute, min/max, etc.). Den Rest vom HTML würde ich nicht anfassen wollen - nicht, wenn es sich vermeiden lässt jedenfalls.




Ansonsten erstmal vielen Dank für die umfassenden Antworten. Ich werd mich mal durch die Code-Doku wühlen und klein anfangen. Vielleicht schaffe ich es auch, heute Abend im TS vorbei zu schauen. :)
Schrottie

[quote="mbirth"]
Ohne mich jetzt gleich unbeliebt machen zu wollen: Aber mit wem müsste ich alles abstimmen, ob man das nicht langfristig auf PSR-2 umstellen könnte? Der Standard etabliert sich langsam in der PHP-Welt und das bringt z.B. den Vorteil, dass es für etliche Editoren Plugins gibt, die auf Probleme im Programmierstil hinweisen.
[/quote]

Grundsätzlich mit den anderen Entwicklern, die jedoch nicht so reichlich gesät sind. Im Grunde fällt mir da Flopp ein, der aber derzeit auch nicht wirklich Zeit hat und eben bohrsty der auch manchmal am Code werkelt. Dann wollte Mirco noch mitbasteln und dann noch wer - schlagt mich, aber ich habe den Namen vergessen. :(

...wobei natürlich noch die heiß begehrte Position des Entwicklungsleiters zu besetzen ist und der darf dann sogar in solchen Fragen der Bestimmer sein. ;D
dl6hbo

[quote="Schrottie"]
Grundsätzlich mit den anderen Entwicklern, die jedoch nicht so reichlich gesät sind. Im Grunde fällt mir da Flopp ein, der aber derzeit auch nicht wirklich Zeit hat und eben bohrsty der auch manchmal am Code werkelt. Dann wollte Mirco noch mitbasteln und dann noch wer - schlagt mich, aber ich habe den Namen vergessen. :(

...wobei natürlich noch die heiß begehrte Position des Entwicklungsleiters zu besetzen ist und der darf dann sogar in solchen Fragen der Bestimmer sein. ;D
[/quote]

War da nicht noch Christian aka cmanie ?
Schrottie

Stimmt, genau der. :)
Benutzeravatar
4_Vs
Vereinsmitglied
Vereinsmitglied
Beiträge: 3150
Registriert: 18.03.2012, 07:25

Es kommt natürlich auf Deinen zeitlichen Invest an. Wenn Du das langfristig machen möchtest, lässt sich über alles reden - es nützt nur nichts, wenn Du mit etwas anfängst und dann aus zeitlichen Gründen "mittendrin" aufhören musst.

Mak sagte es schon, momentan sind wir ohne Entwickler"führung". Flopp macht sehr viel im Kartenbereich, Christian hat momentan auch wenig Zeit, ist IMHO aber auch eher im Frontendbereich unterwegs, genau wie Mirco und Maik :)

Nils macht bei uns die komplette Technik und springt heldenhaft immer wieder ein.

Wenn Du einen "Plan/Strategie" hast und Dir vorstellen kannst, diese konsequent Stück für Stück umzusetzen, gerne :)

LG
Micha
Whenever I try to plan something, it doesn't seems to work out. So why plan, it only leads to disappointment! (Eddie van Halen)
mbirth

Ich kann noch nicht genau abschätzen, wieviel Zeit ich in Zukunft einbringen kann. Ich fange ab Februar einen neuen Job an, der - im Gegensatz zu meinem bisherigen Job - viel weniger mit Programmieren zu tun hat. Von daher denke ich, dass ich dann nach Feierabend entsprechend mehr Lust haben werde, zu Programmieren (mir fehlt das jetzt nach 2 Wochen Urlaub schon).


Aber: Mein Eindruck vom aktuellen Code ist, dass da gefühlt 70% noch aus PHP4-Zeiten stammen und eben alles per require/include gemacht wird. D.h. ich muss nicht nur wissen, in welcher Datei meine benötigte Funktion drin ist, sondern ich muss auch darauf achten, dass neue Funktionsnamen nicht mit alten kollidieren. Und dann ist da noch der Coding-Stil, der sich "ergeben" hat, wie es scheint, und nicht auf "Zend", "PEAR" oder eben PSR-2 festgelegt wurde. Gerade für Neulinge ist das erstmal eine große Hürde.


Was ich sagen will: Wenn man den Code irgendwann™ mal auf einem etablierten Standard hat - in Sachen Codestil und Klassen (evtl. auch Namespaces) - dann sind Änderungen und neue Features um Längen einfacher zu bewerkstelligen, als momentan. Und das nicht nur für mich.


Mein Plan für's erste - den ich auch persönlich umsetzen würde - wäre, die ganzen Hilfsfunktionen und Include-Dateien Stück für Stück in Klassen (laut PSR-0) zu kapseln, so dass man die per Autoloader laden lassen kann, statt immer die richtigen Dateien includen/requiren zu müssen. (Selbstverständlich würde ich auch alle Aufrufe in den anderen Dateien anpassen, so dass nichts kaputt gemacht wird.) Und dabei kann ich auch gleich den Code kennenlernen. Evtl. kann ich dabei sogar ein paar externe Bibliotheken auslagern und per [url=http://getcomposer.org/]Composer[/url] installieren lassen - damit hat man auch eine einfache Möglichkeit, die externen Libs auf dem aktuellen Stand zu halten und im Fehlerfall kann man auch problemlos wieder die ältere Version auschecken lassen.


Entwicklungsleitung würde ich mir momentan noch nicht zutrauen, da ich das Projekt (noch) zuwenig kenne. Aber darüber lässt sich später nochmal sprechen, wenn sich niemand anderes meldet.  ;)
Schrottie

Markus,  ich habe zwar keine Ahnung von was du da schreibst, aber es hört sich nach einem guten Plan an. :)
Benutzeravatar
pirate77
Large
Large
Beiträge: 1260
Registriert: 17.03.2012, 22:37

[quote="Schrottie"]
Markus,  ich habe zwar keine Ahnung von was du da schreibst, aber es hört sich nach einem guten Plan an. :)
[/quote]
Das geht mir genauso ;)
[url=http://www.opencaching.de/viewprofile.php?userid=152708][img]http://www.opencaching.de/statpics/DE/152708.jpg[/img][/url]
Benutzeravatar
bohrsty
Administrator
Administrator
Beiträge: 1367
Registriert: 30.03.2012, 22:54

[quote="mbirth"]
[quote="bohrsty"]
zum stichwort namespaces: wir haben uns (ich hatte mich irgendwann mal mit Peter (following) darueber unterhalten) darauf geeinigt sie zu ignorieren, verwendet werden sie meines wissens eh nicht...

sollten sie verwendet werden wollen ::) , bitte entsprechend dokumentieren, so dass auch andere (einsteiger und "nicht-entwicker" wie ich) das konzept verstehen koennen...
[/quote]


Das Prinzip ist im Grund ganz einfach. Pro Namespace kann man identische Klassennamen verwenden. Außerdem kann der Autoloader dadurch (und zusammen mit einer entsprechenden Verzeichnisstruktur) die Dateien leichter finden. Bei Symfony2 kann man sich das angucken - tolle Sache. Ich hab das bei OC auch z.B. in der okapi_settings.php gesehen.
[/quote]

ich habe es mal versucht, aber allein schon am deklarieren und "use"en bin ich schon gescheitert ;)

okapi und alles was damit zusammenhaengt, ist ein externes projekt, da werden die namespaces konsequent genutzt...

[quote="mbirth"]
[quote="bohrsty"]es gibt ein paar grundlegende, die sich aus den bisherigen arbeiten der entwickler abgeleitet haben ([url=http://wiki.opencaching.de/index.php/Entwicklung/Stil]http://wiki.opencaching.de/index.php/Entwicklung/Stil[/url])

im schnellen ueberblick unterscheiden sie sich vor allem im klammersetzungsstil der kontrollstrukturen (der oc-code verwendet hauptsaechlich den allman-stil), die bestehenden sollten wohl schon beibehalten werden, alles andere kann gerne aus erfahrung ergaenzt werden...[/quote]Ohne mich jetzt gleich unbeliebt machen zu wollen: Aber mit wem müsste ich alles abstimmen, ob man das nicht langfristig auf PSR-2 umstellen könnte? Der Standard etabliert sich langsam in der PHP-Welt und das bringt z.B. den Vorteil, dass es für etliche Editoren Plugins gibt, die auf Probleme im Programmierstil hinweisen.
[/quote]

unbeliebt machst du dich damit nicht :) du schaffst im endeffekt jede menge arbeit, wenn man dann am ende den gesamten code umgestellt haben will ::)

ich fuer meinen teil muss mich immer umstellen, wenn ich im oc-code was mache, denn ich nehme sonst eigentlich auch den aegypter, also von mir aus koennen wir gerne festlegen, "psr-2 ab sofort verbindlich und wenn jemand "alte" dateien anpasst, dann komplett durchgehen und alles erneuern", dann waere es aber schoen eine vereinfachung der regeln aus dem github-projekt in unserem wiki zu haben, oder? ::)

[quote="mbirth"][quote="bohrsty"]ich kann nicht abschaetzen, was die folgen daraus waeren... aber ich meine, dass genau dieser punkt ein thema heute abend im oc-talk ist (da sind wohl gaeste die sich mit html(5) und css etc. auskennen und sich mal ueber ein neues frontend unterhalten ([url=http://www.opencaching.de/viewcache.php?cacheid=169479]http://www.opencaching.de/viewcache.php?cacheid=169479[/url]), vielleicht einfach mal vorbeischauen...[/quote]Mir kam vor allem in den Sinn, erstmal den DOCTYPE umzustellen und womöglich in Formularen die browsereigene [url=http://forum.opencaching-network.org/http:/eintohtml5.info/forms.html]Validierung[/url] zu nutzen (required-Attribute, min/max, etc.). Den Rest vom HTML würde ich nicht anfassen wollen - nicht, wenn es sich vermeiden lässt jedenfalls.
[/quote]

bei dem thema habe ich leider zu wenig ahnung, aber da die meisten formulare per javascript abgesendet werden, weiss ich nicht ob das ueberhaupt sinnvoll ist...

[quote="mbirth"]
Ansonsten erstmal vielen Dank für die umfassenden Antworten. Ich werd mich mal durch die Code-Doku wühlen und klein anfangen. Vielleicht schaffe ich es auch, heute Abend im TS vorbei zu schauen. :)
[/quote]


[quote="mbirth"]
[...]
Aber: Mein Eindruck vom aktuellen Code ist, dass da gefühlt 70% noch aus PHP4-Zeiten stammen und eben alles per require/include gemacht wird. D.h. ich muss nicht nur wissen, in welcher Datei meine benötigte Funktion drin ist, sondern ich muss auch darauf achten, dass neue Funktionsnamen nicht mit alten kollidieren. Und dann ist da noch der Coding-Stil, der sich "ergeben" hat, wie es scheint, und nicht auf "Zend", "PEAR" oder eben PSR-2 festgelegt wurde. Gerade für Neulinge ist das erstmal eine große Hürde.
[/quote]

der eindruck truegt nicht... angefangen hat das projekt 2003, da war es maximal php4...

[quote="mbirth"]
[...]
Mein Plan für's erste - den ich auch persönlich umsetzen würde - wäre, die ganzen Hilfsfunktionen und Include-Dateien Stück für Stück in Klassen (laut PSR-0) zu kapseln, so dass man die per Autoloader laden lassen kann, statt immer die richtigen Dateien includen/requiren zu müssen. (Selbstverständlich würde ich auch alle Aufrufe in den anderen Dateien anpassen, so dass nichts kaputt gemacht wird.) Und dabei kann ich auch gleich den Code kennenlernen. Evtl. kann ich dabei sogar ein paar externe Bibliotheken auslagern und per [url=http://getcomposer.org/]Composer[/url] installieren lassen - damit hat man auch eine einfache Möglichkeit, die externen Libs auf dem aktuellen Stand zu halten und im Fehlerfall kann man auch problemlos wieder die ältere Version auschecken lassen.
[/quote]

den plan unterstuetze ich voll und ganz (und ganz nebenbei kann man dabei auch die dokumentation entsprechend anpassen/erweitern)!!! :D

[quote="mbirth"]
Entwicklungsleitung würde ich mir momentan noch nicht zutrauen, da ich das Projekt (noch) zuwenig kenne. Aber darüber lässt sich später nochmal sprechen, wenn sich niemand anderes meldet.  ;)
[/quote]

"viel du noch zu lernen hast was vereinsarbeit angeht, mein entwickelnder freund" (um es mal mit meister yodas grammatik zu formulieren), denn im zweifelsfall wird sich kein anderer melden... :P also kannst du nur hoffen, dass dieser satz dem wandelnden forums-archiv mic@ entgangen sein wird, wenn es  mal soweit ist ;)
gruss Nils (bohrsty)

Bild
following

Bevor die nächste Großbaustelle eröffnet wird fände ich es sinnvoll, erst mal die bereits seit Jahren bestehende abzuschließen: [url=http://redmine.opencaching.de/issues/130]Umstellung auf die "lib2"[/url]. Das Mitschleppen des alten Templatesystems und der redundanten alten Library kostet elend viel Entwicklungsaufwand.

"just my 2 cents", ich mache hier eigentlich nicht mehr mit ;)
mbirth

[quote="following"]
Bevor die nächste Großbaustelle eröffnet wird fände ich es sinnvoll, erst mal die bereits seit Jahren bestehende abzuschließen: [url=http://redmine.opencaching.de/issues/130]Umstellung auf die "lib2"[/url]. Das Mitschleppen des alten Templatesystems und der redundanten alten Library kostet elend viel Entwicklungsaufwand.

"just my 2 cents", ich mache hier eigentlich nicht mehr mit ;)
[/quote]


Oh, das hab ich im Hinterkopf. Ich bin dabei, die ganzen Puzzleteile soweit möglich zusammenzuziehen und in dem Zuge auch auf Smarty umzustellen. Auf meinem Testsystem hab ich gestern den Grundstein für Dependency Injection gelegt, so dass man in Zukunft bequemer an die ganzen nötigen Dienste kommt und da auch ganz einfach Dinge umstellen oder z.B. Unit-Tests fahren kann.
Antworten