Krautkanal.com

Veröffentlicht am 2014-10-25 21:28: in /prog/

/prog/ 5939: Webprojekt

gojeanyn Avatar
gojeanyn:#5939

Harro Bernd, :3

wenn Bernd ein Webprojekt starten würde, würde Bernd auf eine vollständig eigene Entwicklung setzen oder auf bestehende Frameworks zurückgreifen?

Anforderungen wären:
- Caching (.html Seiten, bei entsprechender Inhaltsänderung werden diese neu erzeugt)
- Benutzerakkaunts
- Eigene Templates
- Sicherheit (SQL-Injection, Cross-Site-Scripting, etc.)
- Verwendung neuer Technologien wie HTML5, Javascript/AJAX
- Administrationsbereich (Backend)

Dieser Bernd wollte mit Yii 2.0 arbeiten, aber sich dort einzuarbeiten ist nicht gerade einfach.
Eine eigene Lösung wäre vielleicht schneller zu bauen, wie vergangene Projekte zeigen, aber die sind nicht immer toll und logisch gut gelöst. ;_;


Wie würde Bernd vorgehen, was kann er empfehlen?

shesgared Avatar
shesgared:#5940

>>5939
>Yii
Troll. Antworte dennoch weil interessantes Thema, vielleicht wird ja noch was daraus.


Ich arbeite gerade an etwas internem und habe mich gegen ein Rahmenwerk mit Kontroll-Inversion und für eine HTTP-Bibliothek (jetty, java) entschieden.

Wenn du viel Funktionalität exponierst, kann dir ein Rahmenwerk einen Teil des Sicherheitsprozesses abnehmen.
Wenn du viele Nutzer hast und entsprechend hohe Performanz brauchst, gibt es diverse Merkwürdigkeiten, die du dir mit einem Rahmenwerk ersparen kannst.
Wenn Zeit ein Faktor und deine Erfahrung beschränkt ist, hilft dir ein Rahmenwerk Sackgassen und Umbauten zu vermeiden.
Dafür musst du dich einarbeiten und den entsprechenden Richtlinien unterwerfen.

Wenn du Java magst, soll Spring um diese Jahreszeit ganz schön sein. Hätte es fast selbst genutzt, aber ich entschied mich dann doch lieber für den Spaß.

polarity Avatar
polarity:#5941

>Yii
Irgendetwas PHP-basiertes würde ich dir nur empfehlen, wenn du deine Erfahrungen hinterher als professioneller Webentwickler nutzen willst, ansonsten nimm was weniger verkrebstes. Grundsätzlich kann dir ein Rahmenwerk helfen deine Arbeit zu strukturieren, aber es ist kein Garant. Plane deine Anwendung bevor du Code schreibst. Viele Rahmenwerke bringen ja schon grundlegendes zur Strukturierung mit, schau halt mal, ob und wie du das in deine Überlegungen einfließen lassen kannst. Schau dir auch mal deine alten Projekte an, was genau daran nicht gut gelöst ist und wie man es besser machen könnte.

kylefrost Avatar
kylefrost:#5945

Warum baut heutzutage noch jemand Webseiten ohne ein modernes Framework zu verwenden?

Bernd hat vor kurzem mit grails an fünf Wochenenden eine ziemlich coole Webapp gebaut, ohne vorher Ahnung von der Materie zu haben. Mir grails kriegst du 5/6 Punkte geschenkt, ohne auch nur einen Finger zu krümmen:
>Caching (.html Seiten, bei entsprechender Inhaltsänderung werden diese neu erzeugt)
>Benutzerakkaunts
>Eigene Templates
>Sicherheit (SQL-Injection, Cross-Site-Scripting, etc.)
>Administrationsbereich (Backend)

thierrymeier_ Avatar
thierrymeier_:#5947

> - Caching (.html Seiten, bei entsprechender Inhaltsänderung werden diese neu erzeugt)
redis, statisches html ist aber auch oke
> - Benutzerakkaunts
http basic auth (oder benutzerzertifikate wenn ich fancy sein will)
> - Eigene Templates
kommt ganz auf die sprache an, tendenziell pymeld
> - Sicherheit (SQL-Injection, Cross-Site-Scripting, etc.)
prepared statements, csp, generelle vermeidung von üblichen schnitzern
> - Verwendung neuer Technologien wie HTML5, Javascript/AJAX
herp derp
> - Administrationsbereich (Backend)
kommt galt ganz drauf an wer administriert

und natürlich kein php. das ist natürlich ein hobbyprojekt also sind frameworks egal, lernen tut man auf alle fälle mehr ohne.

intertarik Avatar
intertarik:#5952

Was ist denn so das 0815-gehzu-Ding um ein paar Sachen übers Netz auszugeben?
Rails? Grails? Spring?

markgamzy Avatar
markgamzy:#5953

Warum ist Webentwicklung so ein Klusterfick? Es sieht stark nach einer Marktlücke aus, eine Sprache zu entwickeln, die alles vereint.

