Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 7

Porady programistyczne

Zależności – Maven
Dodając nową zależność do pom.xml Maven bierze taką wersję jaką zdefiniowałeś, jeśli jest wyższa
niż w parent pomie, jeśli jest niższa bierze tę z parent poma. Ryzykowne jest podanie wyższej wersji,
ponieważ może zniszczyć to co już działało.

Logika return statement


Zwracanie warunków logicznych

Wyrażenie:
private boolean isIIIFPresentationAPISearchMode (SearchRequestDTO
searchRequestDTO){
if(IIIF_PRESENTATION_API_MODE.equals(getSearchMode(searchRequestDTO))) {
return true;
}
return false;

jest poprawne ale zbyt długie, można je skrócić do:


return IIIF_PRESENTATION_API_MODE.equals(getSearchMode(searchRequestDTO))

Zwracanie wartości null

Często zamiast prostego warunku if (warunek) {return wartość} return null (czyli prostej metody na
ominięcie sprawdzania typu zwracanych danych), lepiej rzucić wyjątkiem np.

throw new IllegaLStateException(message)

Albo zwrócić Optional.

Sprawdzenie obecności elementów

W przypadku zwracania wartości należy sprawdzać, czy wartość wejściowa nie jest nullem:

Taki kod:
public Hit searchResponseDTOToHit(SearchResponseDTO response) {
return response.getHits().getContent().get(0);

można poprawić na:


public Hit searchResponseDTOToHit(SearchResponseDTO response) {
if (!response.getHits().getContent().isEmpty()) {
return response.getHits().getContent().get(0);
}
throw new IllegalStateException("No results found in the response");
}
Sprawdzanie zwrotki clienta http
Jeśli przychodzą do nas dane z zewnątrz należy je zawsze sprawdzić np. mapując na klasę, albo nawet
Mapę<String, Object>

Enumy

Przy implementacji enuma trzeba dawac jego wartości jako private i implementować gettera

Enum a resource klasa


Rzeczy w stylu tłumaczenia do resource klasy

Code style

Odstępy w properties

Git
Cofanie się do poprzednich branchy
Git reset –hard HEAD~x , gdzie x to liczba branchy o ile się cofasz

Review lokalnych zmian

W Idei można przejrzeć wszystkie pliki zmienione lokalnie i zaznaczyć je i zacommitowac i spuchowac
od razu z poziomu tego okna

Ogólne porady

Controller
Nie rób camel case w linkach

Stosuj streamy
public SearchIndexDTO findMainSearchIndex() {
List<SearchIndexDTO> indexes = findSearchIndexes();
for (SearchIndexDTO index : indexes) {
String indexName = index.getName();
if ("Main search index".equals(indexName)) {
return index;
}
}
throw new IllegalStateException("Main search index not found");
}

zmien na

Optional.ofNullable(findSearchIndexes()).orElse(List.of()).stream()
.filter(index -> "Main search index".equals(index.getName()))
.findAny()
.orElseThrow(() -> new IllegalStateException("Main search index not
found"));

Porównywanie stringów

Przy porównywaniu zmniennej do stałej przy pomocy metody equals(). Stała powinna być pierwsza:

stała.equals(zmienna)

ponieważ zmienna może zawsze przyjść jako null i wywalić NullPointerException.

Puste stringi i listy

CollectionUtils.isEmpty

StringUtils.isEmpty

Odpalanie aplikacji
Zawsze odpalaj tryb debug

Budowanie aplikacji – maven itp.


Nieraz wersja javy w modułach jest zle ustawiona mimo globalnego ustawienia

Warto często czyścić

Angular

Tworzenie klas i interfaceów w TypeScript:


https://www.typescriptlang.org/play

Index Signatures

https://www.typescriptlang.org/docs/handbook/2/objects.html#index-signatures
export interface Item {
id: number;
size: number;
}
export interface Example {
name: string;
items: {
[key: string]: Item
};
}

Budowanie API dla jednego serwisu


npm run build:api:service library-object-activity-query

Ewaluacja wartosci true/false w JS

Tables displaying the issue:


and
== 
Moral of the story use
=== 

Tricki przeglądarkowe
Testowanie z pominięciem CORSa z localhost:

For temporary testing during development we can disable it by opening chrome with disabled
web security like this.

Open command line terminal and go to folder where chrome is installed i.e. C:\Program Files
(x86)\Google\Chrome\Application

Enter this command:


chrome.exe --user-data-dir="C:/Chrome dev session" --disable-web-security

A new browser window will open with disabled web security. Use it only for testing your app.

Niebezpieczna strona certificate error


To still proceed the visit as you are sure this page is safe, here is a easy way to do:

There's a secret passphrase built into the error page. Just make sure the page is selected (click
anywhere on the screen), and just type thisisunsafe.

Serializacja w debugerze do JSONa


new com.fasterxml.jackson.databind.ObjectMapper() .registerModule(new
com.fasterxml.jackson.datatype.jsr310.JavaTimeModule()) .disable(com.fasterxml.jackson.databind.Serializatio
nFeature.WRITE_DATES_AS_TIMESTAMPS) .writerWithDefaultPrettyPrinter() .writeValueAsString( myObj
ect );

You might also like