| Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
| Autor |
Nachricht |
PhP0Kid Profi-Benutzer
Anmeldedatum: 05.01.2007 Beiträge: 403 Wohnort: Ellwangen (nahe Aalen) Programmiersprachen: PHP, CSS, (X)HTML, SQL, JavaScript, C++ (nach Erfahrung von links nach rechts)
|
Verfasst am: 19.01.2007, 17:31 Titel: Allgemeine, sichere, schnelle und effiziente Programmierung |
|
|
Hi,
dieser Thread dient einfach mal dazu Ideen zu
Stil
Sicherheit
Schnelligkeit
Einfachheit
eines Programmes zu finden.
Ich werde dann alles zusammenfassen, ordnen, betiteln, beschreiben, erklären (soweit es mir möglich ist) und dann posten.
Wie ihr eine Idee eintippt?
=> 1. Der Hauptbegriff
geht es um den Schreibstil? Lieber && als AND? Oder geht es um eine Funktion, die Sicherheitslücken aufbringen kann? Ist sie umgehbar? Oder doch weglassen? Wie ist etwas schneller zu realisieren?
Wenn ihr Dinge über JavaScript, C++ oder VB bringt, dann bitte mit Erklärung, da ich das eher schwächlich kann. JavaScript und VB ein wenig aber C++ noch schwach (ich versuch mein Bestes =) )
lg _________________ PHP-Programmierer aus Leidenschaft.
_________________
http://www.Julian-Stier.de | T-REx 2.2
Aktuelles ( 5.5.08 ):
* CMS, Julian-Stier.de - September 2008
* T-REx 2.3.0 - 2. Quartal 2008
* GlobalIndustry - release 2009 |
|
| Nach oben |
|
 |
synapsis Administrator

Anmeldedatum: 15.10.2006 Beiträge: 385 Wohnort: Nahe München Programmiersprachen: C/C++, VB, (Java), php, JS, AJAX, (Python) Compiler: MS VS2005 SE
|
Verfasst am: 19.01.2007, 19:12 Titel: |
|
|
Grundlegender Stil / Gestaltung eines Skripts
1. Header
Jede Quellcodedatei muss einen Header besitzen, in dem der Name, der Zweck, eine Copyright-Notiz und die Namen der Autoren stehen. Das ganze könnte dann folgendermaßen aussehen.
| Code: |
/*
* Name: index.php
* Purpose: Draws the main site.
*
* Last Author: $Author
* Revision: $Revision
* ID: $ID
*
* Copyright (C) 2007 Synapsis Developing Community
*/ |
Die Variablen $Author, $Revision und $ID würden automatisch vom SCM-System (also Subversion) ausgefüllt werden.
2. Allgemeiner Programmierstil
Grundsätzlich stellt jeder Bereich innerhalb geschweifter Klammern eine neue Ebene dar, d.h. hier wird einen Tab weiter eingerückt. Bei Variablen-Definitionen sollten grundsätzlich alle Variablen initialisiert werden und ein kurzer Kommentar über die Nutzung/Funktion der jeweiligen Variable abgegeben werden.
Als Vergleichsoperator wäre eine Nutzung von "==" anstatt "=" sinnvoll, da dadurch Vergleiche von Zuweisungen deutlich zu unterscheiden sind. (Ist in C sowieso standard)
Mir persönlich würde eine Nutzung von AND und OR anstatt && und || besser gefallen, da das ganze dann erheblich übersichtlicher wird.
Und vorallem: Ruhig mal ein paar Zeilen frei lassen und nicht alles so auf einen Haufen batzen, so dass man danach nicht mehr erkennen kann, welche if-Abfrage wo aufhört. Auch bin ich der Meinung, dass die Verwendung der folgenden Syntax eher zur Unübersichtlichkeit führt, als zu einem günstigeren Code:
| Code: |
Anstatt
Bedingung ? Folge1 : Folge2
kann man ja auch
if (Bedingung)
{
Folge1
}
else
{
Folge2
}
schreiben, was meiner Meinung nach wesentlich übersichtlicher ist.
|
Beispiel:
| Code: |
// Variablen
$counter = 0; // Zähler für die Anzahl der Einträge
// Überprüfen, ob Einträge vorhanden
if ($_GET['counts'] <=0)
{
exit;
}
// Alle Einträge durchgehen
while($counter <= $_GET['counts'])
{
$counter++;
// irgendeine Abfrage
if ($data[$counter] == "variabletest")
{
// Irgendwas tun....
}
}
|
3. Namenskonventionen und Kommentare
Für die Namen von Funktionen, Variablen, Klassen, etc. sollte grundsätzlich nur die englische Sprache verwendet werden. Desweiteren sollte beim Programmieren mit C/C++ die ungarische Notation verwendet werden. Ich weiß leider nicht, ob es für php etwas vergleichbares gibt. Kommentare sollten einheitlich sein. Da es unter php mehrere Möglichkeiten gibt, eine Kommentarzeile zu generieren, sollten wir uns auf eine Möglichkeit festlegen. Ich würde für mehrzeilige Kommentare "/*xxxx*/" und für einzeilige "//" vorschlagen, da dies der C/C++-Konvention entspricht und somit der Einstieg für nicht-phpler leichter ist. Man kann nun darüber streiten, ob die Kommentare selbst auch in Englisch geschrieben werden sollten (wie die Namen) oder lieber in Deutsch. Ich habe allerdings die Erfahrung gemacht, dass es wesentlich produktiver ist, die Kommentare auf Deutsch zu verfassen.
4.Sicherheit
Grundsätzlich für das sichere Programmieren gilt: Alles, was irgendwie von außen in das Programm eingeschleust wird, muss auf Gültigkeit geprüft werden. Solche Gültigkeitsüberprüfungen sind das A und O.
@Php0Kid
Schöne Webseite! |
|
| Nach oben |
|
 |