saulihirvi Avatar
saulihirvi:#5954

>>5953
Opa?

http://opalang.org/

smaczny Avatar
smaczny:#5955

>>5953
Solange die nicht irgendwie im Webserver eingebunden ist, hast du immer das Problem der CGI-Schnittstelle und es ist grade egal was du nutzt.

macxim Avatar
macxim:#5957

Schon seid jeher Perl mit CGI-Modul.

use strict;
use CGI;
my $cgi = CGI->new();
print $cgi->header(-charset=>'utf-8');
print "OP ist eine " . $cgi->param("wasopist");


Einfacher in der Handhabung geht nun wirklich nicht, damit ist das Backend für eine Seite in Windeseile runter geschrieben.

herrhaase Avatar
herrhaase:#5958

>>5955
Solange es irgendwie im Webserver eingebunden ist, hast du immer Probleme mit Updates und Skalierung.

joemdesign Avatar
joemdesign:#5973

Habe beste Erfahrungen mit AngularJS + Jersey + Jackson + JPA2 gemacht. Alternativ Angular + Sinatra. SPA´s sind beste.

romanbulah Avatar
romanbulah:#5974

>>5973
Hatte auch schon mal überlegt, Angular anzufassen, hab mir das aber anders überlegt, als ich irgendwo gelesen hab, dass die Entwickler die API jedes Release komplett umstellen.

karalek Avatar
karalek:#5975

Habe die letzten Tage ein bisschen mit Flask und jQuery gespielt. Das dürfte OPs Anforderungen auch erfüllen.
Flask ist erstaunlich gut dabei nützlich zu sein und mir dennoch nicht auf die Eier zu gehen. Jquery erspart einem eigentlich nur etliche Zeilen.

ggavrilo Avatar
ggavrilo:#5988

Danke Bernd!

Soviel kwalität im Faden, ich werd mich jetzt erstmal schlau machen was das alles ist, da ich von Flask, Angular, Opa, etc. noch nichts gehört habe.

Hoffentlich ist da was dabei.

vaughanmoffitt Avatar
vaughanmoffitt:#5989

>>5947
Wieso kein PHP? Zu langsam?

Was spricht gegen Typo3?

(USER WURDE FÜR DIESEN POST GESPERRT)

samscouto Avatar
samscouto:#5993

>>5989
>Wieso kein PHP? Zu langsam?
http://eev.ee/blog/2012/04/09/php-a-fractal-of-bad-design/

kriegs Avatar
kriegs:#6019

>>5989
Es ist scheiße, unnötig komplex und hat eine DSL eingebettet, damit das ganze Geraffel noch langsamer ist und mehr Speicher frisst.

So ne richtige Ingenitalör-Kagge aus Schland eben, wird woanders auch kaum genutzt.

m_kalibry Avatar
m_kalibry:#6020

>>5973
>SPAs sind beste

Dies. AngularJS in Kombination mit einem in Erlang geschriebenen REST-Backend für maximalen Gewinn! :3
Alternativ: Nutze ArangoDB/Foxx und lagere die serverseitige Logik direkt in die Datenbank ein.

mat_stevens Avatar
mat_stevens:#6021

>>6020
Das klingt unglaublich verhipstert und bloaty.

sava2500 Avatar
sava2500:#6022

>>6021
>verhipstert
Begehe nicht den Fauxpas Early-Adopter mit Hipster zu verwechseln.
>bloaty
Möchte halt nicht jeder eine Blogsoftware mit dietlibc, libowfat und TinyLDAP-Backend in C hacken und unter galting laufen lassen.

m_kalibry Avatar
m_kalibry:#6023

>>6020
Dein Trillby wartet schon.

bobwassermann Avatar
bobwassermann:#6024

>>6020
> lagere die serverseitige Logik direkt in die Datenbank ein
Also ich ziehe es vor eine schmale Ebene der Vernumpft dazwischen zu setzen und dafür ausgereifte Komponenten zu kombinieren.

polarity Avatar
polarity:#6035

>>6024
>schmale Ebene der Vernunft
Meinten Sie: Bloat

kennyadr Avatar
kennyadr:#6036

>>6035
Nö, die nicht. Die "ausgereiften Komponenten" könntest du schon eher so bezeichnen aber damit würdest du nur zeigen, dass bloat überlegen sein kann, was wohl kaum in deinem Interesse liegt.

marciotoledo Avatar
marciotoledo:#6277

Ich benutze mal diesen Faden, weil ich denke, dass das auch gut hierzu passt:

