Programmierstil in Java Coding-Standards und Dokumentation

Ähnliche Dokumente
Einstieg in die Informatik mit Java

Programmieren I. Dokumentation mit javadoc Heusch 10.4 Ratz Institut für Angewandte Informatik

Programmieren I + II Regeln der Code-Formatierung

Programmieren I + II Regeln der Code-Formatierung

JAVA Kommentieren mit Javadoc

Programmieren I. Dokumentation mit Javadoc Heusch 10.4 Ratz Institut für Angewandte Informatik

Javadoc. Programmiermethodik. Eva Zangerle Universität Innsbruck

Sun s Java Code Conventions

Programmierpraktikum Java Entdecken Merkblatt 2

Einführung in die Programmierung I. 2.0 Einfache Java Programme. Thomas R. Gross. Department Informatik ETH Zürich

Java-Schulung Grundlagen

Einführung in Javadoc

Programmieren in Java

1. Zeilenendkommentare: // geklammerte Kommentare: /*... */ 3. Dokumentationskommentare: /**... */

Erreichbarkeit von Klassenelementen. Daten verstecken und kapseln

Entwicklungsrichtlinien. 6. Mai 2015

Java Einführung Programmcode

Codestil. Erläuterung und Definition eines einheitlichen Codestils. Anfänger-Praktikum SS 2004 Gruppe 2 Tutor Aaron Ruß Autor: Tomas Cernaj

3. Dokumentieren und Testen Advanced Programming Techniques Prof. Dr. Bernhard Humm FB Informatik, Hochschule Darmstadt

ProgWerkstatt 7. Dezember 2006 Tipps & Tricks. GUI Programmierung

Java - Programmierung - Objektorientierte Programmierung 1

Hello World. Javakurs 2014, 1. Vorlesung. Sebastian Schuck. basierend auf der Vorlage von Arne Kappen. wiki.freitagsrunde.org. 3.

Programmieren in Java

Wo sind wir? Übersicht lexikale Struktur von Java

Tel PHP-Coding-Guidelines PHP Coding-Guidelines 1. Ausgabe Oktober 2012

12 Abstrakte Klassen, finale Klassen und Interfaces

Interface. So werden Interfaces gemacht

Selbststudium OOP6 & ALG Programmieren 1 - H1103 Felix Rohrer

Coding Standards Brandbox

PHP Code Konventionen Um einen einheitlichen Code zu generieren, der von jedem gelesen werden kann, müssen folgende Konventionen eingehalten werden.

Problemstellung. Informatik B - Objektorientierte Programmierung in Java. Vorlesung 24: Reflection 1. IDE und automatische Tests.

Programmieren 2 Java Überblick

Dokumentationskonzept

Distributed Computing Group

EINFÜHRUNG IN DIE PROGRAMMIERUNG

3. Anatomie eines imperativen Java- Programms

Programmieren von Webinformationssystemen

C# - Einführung in die Programmiersprache Methoden. Leibniz Universität IT Services

Methoden und Wrapperklassen

Selbststudium OOP7 & ALG2 Auftrag

Erzeugungsmuster. Kapselung der Objekt-Erzeugung

Einführung in die Informatik

Java Programmierung auf der Konsole / unter Eclipse

Besprechung. Übung 1 Software Engineering

Objektorientierung II & die Java Klassenbibliothek. Kristian Bergmann und Arthur Lochstampfer

1. Der Einstieg in Java. Was heißt Programmieren?

Einführung Datentypen Verzweigung Schleifen. Java Crashkurs. Kim-Manuel Klein May 4, 2015

3. Java - Sprachkonstrukte I

Grundlagen. Felix Döring, Felix Wittwer 24. April Python-Kurs

JAVA - Methoden

Einführung Datentypen Verzweigung Schleifen Funktionen Dynamische Datenstrukturen. Java Crashkurs. Kim-Manuel Klein

Besprechung. Übung 1 Software Engineering

3 Objektorientierte Konzepte in Java

Primitive Datentypen

javascript Coding-Guidelines 2. Ausgabe Februar 2015 Der Guideline beschreibt den verwendeten Coding-Stil von javascript als eigene Richtline.

Einführung in die Programmierung mit Java

Codingstandard. Softwareentwicklung Praktikum Stand:

Softwareentwicklung Dokumentation mit JavaDoc

Das erste Programm soll einen Text zum Bildschirm schicken. Es kann mit jedem beliebigen Texteditor erstellt werden.

Javakurs für Anfänger

Datenbankanwendungsprogrammierung Crashkurs Java

Java Einführung VARIABLEN und DATENTYPEN Kapitel 2

Vorlesung Informatik II

Algorithmen und Datenstrukturen

Praktische Informatik I Wintersemester 2005/2006 Abgabe: 23. November 2005

Arbeitsblätter für die Lehrveranstaltung OOP JAVA 1

Algorithmen und Datenstrukturen 06

Systemprogrammierung. Projekt: Java RMI. Wintersemester 2006 / 2007

DHBW Stuttgart, Informatik, Advanced SW-Engineering Aug Programmierung

II.1.1. Erste Schritte - 1 -

Klausur Grundlagen der Programmierung

Objektorientierte Programmierung. Kapitel 22: Aufzählungstypen (Enumeration Types)

Grundlagen der Programmierung Prof. H. Mössenböck. 15. Pakete

Programmier-Richtlinien

Kommentare, Client-Server, Protokolle

JAVA - Methoden - Rekursion

JAVA BASICS. 2. Primitive Datentypen. 1. Warum Java? a) Boolean (logische Werte wahr & falsch)

Themen. Web Service - Clients. Kommunikation zw. Web Services

Java - Programmierung - Prozedurale Programmierung 1