PhP0Kid Profi-Benutzer
Anmeldedatum: 05.01.2007 Beiträge: 403 Wohnort: Ellwangen (nahe Aalen) Programmiersprachen: PHP, CSS, (X)HTML, SQL, JavaScript, C++ (nach Erfahrung von links nach rechts)
|
Verfasst am: 20.01.2007, 00:32 Titel: |
|
|
Ich bin bei Einrückung für:
| Code: |
if(xxx){
xxx
}
else{
xxx
}
|
und:
| Code: |
if(xxx){
if(yyy){
zzz
}
else{
zzz
}
}
else{
xxx
}
|
_________________ PHP-Programmierer aus Leidenschaft.
_________________
http://www.Julian-Stier.de | T-REx 2.2
Aktuelles ( 5.5.08 ):
* CMS, Julian-Stier.de - September 2008
* T-REx 2.3.0 - 2. Quartal 2008
* GlobalIndustry - release 2009 |
|
| Nach oben |
|
 |
Karldin Shinowa Erster Benutzer

Anmeldedatum: 18.12.2006 Beiträge: 21 Wohnort: Wien Programmiersprachen: C++ Compiler: Visual C++
|
Verfasst am: 20.01.2007, 12:38 Titel: |
|
|
| synapsis hat Folgendes geschrieben: |
3. Namenskonventionen und Kommentare
Desweiteren sollte beim Programmieren mit C/C++ die ungarische Notation verwendet werden. |
Bin ich absolut nicht deiner Meinung. Die ungarische Notation ist unübersichtlich, sinnlos. Ich benutze sie extra nicht und umgehe sie soweit ich kann. |
|
| Nach oben |
|
 |
PhP0Kid Profi-Benutzer
Anmeldedatum: 05.01.2007 Beiträge: 403 Wohnort: Ellwangen (nahe Aalen) Programmiersprachen: PHP, CSS, (X)HTML, SQL, JavaScript, C++ (nach Erfahrung von links nach rechts)
|
Verfasst am: 20.01.2007, 13:12 Titel: |
|
|
Wäre gut, wenn ihr als C++ler das genau erklärt bzw. wenn mehr als nur 2 darüber diskutieren, damit wir uns auf etwas festlegen können.
ANMERKUNG: WICHTIG!
Jeder von uns hat bei solchen Projekten Einbußen, dass müsst ihr einsehen! Das Problem ist, dass wir einen einheitlichen Still brauchen und viele verschiedene zusammenkommen. Ich würd auch gern nach meinen Regeln programmieren, geht aber in dem Fall einfach nicht! _________________ PHP-Programmierer aus Leidenschaft.
_________________
http://www.Julian-Stier.de | T-REx 2.2
Aktuelles ( 5.5.08 ):
* CMS, Julian-Stier.de - September 2008
* T-REx 2.3.0 - 2. Quartal 2008
* GlobalIndustry - release 2009 |
|
| Nach oben |
|
 |
nubbel Neuer Benutzer
Anmeldedatum: 19.07.2007 Beiträge: 7 Wohnort: Mosbach Programmiersprachen: Deutsch, Englisch, Französisch, Spanisch
|
|
| Nach oben |
|
 |
Holzhaus Neuer Benutzer