Ich habe im Zuge meines Studiums ein paar wenige Webprojekte gemacht und Erfahrung mit Java/JSP/Java Server Faces und bischen ASP.NET und Angular/Bootstrap und ein paar kleinen anderen Frameworks aufgebaut.
Meine Frage ist nun: Ich habe absolut keine Ahnung von Performance von Webseiten und bin da sogar so ungebildet, dass ich nicht mal weiß welche Gebiete es da berhaupt gibt.
Wie kann ich die Performance meiner Webseite messen?
An welchen Ecken muss ich wie messen? (ist z.b. das Backend was lange braucht um die Daten ans Frontend zu übergeben)
Ab wann ist eine Seite performant?

Da gibts sicher noch viel mehr Eckpunkte, aber wie gesagt, ich weiß nicht mal wirklich worum es da geht. Kann Bernd mir einen kleinen Überblick geben?

okdanketschüß

kennyadr Avatar
kennyadr:#6278

Performance spielt keine Rolle, wenn die Seite zu langsam läuft stellt man einfach einen zweiten Server daneben und einen Loadbalancer davor.

t. Java-Enterprise-Irgendwas-Mit-Medien-Programmierer

oskamaya Avatar
oskamaya:#6279

>>6277
Wenn du keinen absoluten Kack programmiert hast gibt es sehr wenige Möglichkeiten im Backend zu optimieren. Da gibt es dann zwar auch immer Späße wie Datenbanktabellen mit Indexen ausstatten, aber eigentlich liegt dein Problem im Frontend.

Thema Frontend:
Messungen für Arme liefert jeder gescheiter Browser mittels der Entwicklertools. Schnapp' dir einen Chrome oder Firefox mit Firebug und lade deine Seite im Netzwerk-Tab. Da hast du dann eine Übersicht, was alles geladen wurde, wie lange es gedauert hat und so weiter. Im Chrome zumindest hast du auch einen Audit-Tab, der dir konkrete Hinweise zur Verbesserung der Performance liefert. Ich persönlich würde mir aber irgendein vernünftiges Tool für so etwas suchen, Googles PageSpeed reicht grundsätzlich, bin mir gerade nicht sicher ob es da noch bessere Tools für lau gibt.

Grundsätzlich solltest du dir folgende Dinge ansehen:
- Ladezeiten minimieren. Guck mal ob du evtl. die Dateigröße der Bilder noch weiter optimieren kannst ohne merkbaren Qualitätsverlust. Auch kann es Sinn machen, die GZIP-Komprimierung einzuschalten. Am besten ist es allerdings, wenn der Browser gar nicht erst beim nächsten Seitenaufruf wieder alles runterlädt, sondern auf seinen Cache zurückgreifen kann. JS-Gebimmel wie jQuery und dessen Plugins, Frameworks wie Bootstrap und andere Sachen verändern sich normalerweise gar nicht, weswegen es keinen Sinn macht sie dauernd neu vom Server zu holen. Guck dir hier auch mal Appcache an.
- Möglichst wenige HTTP-Anfragen generieren. CSS und JS-Dateien kann man auch zusammenlegen oder sich einen Mechanismus überlegen, der alle CSS und JS-Dateien gesammelt ausgibt.
- Im Head-Bereich des HTMLs sollte das CSS stehen, Javascript sollte am Ende des Body.
- Denk an Mobile Geräte mit schlechter Internetanbindung. Weniger ist mehr.

Wenn das jetzt alles noch schneller laufen muss, kannst du einen Proxy davorschalten, wie z.B. Varnish. Damit wird deine Seite nicht jedes Mal neu generiert sondern aus dem Cache des Proxies geholt. Solange das Ding mitbekombt, wenn sich auf der Website eine Änderung ergibt, ist alles in Ordnung.

vladyn Avatar
vladyn:#6280

Was ist eigentlich mit node? Bzw. den über 9000 darauf aufbauenden Rahmenwerken? Wird es gerade nur gelüftet oder ist es wirklich gut?

turkutuuli Avatar
turkutuuli:#6284

>>6280
Für den Produktiveinsatz ist es jedenfalls nicht gedacht...

vladyn Avatar
vladyn:#6287

>>6277
Eine Seite wird dann ziemlich unperformant, wenn du mittels JS an bereits dem Dokument zugehörige Knoten viele Elemente hintereinander einfügst, denn der Browser versucht dann zwischendruch immre wieder, diese zu rendern.
Statt dessen lieber einen neuen Knoten als Buffer nehmen.

areus Avatar
areus:#6288

>>6280
Bernd meint wohl io.js...

Ja, das wird wohl nur gut gelüftet.

keyuri85 Avatar
keyuri85:#6306

Mal eine andere Frage: Wie macht man denn heutzutage Webseiten? Früher nutzte man einen Texteditor und etwas HTML, heute ist es anscheinend eine Wissenschaft an. Tipps für Wiedereinsteiger?

pakhandrin Avatar
pakhandrin:#6307

>>6306
Kommt drauf an was du machen willst.
Aber in den meisten Fällen würdest du hingehen und in deiner Lieblingssprache ein beliebiges Webframework nehmen und anfangen zu programmieren.

damenleeturks Avatar
damenleeturks:#6308

