Imenovanja u Java okruženju: Difference between revisions
No edit summary |
No edit summary |
||
| Line 15: | Line 15: | ||
== Dužina imenovanja == | == Dužina imenovanja == | ||
{|style="width:100%;" | {|style="width:100%;" class="mst mst-cyan" | ||
|- | |- | ||
! Element !! Idealno (cilj) !! Gornja granica !! Napomene | ! Element !! Idealno (cilj) !! Gornja granica !! Napomene | ||
Revision as of 10:20, 12 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
Svasta pre tabele
| Paket | Svrha | Tipične klase |
|---|---|---|
| com.balans.auth.controllers | HTTP endpoint-i (REST sloj) | AuthResource, UserResource |
| com.balans.auth.services | Poslovna logika i orkestracija | AuthenticationService, SessionService |
| com.balans.auth.domain | JPA/entiteti i domenski modeli | User, Group, CbaSession |
| com.balans.auth.dto | Ulazno/izlazni DTO objekti | LoginRequest, LoginResponse |
| com.balans.auth.exceptions | Domen-specifični izuzeci | AuthenticationException, UserLockedException |
| com.balans.auth.security | Bezbednosni utili i komponente | PasswordEncoder, JwtService |
| com.balans.auth.repositories | Pristup podacima (repo sloj) | UserRepository, GroupRepository |
| com.balans.auth.config | Konfiguracija modula i bean-ovi | AuthConfig, ObjectMapperConfig |
Primeri
ryjgjmugdhmn