Anmeldedatum: 26.03.2008 Beiträge: 14 Wohnort: Gelsenkirchen Programmiersprachen: PHP 5, Perl, JavaScript, ActionScript 2, Bash Compiler: MTASC für AS2
|
Verfasst am: 21.04.2008, 22:27 Titel: |
|
|
| Karldin Shinowa hat Folgendes geschrieben: |
| synapsis hat Folgendes geschrieben: |
3. Namenskonventionen und Kommentare
Desweiteren sollte beim Programmieren mit C/C++ die ungarische Notation verwendet werden. |
Bin ich absolut nicht deiner Meinung. Die ungarische Notation ist unübersichtlich, sinnlos. Ich benutze sie extra nicht und umgehe sie soweit ich kann. |
hehe, ich musste da direkt an das hier denken:
Encoding the type of a function into the name (so-called Hungarian
notation) is brain damaged - the compiler knows the types anyway and can
check those, and it only confuses the programmer. No wonder MicroSoft
makes buggy programs.
http://www.linuxhq.com/kernel/v1.3/53/Documentation/CodingStyle
Naja, ansonsten würde ich auf jeden Fall synapsis zustimmen und bei den Einrückungen den Allman-Stil[1] dem K&R-Stil[2] vorziehen.
[1]
| Code: |
if(true)
{
}
else
{
} |
[1]
| Code: |
if(true) {
} else {
} |
Eingerückt wird mit Tabs.
Bei den Namen sollte folgendes beachtet werden (zumindest bei PHP/Perl):
- Normale Variablen immer in Kleinbuchstaben
- Klassennamen beginnen mit einem Großbuchstaben
- Methoden beginnen mit einem Kleinbuchstaben, jedes weitere Wort beginnt mit einem Großbuchstaben und dafür KEINE Unterstriche (z.B. User::getName(); )
- Attribute genau wie normale Variablen nur in Kleinbuchstaben. _________________
| Zitat: |
| Wir sollten die Leistungsfähigkeit der Nachrichtendienste nicht durch parlamentarische Untersuchungsausschüsse gefährden |
- W. Schäuble auf einem Symposium des Bundesnachrichtendiensts am 1. November 2007 |
|
| Nach oben |
|
 |
synapsis Administrator

Anmeldedatum: 15.10.2006 Beiträge: 385 Wohnort: Nahe München Programmiersprachen: C/C++, VB, (Java), php, JS, AJAX, (Python) Compiler: MS VS2005 SE
|
Verfasst am: 22.04.2008, 11:05 Titel: |
|
|
Mittlerweile hab ich mich auch der Anti-Ungarischen-Notationsseite angeschlossen. Ich hatte das einfach durch Bücher so gelernt, aber durch mehr und mehr praktische C/C++ Erfahrung wende ich die Notation nicht mehr an, weils einfach auch schmarrn ist. (sehr nettes Zitat btw. )
Mit dem K&R-Stil hab ich mich auch schon angefreudet, früher war ich der Meinung: "Des geht ja mal gar nicht!" - dennoch ist der Allman-Stil meiner Meinung nach ein bischen übersichtlicher, aber genau genommen ist das Gewöhnungssache. |
|
| Nach oben |
|
 |
PhP0Kid Profi-Benutzer
Anmeldedatum: 05.01.2007 Beiträge: 403 Wohnort: Ellwangen (nahe Aalen) Programmiersprachen: PHP, CSS, (X)HTML, SQL, JavaScript, C++ (nach Erfahrung von links nach rechts)
|
Verfasst am: 22.04.2008, 21:23 Titel: |
|
|
Für mich hängen diese
einfach leer in der Luft rum. Da kriegt ich die Krise, keinerlei Zugehörigkeit nix .. ^^
Halte mich mittlerweile bei meinen Projekten auch an Standards, obwohl ich meinen einen habe, der aus mehreren zusammengemixt ist.
- Variablen werden klein geschrieben und niemals durchgehend, sondern mit sinngemäßen "_" (z.B. $user_id)
- Konstanten werden komplett groß geschrieben
- Klassen werden mit großem Buchstaben begonnen
- Funktionen und Methoden werden klein geschrieben und wie Variablen mit sinngemäßem "_" verbunden (z.B. do_some_action() )
- kommentiert wird nur noch in folgendem Stil:
| Code: |
/**
* my_function
*
* @param [array] data: id => info
* @return [boolean] true / false
*/ |
- einfache Kommentare sind nur für die Entwicklungszeit
- eingerückt wird mit Tabs, aber Notepad++ lasse ichs mit 3 Leerzeichen anzeigen (sieht schicker aus und durch Tabs flexibler)
- Konstanten werden an einer Stelle einheitlich aufgelistet und niemals mitten im Code deklariert (zur Konfiguration eben)
lG
PS: sorry, dass ich derzeit so wenig hier reinschaue - hab ne Menge zu tun  _________________ PHP-Programmierer aus Leidenschaft.
_________________
http://www.Julian-Stier.de | T-REx 2.2
Aktuelles ( 5.5.08 ):
* CMS, Julian-Stier.de - September 2008
* T-REx 2.3.0 - 2. Quartal 2008
* GlobalIndustry - release 2009 |
|
| Nach oben |
|
 |
|
|
Du kannst keine Beiträge in dieses Forum schreiben. Du kannst auf Beiträge in diesem Forum nicht antworten. Du kannst deine Beiträge in diesem Forum nicht bearbeiten. Du kannst deine Beiträge in diesem Forum nicht löschen. Du kannst an Umfragen in diesem Forum nicht mitmachen. Du kannst Anhänge in diesem Forum nicht anhängen. Du kannst Dateien in diesem Forum herunterladen.
|
|