>>6307

Gearbeitet wird aber nur im Texteditor?

anhskohbo Avatar
anhskohbo:#6309

>>6306
Läuft immer noch so, nur nennt man die HTML-Dateien heute "Templates" und packt ein paar superspezielle Spezialtags rein.
Daneben hat man dann meist noch eine Datenbank und ein Rückend, das die Spezialtags aufgreift und superspezielle Daten aus der Bank einfügt.

Wenn du (z.B. bei Wikipedia) nach dem "Model–view–controller (MVC)"-Muster schaust, bekommst du eine bessere Erklärung.

Bernd nutzt vim und Feuerfuchs.

ionuss Avatar
ionuss:#6326

>>6306
Die Frage ist was für Webseiten? Bei infobasierten blog-style Sachen oder sogar "Webauftritten" kann man einfach ein CMS wie Wordpress hinklatschen und es etwas feintunen. Für web applications, die irgendwas machen sollen, nimmt man ein framework (z.B. Flask), wo man dann html templates anlegt und Programmlogik schreibt, die requests auf bestimmte Ressourcen abhandelt.

Bernd Avatar
Bernd:#6368

Bernd hat bisher noch nicht furchtbar viel Webentwicklung gemacht. Einmal ein MVC-Projekt mit Java ohne Rahmenwerk und momentan bastle ich ein wenig mit Django.

Wenn ich das richtig verstehe, muss man Node.js nehmen, wenn man heutzutage richtig hipster sein will? Also verstehe ich das richtig, dass Node.js nicht nur irgendwelchen JavaScript-Code ausführt, sondern so auch den HTTP-Server bereitstellt? Auf Apache/nginx kann ich also verzichten?

Darauf setzt man dann irgendein fancy Client-Side-Frontend wie Angular.js und schon hat man alles, was man zum bauen einer Webanwendung braucht?

Wie weit kann ich in meinem Kopf festzementierte Konzepte wie MVC und Objektorientierung auf so etwas anwenden? Wenn ich Datenbanken nutzen möchte, was mach ich dann? Google spuckt http://nodejsdb.org/ aus, aber die Seite sieht nicht furchtbar offiziell und aktuell aus.

arashmanteghi Avatar
arashmanteghi:#6369

>>6368
>Bernd hat bisher noch nicht furchtbar viel Webentwicklung gemacht. Einmal ein MVC-Projekt mit Java ohne Rahmenwerk und momentan bastle ich ein wenig mit Django.

Wenn ich das richtig verstehe, muss man Node.js nehmen, wenn man heutzutage richtig hipster sein will?

Also verstehe ich das richtig, dass Node.js nicht nur irgendwelchen JavaScript-Code ausführt, sondern so auch den HTTP-Server bereitstellt? Auf Apache/nginx kann ich also verzichten?
Ja ist Hipster genug. Und ja du schreibst direkt deinen Server. Es gibt Module die dir das TCP Zeug wrappen und die werden wieder von HTTP Modulen gewrappt die von Backendframeworkt gewrappt werden. Generell ist Node ziemlich Modul basiert.

>Darauf setzt man dann irgendein fancy Client-Side-Frontend wie Angular.js und schon hat man alles, was man zum bauen einer Webanwendung braucht?
Ja... Wobei ich die Frontendframeworks nicht mag. Höchstens jQuery um es etwas zu vereinfachen.

>Wie weit kann ich in meinem Kopf festzementierte Konzepte wie MVC und Objektorientierung auf so etwas anwenden? Wenn ich Datenbanken nutzen möchte, was mach ich dann? Google spuckt http://nodejsdb.org/ aus, aber die Seite sieht nicht furchtbar offiziell und aktuell aus.
Es gibt Module für alle Datenbanken wie Mysql oder Couchdb...
MVC kannst du auch in Js implementieren wenn du es so machen willst. Gibt bestimmt auch Frameworks dafür.

jajodia_saket Avatar
jajodia_saket:#6373

>>6368 hat sich heute mal Node.js angesehen und ist ein wenig von JavaScript vergruselt. Nächste Station Play. Danach Grails. :3

starburst1977 Avatar
starburst1977:#6381

>>6373
>Node.js
Das ist ziemlich blutende Kante und oft geht was kaputt. Aber wer JavaScript im Browser schreibt, ist das ja gewohnt. Speicherlecks gibt es auch mal gerne und die Performanz ist auch eher mittelmäßig.

> Angular
Performanz für den Fuss. Und wer mit Angular 1.0 was gebastelt hat, darf mit Angular 2.0 wieder von vorne anfangen.

>jQuery
Für die meisten Dinge kommt man auch ohne große Bibliotheken aus. Es gibt zu viele Webseiten, die aus Prinzip einfach mal 300 kb JS laden nur um Sinnlose Animationen darzustellen.

smaczny Avatar
smaczny:#6402

