Imenovanja u Java okruženju: Difference between revisions
No edit summary |
No edit summary |
||
| Line 149: | Line 149: | ||
=== 4. Enum konstante === | === 4. Enum konstante === | ||
'''Format: SCREAMING_SNAKE_CASE''' | |||
<pre> | |||
public enum TokenType { | |||
CLUSTER, | |||
FIRM, | |||
ARCHIVE | |||
} | |||
</pre> | |||
<pre> | |||
public enum UserStatus { | |||
ACTIVE, | |||
INACTIVE, | |||
LOCKED | |||
} | |||
</pre> | |||
<pre> | |||
public enum RoleType { | |||
USER, | |||
CGA, | |||
CSA | |||
} | |||
</pre> | |||
<pre> | |||
public enum HttpStatus { | |||
OK(200), | |||
UNAUTHORIZED(401), | |||
FORBIDDEN(403); | |||
private final int code; | |||
HttpStatus(int code) { this.code = code; } | |||
public int getCode() { return code; } | |||
} | |||
</pre> | |||
== Paketi == | == Paketi == | ||
erfvsvsvrvr | erfvsvsvrvr | ||
Revision as of 16:07, 10 November 2025
Vreme? |
Obavezno dodati kratki opis sadržaja i vreme {{abstract|txt=vaš tekst|min=koliko minuta}} |
Test prve strane
Opšta pravila
- Koristimo engleski jezik – svi nazivi moraju biti na engleskom
- Deskripcija obavezna – naziv treba jasno da opisuje šta klasa/metoda radi
- Izbegavanje skraćenica – osim opštih (ID, DTO, URL, HTTP)
- Izbegavati nepotrebne reči – izbeći dodavanje (myClass, TheClass)
CamelCase Konvencije
- PascalCase (UpperCamelCase) – UserService, AuthenticationController
- camelCase (lowerCamelCase) – userName, calculateTotal
Dužina imenovanja
| Element | Idealno (cilj) | Gornja granica | Napomene |
|---|---|---|---|
| Naziv paketa | 1-3 kratka segmenta | 4-5 segmenata | com.balans.auth.services ✅; izbegavati dublje hijerarhije |
| Klasa/Interfejs | ≤ 20-25 karaktera | ≤ 40-50 | AuthenticationService ✅; CgaBulkOperationService → CgaBulkService |
| Metoda | ≤ 20-30 karaktera | ≤ 50-60 | Glagol + objekat: findByUsername, issueFirmToken |
| Varijabla | ≤ 15-20 karaktera | ≤ 30 | Kratko i jasno: attemptCount, accessibleFirms |
| Konstanta | ≤ 25-30 karaktera | ≤ 40-50 | TOKEN_EXPIRY_DURATION, MAX_LOGIN_ATTEMPTS |
Tretiranje akronima
fghtfng
Klase i interfejsi
fgnfgn
Metode
eeeeeeeeeeee
Varijable i konstante
1. Lokalne varijable i parametri
Format: camelCase
stil: imenica koja opisuje podatak
Dobro
String username;
Integer userId;
List<Firm> availableFirms;
LocalDateTime createdAt;
boolean isActive.
Loše
String Username;
String usr;
String strUsername;
String user_name.
Česte konvencije:
ID varijable
Long userId;
Integer firmId;
Long accountId.
Kolekcije (uvek množina)
List<User> users;
Set<Integer> firmIds;
Map<String, User> userMap.
Boolean varijable (pitanje ili stanje)
boolean isActive;
boolean hasAccess;
boolean canDelete;
boolean shouldValidate.
DTO/Request objekti
LoginRequest loginRequest;
CreateUserRequest createRequest;
BulkUserCreateRequest bulkRequest.
Response objekti
LoginResponse loginResponse;
UserResponse userResponse.
2. Instance varijable (fields)
Dobro
public class User {
private Long accId;
private String username;
private String email;
private Integer roleType;
private LocalDateTime createdAt;
private List<Integer> groupIds;
}
Loše
public class User {
private Long AccId;
private String _username;
private String m_email;
private Integer role_type;
}
3. Static final konstante
Format: SCREAMING_SNAKE_CASE
Dobro
public static final int MAX_LOGIN_ATTEMPTS = 5; public static final String DEFAULT_ROLE = "USER"; public static final Duration TOKEN_EXPIRY_DURATION = Duration.ofHours(24); public static final String JWT_ISSUER = "balans";
Loše
public static final int maxLoginAttempts = 5; public static final int max_attempts = 5; public static final String defaultRole = "USER";
Konvencije za konstante
HTTP status
public static final int STATUS_OK = 200; public static final int STATUS_UNAUTHORIZED = 401;
DB status
public static final int STATUS_ACTIVE = 0; public static final int STATUS_INACTIVE = 1; public static final int STATUS_LOCKED = 2;
Role type
public static final int ROLE_USER = 0; public static final int ROLE_CGA = 1; public static final int ROLE_CSA = 2;
Token types
public static final String TOKEN_TYPE_CLUSTER = "CLUSTER"; public static final String TOKEN_TYPE_FIRM = "FIRM";
Error codes
public static final String ERROR_AUTH_INVALID = "AUTH_INVALID"; public static final String ERROR_USER_LOCKED = "USER_LOCKED";
Delimiter konstante
public static final String GROUP_DELIMITER = ","; public static final String FIRM_DELIMITER = ",";
4. Enum konstante
Format: SCREAMING_SNAKE_CASE
public enum TokenType {
CLUSTER,
FIRM,
ARCHIVE
}
public enum UserStatus {
ACTIVE,
INACTIVE,
LOCKED
}
public enum RoleType {
USER,
CGA,
CSA
}
public enum HttpStatus {
OK(200),
UNAUTHORIZED(401),
FORBIDDEN(403);
private final int code;
HttpStatus(int code) { this.code = code; }
public int getCode() { return code; }
}
Paketi
erfvsvsvrvr
Primeri
ryjgjmugdhmn