Register for your free account! | Forgot your password?

Go Back   elitepvpers > Coders Den > Web Development
You last visited: Today at 22:14

  • Please register to post and access all features, it's quick, easy and FREE!

Advertisement



Allgemeine Fragen bez. WebDev

Discussion on Allgemeine Fragen bez. WebDev within the Web Development forum part of the Coders Den category.

Reply
 
Old   #1
 
Mad0ck's Avatar
 
elite*gold: 313
Join Date: Oct 2014
Posts: 1,367
Received Thanks: 284
Allgemeine Fragen bez. WebDev

Guten Tag Liebe epvp Com.,

Ich habe vor ca einem Jahr meine Diplomarbeit abgegeben.
Das Projekt war grob gesagt eine umfangreich Website zu erstellen.

Da ich seither eig kaum was davon angegriffen habe, und ich mich jetzt wieder täglich mit der Materie befasse wollte ich paar Sachen vorher abklären/fragen.








Ich weiß, es ist viel text, dennoch würde ich mich trotzdem freuen, falls erfahrene Hobby oder auch berufliche Programmierer sich die Zeit nehmen würden.
Mad0ck is offline  
Old 03/07/2018, 14:51   #2
 
elite*gold: 100
Join Date: Apr 2008
Posts: 860
Received Thanks: 1,465
Bei Objektorientierung geht es in erster Linie darum, Informationen die zusammengehören, zusammenzufassen. z.B. kannst du ein User-Objekt haben, welches alle Relevanten Informationen zu einem User gebündelt hat.
Genauso kannst du alle Funktionen die einen User betreffen diesem Objekt zuordnen.
So schaffst du eine gewisse Abstraktion bei der du dich beim Verwenden des Objektes nicht mehr darum kümmern musst, dass alle Infos da sind, Queries korrekt ausgeführt werden, etc. Das macht alles dein Objekt für dich, du schreibst nur ... User::getByName("florian0") oder whatever und hast den User.


Logic und Layout trennen: Unbedingt! Nennt sich Template.
Bereite alle Daten vor die angezeigt werden sollen und übergib sie der Template Engine (ob selbstgeschrieben oder Framework ist an der Stelle egal). Die Template Engine kümmert sich dann darum, dass deine übergebenen Daten an den korrekten Stellen eingefügt werden.
Die einfachste Template Engine ist übrigens PHP selbst.

Code:
<html>
<head>
<title><?= htmlentities($seiten_titel); ?></title>
</head>
<body> .... </body>
</html>
Nun kannst du (Achtung Potatocode) z.B. folgendes schreiben:
Code:
// Komplexe Logik die den Titel zusammensetzt
$seiten_titel = "elitepvpers";

require_once("template.php");
Und schon kannst du einerseits dein Template schön bearbeiten, andererseits deinen Code lesen ohne zwischen HTML-Tags suchen zu müssen. Ist auch für den Designer angenehmer, falls du mal mit einem zusammenarbeitest.

Frameworks werden überall eingesetzt. Ob das jetzt fertige CMS sind, die man über Plugins erweitert oder Allround-Frameworks wie Laravel.
Natürlich erschwert einem ein Framework die Entwicklung, man kann viele Dinge nicht so tun, wie man sie gerne hätte, sondern muss sich den Gegebenheiten des Frameworks unterwerfen. Im Gegenzug nimmt dir ein gutes Framework aber eine ganze Menge an Arbeit ab, in dem es dir eine Reihe von Bibliotheken für Templates, Formatierung, Verarbeitung, etc. liefert und du nicht das Rad neu erfinden musst.