>>6373
Oh Gott. Scala zerfickt Bernds Hirn und sein IntelliJ noch mehr. Hat schon jemand Erfahrungen mit Play mit Java gemacht? Ich meine, irgendwo gelesen zu haben, dass das nicht so toll ist wie mit Scala, aber damit komme ich gar nicht zurecht. Nach dem Lesen zahlreicher "Scala for Java developers"-artiger Tutorials komme ich immer noch nicht mit Futures klar, die Syntax erscheint mit stellenweise immer noch undurchschaubar und, wie gesagt, IntelliJ IDEA stirbt bei mir. Es ist furchtbar langsam und jede zweite Code wird fälschlicherweise als Fehler erkannt.

Grails finde ich ganz gut, ausgereift (im Gegensatz zu Play oder Node.js/Express). Dennoch habe ich den Eindruck, dass es ziemlich rumlahmt, weshalb meine Motivation etwas in den Keller gekracht ist.

Ich verstehe so ein bisschen den Hype um Node.js, das kommt mir da angenehm leicht vor. Mal sehen.

rdbannon Avatar
rdbannon:#6404

Flask ist Bernds absolutes Lieblings"framework" (es hat vl. 2000 zeilen code) - extrem einfach zu erweitern und anzupassen und geht dir nicht auf den Sack wie das meiste andere genannte

enriquemmorgan Avatar
enriquemmorgan:#6412

>>6368
Mit Django bist du gut dran, wenn du das kannst Finger weg von node.js. Javascript ist eine beschissene Sprache eigentlich.
http://wtfjs.com/
Will man für mehr als Scripts in Webseiten also gar nicht nutzen ...

andychipster Avatar
andychipster:#6413

>>6412
Kackseite mit kack Beispielen

Erstmal wird wie immer auf den dynamischen Types rumgehackt wie bei jeder Scriptsprache... Langweilig weil unrelevant. Dann werden nicht praxistaugliche Beispiele aufgeführt wie bei jedem Sprachenbash.

>This is non-standard, but all of them save ....
>no its not....

splashing75 Avatar
splashing75:#6424

>>5939
Die Lernkurve ist wahrscheinlich so hoch weil du keine Ahnung von Webentwicklungsparadigmen hast. Letzten Endes macht ja fast jedes Framework da das Gleiche; MVC, Routing, Auth, und irgendwas Active-Record-Ähnliches für die DB-Anbindung.

Wenn du den ganzen Kram selbst schreibst/aus Bibliotheken zusammenbastelst kommt natürlich - sofern du Ahnung hast - etwas Kongruenteres als bei den Frameworks raus. Dauert aber länger. Wie auch immer, wenn du dich in Webentwicklung nicht auskennst würd ich dir schon ein Framework empfehlen, um mitzukriegen wo grad so der Standard steht.

PHP muss nicht so schlimm sein wie Bernd meckert, nur freiwillig antuen würd ichs mir nicht. Benutz lieber Python (Django/Flask), Ruby (Sinatra) oder etwas anderes das nicht PHP ist.

Abschließend würd ich sagen: Nimm erstmal ein Framework, schlag immer schön unter dem Stichpunkt "Best Practices" nach, und wenn du ein Gefühl dafür hast, warum die Frameworks machen was sie machen würd ich mal was von Grund auf schreiben. Da kannst du dann auch das Weglassen/Ändern was du bei Frameworks als krebsig empfindest.

subburam Avatar
subburam:#6427

>>6412
JavaScript ist zwar nicht geil, aber durchaus benutzbar. Besser als PHP ist es auf jeden Fall.

Node.js hat auch so seine Problemchen. Allerdings hat es durchaus Vorteile, wenn man die selbe Sprache auf Client und Server benutzen kann. Man muss z.B. nur eine Sprache lernen und kann Funktionalität leicht zwischen beiden hin- und herschieben.

Sails ist ein ganz schickes Web-Framework für Node.js. Es ist sehr ähnlich wie Rails (Ruby) aufgebaut.

hota_v Avatar
hota_v:#6429

>>6427
Verdammt ihr Fagtrons, wie oft soll Bernd das noch betonen. Node ist tot, die Zukunft liegt bei io.js.

melvindidit Avatar
melvindidit:#6432

Also Bernd findet sich in dem ganzen Sumpf auch noch kaum zurecht.
Die meisten Hoster im unteren Preissegment bieten nur PHP mit MySQL an. Da ist dann wenig mit Ruby, Python etc. möglich.
Was tun, wenn Bernd sowas wie im OP vor hat?

albertodebo Avatar
albertodebo:#6433

>>6432
>Die meisten Hoster im unteren Preissegment bieten nur PHP mit MySQL an.
Kannte das Problem. Lösung: Dedicated Server mieten und selber hosten.

Bernd Avatar
Bernd:#6434

>>6433
Dann hat man aber kein Webprojekt mehr, sondern ein Administrationsprojekt.

samscouto Avatar
samscouto:#6437

