www.wikidata.de-de.nina.az
Ein Programmierstil engl code conventions coding conventions coding standards ist in der Programmierung das Erstellen von Quellcode nach bestimmten vorgegebenen Regeln Er gilt als Teilaspekt von Softwarequalitat der insbesondere die Verstandlichkeit und Wartbarkeit von Software dies sind Kriterien fur Softwarequalitat gem ISO IEC 9126 aktualisiert durch ISO IEC 25000 unterstutzen soll Ein Programmierstil und die Vorgaben dazu regeln wie ein Programm d h sein Quellcode in formaler und struktureller Hinsicht gestaltet sein soll unabhangig davon was das Programm leisten soll Dabei wirken drei Aspekte zusammen Die Vorschrift Die Definition von Regeln oder Konventionen Standards Im Sinn von Software Qualitat das Erfullen von Anforderungen sind dies Anforderungen Die Handlung Das Umsetzen Berucksichtigen dieser Regeln Programmieren Erstellen von Programmcode Das Ergebnis Der Quelltext mit seiner Struktur und seinem Erscheinungsbild im Rahmen der Qualitatssicherung auf Einhaltung der Vorschrift en uberprufbarIn einem umfassenderen Sinn gelten auch die Programmierparadigmen als fundamentaler Programmierstil 1 Die Beurteilung eines Programmierstils erfordert in der Regel ein tiefes semantisches Verstandnis des Programmquelltextes Aus diesem Grund sind Style Checker und Beautifier bisher nicht oder nur ausserst eingeschrankt in der Lage die Uberprufung auf einen guten Programmierstil bezuglich dieser Elemente durchzufuhren bzw eine Einhaltung gewahrleisten zu konnen Inhaltsverzeichnis 1 Zweck 2 Beispiele fur Elemente des Programmierstils 3 Beispiel Quelltextformatierung 3 1 Umstrittene Elemente 3 1 1 Kommentare 3 1 2 Zeilenlange 3 1 3 Einruckungsstil 3 2 Regelwerke 4 Siehe auch 5 Literatur 6 Weblinks 7 EinzelnachweiseZweck BearbeitenDer Zweck eines definierten Programmierstils ist die Erleichterung der Arbeit aller an einem Programmierprojekt beteiligten Teammitglieder Das bezieht sich insbesondere auf die Lesbarkeit Verstandlichkeit und Wartbarkeit von Programm Quelltext bzw der Eliminierung vermeidbarer Fehlerquellen in Programmen Im Sinne der Verstandlichkeit und Wartbarkeit kann eine Richtlinie die Verwendung von programmsprachlich erlaubten aber unsauberen Programmkonstrukten einschranken oder ganz verbieten Die Einhaltung von vorgangig definierten Nomenklaturen fur Variablen Prozeduren und Klassennamen kann Lesbarkeit und Wartbarkeit eines Programmcodes wesentlich verbessern Wahrend der Wartung ist die Einhaltung eines definierten Programmierstils noch wichtiger als wahrend der Entwicklung Als Richtwert gilt dass 80 der Lebenszeit eines Softwareprodukts auf die Wartung entfallen Oft wird ein Programm nicht von der ursprunglichen programmierenden Person gewartet Umso wichtiger ist es dass bereits vom ersten Augenblick an ein guter Programmierstil verwendet wird Ein Programmierstil sollte nicht unbedingt wie eine Doktrin ausgelegt werden Verstosse dagegen sollten erlaubt sein sofern sie gut begrundet sind Dies kann in Einzelfallen beispielsweise beim Programmierstil im engeren Sinne durch optimierte Platzausnutzung den Uberblick verbessern durch Betonung bestimmter Einzelheiten der Verstandlichkeit dienen oder als Ad hoc Sonderregel fur besondere Codeteile die Ziele des Programmierstils mit anderen Mitteln verfolgen Beispiele fur Elemente des Programmierstils BearbeitenDie Inhalte die Gegenstand eines Programmierstils sind konnen von Fall zu Fall unterschiedlich sein Die Bandbreite reicht von einfachen Vorgaben zur Code Strukturierung Einruckungen bis hin zu Festlegungen fur alle das Wie der Implementierung betreffenden Details In grosseren Projekten und Unternehmen wo viele Beteiligte in der Softwareentwicklung zusammenarbeiten werden die Anforderungen zum Programmierstil haufig in Programmierrichtlinien festgelegt Oft bauen diese auf uberbetrieblich oder international veroffentlichten Konventionen und Empfehlungen auf Beispiele sind die Ungarische Notation oder die Java Code Conventions 2 Ein Teil der Regeln ist auf die verwendete Programmiersprache ausgerichtet Einzelne oder viele Elemente konnen situationsbedingt unterschiedlich wichtig sein von Muss bis zu nicht relevant z B abhangig davon ob die Software nur einmalig oder dauerhaft benutzt werden soll Im privaten oder nicht kommerziellen Bereich wenden Softwareentwickler haufig nur einen erlernten oder intuitiv angewendeten nicht explizit festgelegten Programmierstil an Beispiele fur Elemente des Programmierstils sind nachfolgend gelistet u a aus 3 Verwenden der ublichen Vorgehensweisen im gewahlten Programmierparadigma z B Objektorientierte Programmierung Festlegung von Namenskonventionen Wie sind Bezeichner zu wahlen Anwendung von Entwurfsmustern Verwendung von Compilerdirektiven und Schaltern Strukturierung des Codes Einruckungen Modul Prozedurgrosse GOTO Verbot Wo sollen Leerzeichen stehen Wie ist einzurucken Maximale Zeilenanzahl einer Routine Typisierung Wahl des Typs fur ein Symbol oder eine Variable Initialisieren von Variablen Zugriff auf Variable fremder Objekte Prozeduren Gestaltung von Funktionsaufrufen Parameterubergaben Ruckgabewerte pflichtgemass zu verwendende Standardkomponenten wie Unterprogramme APIs etc Vermeidung von Redundanz und moglichst breite Wiederverwendbarkeit durch Modularisierung Unabhangigkeit verschiedener Programmteile Modularitat Einheitlichkeit bei der Losung gleichartiger Probleme z B durch Normierte Programmierung Robustheit durch ausfuhrliche Fehler und Ausnahmebehandlung Umfang und Form der Dokumentation Je Prozedur je Zeile Detaillierungsgrad abgestimmt auf weitere DokumenteBeispiel Quelltextformatierung BearbeitenWichtige Aspekte des Programmierstils sind die Anordnung von untergeordneten Programmelementen Einruckungsstil die damit unmittelbar auch auf die Positionierung umschliessender Syntaxelemente wie BEGIN oder END Einfluss haben sowie der Einsatz von Leerzeichen und Leerzeilen und die Verschachtelungstiefe untergeordneter Programmelemente Auch die Namenskonventionen fur Symbole spielen eine gewichtige Rolle im Zusammenhang mit der Bewertung des Programmierstils Der Name eines Symbols sollte die Funktion oder Verwendungsweise hinreichend erklaren oder zumindest andeuten Da heute ausreichend Speicherplatz fur den Code zur Verfugung steht ist die fruher ubliche platzsparende Verwendung von Kurzeln wie zum Beispiel dskmngr nicht mehr gerechtfertigt Haufig wird fur unterschiedliche Arten von Symbolen auch eine unterschiedliche Schreibweise verwendet um so am Symbolnamen ablesen zu konnen ob es sich um eine Variable eine Funktion eine Klasse oder eine Konstante etc handelt Siehe auch Ungarische Notation In diesem Zusammenhang sind auch die Lange und der Umfang von Symbolen sowie deren Deklarationsreihenfolge von Bedeutung Diese Aspekte der Quelltextformatierung beziehen sich in erster Linie auf die optische Lesbarkeit dadurch jedoch direkt auch auf die Verstandlichkeit eines Programmquelltexts Style Checker wie beispielsweise Checkstyle konnen die meisten Kriterien fur einen guten Programmierstil bezuglich dieser Elemente uberprufen Beautifier sind in der Lage durch Umformatierung des Quelltextes die Einhaltung eines guten Stils bezuglich dieser Elemente zu gewahrleisten Umstrittene Elemente Bearbeiten Die folgenden Elemente von Programmierstilen sind umstritten Es folgt zu jedem Element eine Gegenuberstellung der Argumente der jeweiligen Befurworter und Gegner Falls moglich und als allgemein akzeptiert betrachtbar schliesst sich eine Empfehlung bezuglich des umstrittenen Elements an die Erorterung an Kommentare Bearbeiten Hauptartikel Kommentar Programmierung Als Kommentare sollen nichttriviale oder nichtoffensichtliche Sachverhalte beschrieben jedoch zum Programmcode in erkennbarer Form redundante Informationen vermieden werden Die Menge Frequenz an Kommentaren soll sich auf zum Verstandnis des Programms relevante Informationen beschranken 2 Dies kann auch von der Programmiersprache z B der Verwendbarkeit Sprechender Namen abhangig sein Zu viele Kommentare konnen auf eher schlechte Codequalitat hinweisen Wo ein Kommentar erforderlich scheint solle der Entwickler eine alternative Form der Implementierung prufen 2 Zu wenige Kommentare bedeuten im Wartungsfall z B durch andere Entwickler zu hoherem Aufwand fur die Einarbeitung ins oder das Verstandnis fur das Programm fuhren im schlimmsten Fall zu Fehlimplementierungen fuhren Fruher galt die Abwesenheit von Kommentaren im Quellcode generell als Zeichen fur einen schlechten Programmierstil Man ging davon aus dass Kommentare unerlasslich waren Seit Refactoring und Clean Code wird das differenzierter gesehen Robert Cecil Martin weist beispielsweise darauf hin dass Kommentare niemals schlechten Code ausgleichen und Code stets selbsterklarend sein sollte Er unterscheidet zwischen guten und schlechten Kommentaren 4 Zeilenlange Bearbeiten Oft wird eine Begrenzung der Zeilenlange als guter Programmierstil angesehen Fur eine solche Begrenzung spricht je nach festgelegter Maximal Zeilenlange dass kurzere Zeilen in der Regel leichter lesbar sind als langere insbesondere leichter als mehrere lange automatisch nur an Wortgrenzen umbrochene Zeilen untereinander siehe den mehrspaltigen Satz von Zeitungen sich langere Anweisungen meist semantisch in einzelne Teile Zeilen untergliedern lassen Vergleichswerkzeuge wie diff oft zeilenweise arbeiten und dabei Anderungen leichter zu erkennen sind bei Beschrankung auf den sicheren druckbaren Bereich 80 Zeichen semantisch motivierte Zeilenumbruche und Einruckungen auch im Ausdruck erhalten bleibenGegen eine Begrenzung der Zeilenlange also fur ungekurzte Zeilen spricht dass dies Handarbeit entweder beim Programmieren oder bei der Einrichtung der IDE erfordert insbesondere neuere APIs lange Symbolnamen verwenden was die Entstehung sehr langer Zeilen begunstigt bei einer Suche mit grep die Fundstelle per Voreinstellung eine einzelne Zeile ohne Kontextzeilen die vollstandige Anweisung zeigen kannAls Konsens kann gelten dass auch lange Zeilen keinesfalls mehr als eine Anweisung enthalten sollen Einruckungsstil Bearbeiten Der Einruckungsstil ist wohl der umstrittenste Punkt eines Programmierstils Folgende Empfehlungen gelten jedoch als allgemein anerkannt Festlegung innerhalb eines Projekts Teil Projekts Teams oder Unternehmens Beispiel Fur unsere Open Source Projekte in C und C verwenden wir die GNU Coding Standards fur Java grundsatzlich die Code Conventions von SUN und ansonsten die gemass Allman Konsequente Umsetzung Keine Mischung unterschiedlicher Stile in einem ProjektEbenfalls viel diskutiert ist die Frage der Einruckungstiefe fur untergeordnete Blocke und ob man dabei Leerzeichen oder dem Tabulatorzeichen den Vorzug geben sollte So schreibt die Code Convention fur Java beispielsweise eine Einruckungstiefe von vier Leerzeichen die Code Convention fur Linux hingegen eine Einruckungstiefe von acht Zeichen vor Der Vorteil der Einruckung mit Leerzeichen besteht darin dass die Einruckung unabhangig von den Anzeigeoptionen des Anzeigeprogramms oder Editors stets erhalten bleibt Tabulatorzeichen zur Einruckung bieten im Gegenzug den Vorteil dass jeder Entwickler selbst durch die Konfiguration der Tabulatorschrittweite seines Texteditors die dargestellte Einruckungstiefe bestimmen kann Einigkeit besteht jedoch bezuglich der Auffassung dass man beide Varianten nicht mischen sollte Eine Mischung von Tabulator und Leerzeichen bei der Einruckung fuhrt zu uneinheitlichen Einruckungstiefen fur Elemente auf der gleichen Hierarchiestufe was der Lesbarkeit eher abtraglich ist Regelwerke Bearbeiten Einige Qualitatsnormen im Softwareumfeld IEC 61508 CMMI SPICE usw fordern explizit die Anwendung bestimmter Regelwerke fur die Programmierung Beispielsweise ist im Umfeld der Automobilindustrie haufig der Programmierstandard MISRA C vorgeschrieben Siehe auch BearbeitenCodequalitatLiteratur BearbeitenJoseph Bergin Coding at the Lowest Level Coding Patterns for Java Beginners Hrsg Pace University pace edu abgerufen am 19 Februar 2010 Weblinks BearbeitenGoogle Java Code Style englisch The GNU Coding Standards englisch Linux Kernel Coding Style englisch OpenBSD Kernel source file style guide KNF englisch ActionScript Coding Standards von MacroMedia englisch Object Pascal Style Guide englisch PHP PEAR Coding Standards englisch Einzelnachweise Bearbeiten Andreas Schwill Uni Paderborn Programmierstile im Anfangsunterricht a b c Oracle Code Conventions for the Java TM Programming Languageoracle com 1999 Uwe Sauerland Richtlinien zum Programmierstil Robert Cecil Martin Clean Code A Handbook of Agile Software Craftsmanship Prentice Hall Upper Saddle River NJ u a 2008 ISBN 978 0 13 235088 4 4 Comments S 53 74 Abgerufen von https de wikipedia org w index php title Programmierstil amp oldid 233072469