Hackerboard Wiki HaboBlog
Hackerboard bei Facebook Hackerboard bei Google+ Hackerboard bei Twitter

[HaBo]

 
(Web-) Design und webbasierte Sprachen Tipps & Tricks, Designabgleich, HTML & Javascript, Flash, ASP, PHP, Perl/CGI...

Etwas groesseres Projekt, wie verwalten?

Diskussion: Etwas groesseres Projekt, wie verwalten? im Forum (Web-) Design und webbasierte Sprachen, in der Kategorie Web, Network & Multimedia Palace; Anzeige Hallo liebes HaBo, ich bin momentan dabei, eine etwas groessere Homepage zu erstellen. Es handelt sich um eine themenbasierte ...

Antwort
Alt 27.05.08, 00:43   #1 (permalink)
 
Registriert seit: 11.06.05
snoggo Leistung: Facit NTK
Likes: 0
Standard Etwas groesseres Projekt, wie verwalten?

Anzeige

Hallo liebes HaBo,

ich bin momentan dabei, eine etwas groessere Homepage zu erstellen. Es handelt sich um eine themenbasierte Seite, geplant ist recht viel Inhalt und einer Community. Ich kann leider kaum einschaetzen, wie viele Klicks sie am Tag zu verkraften hat.
Diese Seite soll Funktionen wie ein Newssystem und eine Benutzerverwaltung mit Profilen besitzen.
Seitens Programmieraufwand trau ich mir das Projekt zu, jedoch bin ich nach fast 40kb geschriebenem Code am ueberlegen, ob ich das ganze plaette und nochmal von Vorne anfange.

Mein Code ist zwar nicht der schlechteste, aber professionell ist was anderes. Zum einen will ich die ganze Seite doch objektorientiert gestalten und zum anderen sind mir Zend und Smarty aufgefallen. Bisher trenne ich Markup, Code und Daten mit einer einfachen Funktion, die im Prinzip nur Strings einsetzt ( :] ).

Ob ich wieder bei null beginne haengt von folgenden Fragen ab:
1. Was ist eure Meinung zu Projekten wie Zend oder Smarty bei etwas groesseren Seiten?
2. Welche Erweiterungen wuerdet ihr mir empfehlen?
3. Habt ihr gute Tips/Links fuer die Entwicklung einer komplexeren PHP-Anwendung wie die Homepage? Ich lese mich schon durchs Netz, aber wenn ihr grad zufaellig was auf der Zunge habt: immer her damit ;)
4. Sollte man bei der Groessenordnung schon mit Entwicklertools (UML, FlowChart oder aehnlichem) arbeiten?
5. Lohnen IDEs bei soetwas oder ist das eher wenig sinnvoll? Bisher schreib ich alles mit VIM unter Windows.

Vielen Dank schonmal im voraus,
snoggo

snoggo ist offline   Mit Zitat antworten
Alt 27.05.08, 01:36   #2 (permalink)
 
Benutzerbild von metax.
 
Registriert seit: 22.01.07
metax. Leistung: 8086
metax. eine Nachricht über ICQ schicken
Likes: 10
Standard

1. Für größere Projekte ist ein gutes Template-System Pflicht. Ob du selbst eins schreibst oder Smarty nimmst, ist eigentlich egal. Über Zend kann ich nicht viel sagen
2. SimpleXML ist ganz nett und mysqli bzw. PDO macht für größere Datenbanken durchaus Sinn.
3. Ich würde stark objektorientiert programmieren und Spaghetti-Code um jeden Preis vermeiden. Mach viele Kommentare. Achte gleich von Anfang an auf mögliche Schwachstellen in der Sicherheit (alle(!) Benutzereingaben vorher prüfen/escapen, alle Variablen sauber initialisieren, wenig Globals)
4. UML ist hilfreich. Solltest du für größere Sachen ruhig einsetzen. Kaum Arbeit, aber viel Übersicht
5. Auf jeden Fall! Ich arbeite gerne mit Eclipse, hab aber auch schon gute Erfahrungen mit anderen IDEs gemacht. Aptana, Zend, Dreamweaver sollen gut sein.