>>6432
>Die meisten Hoster im unteren Preissegment bieten nur PHP mit MySQL an.

Ich warte einfach bis der Fortschritt ins Land der Ideen und Innovationen™ einzieht und man hier günstig Docker-Container hosten lassen kann.:3

georgedyjr Avatar
georgedyjr:#6439

>>6432
Strato hat Ruby und Python auf der 50NG/J-Liste, das ist doch recht günstig.
Aber vorsicht, dazu braucht man Unix-Kenntnisse! (Steht mehrfach dran.)

yehudab Avatar
yehudab:#6441

>>6432
Worauf legst du bei Hostern denn noch so wert? Ich bin bei OpenShift. Ist ein Hoster im Amiland, aber dort kannst du auch Node.js verwenden. Dort ist alles in Module ("Gears") gegliedert und man braucht für jede "Technologie" (also Node.js, PHP, etc.) in der Regel jeweils ein Modul. Kostenlos gibt's drei, mehr kann man aber dazukaufen. Guck einfach mal und rechne durch, ob sich deren Modell für dich lohnt.

Wenn es kostenpflichtig sein darf, gibt es noch uberspace. Da gibt es einige Einschränkungen hinsichtlich der Bandbreite, aber die haben alle möglichen Webtechnologien vorgesehen, man kann denen einfach einen Wunschbetrag monatlich zahlen und die sitzen in Deutschland.

chrisvanderkooi Avatar
chrisvanderkooi:#6448

>>6432
Was hält Bernd von so Anbietern wie heroku? Da kann man so ziemlich jede Plattform hosten. Deployment is popeleinfach und für Webscale™ legt man dann nur ein paar Kröten hin. Wenn man nur wenig braucht, kostet es nichts.

davidsasda Avatar
davidsasda:#6451

>>6448
Würde ich nur für spezielle Anwendungsfälle nehmen. Grundsätzlich will man ja so viel Verantwortung wie möglich in fremde Hände geben.

sunshinedgirl Avatar
sunshinedgirl:#6460

2015 hat der Informatiker von heute übrigens einen eigenen Server zur Hand. Ein Server ist sehr praktisch Bernd, stell dir das mal vor! Ein kleiner VPS kostet auch nicht viel und sollte ausreichen. Administrieraufwand hält sich bei einem Server auch stark in Grenzen, vor allem wenn nichts drauf läuft.

gretacastellana Avatar
gretacastellana:#6461

>>6460
Das ist nicht wenig Aufwand, die Sicherheitsupdates der verbreiteten Distributionen reichen nicht aus und einen ungehärteten Webserver zu betreiben ohne zumindest die entsprechenden Sicherheits-Listen zu lesen ist schlimm.

csswizardry Avatar
csswizardry:#6463

>>6461
Es geht. Ein Apache ist schon ok. Klar ddost man dich so weg aber richtig einbrechen? fail2ban und gut ist. Villeicht noch ssh port umbiegen und ab und zu ein apt-get upgrade um debian testing zu aktualisieren.

dwardt Avatar
dwardt:#6464

>>6463
Ein ungehärteter Apache, wie er in den meisten Distributionen kommt, ist schlicht verantwortungslos.

yassiryahya Avatar
yassiryahya:#6465

>>6464
Dann erzähl uns doch mehr. Was machst du damit so tolles?

deviljho_ Avatar
deviljho_:#6468

>>6465
Ich stelle keine offenen Server ins Netz.

starburst1977 Avatar
starburst1977:#6474

>>6468
Ok Internet ist ab heute geschlossen

ggavrilo Avatar
ggavrilo:#6492

>>6368 >>6402 reportiert ein. Bin von Play (auf Basis von Scala) weggewechselt und sehr glücklich darüber. Promises und Futures mögen vielleicht in der Theorie ein gutes Konzept sein, aber die schlechte Play-Dokumentation und IDE-Unterstützung machen es sehr schwer, damit sinnvoll etwas zu implementieren.

Jetzt hänge ich doch wieder bei Node und habe an einem Nachmittag das implementiert, was ich voher mit Play an fast drei Arbeitstagen bauen wollte. Vielleicht bin ich einfach zu doof für Scala, aber ich kann Play einfach nicht empfehlen.

An die Front meiner Webanwendung kommt ReactJS. Habe mir AngularJS und ReactJS angesehen (der Zuständigkeitsbereich überschneidet sich nicht ganz, aber zum Teil) und bin so begeistert von React, dass ich nicht verstehe, warum es nicht den gleichen Hype erfährt wie Angular. Vielleicht werde ich in ein paar Tagen mal durchgeben, ob sich meine Begeisterung hält.

iamglimy Avatar
iamglimy:#6517

>>6492
React fährt die Hypemaschine gerade erst hoch. Mit der Einführung von React Native für iOS und Android geht es richtig los.
https://www.youtube.com/watch?v=KVZ-P-ZI6W4

