Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » Allgemeines (OffTopic) » Programmierkonventionen

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 < [ 2 ]
000
30.10.2008, 13:12 Uhr
Lensflare



Hallo

mich interessiert da eine Sache bei den Programmierkonventionen speziell bei objektorientierten Programmiersprachen.
An was ist eine Konvention sozusagen gebunden?

Ist sie gebunden an eine Programmiersprache, an eine Entwicklungsumgebung/Compiler oder nur an ein Projekt/Library.

Also zum Beispiel:
Wenn es darum geht, ob man Methoden groß oder klein schreibt, kann man bei einer Programmiersprache behaupten, dass man es da z.B. normalerweise groß schreibt?
Oder, da ja Entwicklungsumgebungen in der lage sind Codeteile selbst zu generieren, ist es vielleicht abhängig von der Entwicklungsumgebung?

Macht es einen Unterschied, um welche Art Konvention es sich Handelt (Namensgebung/Strukturierung)?
Beispiel:
Während Methoden je nach Programmiersprache groß/klein geschrieben werden, ist es unabhängig von der Programmiersprache ob man eine geschweifte Klammer { in einer neuen Zeile beginnt oder nicht.

Ich hoffe die Fragen sind nicht zu verwirrend

Bin auf Antworten gespannt.
--
Wenn das Gehirn so einfach wäre, dass wir es verstehen könnten, wären wir so einfach, dass wir es nicht verstehen könnten.
(Emerson Pugh Trost)
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
30.10.2008, 13:50 Uhr
virtual
Sexiest Bit alive
(Operator)


Ich würde auch eine Unterscheidung zwischen Unternehmens/Projektgebundenen Konventionen und Sprachgebundenen Konventionen machen.

Eine Sprachgebundene Konvention ist zB int Java getter/setter mit dem Prefix get/set beginnen zu lassen, im Falle von booleans mit is anstelle von get.

Niemand verbietet Dir letztlich, deine Getter/setter anders zu schreiben, zB

C++:
int size();
void size(int size);


Anstelle von

C++:
int getSize();
void setSize(int size);


Allerdings gibt es eben einige (mitunter standardisierte) Mechanismen, die eben genau eine solche Konvention erfordern (Java Beans habe ich grade vor Augen). Dh ein Nicht-Einhalten dieser Konvention führt eben zu einer direkt eingeschränkten Funktionalität, weil Du die Mechanismen nicht benutzen kannst.

Die Projektspecifischen CodeConventions, so wie ich sie bisher kennen gelernt habe, beziehen sich eher auf das Layout the Quelltextes und hin+wieder Anforderungen an Benamsungen.
Diese haben in der Regel keine Funktionalen auswirkungen und werden erfahrungsgemäß deutlich kontroverser diskutiert als die Sprachgebundenen Konventionen, eben weil es oft keine objektivierbare Grundlage für die eine oder andere Konvention gibt.
--
Gruß, virtual
Quote of the Month
Ich eß' nur was ein Gesicht hat (Creme 21)
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
30.10.2008, 20:05 Uhr
0xdeadbeef
Gott
(Operator)


Du meinst hoffentlich

C++:
int size() const;


--
Einfachheit ist Voraussetzung für Zuverlässigkeit.
-- Edsger Wybe Dijkstra
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
31.10.2008, 09:14 Uhr
virtual
Sexiest Bit alive
(Operator)


Ich bin inzwischen kein C++ler mehr, sondern arbeite fast ausschließlich mit java. Da braucht man so einen Schnickschnack nicht... ;-)
--
Gruß, virtual
Quote of the Month
Ich eß' nur was ein Gesicht hat (Creme 21)
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
31.10.2008, 09:26 Uhr
0xdeadbeef
Gott
(Operator)


Ts, ts, ts...wie tief bist du gesunken...

Naja, immer noch besser als C# oder (Gott bewahre! Und das sag' ich als Atheist...) Python.
--
Einfachheit ist Voraussetzung für Zuverlässigkeit.
-- Edsger Wybe Dijkstra
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
005
31.10.2008, 13:30 Uhr
Pler
Einer von Vielen
(Operator)


Hey, was hast du gegen Python? Ich dachte, das ist jetzt DIE Sprache? Von allen geliebt!
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
006
31.10.2008, 13:45 Uhr
0xdeadbeef
Gott
(Operator)


Von Anfängern vielleicht. Ich hasse es, wenn ein Interpreter glaubt, er wüsste besser als ich, wie mein Code organisiert gehört.

Ich habe ja schon die dynamischen Typsysteme solcher Sprachen gefressen, aber Python kommt außerdem noch daher und will mir einreden, eine Vermischung von Syntax und Semantik sei eine gute Idee - auch wenn sie in der Praxis den Code sehr viel unlesbarer macht, als die Werbung einen das glauben machen will. Python hat höchstens als abschreckendes Beispiel für alles, was in Programmiersprachen falsch gemacht werden kann, einen Sinn.
--
Einfachheit ist Voraussetzung für Zuverlässigkeit.
-- Edsger Wybe Dijkstra
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
007
31.10.2008, 15:54 Uhr
Hans
Library Walker
(Operator)