Berechtigungssysteme gibt es diverse Ansätze. Jenachdem wie flexibel du es brauchst, machen diese für dich sinn, oder auch nicht. Wenn du nur einen Admin hast der über ne Mail garantiert identifizierbar ist, warum nicht?
Wenns mehrere Admins gibt, mach ein Flag in der Datenbank a'la "is_admin", wenns mehrere Benutzergruppen gibt, leg Ränge an. Wenns viele Berechtigungen gibt und/oder es dynamisch sein soll, leg Berechtigungs-"schlüssel" an. (Eine Gruppe hat dann z.B. die Schlüssel "ARTICLE_CAN_PUBLISH" und "ARTICLE_CAN_EDIT", und kann damit Blog Artikel editieren, aber z.B. keine User bearbeiten.).
Gibt unendliche viele Möglichkeiten. Nimm die, die passt und machs nicht zu kompliziert.
florian0 is offline  
Thanks
2 Users
Old 03/07/2018, 15:07   #3
 
Mad0ck's Avatar
 
elite*gold: 313
Join Date: Oct 2014
Posts: 1,367
Received Thanks: 284

Danke für die schnelle und vorallem ausführliche Antwort.
Im Endefekt muss ich mich nun mit Obj.orientierten programmieren sowie Frameworks auseinandersetzen.
Logik und Layout zu trennen da werde ich mich auch nochmals reinfuchsen müssen.

Ich bedanke mir herzlich bei dir =)
Mad0ck is offline  
Old 03/11/2018, 17:52   #4
 
Legithos's Avatar
 
elite*gold: 95
Join Date: Nov 2009
Posts: 669
Received Thanks: 47
Florian0 hat das super erklärt, hab noch ein klein wenig zu ergänzen.

Ob du nun objektorientiert programmierst oder nicht liegt natürlich bei dir. Der meiner Meinung nach größte Vorteil in der Objektorientierung ist die Übersichtlichkeit (für zb Fehlersuche). Du solltest wissen, dass Objektor. derzeit schon die gängige Praxis ist (heißt es kommt vorallem bei Arbeiten denke ich besser an), jedoch ist auch alles ohne realisierbar und nicht weniger richtig! Bezüglich der Admin-Frage mach ich es immer mit 0 und 1 bei 'usertype' für kein Admin und Admin und je nachdem wird der Menüpunkt 'Eigenes Profil' oder 'Adminpanel' (um alle Profile inkl eigenes zu bearbeiten) angezeigt.

Bei weiteren Fragen gerne melden !
Legithos is offline  
Thanks
1 User
Old 03/12/2018, 10:40   #5
 
Mad0ck's Avatar
 
elite*gold: 313
Join Date: Oct 2014
Posts: 1,367
Received Thanks: 284
Quote:
Originally Posted by Legithos View Post
Florian0 hat das super erklärt, hab noch ein klein wenig zu ergänzen.

Ob du nun objektorientiert programmierst oder nicht liegt natürlich bei dir. Der meiner Meinung nach größte Vorteil in der Objektorientierung ist die Übersichtlichkeit (für zb Fehlersuche). Du solltest wissen, dass Objektor. derzeit schon die gängige Praxis ist (heißt es kommt vorallem bei Arbeiten denke ich besser an), jedoch ist auch alles ohne realisierbar und nicht weniger richtig! Bezüglich der Admin-Frage mach ich es immer mit 0 und 1 bei 'usertype' für kein Admin und Admin und je nachdem wird der Menüpunkt 'Eigenes Profil' oder 'Adminpanel' (um alle Profile inkl eigenes zu bearbeiten) angezeigt.

Bei weiteren Fragen gerne melden !
Danke.
Sobald ich etwas weiter im Bereich C++ bin, werde ich mich wieder etwas aktiver dazu setzen. Muss paar Websiten für die nächsten Bewerbungsgespräche aufweisen können
Mad0ck is offline  
Old 03/12/2018, 11:52   #6
 
__EAX's Avatar
 
elite*gold: 0
Join Date: Feb 2018
Posts: 11
Received Thanks: 5
Hallo Mad0ck,

auf die ersten beiden Fragen wurde meiner Meinung nach schon sehr präzise geantwortet, doch habe ich noch etwas zum Thema Frameworks sowie AdminPanel beizutragen.

Es gibt derzeit zahlreiche PHP-Frameworks im Web, die größtenteils sogar vollumfänglich kostenlos sind und quelloffen.