t1mmen Avatar
t1mmen:#6921

Ich habe meine Webprojekte bisher immer mit PHP, HTML, CSS und MySQL getätigt.
Kann Eckspertenbernd bitte die Vorteile von z.B. Python oder RoR erläutern?
Ich wäre sehr dankbar. :3

shoaib253 Avatar
shoaib253:#6931

>>6921

Nicht-Expertenbernd hier.

>Ich habe meine Webprojekte bisher immer mit PHP, HTML, CSS und MySQL getätigt.
>HTML, CSS und MySQL
Zunächst: Diese Dinge fallen nicht zwangsläufig weg, wenn du z.B. mit Python, Ruby, Groovy, oder sonst was ein Webprojekt baust; nur der PHP-Teil fällt weg.

Zu PHP: http://eev.ee/blog/2012/04/09/php-a-fractal-of-bad-design/
Das klingt alles ziemlich schrecklich und so, aber dennoch denke ich, dass man damit kleinere Projekte schnell irgendwie zusammenkoten kann. Ruby, Python und co haben weit weniger gravierende Probleme außerdem ist die Syntax 100 mal toller!, was dich bei größeren Projekten einfach weniger Nerven und Zeit kostet. Zudem kommen die meisten Webframeworks heute mit einem schönen MVC-Pattern, sodass deine Applikationsteile halbwegs anständig voneinander gekapselt sind.


zl;ng: Es spart bei größeren Projekten Zeit und Nerven.

dutchnadia Avatar
dutchnadia:#6933

Hallo Berndi, wollte jetzt nicht extra einen neuen Faden aufmachen, hätte aber eine Frage (bin relativer Programmier-Neuling)
Ich würde gerne für meine Eltern eine Geschäftsseite aufsetzen, da die aktuelle in 12 Tagen vom mobilen Gurgel nicht mehr sichtbar ist.
Aus Sicherheits- und Wartungsgründen würde ich sie nur mit HTML und CSS machen, da kann man ja schon recht ansehnliche Sachen zaubern und sie muss auch nicht viel können, bis auf eines: Kontaktformulare.
Muss man für sowas PHP verwenden? Und wie sicher wäre das dann? Es geht nur darum dass man sich im Internetz über das Geschäft informieren kann und gegebenenfalls eine Anfrage schicken kann, da viele ältere Kunden, die nicht inzu Donnervogel können.

turkutuuli Avatar
turkutuuli:#6934

>>6933
Ok beim zweiten Mal lesen kommt mir die Frage selber dumm vor, man wir für den Email-Versand wohl eine richtige Programmiersprache brauchen.
Was benutzt man dafür am besten?

mshwery Avatar
mshwery:#6935

>>6921

>Kann Eckspertenbernd bitte die Vorteile von z.B. Python oder RoR erläutern?

RoR ist ein Framework, das ist also wie Zend Framework als PHP zu bezeichnen!

Wenn dir Python und Ruby besser gefallen als PHP, könntest du überlegen zu wechseln. Ich bin mir aber zu 99% sicher, dass du mit PHP alles abbilden kannst, was du auch mit Python und Ruby abbilden kannst. Die Frage ist also letztendlich, was dir persönlich besser gefällt und wie sehr das ganze beruflich für dich eine Rolle spielt (PHP ist gefragter, da - zumindest bei Webanwendungen - verbreiteter). Ich habe aber von Ruby nur mäßige und von Python so gut wie keine Ahnung!

>>6931

>Zudem kommen die meisten Webframeworks heute mit einem schönen MVC-Pattern, sodass deine Applikationsteile halbwegs anständig voneinander gekapselt sind.

Naja, eigentlich ist das so überhaupt nicht schön, bzw. wird im Web-Bereich falsch eingesetzt. Falls Details hierzu von Interesse sind, empfehle ich "Robert "Uncle Bob" Martin - Architecture: The Lost Years" auf YouTube. Diese Anmerkung ist aber nur theoretisch von Interesse, da quasi jederman MVC so (unschön) einsetzt. Ansonsten guter Pfosten. :3

>>6933

Ein Kontaktformular ohne Skript im Hintergrund würde einfach nichts machen, bzw. hätte keine Funktion. Du brauchst also sowas wie z. B. PHP oder node.js. Theoretische Sicherheitslücke: Jemand schickt automatisiert ganz viele Kontaktanfragen, sofern keine Sicherheitsabfrage (z. B. Captcha) eingebaut wurde. Es gibt vorgefertigte Wordpress-Plugins, die leicht zu konfigurieren sind, allerdings ist Wordpress meiner Erfahrung nach ein leichtes Ziel für Angriffe (vor allem - aber nicht nur - wenn veraltete Plugins genutzt wurden).
So lange du keine Datenbank nutzt (d. h. auch kein Wordpress, Joomla etc.), hältst du dir aber viele mögliche Probleme fern (z. B. SQL-Injections). Mit Sicherheitsthemen solltest du dich dennoch beschäftigen...