Hi,

Zitat von 0xdeadbeef:
Naja, immer noch besser als C# oder (Gott bewahre! Und das sag' ich als Atheist...) Python.

- oder besser:


Zitat von 0xdeadbeef:
Python hat höchstens als abschreckendes Beispiel für alles, was in Programmiersprachen falsch gemacht werden kann, einen Sinn.

und welche Skriptsprache würdest Du stattdessen empfehlen?

Hans
--
Man muss nicht alles wissen, aber man sollte wissen, wo es steht. Zum Beispiel hier: Nachdenkseiten oder Infoportal Globalisierung.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
008
31.10.2008, 17:18 Uhr
0xdeadbeef
Gott
(Operator)


Ich persönlich benutze an Skriptsprachen meistens Shell oder Perl, das liegt aber auch daran, dass ich Skriptsprachen nur für sehr kleine Aufgaben verwende.

Prinzipiell stehe ich Skriptsprachen für größere Projekte eher skeptisch gegenüber, zum einen aufgrund der vergleichsweisen Langsamkeit, zum anderen aber auch, weil viele althergebrachte Tugenden (teilweise notgedrungen) der Bequemlichkeit geopfert werden - dynamische Typen sind eine wunderbare Sache, wenn du nur eben mal kurz was kleines zusammenschustern willst, das nur unter sehr bestimmten Bedingungen laufen muss (Ich denke da an Excel-Makros etc.), aber wehe, wenn dein Code sich in den Eingeweiden eines komplexen Systems befindet und nach der Auslieferung auf einmal Laufzeitfehler über fehlende Methoden schmeißt (Python ist hier besonders schrecklich).

Und wir reden hier ja nicht nur von einfacher RTTI, in einigen dieser Sprachen werden zur Laufzeit ganze Typen zusammengesetzt. Das klingt für den Programmierer toll, bis man tatsächlich anfängt, darin zu schreiben, und sich daran erinnert, dass bestimmte Garantien über das Verhalten anderen Codes ausgesprochen praktisch sind - zum Beispiel, dass die verfickten Schnittstellen sich nicht zur Laufzeit ändern!

Das alles vorausgeschickt, wenn man mich dazu zwingen sollte, eine Skriptsprache für mehr als 100 Zeilen Code auf einmal zu verwenden, würde ich nach ungefähr zwei Selbstmordversuchen wahrscheinlich Ruby benutzen.
--
Einfachheit ist Voraussetzung für Zuverlässigkeit.
-- Edsger Wybe Dijkstra
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
009
31.10.2008, 19:25 Uhr
Lensflare




Zitat von virtual:

Ich würde auch eine Unterscheidung zwischen Unternehmens/Projektgebundenen Konventionen und Sprachgebundenen Konventionen machen.

Eine Sprachgebundene Konvention ist zB int Java getter/setter mit dem Prefix get/set beginnen zu lassen, im Falle von booleans mit is anstelle von get.

(...)
Die Projektspecifischen CodeConventions, so wie ich sie bisher kennen gelernt habe, beziehen sich eher auf das Layout the Quelltextes und hin+wieder Anforderungen an Benamsungen.


Die Erfahrung habe ich auch gemacht.
Du bestätigst mir was ich schon vermutet habe.
Anscheinend gibt es da keine klaren Grenzen
Aber ich denke dass ich grob zwischen "Namensgebung" und "Layout" unterscheiden kann.



@0xdeadbeef:
eine ziemlich radikale Meinung
Aber ich sehe das mit den skriptsprachen und der dynamischen typisierung ähnlich.

Mich interessiert wieso du C# nicht magst.
Ich habe vor einigen Wochen damit angefangen und finde es toll, weil es meiner Meinung nach ua. die die Vorteile von C++ und Java vereinigt.

Operatorüberladung, Funktionspointer/-referenzen, öffentliche Klassen nicht an Dateien gebunden (Java = jede öffentliche Klasse in eine seperate Datei), ...

Die Modifizierer sind besser durchdacht. zum Beispiel:
- Wenn Klassenmember const, dann auch automatisch static
- Methoden in Interfaces automatisch public
- Klassen können als static markiert werden

Ich fange zwar gerade damit an die Sprache zu erforschen aber das sind die Sachen die mir an C# sehr gefallen.
--
Wenn das Gehirn so einfach wäre, dass wir es verstehen könnten, wären wir so einfach, dass wir es nicht verstehen könnten.
(Emerson Pugh Trost)

Dieser Post wurde am 31.10.2008 um 19:32 Uhr von Lensflare editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 < [ 2 ]     [ Allgemeines (OffTopic) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: