![]() |
| | LinkBack | Themen-Optionen | Thema durchsuchen |
| | Nach oben #1 |
| Gast
Beiträge: n/a
|
Viele von uns WebEntwicklern wurden ja die letzten Jahre Dinge wie MVC und Ajax regelrecht aufgezwungen und da es meist keine trivialen Frameworks sind, muss man sich erstmal anschauen worum es sich dabei handelt. Ich habe mal vor vielen Jahren mit Assembler angefangen und wahr wirklich sehr Systemnah. Das hilft mir auch noch heute ziemlich konkret zu verstehen welche Schichten es bis runter zum Silizium gibt und was optimaler Code aus der Sicht der Maschine ist. Dinge wie z.B das Symfony MVC Framework sind natürlich auf unterster Ebene ein Albtraum, wenn man sich mal anschaut was da passiert, aber egal. Viel schlimmer finde ich Dinge wie diese unsäglichen Abstraktionlayer die z.B den Versuch unternehmen SQL und DB Schicht von der drüberliegenden Anwendung zu isolieren. Ich kenne derartige Versuche seit Anfang der 90er Jahre und Anfangs war ich auch begeistert, nur als ich es in der Praxis einsetzen wollte, war es eine pure Zumutung, das blanke Grauen. Heute stehen die alten Zombies in Form von Symfony, Hibernate und Co wieder auf und Legionen von Lemmingen meinen das wäre was tolles. So auch bei derzeitigen Relaunch von ******.** der mal gehörig daneben ging und das ist nicht die einzige Opferseite die ein MVC Framework trotz gar nicht mal so dummer Programmierer in die Knie gezwungen hat. Beim Masseneinsatz von JavaScript und Ajax deuten sich ebenfalls massive Probleme an. So vermelden unzählige Laptopbesitzer das manche Seiten durch intensive JavaScript und Flash Nutzung ihre Notebooks ins schwitzen bringen und parallele Prozesse durch zu hohe Rechenlasst des Browsers massivst erschwert werden. Auch bringt das oftmals anzutreffende Geblinke und Gewackel durch zahlreiche Animationen die Leute ziemlich gegen die Betreiber auf. Die Programmierer finden es toll, die Anwnder zum kotzen. Nicht für jede Art Website Projekt sind diese beiden Sachen geeignet. MVC Drivven Frameworks sind für Sites mit einem hohen aufkommen an parallelen Nutzern völlig ungeeignet und der Overhead alleine auf HTTP Ebene um auch nur ein kleines bißchen HTML zu rendern sind ennorm und potenzieren sich bei vielen, parallelen Connections zum HTTP-Client derartig das auch ein zig tausend EUR teurer SUN-Server am Ende in die Knie geht. Ganz anders verhält sich dieser Aspekt bei einfachen Seiten, ohne Controller und Views oder gar Modelle die durchlaufen werden müssten. Geändert von pago (22.05.2009 um 22:53 Uhr) Grund: Werbung (für Seite mit fragwürdigen Inhalten) entfernt. |
|
| | Nach oben #2 |
| Jonas Registriert seit: 03.06.2006
Beiträge: 331
|
Willst du damit jetzt eine Diskussion über MVC anstoßen, oder Werbung für die von dir erwähnte Seite machen, oder worum geht es dir?
__________________ Applikations-Programmierung: BlitzMax, BlitzPlus Webentwicklung: PHP, (X)HTML, CSS, JavaScript, MySQL |
| | |
| | Nach oben #5 |
| Jann Hendrik Bekaan Registriert seit: 02.12.2004 Ort: Wildeshausen
Beiträge: 3.198
| Willst du eine Diskussion oder Leute anpöpeln? http://www.developers-guide.net/nutzungsbedingungen/ -> §3 (3) um nur einen Punkt zu nennen! Also - ein Gang runterschalten.
__________________ Umfragen: Wenn du dich in ein interessantes Thema eingearbeitet hast, dann lass andere daran teilhaben! Danke! |
| | |
| | Nach oben #6 | |
| Christian W. Achatz Registriert seit: 05.02.2007 Ort: München
Beiträge: 198
| Zitat:
__________________ Viele Grüße, Dr.E. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1. Think about software design before you start to write code! 2. Discuss and review it together with experts! 3. Choose good tools (-> http://adventure-php-framework.org)! 4. Write clean and reusable software only! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | |
| | |
| | Nach oben #7 | ||
| Gast
Beiträge: n/a
| Zitat:
interessiert die Meinungen von Amateuren ohne Tiefenwissen zu debattieren und dein Beitragt zeigt ja das Du außer Polemik und billigen Denunzierungsversuchen die Ihr Ziel verfehlen nichts gehaltvolles von Dir zu geben hast. Wer so angepisst reagiert nur weil man die für manche Leute heilige Kuh MVC wagt anzuzweifeln kann kein Kenner der Thematik sein und wird sicherlich nie an größeren Projekten mit signifikanten, konkurierenden Usertraffic befasst gewesen sein. Ich werde deinen Nonsens sicherlich nicht weiter bewerten in dem ich Dir antworte. Mit sachdienlichen Beiträgen befasse ich mich jedoch gerne, nur beschleicht mich langsam das Gefühl das solche Leute hier rar sein dürften. Vielleicht sollte das ganze Forum umbenannt werden in Basic und PHP Anfängerforum oder so. | ||
|
| | Nach oben #8 |
| Lutz Mahlstedt Registriert seit: 14.08.2005 Ort: Nienburg / Weser
Beiträge: 827
|
Ich denke, dass sich garantiert über die Vor- und Nachteile von MVC diskutieren lässt Dass es sicher auch nicht die performanteste Arbeitsweise für einen Computer darstellt sollte auch klar sein, denn das MVC-Pattern wurde sicher nicht entwickelt, um dem Computer geschwindigkeitstechnisch unter die Arme zu greifen, sondern es den Programmierern einfacher zu machen, wiederverwendbaren Code zu produzieren und bestimmte Segmente voneinander zu trennen (z.B. HTML vom PHP). Die Arbeitsweise finde ich persönlich überaus praktisch, obwohl ich noch nicht so lange mit MVC arbeiten. Die Vorzüge für mich sind jedoch größer, als die vermeidlichen Nachteile: Ich besitze übersichtliche, kleine Code-Teile statt einer riesigen PHP-Datei mit PHP und HTML komplett in einer Datei und ich habe gekapselte Funktionen, die ich variabel überall wunderbar integrieren kann, ohne den Code erneut programmieren zu müssen. Wenn du nun allerdings rein aus Performance-Sicht MVC verteufeln willst, solltest du glaube ich eher die Programmiersprachen ansich zur Diskussion stellen, denn JAVA / C / PHP / Perl / etc. sind alle deutlich langsamer als ein Gegenstück in Assambler. Aber: Um deiner Diskussionsgrundlage etwas den Wind aus den Segeln zu nehmen: Niemand wird gewzwungen ein MVC-basiertes Framework zu benutzen, die Entscheidung liegt alleinig beim Programmierer, von daher verstehe ich deine Aufregung nicht so ganz!? Wenn der Programmierer eine Aufgabe zu bewältigen hat, schaut er, wie er dies lösen kann. Entscheidet er sich für die Verwendung eines Frameworks, ist er alleine in der Verantwortung, dass der Code dann a) funktioniert und b) die Systemvoraussetzungen passen. Dazu zählt auch bei zu starkem Traffic genug Power in der Hinterhand zu haben, dies zu kompensieren. Sei es durch gut programmierten Code oder durch die Bereitstellung der notwendigen Hardware. Ich bezweifle jedoch, dass man so stark verallgemeinern kann, wo der Flaschenhals einer Software liegt, ich denke nämlich, dass es nicht unbedingt das Framework sein MUSS, da auch Datenbanken ihre Tücken haben - egal, WIE toll ein Programmierer ist... |
| | |
| | Nach oben #9 | |||
| Gast
Beiträge: n/a
|
Danke für deine Sachbezogene Einlassung zum Thema. Zitat:
Das sehe ich ebenso. Und diese Aussage unterstützt auch das was einer der Programmierer des populären Symfony MVC Frameworks für PHP5 dazu auch selbst sagt: Zitat:
Zitat:
http://www.symfony-project.org/blog/...al-world-usage Damit ist dann wohl auch klar, das solche MVC-Frameworks für normale für Coorportate und Firmen Websites Sinn macht (z.B im Agenturmassengeschäft) in Umgebungen wo VServer oder Rootserver vorhanden ist aber keinesfalls für große Communities mit zig parallelen Anwendern, mit persistenten Verbindungen. Nichts anders habe ich behauptet und damit kann man MVC für eine ganze Reihe von Websites komplett vergessen. Das Problem ist natürlich, das in den heutigen Stellenangeboten der Unternehmen eben vorwiegend Leute gesucht werden, die eben von MVC (ZendFramework, Symfony, CakePHP) Ahnung haben weil die Verantwortlichen der Meinung sind, das wäre State of the Art. Ein junger, blauäugiger Programmierneuling wird das glauben und sich darauf einlassen und bald Albträume bekommen warum die verdammte Seite so lahm ist und irgendwann, wenn der Hype mal vorbei ist und sich der Nebel gelichtet hat sieht man, es war die Schuld des Frameworks. Da werden dann die Chefs und Verantwortlichen nicht begeistert sein und dem Programmierer erstmal die Schuld gegeben obwohl er alles Lehrbuchmäßig umgesetzt hat. Am Ende bekommen dann die Verantwortlichen das ganze verkauft haben und lange Zeit dogmatisch verteidigt haben einen gehörigen Dämpfer (zu Recht). Und genau in dieser Phase wo es langsam kippt sind wir meiner Meinung nach gerade. Ich werde ganz sicher kein Hightraffic Projekt mit irgend einem MVC-Framework programmieren, ganz egal wie schmackhaft es mir auch einer machen will, denn das es kracht ist nur eine Frage der Zeit. Geändert von marc9022 (23.05.2009 um 16:23 Uhr) | |||
|
| | Nach oben #10 |
| Lutz Mahlstedt Registriert seit: 14.08.2005 Ort: Nienburg / Weser
Beiträge: 827
|
Tcha, da kann ich leider noch nicht mitreden, aber mein aktuelles Projekt setzt auf ein Framework. Mal schauen, wie stark dieses dann frequentiert wird und ob die Server-Power für die Last ausreichend ist. Ich denke aber schon, dass auch große Communities über Frameworks realisiert werden können. Wo da allerdings die Flaschenhälse genau liegen... Tcha, das hängt von dem Programmierer ab, der das Framework nutzt - würde ich jedenfalls behaupten. Vielleicht ist es auch nicht möglich *schulterzuck* aber das wird wohl ebenso eine Behauptung bleiben, die auch das Gegenteil, solange niemand einen Beweis dafür erbringt!? :) |
| | |
| | Nach oben #11 |
| Martin Eisengardt Registriert seit: 30.03.2006 Ort: Pfinztal
Beiträge: 396
|
Wer MVC auf einen bestimmten Projekttyp festnageln will, der hat das Prinzip nicht verstanden. MVC ist kein Projekttyp oder ähnliches, sondern eine Philosophie, eine Strukturierung des eigenen Codes. Nicht mehr aber auch nicht weniger. Klar überlädt ein MVC ein einfaches Hello World. Aber du wirst immer Beispiele finden, wo MVC was überlädt oder umbequem macht. Wenn du MVC richtig einsetzt, spielt es die Stärken völlig woanders aus, eben bei komplexeren Anwendungen und vor allem wird vieles wartungsfreundlicher, wenn du klare Strukturen im Code hast. Und wer von Anfang an an Performance denkt, der disqualifiziert sich von selbst. Denn jedes System kann gute Performance bieten, denn oftmals sind die Performanceprobleme nicht durch Kniffe zu beheben, auf die die zugrundeliegenden Architektur wenig Einfluss nimmt.
__________________ Open Sourcing the Online Gaming Universe (bald wieder) PHP/SQL/Java/C++/Assembler. Seit Jahren Mitglied und Entwickler in einem der wohl größten Java-Projekte der Welt: http://weblogs.java.net/blog/hansmul...e_desktop.html Das Game Developer Consultant Team öffnet langsam seine Pforten |
| | |
| | Nach oben #12 | |||||
| Gast
Beiträge: n/a
| Zitat:
Zusammenhang von PHP, denn diese Rubrik heißt ja nicht ohne Grund: "PHP > PEAR, PECL und Frameworks". Zitat:
um das Feature Seitenaufbau, Darstellungsgescwindigkeit, Ressourcen Nutzung des Hostingservers bei massenhaften, konkurierenden Benutzerzugriffen. Sprich: Um eine Top Website die von vielen USer frequentiert wird und genau bei derartigen (großen) Seiten zwingt ein PHP MVC Framework die Gesammtperformance in den Keller was bis zur unbenutzbarkeit führen kann. Was bringt mir da die tollste Codepflegemöglichkeit, die bessere Strukturierung wenn meine Kunden die Seite nicht mehr vernünftig benutzen können? Ich weiß nicht ob Du mal vor der Herrausforderung gestanden hast eine deratige Seite zu entstören. Ich habe es und es war kein einfacher Job und da musste ich wirklich alle Register ziehen! Zitat:
von PHP5 pro Seiten Aufruf die nächste, anstehende Teiloperation durchzuführen sorgt bei einer PHP5-MVC-Implementierung dazu, dass pro Request ca 3 bis 5 andere ausgelöst werden müssen um das View/Controller/Modell Muster zu durchlaufen. Die absolute Hauptanforderung für eine schnelle Website ist jedoch die Forderung möglichst wenige Requests durchführen zu müssen. Das wiederspricht sich diametral. Jetzt weißt Du vielleicht auch, warum ich das Projekt eines PHP Bean-Servers, der völlig vom HTTP-Layer getrennt operieren kann für so wichtig halte (das ist übrigens das was Java Servlets/JSP schon lange von Haus aus mit Ihren EJB Beans können). Zitat:
später nicht mehr anfassen darf. Sehr schönes Beispiel sind ORM Mapper, die waren schon immer mein absoluter Megaalbtraum wenn es um Performance geht, die Softwarearchitekten Flachzangen lieben sie jedoch. Der Kunde hasst es da es zu 100% zu lahmen Seiten füht. Da kann man dann nur noch durch sehr teure Hardware und andere Tricks optimieren und häufig hilft noch nicht mal mehr das. Zitat:
| |||||
|
| | Nach oben #13 |
| Projektleiter Registriert seit: 30.11.2005 Ort: Bottrop
Beiträge: 1.365
|
Was du wahrscheinlich übersiehst, ist, dass es weniger Geld kostet, 2 oder 3 neue Server auf ein Performance-Problem zu werfen, als eBay in Assembler zu warten. Ein vernünftig angewendetes MVC hilft dabei, Web-Anwendungen besser zu skalieren (d.h. auf mehreren Servern zu lagern, etc.). Das wird bei stark frequentierten Anwendungen immer nötig sein und bei denen, bei denen das nicht nötig ist, verwendet man halt MVC um die restlichen Vorteile zu nutzen. Also kurzgefasst: Die Lösungsansätze für Performance-Probleme sind: - caching - load balancing (mehrere Server, Datenbankserver, mehr RAM, etc.) - gezielte Performanceverbesserungen Und zwar genau in der Reihenfolge. Und MVC hilft dabei, diese Dinge etwas zu vereinfachen. Zu deinem ständig genannten "PHPBeans": Hast du dir mal Caucho Resin angesehen? Das ist ein Java-AppServer mit einer hoch performanten PHP-Implementierung (in Java). Ich vermute, dass man dort auch PHP-Objekte persistent speichern lassen kann. Übrigens hilft auch hier MVC dabei, eine Anwendung zu einem solchen "neuen" Modell zu portieren. --------------------------------- Und jetzt nochmal ein Wort zu deinen Ausfällen: Wir legen hier höchsten Wert auf ein positives Klima. Wie Jann dir bereits gesagt hat, gibt es hier einige Regeln, die auch für dich gelten. Halte dich bitte in Zukunft daran. |
| | |
| | Nach oben #14 | |||||||||
| Gast
Beiträge: n/a
| Zitat:
Zitat:
Zitat:
Zitat:
wo Performance keine Rolle spielt". Zitat:
Zitat:
Zitat:
Ich lache immer wenn ich sehe das ein paar Leute meinen bei ein paar Millionen Datensätzchen schon einen Slave aufbauen zu wollen. Wer weiß wie so eine DB-Engine funktioniert und was ein Executionplanner und Prepared Statements sind holt aus einem DB-Server auf einer relativ sparmsam ausgestatteten Kiste noch so einiges raus, aber von sowas haben die Rotzlümmel von heute offenbar keine Ahnung. Aber glauben das sie den Durchblick haben, das tun ganz viele. Du bestimmt auch, gell? Zitat:
Zitat:
cu Geändert von marc9022 (23.05.2009 um 20:21 Uhr) | |||||||||
|
| | Nach oben #15 | ||||
| Erfahrener Benutzer Registriert seit: 31.12.2006 Ort: Zürich
Beiträge: 398
| Zitat:
Es ist nun mal günstiger, einen oder zwei Server mehr hinzustellen, als Code zu haben, für dessen Wartung man teure Spezialisten braucht... Zitat:
Zitat:
Du hältst dich wohl für das schlauste Wesen auf diesem Planeten...
__________________ . <-- This is Punkt. Copy Punkt into your signature to help him on his way to world domination. | ||||
| | |
| | Nach oben #16 | |
| Christian W. Achatz Registriert seit: 05.02.2007 Ort: München
Beiträge: 198
| Zitat:
__________________ Viele Grüße, Dr.E. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1. Think about software design before you start to write code! 2. Discuss and review it together with experts! 3. Choose good tools (-> http://adventure-php-framework.org)! 4. Write clean and reusable software only! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | |
| | |
| | Nach oben #17 | |
| Erfahrener Benutzer Registriert seit: 12.06.2006
Beiträge: 335
| Zitat:
Wo sind deine Belege? Du postest hier wild Behauptungen, die niemand so einfach nachprüfen kann … klar, wenn man sich das auf unterer Ebene anschaut usw. ok, aber das hat nicht unbedingt was mit MVC oder anderem zu tun. Und was du alles herbeiführst, das mit diesem EINEN Argument belegt werden soll, halte ich für "etwas" übertrieben. Man kann im übrigen auch diskutieren, ohne zu polemisieren und persönlich anzugreifen … ich zitiere aus deinem Vorwurf an dr.e: … so hat man einfach keine Lust mitzudiskutieren. | |
| | |
| | Nach oben #18 | |||||
| Projektleiter Registriert seit: 30.11.2005 Ort: Bottrop
Beiträge: 1.365
|
*sfz* Ich frag vielleicht mal gerade heraus: Möchtest du diskutieren oder dein Ego ein bisschen aufpäppeln? Inhaltlich hat Bleistift dir ja nun bereits erklärt, was ein Load Balancer tut und warum es durchaus sinnvoll ist, Server auf ein Problem zu werfen. Auch dynamische Inhalte lassen sich übrigens cachen. Das hängt natürlich vom Anwendungsfall ab und manchmal lassen sich auch nur einzelne Teile einer Webseite cachen, aber im Normalfall ist das durchaus möglich. Eventuell magst du dich da ja mal reinlesen in diese Thematik? Zitat:
Zitat:
Zitat:
Soo... jetzt zu den persönlichen Angriffen gegen mich. Zitat:
Aber natürlich habe ich auch Bereiche, in denen ich mich nicht so wirklich gut auskenne. Ich kann z.B. kein Assembler (bzw. nur sehr wenig), weil es mich nie interessiert hat. Als ich mit der Programmierung angefangen habe, war Java bereits schnell genug für die meisten Desktop-Anwendungen und PHP mehr als ausreichend für meine Web-Projekte. Generell verfolge ich bei Diskussionen den Ansatz, dass ich, falls ich in irgendeinem Punkt eine andere Meinung als mein Gesprächspartner habe, davon ausgehe, dass dieser sich in dem Gebiet besser auskennt. Dann kann ich die Argumentation nochmal in Ruhe analysieren, mir Gedanken dazu machen, meine eigenen Preis geben und hoffen, dass mein Gesprächspartner mir meine Denkfehler aufzeigt - und so letztlich dazu lernen. In deinem Fall habe ich aber leider keine Argumentation finden können (abgesehen vom Argument der Form "Assembler ist schneller" - und "Assembler" dient mir hier nur zur Verdeutlichung der Form deines Arguments. Natürlich sagst du nur, dass PHP ohne MVC schneller ist, als PHP mit MVC, aber C++ ist nunmal auch schneller als PHP ohne MVC und C ist schneller als C++ und Assembler ist nunmal noch schneller als C.). Daher muss ich erstmal davon ausgehen, dass ich (und die ganzen Leute, die sich mit dem Problem der Skalierung von Webseiten befasst, das Problem bewältigt, und dann darüber geschrieben haben und meiner Argumentation entsprechen) sich in dem Punkt ein bisschen besser auskennen, als du. Ich lasse mich aber gerne eines besseren belehren. Zitat:
Ich hab zwar mit den meisten davon noch nicht gearbeitet, aber kennen tu ich doch so einige. Da du aber so fit bist, dürfte dir ja bekannt sein, dass du über Resin/Quercus Zugriff auf all die von dir genannten wunderbaren Technologien Zugriff hast. Gratis dazu gibts eine (laut Benchmarks) tolle Performance und was man sonst noch so gebrauchen kann. Warum das Rad neu erfinden, wenn es schon ein wunderbar rundes gibt? Mal zum nachdenken: Wie vermeidest du, ohne separate Model-Schicht, dass dein Code nur schwer zu testen ist? Wie schreibst du Tests dafür? Was machst du, um Code-Duplizierung zu vermeiden? Welchen Ansatz schlägst du stattdessen vor (Page Controller? Eine PHP-Datei inkl. View, wie zu PHP3-Zeiten?)? Wo nimmst du das Geld her, um die deutlich verlängerte Entwicklungszeit deines Projekts zu finanzieren? Wie finanzierst du die Wartung des Projekts? ------------------------------------------ Das Thema, dass du ansprichst, ist im Prinzip ein interessantes, aber die Art, wie du deine Meinung kommunizierst (und bislang ist es nur deine Meinung, die nicht von Argumenten begleitet wird), ist ziemlich nervig. Mag sein, dass du viel Erfahrung hast, aber deswegen sind andere Leute mit anderen Meinungen noch lange nicht dümmer als du. Das hast du leider immer noch nicht ganz überwunden, daher nun nochmal eine Aufforderung: Halte dich an die Diskussionsregeln. Hier gibt es ausschließlich sehr clevere Leute, die mit einander diskutieren möchten - und das in einer freundlichen, aufgeschlossenen und vor allem produktiven Art und Weise. Deine abwertende Art ist hier nicht erwünscht. Bitte halte dich an die Regeln. Das ist jetzt auch das letzte Mal, dass ich dich darauf Hinweise. Klappt es nicht, werden wir entsprechende Maßnahmen ergreifen müssen. | |||||
| | |
| | Nach oben #19 | |||
| Gast
Beiträge: n/a
|
Ich gehe jetzt mal nicht auf diese ganzen Lebensweisheiten eines jungen Mannes ein, denn dieses belehren wollen führt irgendwie zu nichts, lass uns über die Sache reden, das ist eh interessanter. Jetzt wollen wir mal die Kirche in Dorf lassen, von wegen man kann dynamische Elemente cachen. Schon aus der Definition "dynamisch erstellt" geht hervor das man hier nicht wirklich irgend etwas adäquat cachen kann. Es gibt zwar Opcodecaches wie APC oder XCache, die haben aber nichts damit zu tun Content zu cachen sondern kompilieren die PHP Seiten vor, so das nicht beständig das ganze Script neu übersetzt werden muss (Java Servlets und JSP machen das schon ewig so) Besonders sinnvoll ist so etwas bei wiederkehrenden Routinen, deswegen nutzen viele Profis das auf ihren Produktionssystemen ja auch und erzielen damit gute Ergebnisse. Zitat:
Und jetzt frage ich Dich: Woher soll ein solcher ORM Mapper das alles wissen? In ORACLE habe ich an die gut 2000 Function Calls im SQL Context die weit über SELECT, DELETE, INSERT, UPDATE hinaus gehen. Und ORACLE ist da keinesfalls alleiniger Exot. Da gibt es TransactSQL beim MS-SQL Server, IBM/DB2 Queries und unter PostgreSQL pg/plSQL. Und selbst wenn man diese properitären Erweiterungen nicht einsetzt (obwohl es gute Gründe geben kann wie z.B Spatial und Geodatenanalyse oder polymorphes, dynamisches Partitioning wie es z.B Postgres seit einiger Zeit gibt) sind die unterstützten SQL Dialekte alles andere nur nicht einheitlich. Das heisst im Klartext: ORM Mapper können nie 100% korrekt CrossDB funktionieren und die generierten SQL-Queries sind in jedem Fall generisch, suboptimal und lassen sich nicht ohne Anpassungen verwenden. Wenn das aber so ist, warum den ganzen unnützen Kram lernen? Warum sich damit belasten wenn Du doch weißt das Du überall nachkontrollieren, nachjustieren, verändern und teilweise abschalten musst und das ganze am Ende sogar noch schwerer wartbar ist? Es bringt überhaupt keinen Vorteil im Gegenteil: Wenn man die SQL Statements und das was man an speziellen Dingen benötig zielsicher selbst schreibt hat man einen schnellen, Fehlerunanfälligeren Arbeitsablauf mit besserer Berechenbarkeit. Ich und meine Kollegen konnten in vielen Fällen Zeit dadurch sparen, das wir nicht auf Dinge wie ORM zurückgegriffen haben. Hier sage ich nur: Theorie (hört sich schön an) und Praxis weichen manchmal extremst voneinander ab. Das wiederum kann nur wissen wer schon lange in diesem Bereich programmiert. Zitat:
Zitat:
Geändert von marc9022 (24.05.2009 um 01:09 Uhr) | |||
|
| | Nach oben #20 | ||
| Projektleiter Registriert seit: 30.11.2005 Ort: Bottrop
Beiträge: 1.365
|
Geh doch mal auf diesen Absatz von mir ein: Zitat:
Zum ORM (der übrigens nichts, aber auch gar nichts mit MVC zu tun hat): Die meisten davon generieren für jedes Datenbank-System unterschiedlich strukturierte Queries. Da ist es dann auch möglich, in einer Query bestimmte Features zu verwenden, die ein anderes System nicht hat. Beispielsweise werden für die Primary Keys bei MySQL auto_increment verwendet, während bei Oracle eben Sequences und Trigger zum Einsatz kommen. Das geht natürlich beliebig so weiter. Wie effizient das in der Praxis ist, kann ich dir natürlich trotzdem nicht sagen. Es bleibt aber dabei, dass ich bei guten ORM in der Lage bin, ineffiziente Abfragen durch optimiertes, natives, SQL zu ersetzen. Um ein Beispiel mit Doctrine zu geben: Wenn ich einen bestimmten Nutzer aus der DB lesen möchte, mache ich das wie folgt: PHP-Code: PHP-Code: Das Beispiel ist natürlich trivial, aber es ging mir ja auch nur darum, zu verdeutlichen, dass es wenig Aufwand bedeutet, an dieser Stelle von ORM-generierten zu nativen Queries zu wechseln. Das funktioniert ja in komplexeren Fällen weitgehend genauso. Dann zum caching: Alles lässt sich sicher nicht cachen, aber bei den meisten Webseiten ist es nunmal so, dass sie wesentlich häufiger gelesen als geschrieben werden. Daher wäre es z.B. überhaupt kein Problem, einen Großteil dieses Forums zu cachen (z.B. die Forenübersicht, die Themenübersicht, sogar die Themenansicht). Bei sehr dynamischen Inhalten kann man vielleicht nur über einen zeitlich stark begrenzten Cache (20 Sekunden oder so) nachdenken - aber selbst der hilft bei tausenden konkurrierenden Anfragen schon sehr. Opcode-Caches haben mit der ganzen Thematik ja gar nichts zu tun. Das so einer verwendet wird, ist bei Verwendung von PHP ja sowieso Grundvoraussetzung, bevor man über irgendwelche andere Performance-Optimierungen nachdenken sollte. Zitat:
Okay, die haben jetzt ihre MQ auf Scala umgestellt, aber das läuft ja auf der JVM, die ja nun auch schnell genug für sowas ist. Es bleibt dabei: Natürlich ist es toll, wenn jeder Layer perfekt optimiert ist, aber es ist einfach nicht mehr so unbedingt notwendig, wie vor 20 Jahren. Wir sind heute an einem Punkt angekommen, an dem Programmiersprachen bewusst Features enthalten, die die Produktivität der Programmierer erheblich steigern, aber zwangsläufig eine effiziente Implementierung der Programmiersprache verhindern. Und genauso ist der Stand auch bei der Wahl der Technologien. MVC kostet ein bisschen was, aber das tut OOP an sich ja auch schon. Inzwischen können wir uns das leisten. Hardware ist billig und der Vorteil in Sachen Wartbarkeit, Testbarkeit und Produktivität ist einfach viel wichtiger. | ||
| | |
![]() |
| Lesezeichen |
| Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1) | |
| Themen-Optionen | Thema durchsuchen |
| |
Ähnliche Themen | ||||
| Thema | Autor | Forum | Antworten | Letzter Beitrag |
| PHP und das Observer-Pattern (MVC) | Ben | Anwendungsdesign / Softwarearchitektur | 14 | 26.05.2006 14:47 |
| MVC, Event-Driven-Development, ... in Webanwendungen, Gedanken von Harry Fuecks | Ben | Plauderecke | 0 | 28.12.2005 18:12 |
| MVC - Was darf die View | NewYork | Anwendungsdesign / Softwarearchitektur | 2 | 03.11.2005 21:42 |
| MVC, Strukturierung, Reaktion auf Events... | Ben | Allgemeine Java-Programmierung | 7 | 17.06.2005 16:34 |
| MVC Architektur, GUI | Java17 | Desktop-Applikationen und Grafik | 3 | 03.03.2005 05:21 |