Noch ein paar Tips:
6. Versuch dich mit regulären Ausdrücken vertraut zu machen. Für String-Manipulationen/-Interpretationen gibt es kaum was Mächtigeres.
7. Gewöhn dir ne saubere (X)HTML Strkutur an. So sieht man logische Fehler im Code viel schneller und kann besser in der Ausgabe lesen.
8. Wenn es geht, versuche auch gute URLs hinzubekommen. Das Apache-Modul mod_rewrite kann "schöne" URLs so interpretieren, dass dein Script den Aufruf versteht. Damit hast du in Suchmaschinen bessere Chancen und kannst zum Testen auch mal einen bestimmten Aufruf ohne von Script erzeugten Link machen
9. Teste viel und oft. Man übersieht leicht triviale Fehler, die erst in bestimmten Situationen auftreten

Viel Erfolg mit deinem Projekt!

mfg, metax.
__________________
Wenn keiner zuschaut, teile ich heimlich durch Null!
Meine Homepage: Planet Metax | meine Bilder: DeviantArt | Twitter
metax. ist offline   Mit Zitat antworten
   
HaBOT
 
- Anzeige -

Werbung ist gerade online    
Alt 27.05.08, 04:10   #3 (permalink)
Moderator
 
Benutzerbild von bitmuncher
 
Registriert seit: 30.09.06
bitmuncher Quadcorebitmuncher Quadcorebitmuncher Quadcorebitmuncher Quadcorebitmuncher Quadcorebitmuncher Quadcore
Likes: 443
Standard RE: Etwas groesseres Projekt, wie verwalten?

Zitat:
Original von snoggo
1. Was ist eure Meinung zu Projekten wie Zend oder Smarty bei etwas groesseren Seiten?
Mit Smarty hab ich keine Erfahrung, aber Zend solltest du bei grossen Projekten mit vielen Klicks definitiv vermeiden. Es frisst enorm Performance. Beispiel: Der Aufruf von 50-60 Userprofilen pro Sekunde, bei deren Generierung die Zend-Engine verwendet wurde, sorgte bei uns dafür, dass ein Webserver mit 2GB RAM, SCSI-Platten und 2x2.5GHz bei einer Loadavg von >20 und einer CPU-Last von 80% auf beiden Kernen stand. Seitdem das Skript von der Zend-Engine gelöst wurde, liegt die Serverlast bei 0.5 bis 1 und die CPU-Last bei 4-8%.

Zitat:
Original von snoggo
2. Welche Erweiterungen wuerdet ihr mir empfehlen?
Mehr als PDO würde ich nicht einsetzen. Zuviele Erweiterungen können Code auch unübersichtlich machen. Ausserdem musst du dich in jede relativ intensiv einarbeiten, damit du weisst, was im Hintergrund deines CMS abläuft. Bei vielen Klicks macht auch der Einsatz von Memcaching oft Sinn.

Zitat:
Original von snoggo
3. Habt ihr gute Tips/Links fuer die Entwicklung einer komplexeren PHP-Anwendung wie die Homepage? Ich lese mich schon durchs Netz, aber wenn ihr grad zufaellig was auf der Zunge habt: immer her damit
Schau dir die Quelltexte von mehr oder weniger grossen CMS wie Joomla, Mambo, PHPWebsite usw. an. Vielleicht ist es sogar sinnvoller, wenn du deine Entwicklungsleistung in vorhandene Projekte steckst. Die Programmierung eines eigenen CMS für eine Community ist ein enormer Aufwand und die meisten CMS bieten eigentlich die notwendigen Funktionalitäten.

Zitat:
Original von snoggo
4. Sollte man bei der Groessenordnung schon mit Entwicklertools (UML, FlowChart oder aehnlichem) arbeiten?
Ja, und vor allem gut dokumentieren. Sonst verlierst du irgendwann den Überblick. Auch die Verwendung einer Versionsverwaltung dürfte sinnvoll sein.

Zitat:
Original von snoggo
5. Lohnen IDEs bei soetwas oder ist das eher wenig sinnvoll? Bisher schreib ich alles mit VIM unter Windows.
Definitiv lohnen IDEs. Sie ersparen dir durch Code-Vervollständigung, Klassen-Wizards usw. eine Menge Tipparbeit.

@metax.: mod_rewrite frisst sehr viel Server-Performance. Man sollte es daher vorsichtig und so wenig wie möglich einsetzen, wenn man viele Klicks erwartet.
__________________
Mein Blog - Mein Job - Diaspora

Der Ring uns zu knechten besteht aus 12 Sternen auf blauem Grund.

Neue Beiträge im Habo via Twitter - Das HaBo auf FB - Das HaBo bei G+
bitmuncher ist gerade online   Mit Zitat antworten
Alt 27.05.08, 11:33   #4 (permalink)
Themenstarter
 
