Wpis z mikrobloga

@programista4k: jesli dobrze dziala, to nie dlub. Nie refaktoruje sie kodu, zeby byl ladny, albo zgodny z jakas nowa moda. Refaktor to decyzja oparta na potrzebie biznesowej
- kod jest zbyt wolny i kogos to interesuje,
- powstal dlug techniczny, ktory wplywa na szybkosc rozwoju softu
- kodu nie da sie poddac testom automatycznym, a jest wartosc, z wprowadzenia takich testow
- kod bedzie wspolny i trzeba go wyciagnac do modulu/biblioteki
  • Odpowiedz
@programista4k: Wlasnie chce Cie naprowadzic na dobry tor - dobrze zarabiasz, jezeli wypracowujesz wartosc dla pracodawcy, a nie za pisanie fikusnego kodu :) Kod powinien byc tak prosty, jak to mozliwe, ale nie prostszy.
  • Odpowiedz
@paddyzab: @paczelok: ło matko. I może jeszcze Kafka i Kubernetes?

@programista4k: można spróbować różnie to ugryźć.

Może lepiej przesunąć niezmienniki niżej i na przykład nie pozwolić na tworzenie nieprawidłowych obiektów?

class Properties {
Collection userAgents;
Collection rotateProbs;
...
}

class UserAgent {
private final String name;

UserAgent(String name) {
if(name.length() == 0) {
throw new IllegalArgumentException(...);
}
}
}

class RotateProbs {
private int probability;

RotateProbs(int probability) {
if(probability
  • Odpowiedz
@programista4k: tak. Zastosowanie predykatu w filtrze na strumieniu to też zaimplementowanie interfejsu funkcyjnego z metodą test, w której najpewniej umieścisz ifa. Czy zrobisz to w reaktorze, czy w takim ordynarnym strumieniu z lukrem składniowym typu not(value::isEmpty). To co proponuję to myślenie w ten sposób, że jeśli klasa Properties została utworzona, a ktoś kto ją stworzył, to nie chciałbym już sprawdzać czy jest ona poprawna, bo zakładam, że taka być powinna skoro
  • Odpowiedz
@programista4k: a co w tym kodzie brzydkiego?

Jedyne co bym zmienił to

if (!(rotateProbs >= 0 && rotateProbs <= 1)) {
throw new IllegalArgumentException("Rotate probabilities must be between 0 and 1.")

Będzie pasowało do wiadomości i łatwiej się to czyta niż jakieś wygibasy z negowaniem obu operandów
  • Odpowiedz
@programista4k: a jeżeli coś mam doradzić programiście 4k który zastanawia się co tu poprawić:

nic

Pamiętaj: dobry kod to kod który zarabia pieniądze. Piękny kod nie zarabia pieniędzy - to nie obraz żeby ktoś go kupił za urodę. Kod który zarabia pieniądze to ten który robi robotę i przetrwa próbę czasu. 5 ifów i 5 exceptions przetrwa próbę czasu. Cytując kolegę z wyżej:

(...) predykatu w filtrze na strumieniu to też
  • Odpowiedz