marciotoledo Avatar
marciotoledo:#6936

>>6935
Mit RoR war schon Ruby gemeint. Falsch ausgedrückt von mir.
Geht mir halt in erster Linie um Performance und Sicherheit.
Bei Python kommt es mir so vor, als ob es schneller Requests abhandeln kann. PHP Scripte kommen mir so schwerfällig vor, auch durch so manchmal notwendige Einstellungen wie maximale Scriptlaufzeit. Mir ist klar, dass es von vielen Faktoren abhängt, wo und wie letztendlich optimiert wird.
Klar könnte ich einfach so ein Framework Yii 2.0 benutzen, auch wenn der Hosting-Anbieter nicht alle Features unterstützt oder ich schuster mir selber etwas zusammen.
Ich bin hin und hergerissen was ich benutzen soll.
Ärgern wird es mich, wenn das Projekt Anfangs mit 500-1000 aktiven Benutzern noch halbwegs erträglich läuft, aber dann bei 5000 aktiven unerträgliche Wartezeiten generiert, ich dann nichts skalierbares habe und quasi das zugrunde liegende System ändern muss.
Versteht Bernd mein Problem?

fluidbrush Avatar
fluidbrush:#6937

>Ärgern wird es mich, wenn das Projekt Anfangs mit 500-1000 aktiven Benutzern noch halbwegs erträglich läuft, aber dann bei 5000 aktiven unerträgliche Wartezeiten generiert, ich dann nichts skalierbares habe und quasi das zugrunde liegende System ändern muss.

>Versteht Bernd mein Problem?

Bernd versteht dein Problem, kann dir aber sagen, dass du dir um Skalierung Gedanken machen solltest, wenn es wirklich so weit ist. Das heißt natürlich nicht, dass du nicht schon von vornherein auf eine vernünftige Architektur achten solltest, aber wenn du eines der o.g. Frameworks (in welcher Sprache auch immer) benutzt, bekombst du eigentlich auch immer brauchbare Architekturprinzipien mit.

Dein Hauptaugenmerk sollte anfangs darauf liegen, das Ding vernünftig benutzbar zu machen und zunächst einmal eine gewisse Anzahl an aktiven(!) Nutzern zu akwirieren. 5000 sind da schon eine sportliche Zahl. Wenn du dann einmal so viele hast und sich weiteres Wachstum abzeichnet, kannst du dir immer noch Gedanken um Skalierung machen. Richtig ärgern wird es dich, wenn du gleich einen einen Hochverfügbarkeitscluster für über9000 User aufziehst und dann niemand dein Projekt nutzen will, weil es so krebsig ist.

https://gettingreal.37signals.com/ch04_Scale_Later.php

jimmywebdev Avatar
jimmywebdev:#6938

>>6936

>Versteht Bernd mein Problem?

Etwas. Aber von dem was ich gehört habe, soll Ruby noch langsamer als PHP sein (ohne Gewähr). Wenn dir Skalierbarkeit so wichtig ist, warum nimmst du dann nicht gleich node.js (JavaScript)? Dann hättest du für Frontend und Backend auch die gleiche Sprache.

shalt0ni Avatar
shalt0ni:#6939

>>6936
Performance und Sicherheit sind aber keine Schlagworte die automatisch davon kommen wenn du was anderes als PHP benutzt. Du kannst auch in den Sprachen deinen Rotz koten und dich dann wundern warum alles kacke ist

Benutz nodejs das ist jetzt hip und skaliert auch direkt wenn du das suchst.

davidbaldie Avatar
davidbaldie:#6940

>>6938
>>6939
Man solle doch wirklich besser zu io.js greifen, da jenes von den meisten ehemaligen node Entwicklern weiterentwickelt und supportiert wird, als Joyent sich node unter den Nagel gerissen hat.

iqbalperkasa Avatar
iqbalperkasa:#6941

>>6940
Neh. IO.js ist ja auch gerade am rumheulen das es nicht weiter geht wenn node so viel Geld bekommt und IO.js nur so opensourcig dahin krebst. Tatsächlich wollen sie sich wohl wieder vereinen.

superoutman Avatar
superoutman:#6942

>>6941
Eine Vereinigung war stehts das Ziel. Unter akzeptablen Bedingungen.

vovkasolovev Avatar
vovkasolovev:#6952

>>6432
uberspace

bagawarman Avatar
bagawarman:#6956

>>6952
Sehr sympathischer Hoster und sehr guter Support.
Vor kurzem waren die Macher von uberspace auch beim Fnordcast und haben mal ein wenig von ihrem Projekt erzählt. Technisch nicht sonderlich tiefgehend, aber ein netter Smalltalk den man sich mal anhören kann.
http://fnordfunk.de/fnordfunk-097-uberfunk/

Säge, weil nicht wirklich relevant für den Faden.

Neuste Fäden in diesem Brett: