Webentwicklung meets Softwareentwicklung +- Sponsor-Board.de (https://www.sponsor-board.de) +-- Forum: Community (/forumdisplay.php?fid=56) +--- Forum: Plauderecke (/forumdisplay.php?fid=39) +---- Forum: Soft- & Hardware (/forumdisplay.php?fid=80) +---- Thema: Webentwicklung meets Softwareentwicklung (/showthread.php?tid=46883) |
Webentwicklung meets Softwareentwicklung - Dennis - 28.03.2014 20:34 Hallo liebe SB-Gemeinde, ich möchte mich mit einer kleinen Diskussionrunde einbringen, da ich aufgrund meiner Erfahrung in einer kleinen Softwareschmiede und dem Studiums in angewandter Informatik momentan mit der Frage beschäftige: Was wäre wenn die Webentwicklung zunehmends an die Softwareentwicklung angelehnt wäre? In genaueren Grundzügen würde ich die darstellende Oberfläche eines Browsers gerne zusammenfügen. Die darstellende Schicht setzt sich zusammen aus meistens HTML und PHP, um das Ganze etwas dynamischer wirken zu lassen. Was wäre, wenn man dies nun zusammenführt, sprich für PHP Klassen vordefiniert, deren Anzeige im Browser normaler HTML-Code ist, jedoch rein mittels PHP geschrieben ist? Angelehnt an eine Entwicklung wie z.B. mit Java. Wie sieht dort die Entwicklung einer GUI aus? Code: JButton btn = new JButton("Hallo Welt");
Code: <input type="button" value="Hallo Welt" />
Code: <div style="float:left; min-width:500px">
PHP-Code: JPanel pane = new JPanel();
RE: Webentwicklung meets Softwareentwicklung - moser96 - 28.03.2014 21:32 Naja ich kann deine Idee zwar nachvollziehen, würde es jedoch nicht machen. Objektorientiertes Programmieren ist zwar der Traum, jedoch macht es in Verbindung mit PHP in meinen Augen nicht allzuviel Sinn. Da objektorientierte Programmierung langsamer ist wie die prozedurale Programmieren (Objekte anlegen usw dauert) ist sind wir schon beim ersten Nachteil. Auf dem Weg zwischen Server und Clienten verliert man schon sehr viel Zeit, jedoch der User möchte alles sofort haben. Also ich sags mal so in Java oder C# am Desktop hast du die notwenigen Ressourcen dafür, da es für den User keinen unterschied macht ob das jetzt 10ms oder 11 dauert. Weiters wenn man objektorientiert Programmiert, macht man vieles umsonst. So wird man zb ein Objekt anlegen was dann einen bestimmten Output bringt, welcher aber eigl immer statisch ist, sprich -> du berechnets obwohls nicht nötig wäre, weil auf jeder Website gibts Elemente die immer gleich sind. Den zweiten Nachteil welchen ich mir jetzt überlegt habe ist, dass ja die Objekte nach dem Aufruf der Seite verloren gehen -> sprich du hast den Aufwand fürs Anlegen der Objekte für genau einen Output gemacht und dann alles wieder über den Haufen geworfen. Ich habe mir das jetzt so ausgedacht und hoffe du kannst es nachvollziehen. Falls hier was nicht stimmt belehre mich bitte eines Besseren MFG Moser Michael RE: Webentwicklung meets Softwareentwicklung - Ringelnatz - 28.03.2014 22:03 Solche Ansätze werden ja bereits teilweise verwendet, z.B. für die dynamische Generierung von Formularen. Das bringt bestimmte Vorteile mit, wie z.B. eine automatische Validierung je nach Feldtyp usw. Habe ich so oder so ähnlich schon öfters im Netz gelesen und werde ich auch so umsetzen. Für alle HTML-Elemente ... nein, würde ich nicht machen. RE: Webentwicklung meets Softwareentwicklung - Schwester Wombat - 28.03.2014 22:10 Also ich bevorzuge ja eine Trennung von Design und Code so stark wie möglich. Deshalb generiere ich meist auch keine WPF-Elemente per C#, sondern definiere sie in XAML. Ansonsten generell OOP ja, aber nur begrenzt. OOP-Ansätze bei der Arbeit zwischen HTML und PHP, wenn es net nur ums direkte Generieren von Elementen geht, wie ich das auch bei WPF mache, finde ich auf jeden Fall gut. RE: Webentwicklung meets Softwareentwicklung - GGSeSports - 28.03.2014 22:27 Dennis schrieb: Was wäre wenn die Webentwicklung zunehmends an die Softwareentwicklung angelehnt wäre?
Webentwicklung ist ein Sub Bereich von Software Entwicklung. Also ist es das schon Dennis schrieb: In genaueren Grundzügen würde ich die darstellende Oberfläche eines Browsers gerne zusammenfügen.
Die darstellende Schicht setzt sich zusammen aus meistens HTML und PHP, um das Ganze etwas dynamischer wirken zu lassen. Was wäre, wenn man dies nun zusammenführt, sprich für PHP Klassen vordefiniert, deren Anzeige im Browser normaler HTML-Code ist, jedoch rein mittels PHP geschrieben ist? Angelehnt an eine Entwicklung wie z.B. mit Java. Wie sieht dort die Entwicklung einer GUI aus? Code: JButton btn = new JButton("Hallo Welt");
Also den Weg, den ASP.NET mit seinen HtmlControls geht? Prima Idee. Verwende ich seit mehreren Jahren so (habe diesbezüglich ein Framework geschrieben). Ist zwar anfangs langwieriger. Aber wenn man am Ende nur noch folgendes für eine Tabelle schreiben muss, weiß man es auch zu schätzen. PHP-Code: $data = FooModel::GetCollection();
moser96 schrieb: Naja ich kann deine Idee zwar nachvollziehen, würde es jedoch nicht machen. Objektorientiertes Programmieren ist zwar der Traum, jedoch macht es in Verbindung mit PHP in meinen Augen nicht allzuviel Sinn. Da objektorientierte Programmierung langsamer ist wie die prozedurale Programmieren (Objekte anlegen usw dauert) ist sind wir schon beim ersten Nachteil.
moser96 schrieb: Den zweiten Nachteil welchen ich mir jetzt überlegt habe ist, dass ja die Objekte nach dem Aufruf der Seite verloren gehen -> sprich du hast den Aufwand fürs Anlegen der Objekte für genau einen Output gemacht und dann alles wieder über den Haufen geworfen.
RE: Webentwicklung meets Softwareentwicklung - sic_ - 29.03.2014 00:08 Stimme dem was GGSeSports sagt im Großen und Ganzen zu. Klar man findet Gegenargumente aber für mich, auch wenn ich es so in der Form noch nicht einsetze, klingt es auf jedenfall vielversprechend. Code: $data = FooModel::GetCollection();
Sowas ist definitiv sehr nice! Besser als das man hingeht, eine HTML-Template-Datei erstellt und dann erst mal die Hülle für die Tabelle schreibt, die man dann auch noch mit den Variablen und Schleifenlogik bestücken muss. Man hat nochmal eine Zwischenebene die man für alles, das sie benutzt, manipulieren kann. Die generierte Tabelle soll eine bestimmte Klasse erhalten? Kein Problem, einmal den Code der Klasse ändern und alle Tabellen sind angepasst. Ansonsten müsste man alle HTML-Templates einzeln bearbeiten. Man vermeidet redundaten Code (oder allgemeiner Informationen): Man schreibt einmal die Klasse und erweitert sie für alles was zusätzlich an Funktionalität benötigt wird. Ohne das noch einmal wo anders tun zu müssen. Langsamer muss es dabei auch nicht werden, wenn man z. B. das Zusammenbauen einer Tabelle im Code mit Klassen und Methoden von einer Template-Engine zu HTML+PHP-Code rendern lässt und dann cached. RE: Webentwicklung meets Softwareentwicklung - Aaron - 29.03.2014 00:20 Sowas in der Art haben wir auch beim dynao CMS gemacht : [Link: Registrierung erforderlich] Also z.B. ne Form Klasse, die wie folgt ein Formular mit Auswertung erstellt (hier noch mit der lang-Klasse) und das auch direkt in die DB schreibt - auch hinzufügen geht darüber: PHP-Code: $form = form::factory('user','id='.$id,'index.php');
RE: Webentwicklung meets Softwareentwicklung - Dennis - 29.03.2014 00:42 Der Gedanke spielt sich auch nicht um einzelne Komponenten sondern um ganze Komponentenverbunde, die man dann auch mittels Layoutmanagementklassen leicht positionieren könnte. Mein Gedanke zielt nur darauf ab, erstens den Umstieg von wirklichen objektorientierten Sprachen in die Internethochburg zu erleichtern, aber auch die Effektivität in der Entwicklung, die durchaus durch solche Sachen gegeben sind, da man nur noch die Komponenten sozusagen "reinsteckt" und die Positionieren und Verwaltung vom Framework her übernommen wird. RE: Webentwicklung meets Softwareentwicklung - GGSeSports - 29.03.2014 02:34 Jep. Richtig. Kannst ja eine Basis Klasse zu jedem Control haben die dann für jedes Control bestimmte Eigenschaften und Methoden bereitstelt. Zb: PHP-Code: $container= new FooContainer(); //Geerbt von HtmlContainerBase
simon_s schrieb: Und dem Frontend-Entwickler, der von PHP keine Ahnung hat (gut, vielleicht unwahrscheinlich), ist nicht geholfen, wenn man seine HTML-Templates wegzaubert.
PHP-Code: <?php
PHP-Code: $view = new View('Base/Paragraph');
Code: <p><?= $this->_['Content']; ?></p>
RE: Webentwicklung meets Softwareentwicklung - sic_ - 29.03.2014 10:48 Ja ok klar wenn man dann doch wieder HTML-Templates noch hat, logisch. Ich hatte Dennis jetzt so verstanden dass er darauf komplett verzichten möchte und nur noch PHP-Code vewenden will. @Aaron Zitat: Auch grade wenn andere das System für Addons nutzen, hilft das - so bleibt ne Struktur vorhanden.
Ein sehr gutes Argument. Wenn man wie ihr ein Open Source CMS schreibt mit dem ausdrücklichen Wunsch, dass Dritte dafür eigene Erweiterungen entwickeln, dann kann das definitiv zur Vereinheitlichung und Durchsetzung von Richtlinien dienen. Bsp: Formulare senden immer in einem versteckten Feld den Zeitpunkt ihres Renderings mit. Wenn ein Entwickler ein neues Formular mit HTML erstellt muss er sich darum dann selber kümmern, er weiß es vielleicht gar nicht, er vergisst es oder ist schlicht zu faul. Aber wenn es eine Form-Klasse gibt dann kann man das dort schon einbauen und der Entwickler benutzt es automatisch.
|