Registriert seit: 11.06.05
snoggo Leistung: Facit NTK
Likes: 0
Standard

Vielen Dank fuer die hilfreichen Antworten und Tips

Ich werde mir dann mal Smarty anschauen und Zend weglassen. Bei der Datenbank ueberlege ich mir noch, welche ich benutze. Die erste Version der Seite hatte ich mit SQLite gemacht, was mir aber ehrlich gesagt zu umstaendlich ist, da es keine vernuenftigen Tools gibt wie PHPMyAdmin.
Ich pendele zwischen MySQL und MySQLi. Einige sagen MySQLi sollte man schon bei PHP5 und MySQL > 4.1 nehmen, andere sagen es bringt nichts sondern schadet nur der Performance. Habt ihr da Meinungen zu?
PDO kenne ich, habe ich mit SQLite benutzt, um SQLite 3 benutzen zu koennen. Werde es weiterbenutzen.

Das mit dem Rad neu erfinden... Ehrlich gesagt ist das glaube ich so ne kleine Macke bei mir, ich greif nicht gern auf fertige Dinge zurueck. Zum einen moechte ich gerne jedes Detail genau kennen und zum anderen hab ich Spass an den Problemen, die waehrend der Entwicklung auftreten

Dann gibts jetzt noch zwei Fragen von mir :
1. MySQL vs. MySQLi vs. andere DB: was nehmt ihr, warum nehmt ihrs?
2. Welche IDEs? Eclipse ist fuer Java, wie gut ist die PHP-Erweiterung? Irgendwie kann ich mir nicht vorstellen, dass das angenehm ist, wenn did IDE fuer eine andere Sprache geschrieben ist.
snoggo ist offline   Mit Zitat antworten
Alt 27.05.08, 14:03   #5 (permalink)
Moderator
 
Benutzerbild von bitmuncher
 
Registriert seit: 30.09.06
bitmuncher Quadcorebitmuncher Quadcorebitmuncher Quadcorebitmuncher Quadcorebitmuncher Quadcorebitmuncher Quadcore
Likes: 443
Standard

Eclipse ist keineswegs nur für Java, aber ich finde auch, dass ihnen der Spagat der Multilanguage-GUI genauso misslungen ist wie bei KDevelop u.a.

Wenn du irgendwie rankommst oder es nicht unbedingt kostenlos sein muss, schau dir die Zend-IDE an.
__________________
Mein Blog - Mein Job - Diaspora

Der Ring uns zu knechten besteht aus 12 Sternen auf blauem Grund.

Neue Beiträge im Habo via Twitter - Das HaBo auf FB - Das HaBo bei G+
bitmuncher ist gerade online   Mit Zitat antworten
Alt 27.05.08, 14:18   #6 (permalink)
Administrator
 
Benutzerbild von Mackz
 
Registriert seit: 02.10.01
Mackz Leistung: Pentium IMackz Leistung: Pentium I
Likes: 30
Standard

Bzgl IDE, schau mal hier vorbei: PHP Editor
__________________
RL sux big time... auch 2012!

Deleting pr0n is like killing your best friend

[HaBo] bei Facebook - Werde Fan
Mackz ist offline   Mit Zitat antworten
Alt 27.05.08, 14:50   #7 (permalink)
 
Registriert seit: 18.03.05
Tasmas Leistung: Facit NTK
Likes: 0
Standard

Generelle Tipps:

- Verwende ne Versionsverwaltung, das erleichtert dir die Arbeit an einem grossen Projekt ernorm, auch wenn nur du alleine dran arbeitest.
- Zum Punkt eins ist es ganz Sinnvoll ne IDE/Editor mit Unterstützung für ne Versionverwaltung zu verwenden
- Template System macht bestimmt Sinn, allerdings reicht da meist ein eigens, du weisst was es kann und können musst und kannst es zur not erweitern.
- Wichtiger als ein Template System ist wohl bei einer grossen Community ein gescheites Cache System. So das einige Teile Statisch sind und nur alle x Sekunden oder auch Minuten durch ein ein Script neu generiert werden. Z.b. ne Forenübersichtsseite... die muss ja nicht immer 100% aktuell sein es reicht wenn du in etwa weisst wieviele Leute schon geantwortet haben / wie gross das Interesse ist.
Tasmas ist offline   Mit Zitat antworten
Alt 27.05.08, 14:51   #8 (permalink)
 
Registriert seit: 11.02.07
dietox Leistung: Facit NTK
dietox eine Nachricht über ICQ schicken
Likes: 0
Standard

