Motivation . Nous n'avons pas un tel outil qui validera nos pratiques OOP du projet, indique exactement où nous faisons mal.
OOPCOP est un outil d'analyse statique et un plugin Maven qui vous aidera à modéliser correctement vos objets, classes, méthodes en rejetant votre code non parfait . Ces choses que nous ne tolérons pas:
Comment utiliser . Tout ce dont vous avez besoin est de ceci (obtenez la dernière version ici):
Maven:
< build >
< plugins >
< plugin >
< groupId >ru.l3r8y</ groupId >
< artifactId >oop-cop</ artifactId >
< version >0.2.8</ version >
< executions >
< execution >
< goals >
< goal >search</ goal >
</ goals >
</ execution >
</ executions >
</ plugin >
</ plugins >
</ build >Si vous souhaitez exécuter directement le plugin:
$ mvn ru.l3r8y:oop-cop:searchCes classes sont valables:
class Pet {
private final String name ;
public Pet ( final String n ) {
this . name = n ;
}
}Cette classe n'est pas valide:
class Pet {
private String name ;
public Pet ( final String n ) {
this . name = n ;
}
public void setName ( final String name ) {
this . name = name ;
}
}Cependant, vous pouvez supprimer ce chèque en ajoutant:
@ SupressWarnings ( "OOP.MutableStateCheck" )Ces exemples sont valides:
class ParsedFile {
...
public String asText () {
...
}
}Bien que cela ne soit pas valide:
class FileParser {
...
public String parse () {
...
}
}Cependant, vous pouvez supprimer ce chèque en ajoutant:
@ SupressWarnings ( "OOP.ErSuffixCheck" )TBD ..
TBD ..
TBD ..
Cet exemple est valide:
class PgItem {
...
}Bien que cela soit cassé:
class AbstractDatabaseConnection {
...
}Pour configurer la longueur raisonnable maximale, envisagez d'utiliser le paramètre suivant:
< plugin >
< groupId >ru.l3r8y</ groupId >
< artifactId >oop-cop</ artifactId >
...
< configuration >
< maxClassNameLen >15</ maxClassNameLen >
<!-- default is 13 -->
</ configuration >
</ plugin > Référentiel de fourche, apportez des modifications, envoyez-nous une demande de traction. Nous examinerons vos modifications et les appliquerons sous peu à la branche master , à condition qu'ils ne violent pas nos normes de qualité. Pour éviter la frustration, avant de nous envoyer votre demande de traction, veuillez exécuter une construction maven complète:
$ mvn clean install -PquliceVous aurez besoin de Maven 3.8+ et Java 8+.