Laravel, das auf Symfony aufbaut, ist ein sehr mächtiges und sehr umfangreiches Framework. Das macht es zunächst nicht ganz leicht, es in Gänze zu durchschauen bzw. zu verstehen, aber das gibt sich mit der Zeit - in jedes Framework wirst du dich zunächst einarbeiten müssen.
Besonders dann, wenn es Techniken anwendet, mit denen du bisher noch keine Erfahrungen gesammelt hast (bei Laravel z.B. Stichwort Blade-Templating, Routing, Models, Controllers, Database Migrations, ...).

Laravel bietet beispielsweise einen hauseigenen Broadcastservice an: . Die meisten Videos dort sind kostenfrei, die etwas mehr sophisticated/tiefer in die Materie gehenden dann z.T. nicht. Die Videos sind getreu ihrem Motto ("It's kinda like Netflix for your career") in Episoden bzw. Serien gestaffelt und machen es dir leicht, von Anfang an mit dem Framework zu beginnen. Ich konnte Laravel sehr gut mittels Laracasts näher kennenlernen (zuvor war ich bereits "konventioneller" PHP-Entwickler) und musste für die Themenbereiche, die ich tatsächlich gebraucht hatte, nichts bezahlen. Die Mitgliedschaft kostet dort 15 $ im Monat. Das Forum, was Laracasts einschließt, ist kostenfrei und du kannst dort deine Fragen posten (besonders am Anfang, das kann ich dir aus erster Hand berichten, wirst du dort öfter vorbeischauen - ob durchs Googlen oder Selbstfragen); der Community-Support ist da durchaus sehr gut und hilfreich m.E.

Das alles hat nur einen Haken (oder auch nicht): Es ist auf Englisch - vollständig. Für mich war das überhaupt kein Problem, nur kenne ich durchaus einige meiner Kollegen, die sich soetwas nicht gerne auf Englisch nähern - das musst du wissen.

Frameworks werden besonders bei mittleren oder größeren Projekten zum Einsatz gebracht, um eine gewisse grundsolide Sicherheit bzw. später die Wartbarkeit sicherzustellen. Paketmanager wie Composer sind unmittelbar Teil dieser Frameworks, die ebengenannte Wartbarkeit garantieren sollen.
Man kann, -zumindest aus meiner Erfahrung heraus-, also durchaus sagen, dass Frameworks besonders dann zum Einsatz kommen, wenn's um ein geweisses Maß an Ernsthaftigkeit oder Seriosität geht; diese Frameworks "blasen" natürlich dein Projekt auf und machen es, -ganz gleich ob du gut damit umgehen kannst oder nicht-, unübersichtlicher und größer, und diesen Mehraufwand braucht man sich nicht leisten, wenn man "es nicht ernst genug meint" bzw. der seriöse Anwendungszweck einfach nicht gegeben ist.

Viele Webseiten von Privatservern jedweder Art von Spielen sind nicht gut entwickelt bzw. programmiert und sind daduch anfällig für Hackerangriffe - dadurch gibt es immer wieder Datenbankleaks oder Sonstige. Und dann gibt es gelegentlich gut durchdachte und entwickelte/programmierte Privatserver mit dazugehöriger Webseite - auch, wenn diese vielleicht nicht auf ein großes Framework wie Symfony oder Laravel setzt, setzen Coder, die einem Projekt eine gewisse Ernsthaftigkeit beimessen, auf kleinere, sogenannte leightweight Frameworks wie beispielsweise Laravel Lumen oder CakePHP. Auch CodeIgniter ist für solche Projekte durchaus interessant.

Es kommt demnach also immer primär auf den Anwendungszweck und die Größe bzw. den Umfang deines Projektes an.


