Giter VIP home page Giter VIP logo

codingstyle's Introduction

Maven Central GitHub Actions

Each Java project should follow a given coding style. I.e., all contributions to the source code should use the same formatting rules, design principles, code patterns, idioms, etc. This coding style provides the set of rules that I am using in my lectures about software development at Munich University of Applied Sciences.

This project describes the coding style in detail (currently only in German) and serves as a template project. It provides all necessary resources for a Java project to enforce this coding style using the following static analysis tools via Maven (and partly in IntelliJ):

Moreover, it provides some sample classes that already use this style guide. This classes can be used as such but are not required in this project. These classes also use some additional libraries that are included using the Maven dependency mechanism. If the sample classes are deleted then the dependencies can be safely deleted, too.

This project and the associated static analysis tools are already running in continuous integration: an example CI pipeline is active for GitHub Actions. For Jenkins a complete CI pipeline has been configured that includes stages to compile, test, run static code analysis, run code coverage analysis, and run mutation coverage analysis, see section Continuous Integration for details. Additionally, some development tools are configured in this GitHub project, that evaluate the quality of pull requests, see section integration of external tools.

Content of the style guide (only in German):

A lot of ideas in this style are based on the following path-breaking books about software development:

  • [1] "The Elements of Java Style", Vermeulen, Ambler, Bumgardner, Metz, Misfeldt, Shur und Thompson, Cambridge University Press, 2000
  • [2] "The Pragmatic Programmer. From Journeyman to Master", Andrew Hunt, David Thomas, Ward Cunningham, Addison Wesley, 1999
  • [3] "Code Complete: A Practical Handbook of Software Construction", Steve McConnell, Microsoft Press, 2004
  • [4] "Clean Code: A Handbook of Agile Software Craftsmanship", Robert C. Martin, Prentice Hall, 2008
  • [5] "Effective Java", Third Edition, Joshua Bloch, Addison Wesley, 2017
  • [6] "Refactoring: Improving the Design of Existing Code", Martin Fowler, Addison Wesley, 1999
  • [7] "Java by Comparison", Simon Harrer, Jörg Lenhard, Linus Dietz, Pragmatic Programmers, 2018

All documents in this project use the Creative Commons Attribution 4.0 International License. Source code (snippets, examples, and classes) are using the MIT license.

License: MIT License: CC BY 4.0 Codecov Codacy Badge Language grade: Java Total alerts

codingstyle's People

Contributors

uhafner avatar dependabot-preview[bot] avatar keidler avatar dependabot[bot] avatar obcode avatar maxarnold0 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.