Zitat:
Original von bitmuncher
Eclipse ist keineswegs nur für Java, aber ich finde auch, dass ihnen der Spagat der Multilanguage-GUI genauso misslungen ist wie bei KDevelop u.a.
Ich persönlich benutze zwar Eclipse recht selten (eigentlich nur für die wenigen Java-Projekte die ich mal entwickle), aber wie gesagt, ist Eclipse lange nicht mehr nur für Java-Projekte vorgesehen. Eclipse ein ganzes Framework, welches natürlich Open Source ist. Am Sonntag durfte ich im Kongresszentrum Karlsruhe bei der OpenExpo einem interessanten, englischen Vortrag lauschen, der das Thema Eclipse hatte. Es hat mich doch sehr überrascht, wie das Projekt gewachsen, wenn nicht sogar "ausgeartet" ist. Ich habe Eclipse bisher nur ab und zu als IDE verwendet und wusste nicht, dass sich so viel entwickelt hat. Zum einen gibt's die allseits bekannten Plugins für C/C++ und andere Sprachen und das ganze System basiert auf Rich-Client, was eine effektive und relativ einfache Gestaltung von Plugins ermöglicht. So kommt auch die Web-Programmierung nicht zu kurz: PHP, Python, HTML, Perl finden Unterstützung.
Ich entschuldige mich, falls das zu sehr vom Thema abweicht, aber ich wollte das "Potenzial" des ganzen Eclipse-Projekts einfach nur erwähnt haben, auch wenn meiner Meinung nach das ganze immer mehr in den kommerziellen Bereich abrutscht, obwohl beim Vortrag ziemlich genau das Gegenteil behauptet wurde, aber nun ja, das von meiner Seite.

Das nur der Vollständigkeit halber.

Standfeste Erfahrungen habe ich mit Eclipse bzgl. der Web-Programmierung (Java sozusagen ausgenommen) jedoch nicht. Ich würde eher zu IDEs greifen, die auch in erster Linie dafür vorgesehen sind, wie die genannten Produkte Zend oder Dreamweaver.
dietox ist offline   Mit Zitat antworten
Alt 27.05.08, 15:06   #9 (permalink)
Moderator
 
Benutzerbild von lightsaver
 
Registriert seit: 19.06.06
lightsaver Leistung: Pentium Ilightsaver Leistung: Pentium Ilightsaver Leistung: Pentium I
Likes: 52
Standard

also als ide für php benutze ich hauptsächlich zend und php designer und bin mit beiden eigentlich sehr zufrieden. von php designer soll es auch eine kostenlose version geben. inwieweit die dann aber in den funktionen eingeschränkt ist konnte ich so auf die schnelle nicht herausfinden
lightsaver ist offline   Mit Zitat antworten
Alt 27.05.08, 17:35   #10 (permalink)
 
Registriert seit: 21.10.06
weau Leistung: Facit NTK
Likes: 0
Standard

Die Entwicklungsumgebung ist Geschmackssache. Ich fliege auf Eclipse mit der entsprechenden PHP-Erweiterung, die für Windows und Linux verfügbar ist.
Ich lege dir Klassendiagramme ans Herz. UML mag ich eigentlich gar nicht und diese ganzen Use-Cases sind für Leute die lieber malen als programmieren aber Klassendiagramme sind echt wichtig! Baue dir eine gut überlegte Datenbankstruktur auf und lass dir dann deiner Datenbankstruktur entsprechend mit einem Script direkt PHP-Klassen erzeugen. Das musst du natürlich auch schreiben und es ist ein bisschen Arbeit, dafür musst du nicht jede Klasse per Hand tippen und vorallem kannst du per Script Aufruf deinen Code nachher bequem ändern wenn zum Beispiel neue Features anstehen.
(Wird es deutlich was ich meine?^^)
Da sind wir eigentlich auch schon beim wichtigstem Thema. Halte deinen Code so Modular wie möglich.

ADOdb macht überigens auch ziemlich phun.
weau ist offline   Mit Zitat antworten
Alt 27.05.08, 21:44   #11 (permalink)
 
Registriert seit: 20.01.03
Zwirni Leistung: Z3
Likes: 0
Standard

Habe derzeit unter Windows RapidPHP in Verwendung. Finde ich sehr praktisch. Eclipse war mir immer etwas zu groß
Zwirni ist offline   Mit Zitat antworten
Alt 27.05.08, 21:54   #12 (permalink)
 