CoMa 04. Java II. Paul Boeck. 7. Mai Humboldt Universität zu Berlin Institut für Mathematik. Paul Boeck CoMa 04 7.

2 Eine einfache Programmiersprache

AuD-Tafelübung T-B5b

Schritt 4: Hallo Enterprise Bean

Programmieren von Webinformationssystemen

Einstieg in die Informatik mit Java

Schöner Programmieren

1. Der Einstieg in Java

Übungen Informatik I. JAVA - Eclipse. elga Gabler, Holger Vogelsang, Christian Pape. Übungen Informatik 1 1

public static void main(string[] args) { try { kill(); } catch (RuntimeException r) { System.out.println("RunTimeException "+ r +"\n"); } catch

Fragenkatalog ESOP WS 16/17

Zugriffsrechte und Packages

Einführung in die Programmierung mit Java

Übungen Informatik I. JAVA - Einführung. elga Gabler, Holger Vogelsang, Christian Pape. Übungen Informatik 1 Folie 1

Einführung in JavaDoc

Wie ich lernte die API zu lieben. 19. März sic[!]sec GmbH Industriestraße Gröbenzell

System.out.println("TEXT");

Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 11/12. Kapitel 1. Einführung und Grundbegriffe

Java Einführung Methoden. Kapitel 6

Spracherweiterungen in Java 5

EINFÜHRUNG IN DIE PROGRAMMIERUNG

Transkript:

Coding-Standards und Dokumentation SEP Felix Zenz 23.10.2017 Wissenschaftliche Betreuer: Prof. Dr. Peer Kröger, Janina Sontheim, Daniel Kaltenthaler, Johannes Lohrer Verantwortlicher Professor: Prof. Dr. Peer Kröger

Inhalt des Vortrags Coding-Standards Objektorientierte Designprinzipien Namenskonventionen Formatierung Weiteres Dokumentation (mit JavaDoc) Tags Erzeugen einer HTML Dokumentation 2

Coding Standards Motivation Reicht es nicht, wenn der Code am Ende funktioniert? class asdf{public static void main(string[] jkl){system.out.println(((char)72)+""+ (char)101+(char)108+(char)108+(char) 111+(char )32+(char)87+(char)111+(char)114+(char)108+(char)100 );}} public class HelloWorld { private static final String MESSAGE = "Hello World"; } public static void main(string[] programarguments){ System.out.println(message); } Beides compiliert und gibt Hello World aus 3

Häh? WTF?! WTF? Achso... Code Review Code Review WTF?! Was ist das??!?! Guter Code Schlechter Code Es geht bei gutem Programmierstil darum, wie leicht der Code zu lesen, verstehen und warten ist. Ca. 80% der Lebenszeit eines Codes findet in der Wartung/Weiterentwicklung statt. 4

OO-Designprinzipien Auch das Einhalten von Designprinzipien ist notwendig um Code lesbar zu halten: Single-Responsibility-Prinzip Open-Closed-Prinzip Liskovsches Substitutionsprinzip Interface-Seggreation-Prinzip Dependency-Inversion-Prinzip u.a. 5

Namenskonventionen Packages Reihenfolge: Umgedrehte Internetdomain package com.example.mypackage Klassen, Methoden, Variablen, Konstanten Packages Klassen Interfaces Methoden Felder(Variablen), Parameter Konstanten(final) lowercase PascalCase PascalCase lowercamelcase lowercase UPPER_CASE 6

Namenskonventionen Sprache: Englisch Abkürzungen möglichst vermeiden rectanglebottom nicht rbottm Sprechende Namen boolschevariablen positiv formulieren: active nicht notactive Methoden tun etwas Verben fillrectangle() nicht rectanglefiller() get/set/is getrectangle() liefert rectangle isactive() liefert active 7

Formatierung Einheitliches Encoding (UTF-8) Einheitliche Tabulator-Länge / keine Tabs Zeilenlänge beschränkt halten (80 Zeichen) evtl. 100 Sollte die Zeile zu lang werden: Umbruch nach Operator oder Komma Ausrichtung am Anfang des Ausdrucks static final ImmutableMap<String, SomeMutableType> mutablevalues = ImmutableMap.of("Ed", mutableinstance, "Ann", mutableinstance2); 8

Formatierung @Override public void method() { if (condition()) { try { something(); } catch (ProblemException e) { recover(); } } else if (othercondition()) { somethingelse(); } else { lastthing(); } } Google Java StyleGuide 9

Weiteres Checkstyle Google Java StyleGuide: https://google.github.io/styleguide/javaguide.html 10

JavaDoc Dokumentation von Packages, Klassen, Interfaces, Methoden, Variablen, Konstanten Hat die Struktur /** JavaDoc Kommentar */ Lässt sich als HTML-File ausgeben Ermöglicht div. Tags (z.b. @author) Ist in public Klassen, Methoden, etc. immer nötig Kann aber natürlich auch für private, protected, etc. genutzt werden Erleichtert, fremde Methoden und Klassen zu nutzen, ohne in den Code zu schauen 11

Tags (Auswahl) @author name @version version @since jdk-version @param name beschreibung @return beschreibung @exception klassenname beschreibung @throws klassenname beschreibung @code beschreibung @link javadoc-referenz beschreibung Dokumentiert den Autor Dokum. die Version Seit wann verfügbar Dokum. Parameter einer Methode Dokum. Rückgabewert einer Methode Dokum. den Wurf einer Exception Beschreibung in Consolas Verlinkt zu anderer Dokumentation 12

HTML Export der JavaDoc 13

Weiterführendes http://www.oracle.com/technetwork/java/javase/documentation/index-137868.html#styleguid https://google.github.io/styleguide/javaguide.html http://www.oracle.com/technetwork/articles/java/index-137868.html