Zum Thema AdminPanel: Natürlich genügt es zur technischen Funktion, dass du einen nummerischen Wert auf 0 bzw. 1 setzt für ein Attribut in deiner Datenbanktabelle (z.B. "admin"; 0 = false, 1 = true). Ich kenne dein Projekt nicht im Einzelnen, aber bedenke, dass du dabei ein binäres Rechtesystem schaffst: User und Admin. Dabei lässt du zunächst nicht zu, eine weitere Berechtigung (wie z.B. die eines Moderators) hinzuzufügen, ohne signifikant in deinen Code wieder einzugreifen. Du könntest stattdessen beispielsweise ein Attribut "rank" aufstellen, das beispielsweise so funktioniert: "0" = gesperrt, keine Berechtigungen, "1" = User, "2" = Moderator, "3" = Admin. So könntest du ein kleines Rechtesystem implementieren. Im nächsten Schritt wäre eine weitere Datenbanktabelle z.B. "Permissions" möglich, wo du dann gemäß des Ranges einer Berechtigung einen Namen zuteilst und diese erlaubst (z.B. "user.login" erfordert "rank" = "1", bzw. "admin.login" "rank" = "3"). Aber auch hier gilt: Kenne den Umfang deines Projektes. Sowas kann sehr nützlich bzw. hiflreich weiterhin sein, wenn man zu Beginn ein kleines System wie o.g. implementiert, doch unnötig und nervig-zeitraubend, wenn man es nie benötigen wird.

Entschuldige bitte diesen Beitrag der Länge der Bibel. :-D
__EAX is offline  
Thanks
3 Users
Old 03/12/2018, 18:48   #7
 
Mad0ck's Avatar
 
elite*gold: 313
Join Date: Oct 2014
Posts: 1,367
Received Thanks: 284

Ich danke dir herzlich für die Zeit und Mühe, welche du für die Antwort aufgebracht hast !

Die Länge der Antwort ist nicht schlimm. Ich sehs so je mehr hier steht desto mehr kann ich lernen.
Antworten von Leuten mit mehr Erfahrung oder generell mehr Praxiserfahrung ist immer gut für Anfänger, da so etwas in keinem Buch steht.

Jedenfalls merke ich langsam, dass ich viel zum nachlernen bzw generell zum lernen habe.
Wobei man sagen muss, in so einer Branche hat man nie wirklich ausgelernt

Danke nochmals !
Mad0ck is offline  
Thanks
1 User
Reply


Similar Threads Similar Threads
2 fragen bez. den Bots
04/19/2012 - Diablo 2 - 30 Replies
meine erste frage ist: welcher bot ist den nun einer der Top Favos?! habe so viele gelesen und gehört, Muddys, Etal, Bluebird, Kuk, Sternenlooper..... Ich möchte einen stink normalen Bot der ordentliche dia und baal runs macht, einfach einzustellen und zu bedinen ist zudem auch gut ausgereift ist und bugfrei ist...
Fragen bez. Crossfire
01/14/2012 - CrossFire Trading - 4 Replies
1. Ist ein Z8Games-Account ein US-Account? 2. Kann man mit einem US-Account in Deutschland spielen? 3. Kann man mit einem Z8Games-Account CF-EU zocken? 4. Was ist CF NA? THX
Main und Botchar in eine Gilde-Fragen bez. Acc Sicherheit
06/16/2010 - WoW Bots - 7 Replies
Moin, also ich hab folgende Frage ist es Ratsam mein Botchar und meinem bankchar vom Mainaccount in eine Gilde zu stecken und mit dem Bankchar die sachen von der Gildenbank zu nehmen und zu verkaufen? Kann der Schneesturm da was gegen mein Mainaccount machen? Nochwas, da anfangs nicht geplant war das ich mit dem account botten werden habe ich Gametime von meinem Konto bezahlt. Von dem habe ich auch schon meinem Mainaccount bezahlt. Könnten die den deswegen mitbannen? Ich könnte ja...



All times are GMT +2. The time now is 22:14.


Powered by vBulletin®
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
SEO by vBSEO ©2011, Crawlability, Inc.
This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

Support | Contact Us | FAQ | Advertising | Privacy Policy | Terms of Service | Abuse
Copyright ©2024 elitepvpers All Rights Reserved.