Wątek przeniesiony 2019-06-04 21:37 z przez somekind.

wyjątki kompletnie bez sensu

Odpowiedz Nowy wątek
2019-05-30 10:21
0

Funkcja niezbyt długa, w środku blok try, i sprawdzenie warunku który może często zachodzić, jak tylko user się pomyli.
Jeśli true to leci wyjątek standardowy (znaczy nie jakiejś specjalnej klasy)
W catch parę linijek niżej łapiemy wszytko , zakładamy że jest to powyższy wyjątek i pokazujemy userowi komunikat
Oczywiście prawdziwy wyjątek nie ma szans na sensowną obsługę....
Facepalm
Skoro lameriada nie umie pisać to może niech goto używa na to samo wyjdzie

Ale to pytanie jest, czy bardziej do działu Programistyczne WTF jakie Was spotkały? - Silv 2019-06-04 22:50
A to już wiem po przeczytaniu wątku, zapomnij o moim pytaniu. :) - Silv 2019-06-04 23:24

Pozostało 580 znaków

2019-05-30 10:28
5

Oczywiście, że wyjątki są złe. Nie zasługują na to, żeby być wyjątkowe. Oprogramowanie powinno być TOTALNE a nie pełne wyjątków. Aż zacytuje fragment Programowanie Funkcyjne dla Śmiertelników ze Scalaz

1.2 Programowanie czysto funkcyjne (Pure Functional Programming)

Programowanie Funkcyjne to akt tworzenia programów przy użyciu czystych funkcji (pure functions). Czyste funkcje mają trzy właściwości:

  • Totalność: zwracają wartość dla każdego możliwego argumentu (total)
  • Deterministyczność: za każdym razem zwracają tę samą wartość dla tego samego argumentu (deterministic)
  • Niewinność: brak (bezpośrednich) interakcji ze światem lub wewnętrznym stanem programu (inculpable)

Razem te właściwości dają nam bezprecedensową zdolność do rozumowania o naszym kodzie. Na przykład, walidacja wejścia jest łatwiejsza do wyizolowania z totalnością, caching jest możliwy, gdy funkcje są deterministyczne, a interagowanie ze światem jest łatwiejsze do kontrolowania i testowania, gdy funkcje są niewinne.


edytowany 1x, ostatnio: Kamil Żabiński, 2019-05-30 10:29
Brzmi trochę jak Agile Manifesto. - vpiotr 2019-05-30 10:36
A to nie są funkcje "czyste", zamiast "niewinne"? https://www.oreilly.com/libra[...]-krok/9781457193125/ch03.html - Silv 2019-06-04 23:22
A, już wiem, doczytałem. ;) - Silv 2019-06-04 23:41

Pozostało 580 znaków

2019-05-30 10:44
7

Wyjątki są całkiem spoko, tylko nie w każdym sofcie.
Najlepiej pasują do OOP.
Tylko wyjątki trzeba lubić, rozumieć i umieć stosować.
Jak gdzieś widzę hejt ekspertów to często mam wrażenie że brakuje u nich któregoś z tych elementów.

"Pokemon exception handling" jest znanym antypatternem.


Szacuje się, że w Polsce brakuje 50 tys. programistów
wyjątków oddać nie umiem... - hcubyc 2019-06-07 23:12

Pozostało 580 znaków

2019-05-30 10:50
0

Chyba tytuł wątku wybrałam trochę mylący, też uważam ze wyjątki mają sens, ale po prostu dobiło mnie że można użyć wyjątku żeby ... no cholera nie wiem nawet co myślał autor jeśli w ogóle myślał. Zamiast w miejscu sprawdzenia warunku zareagować to se rzucił wyjątek który obsłużył parę linii dalej

Pozostało 580 znaków

2019-05-30 11:53
2

Istnieje podejście gdzie cokolwiek się nie wydarzy złego i nie takiego jak powinno to wywoływany jest wyjątek. Jest to styl gdzie ludzie uważają ify za zło i ich unikają jak ognia :)

A słyszałeś o monadach Try, Either, Option, IO? - Kamil Żabiński 2019-05-30 12:12
@Kamil Żabiński nie, patrząc wstępnie nie widzę by coś takiego było w php ;) - mr_jaro 2019-05-30 15:09
@mr_jaro: a takie coś https://subscription.packtpub[...]sec47/maybe-and-either-monads ? np java też nie ma w standardowej bibliotece, ale jest biblioteka vavr w której to jest - Kamil Żabiński 2019-06-03 10:55

Pozostało 580 znaków

2019-05-30 11:59
1

Tylko po co nowy wątek skoro jest Programistyczne WTF jakie Was spotkały ? :P


Masz problem? Pisz na forum, nie do mnie. Nie masz problemów? Kup komputer...

Pozostało 580 znaków

2019-05-30 12:11
4
Shalom napisał(a):

Tylko po co nowy wątek skoro jest Programistyczne WTF jakie Was spotkały ? :P

Bo on jest wyjątkowy :D


Pozostało 580 znaków

2019-05-30 12:13
2

Sorki, musiałam się po prostu wygadać a tak mnie wnerwił ten kod że zupełnie zapomniałam o tym wątku, resztę genialnych pomysłów omawianych koderów opiszę już gdzie trzeba...albo wyjadę w Bieszczady

edytowany 1x, ostatnio: Miang, 2019-05-30 12:15
Swoją drogą w Bieszczadach powinien być jakiś specjalny ośrodek dla znerwicowanych programistów. Hm... może to nawet dobry pomysł na biznes. - Freja Draco 2019-05-30 12:18
popieram, jakby co to umiem gotować - Miang 2019-05-30 12:26
Myślę, że oni - z uwagi na zalecenia lekarskie - i tak będą się głównie opierać na płynnej diecie ;) - Freja Draco 2019-05-30 12:35
@Miang: to nie kod Cię wnerwił, tylko świadomość tego, że nie od Ciebie zależy, czy ktoś będzie pamiętał o dobrych praktykach, czy nie. - Silv 2019-06-04 23:25

Pozostało 580 znaków

2019-05-30 12:51
0

Może lepiej pokaż ten kod (lub jego przeróbkę w podobnym duchu).
Jeśli wyjątek jest faktycznie łapany w tej samej funkcji co rzucany to faktycznie jest to WTF i to niezależnie od paradygmatu programowania.
Jednak ja bym się na niego nie wnerwiał, bo zrobienie porządku z czymś takim to 20 sekund.


Jeśli chcesz pomocy, NIE pisz na priva, ale zadaj dobre pytanie na forum.
edytowany 2x, ostatnio: MarekR22, 2019-05-30 12:53

Pozostało 580 znaków

2019-05-30 13:15
0

coś w tym stylu

void jakas_funkcja()
{
    try
    {
       wykonaj_cos()
       auto wczytany_plik =pobierz_plik();
       jeszcze_cos()
       if(!sprawdz(wczytany_plik))
               throw "niedobry plik";
       cos_jeszcze_wykonaj();
    }
    catch(...){
        pokaz_info("niedobry plik");
        return;
    }
}
na produkcji takie coś? - Sunnydev 2019-05-30 15:39

Pozostało 580 znaków

2019-05-30 15:07
0

Może w tym projekcie jest zasada by nie stosować pustego returna, a użycie else autorowi się nie spodobało, bo np za duży blok no i zrobił to tak, szczerze, bez intencji i całej podstawy to ja nie ocenił bym że ten kod jest głupi czy zły.

edytowany 1x, ostatnio: mr_jaro, 2019-05-30 15:07

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0