Wie mache ich die Entwicklung von Webanwendungen weniger frustrierend?


8

Ich bin ziemlich neu in der Entwicklung von Webanwendungen. Ich kann das Gefühl nicht loswerden, dass ich ewig brauche, um etwas von selbst entfernter Komplexität zu tun. In C ++ und Java konnte ich in wenigen Stunden die gleichen Anwendungen schreiben.

Das Debuggen im Web ist schmerzhaft (insbesondere wenn es sich um komplexes json-ajax handelt). IDEs saugen. Die Sprachen lassen alles fehlerfrei durch, bis es nicht mehr funktioniert und Sie auf der Suche nach einem Fehler ohne Fehler oder Warnung sind (und keine wirklich gute Möglichkeit, das Programm zu durchlaufen).

Kann mich jemand zum Lesen von Material und / oder Technologien führen, die mir helfen, bei der Entwicklung komplexer Webanwendungen gesund zu bleiben?

Vielleicht ist die Antwort, ein gutes Framework zu verwenden (zend?). Bei der Arbeit verwenden wir kein Framework, außer für Datenbankmodellgeneratoren und grundlegende Seitengeneratoren zum Hinzufügen / Aktualisieren / Löschen.


Zur Verdeutlichung spreche ich hauptsächlich über serverseitiges PHP-Debugging, nicht über JavaScript.
Zhenka

2
Vielleicht könnten Sie den Titel und die Tags aktualisieren, um die Klarstellung widerzuspiegeln?
Psr

Sie könnten Ihre Webanwendung in Java schreiben?

3
Das Durchlaufen eines Codes in einem Debugger ist die schlechteste Debugging-Technik (und aus irgendeinem Grund wird sie stark überbewertet). Nutzen Sie die Möglichkeiten von Behauptungen, Verträgen und Protokollen.
SK-Logik

1
@ Raynos, es gibt eine Reihe von Vertrags-Frameworks für fast alle dynamischen Sprachen (aber ich habe so etwas für PHP nicht gesehen, um ehrlich zu sein). en.wikipedia.org/wiki/…
SK-Logik

Antworten:


4

Wenn Sie Firefox und Firebug noch nicht verwenden, sollten Sie dies tun. Der Debugger von Firebug ist einfach unglaublich (nicht das von Chrome, sie sind weitgehend gleich), aber ich tendiere dazu, Firefox zu verwenden, weil Betriebssystemprojekte wie Mozrepl verwendet werden , mit denen Sie Firefox als Skript verwenden können, anstatt Browser-Spawning zu verwenden automatisierte Testsuiten wie Selen.

Auf der Clientseite verfügen Chrome oder Firefox über hervorragende integrierte Debugger (gefüllt mit Überwachungsfenstern, Leistungsmonitoren und all den guten Dingen, die Sie in C ++ / Java kennen und lieben gelernt haben).

Wenn Sie auf der Serverseite PHP verwenden, empfehle ich dringend die Verwendung von DBG . Wenn Sie nicht an PHP gebunden sind, würde ich auch dringend empfehlen, zu Python zu wechseln und PDB zu verwenden . PDB in Verbindung mit cProfile erleichtert das Entwicklungsleben erheblich .

Wenn Sie überhaupt an GDB (C ++) gewöhnt sind, sollten sowohl PDB als auch DBG verrückt einfach zu erlernen und auszuführen sein. Beide können auch in Editoren wie Eclipse, Netbeans und Vim integriert werden.


1

Ich programmiere anders in dynamischen Sprachen. Es gibt keine Überprüfung der Kompilierungszeit, aber auch keine Verzögerung der Kompilierungszeit. Also schreibe ich jeweils ein kleines Stück Code und teste ihn dann. Ich beginne mit einer leeren Seite und füge jeweils ein Element hinzu, um es zu testen. Ich verpflichte jede kleine Änderung zur Revisionskontrolle, sobald sie funktioniert. Auf diese Weise kann ich, wenn ich es vermassle, einfach zum vorherigen Arbeitszustand zurückkehren und einen weiteren Versuch unternehmen. Auf der Serverseite habe ich festgestellt, dass dynamische Sprachen viel produktiver sind als Java, weil ich so viel weniger Code schreiben und lesen muss und weil ich nie mit Serverneustarts herumspielen muss.


+1) Das ist der gleiche Ansatz, den wir auch in unserem Team verwendet haben. Die Webentwicklung weist im Vergleich zu Desktopanwendungen verschiedene Unterschiede auf. Im Allgemeinen ist es jedoch ein Entwicklungs- und Testkriterium, mit dem Sie potenzielle Fehler im neuen Code besser finden können.
Francesco

Sie müssen nicht mit Server-Neustarts mit Java herumspielen, wenn Sie ein gutes Framework wie Play Framework
Jonas

@ Jonas - Es ist wahr, dass Neustarts nicht auf eine Java-Einschränkung zurückzuführen sind, aber AFAIK keine der gängigen JEE-Implementierungen lädt Klassen dynamisch neu. Hot Patching funktioniert manchmal, aber es ist wirklich ein Hack.
Kevin Cline

1

Sie könnten immer Java oder C ++ (oder Ruby oder Python oder Scala oder ...) verwenden, wenn Sie PHP wirklich nicht ausstehen können (was verständlich ist. Viele Leute mögen es nicht.)