Benutzerbild von BasicAvid
 
Registriert seit: 17.03.04
BasicAvid Leistung: Facit NTK
Likes: 2
Standard

Zitat:
Ich lege dir Klassendiagramme ans Herz. UML mag ich eigentlich gar nicht und diese ganzen Use-Cases sind für Leute die lieber malen als programmieren aber Klassendiagramme sind echt wichtig!
Nicht nur Use-Cases gehören zur UML, auch Klassendiagramme gehören zur UML / UML2, und ist eines der Strukturdiagramme.

Zitat:
Baue dir eine gut überlegte Datenbankstruktur auf und lass dir dann deiner Datenbankstruktur entsprechend mit einem Script direkt PHP-Klassen erzeugen
Für sowas gibts auch ein nettes Online Tool, und zwar hier
__________________
Mfg Basic Avid
- Use it or be used! -
BasicAvid ist offline   Mit Zitat antworten
Alt 28.05.08, 00:26   #13 (permalink)
Member of Honour
 
Benutzerbild von beavisbee
 
Registriert seit: 22.02.07
beavisbee Leistung: Pentium IIIbeavisbee Leistung: Pentium IIIbeavisbee Leistung: Pentium IIIbeavisbee Leistung: Pentium III
beavisbee eine Nachricht über ICQ schicken
Likes: 77
Standard

Zitat:
Original von weau
Baue dir eine gut überlegte Datenbankstruktur auf und lass dir dann deiner Datenbankstruktur entsprechend mit einem Script direkt PHP-Klassen erzeugen.
hmm... ich mach das irgendwie genau andersrum: ich code meine Klassen per Hand (da weiß ich wenigstens, was drin steht...) und habe eine protected Funktion mk_db_structure() und lass dort alle Tabellen, die die Klasse benötigt, erstellen...


noch ein Tipp:
ich weiß nicht, in wie weit du dich mit Java auskennst... da gibt es spezielle Syntax für Kommentare, damit mittels java-doc automatisch eine Dokumentation draus wird....

So etwas gibt es auch für PHP, nennt sichPHPdocumentor

Das erleichtert die Arbeit echt um einiges, wenn du eine Klasse, die du lange nicht benötigt hast, mal wieder verwenden willst - da brauchst du dich nicht durch den gesamten Code wühlen, sondern bekommst eine saubere Übersicht (inclusive ToDo-Liste und anderen tollen Spielereien)
(der PHPObjectGenerator, der hier eben verlinkt wurde, baut ebenfalls dafür passende Kommentare... feine Sache...)
beavisbee ist offline   Mit Zitat antworten
Alt 28.05.08, 12:29   #14 (permalink)
 
Registriert seit: 30.01.08
KlausSchiefer Leistung: Facit NTK
Likes: 0
Standard

Etwas Offtopic:

Ich weiss ja nicht wie gross dein Projekt am Ende tatsächlich wird. Aber wenn es uneinschätzbar gross
wird, solltest du vielleicht auch auf eine andere Sprache zurückgreifen.
PHP ist ganz prima für wirklich überschaubare Sachen. Aber ab einer bestimmten Grösse und Komplexität ist sie einfach nicht mehr schön.
Wesentlich eleganter sind dort Ruby und Python (und ganz besonders auf Rails). Wenn du PHP gut kannst, würde dir ein Umsteig auch nicht sonderlich schwer fallen.
KlausSchiefer ist offline   Mit Zitat antworten
Alt 28.05.08, 13:45   #15 (permalink)
 
Registriert seit: 21.10.06
weau Leistung: Facit NTK
Likes: 0
Standard

Die Mischung macht es meiner Meinung nach. Javascript und Ajax sind auch nicht verkehrt.
weau ist offline   Mit Zitat antworten
Antwort
   
- Anzeige -

Werbung ist gerade online    

[HaBo] » Web, Network & Multimedia Palace » (Web-) Design und webbasierte Sprachen » Etwas groesseres Projekt, wie verwalten?
Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks sind aus
Pingbacks sind aus
Refbacks sind aus


Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Dokumente verwalten Serow Applikationen 1 11.06.08 09:43
Dokumente verwalten Serow Off topic-Zone 1 11.06.08 09:43
PHP Daten verwalten Leonb (Web-) Design und webbasierte Sprachen 7 05.03.05 21:31
XP - Benutzerkonten verwalten root Windows 9 11.02.05 22:13
URLs verwalten Indi Internet Allgemein 2 19.11.03 22:12


1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61