Differences

This shows you the differences between two versions of the page.

Link to this comparison view

poo-ca-cd:arhiva:2021:administrativ:coding_style_ide [2022/10/01 17:47] (current)
alexandru.olteanu created
Line 1: Line 1:
 +===== Despre cod =====
  
 +==== Code style ====
 +
 +Recomandăm coding style-ul [[https://​google.github.io/​styleguide/​javaguide.html|Google]] sau [[http://​www.oracle.com/​technetwork/​java/​codeconvtoc-136057.html|Oracle]].
 +
 +Păstrați consistența coding style-ului pentru fiecare temă (de exemplu nu folosiți într-o temă două stiluri diferite de a pune parantezele).
 +
 +/*Oricare ar fi coding style-ul vostru, rămâneți la el de-a lungul proiectului/​temei/​laboratorului. ​
 +Disclaimer: stilul haotic nu se pune.*/
 +==== Recomandări ====
 +
 +  * camelCase pentru numele metodelor și variabilelor. CamelCase pentru numele claselor.
 +  * Liniile de cod nu ar trebui să depășească 80 sau 100 de caractere. Atunci când depășesc, "​spargerea"​ liniei de cod se face:
 +    * //​înainte//​ de operator
 +    * //după// un operator de atribuire
 +    * lăsați mai mult de patru spații pe linia următoare
 +  * Exemple pentru line breaks:
 +
 +<code Java>
 +String s = "​a"​
 +          + "​b"​
 +          + "​c";​
 +
 +enum Color {
 +    RED,
 +    GREEN,
 +    BLUE
 +}
 +
 +if ((condition1 && condition2)
 +        || (condition3 && condition4)
 +        ||!(condition5 && condition6)) {
 +    doSomethingAboutIt();​
 +}            ​
 +</​code>​
 +  * Nu folosiți import-uri wildcard (e.g. import java.util.*). Acestea încarcă namespace-ul și s-ar putea să aveți conflicte de denumiri (e.g java.util si java.awt ofera o interfata List, daca amandouă ar fi importate cu wildcard, atunci ar aparea conflict la folosirea interfeței List). În plus, dacă sunt folosite importuri fără wildcard, dependențele devin explicite, fiind mai ușor de observat.
 +  * **Javadoc-ul** se face pentru clase și membrii lor publici și protected. Pentru metode simple și cu un rol evident, de genul getters si setters, puteți omite Javadoc-ul. Nu este recomandată documentarea metodelor private deoarece expun informații care fie nu sunt necesare celor care utilizează clasa respectivă,​ fie pot fi exploatate în mod malițios (e.g. breșe de securitate).
 +  * Nu este recomandată declararea mai multor variabile pe aceeași linie (e.g. int a, b[], c;)
 +  * Puneți adnotarea @override pentru metodele suprascrise ([[http://​stackoverflow.com/​questions/​94361/​when-do-you-use-javas-override-annotation-and-why|exemple de cazuri în care este utilă]]).
 +
 +==== Recomandări Javadoc ====
 +
 +// Trebuie să pun javadoc pentru toate clasele și membrii lor? //
 +
 +Javadoc-ul se face in general pentru clase și membrii lor publici și protected.
 +
 +  * Pentru metode simple și cu un rol evident, de genul //getters// si //​setters//,​ puteți __omite__ Javadoc-ul. ​
 +  * Pentru metodele private ... depinde de situație. In general nu este recomandată documentarea metodelor private deoarece expun informații care fie nu sunt necesare celor care utilizează clasa respectivă,​ fie pot fi exploatate în mod malițios (e.g. breșe de securitate). Este insa util de documentat si metodele private pentru o înțelegere mai ușoară a codului de către dezvoltatorii lui, dar în acel caz trebuie avut grijă să nu fie generate fișisierele html și pentru modificatorul '​private'​.
 +
 +// Există multe taguri @..., care sunt cele mai folosite și utile? //
 +  * @param și @return le folosiți pentru parametrii și variablele returnate. Dacă scopul lor este evident, nu este necesar să le puneți
 +  * @author - în javadoc-ul claselor, puteți configura IDE-ul să vi-l genereze
 +  * {@inheritDoc} - pentru a copia documentația metodei suprascrise
 +  * @link și @ see - o comparație foarte clară: [[https://​stackoverflow.com/​a/​10097249|link]]
 +
 +/*
 +Adaugare cheetsheet IDE eclipse, IDE Jetbrains
 +*/
poo-ca-cd/arhiva/2021/administrativ/coding_style_ide.txt · Last modified: 2022/10/01 17:47 by alexandru.olteanu
CC Attribution-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0