Wenn Sie sich an das halten möchten, was Sie gerade verwenden, stellen Sie sicher, dass Sie Firebug ( obwohl die Google Chrome- Entwicklungstools bald noch beeindruckender werden ) mit dem FirePHP-Plugin verwenden, mit dem Sie einen vollständigen Überblick über Firebug erhalten den PHP-Status und alle auftretenden Fehler.

Stellen Sie außerdem sicher, dass Sie die verwendeten PHP-Fehlerbehandlungsfunktionen verwenden (denken Sie jedoch daran, sie vor dem Start erneut zu entfernen, da sie auch eine gute Möglichkeit für böswillige Benutzer sind, die Interna Ihrer App herauszufinden).

Bei IDEs können Sie jederzeit die Eclipse PHP Developer Tools ausprobieren oder das speziellere Zend Studio verwenden .


1

Einige Tools, mit denen ich meine Entwicklung verbessern kann, sind:

Visual Web Developer 2010 (Teil von Visual Studio 2010)

Sie sagten, IDE ist scheiße. Damit haben Sie jetzt eine der besten IDEs auf dem Markt, und wenn Sie früher in C ++ codiert haben, kennen Sie wahrscheinlich bereits VS. Ich benutze die Express-Version, die kostenlos ist und ich brauche nicht mehr.

JS Fiddle und Codepad

Ideal zum Ausprobieren von HTML / CSS-Layouts und JS-Skripten. Mit Codepad können Sie Ihre Website in serverseitigen Sprachen ausprobieren.

Firefox + Firebug (oder andere Browser-Entsprechungen)

Das Debuggen von Skripten ist mit den Browsern viel einfacher. Sie haben auch ein vollständiges DOM im Baumstil, das Sie nach Belieben bearbeiten können, und Änderungen werden in Echtzeit übernommen.

Verwenden Sie ein Framework

Es gibt verschiedene Frameworks für jede Web-Sprache. Sie bieten Ihnen eine Reihe gut getesteter Funktionen, die die Cross-Browser-Kompatibilität gewährleisten, Ihnen viel Zeit beim Debuggen sparen und "weniger schreiben, mehr tun". Ich schlage vor, in jQuery und YUI nach JavaScript-Codierung zu suchen .


Konsolenprotokoll

Verwenden Sie eine Debug-Konsole, die in den meisten Browsern integriert ist, um Ihren Debugging-Fortschritt zu verfolgen. In JS wird mit using console.log('something to write');einen Texteintrag zur Debug-Konsole hinzugefügt. Auf diese Weise können Sie Ihrem Code nützliche Informationen für Debugging-Zwecke hinzufügen und die Ausführung Ihres Codes verfolgen.


Boilerplate

Versteh mich jetzt nicht falsch. Ich weiß, dass Sie sich für die Entwicklung von Webanwendungen und nicht für normale Websites interessieren. Tatsache ist jedoch, dass es sich immer noch um eine Website handelt und Sie sich immer noch um das wichtigste Problem kümmern müssen, das Sie haben: Cross-Browser-Kompatibilität. Dies ist eine solide Vorlage, die Ihnen eine solide Basis für Ihre HTML-Seiten bietet und vieles mehr ...

CSS zurücksetzen

Wenn Sie Boilerplate nicht verwenden, das mit einem eigenen CSS-Reset geliefert wird, möchten Sie möglicherweise trotzdem sicherstellen, dass Ihre Seiten in den Browsern korrekt angezeigt werden. Ein CSS-Reset stellt dies sicher. Mein Favorit ist YUI CSS Reset zusammen mit CSS Base und CSS Fonts .


0

Die Verwendung eines Frameworks wie Ruby on Rails lindert die Frustration erheblich. Es hat eine ziemlich gute Fehlerberichterstattung und dank ActiveRecord ist die Arbeit mit Modellen und Datenbanken ein Kinderspiel. Solange Sie der Philosophie der Konvention über die Konfiguration folgen, können Sie mit RoR ziemlich schnell komplexe Webanwendungen prototypisieren.

Ich werde Firebug unterstützen, obwohl die Entwicklertools für das Webkit ebenfalls gut funktionieren.

Für Ressourcen bearbeiten:

Hier ist ein großartiger Ort, um kostenlos loszulegen.

www.railstutorial.org


0

XDebug kann Ihnen dabei helfen, auf eine Art und Weise zu debuggen, die dem entspricht, was Sie von VS gewohnt sind (die neuesten Versionen von Wampserver werden mit Xdebug geliefert (sowohl Server als auch Client), wenn Sie nach einer einfachen Entwicklungsinstallation suchen, die alles installiert, was Sie benötigen, außer a Texteditor).

Auch wenn PHP ist nicht Ihre Sache, versuchen Sie eine andere Sprache : Sie glücklicher sein können mit Python, Ruby / Rails, ASP oder Perl.

Sie können auch C ++ - CGI-Module anstelle von PHP-Skripten schreiben. Ich würde jedoch empfehlen, PHP noch einmal auszuprobieren. Es ist jedoch sehr praktisch, wenn Sie erst einmal den Dreh raus haben.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.