Hehe, mi sie wydaje ze oni chcieli cos narysowac i jak spojrzysz z odpowiedniej odleglosci to tam jest ukryty obrazek ;d
Programistyczne WTF jakie Was spotkały
- Rejestracja: dni
- Ostatnio: dni
- Postów: 266
Nie znam intencji autora tego kodu http://www.fujinonbinos.com/
Kod widziany z daleka przypomina.... nic nie przypomina, to jakiś szlaczek [???]
http://img156.imageshack.us/img156/7272/kod.png
// Podstrony również mają tak artystyczne wykonanie http://fujinonbinos.com/fujinon/fujinon_marine_binoculars.html
// Zna ktoś arabski? bo to wygląda jak to ichnie pismo - Q
- Rejestracja: dni
- Ostatnio: dni
- Postów: 315
a mi sie wydaje ze nie mieli co robic a cos musieli robic bo szef patrzyl to zrobili cos takiego :D
- Rejestracja: dni
- Ostatnio: dni
- Lokalizacja: Wrocław
Jest coś takiego jak ASCII-art. A to jest chyba DUPA-art po prostu.
- Rejestracja: dni
- Ostatnio: dni
Koziołek napisał(a)
@somekind, rzuć okiem na Scale. Język funkcyjny z domieszką obiektową z Javy. A podany przykład pouczający.
if(o.type==null)
o.type = null;
else
o.type = null;
I teraz zagadka po co tak?
No powiedz po co w koncu! :]
- Rejestracja: dni
- Ostatnio: dni
- Lokalizacja: Stacktrace
- Postów: 6823
@Qyon, to jest kod spłodzony przez inżyniera ASMowego, który został w tydzień przyuczony do programowania obiektowego. Kod ma nullować obiekt jeżeli nie jest on null. Po co pierwszy if to nie wiadomo, ale działa.
Zresztą kolejny przykład, że wiele zależy od człowieka. Wspomniany inżynier jest doświadczonym i naprawdę dobrym programistą, ale na obiektówce to on się jeszcze nie zna.
- Rejestracja: dni
- Ostatnio: dni
Teraz pracuje w projekcie, który był pisany przez ludzi przesiadających się z C na Jave. Jakiejkolwiek finezji w tym projekcie nie da się uświadczyć, takie rąbanie drewna żeby działało (np. klasy-struktury na porządku dziennym).
- Rejestracja: dni
- Ostatnio: dni
Moja hipoteza jest taka, człowiek nie wiedział jak wygląda negacja, kod
if(o.type==null)
else
o.type = null;
jest niepoprawny, a ten
o.type=null;
wydał mu się za prosty.
- Rejestracja: dni
- Ostatnio: dni
Też <ort>dożucę </ort>coś od siebie, nie jest to może nic wielkiego, w końcu komercyjnego doświadczenia mam niewiele, ale:
pewnego razu jeden z moich znajomych studentów użył konstrukcji goto i wskakiwał do pętli, dokładnie w miejsce break. I dlaczego pętla się nie wykonuje [???]
Drugi przykład, wykonywaliśmy dość spory projekt(studencki oczywiście) w kilka osób (Java). Jeden gostek był odpowiedzialny za bazę danych. W trakcie rozmów i planowania, sprawiał wrażenie naprawdę niezłego mózga. Przychodzi dzień łączenia/przedstawienia całości: gostek przyności kilka klas, wszystko z góry na dół i z dołu do góry public static. Inicjalizacja bazy danych rozpierdzielona po wszystkich wspomnianych plikach. Ustalenie kodowania w jednym pliku, ustawienie połączenia w innym. Gość na 5 roku. A co było najdziwniejsze? Cytat: "Skoro jest jedna baza danych to po co robić obiekty?".
I jak widać programować strukturalnie w Javie też się da :-P
Trzeci: programowanie rozproszone. Jeden z zespołów miał algorytm, który nie bardzo chciał się rozproszyć, tzn dodawnie nowych węzłów nie dawało widocznych efektów. Więc co zrobili aby "zrównoważyć" obciążenie?
cout
I różnice przy różnej ilości kompów stały się widoczne 8-O
- Rejestracja: dni
- Ostatnio: dni
- Lokalizacja: Wrocław
Dostałem ostatnio zamówienie na jakiś mały CRM. Zamówienie pisane przez informatyka/programistę (tzn. gość twierdzi, że takie studia skończył jakiś czas temu) jest pomieszaniem specyfikacji funkcjonalnej i projektu bazy danych.
Opis jednej z tabel - tabeli kodów pocztowych:
a. Kod pocztowy,
b. Nazwa rejonu tego kodu ,
c. Nazwa dzielnicy/gminy tego kodu,
d. Nazwa miasta/miejscowości kodu,
e. Nazwa powiatu kodu,
f. Nazwa województwa
- Rejestracja: dni
- Ostatnio: dni
somekind napisał(a)
Dostałem ostatnio zamówienie na jakiś mały CRM. Zamówienie pisane przez informatyka/programistę (tzn. gość twierdzi, że takie studia skończył jakiś czas temu) jest pomieszaniem specyfikacji funkcjonalnej i projektu bazy danych.
Opis jednej z tabel - tabeli kodów pocztowych:a. Kod pocztowy,
b. Nazwa rejonu tego kodu ,
c. Nazwa dzielnicy/gminy tego kodu,
d. Nazwa miasta/miejscowości kodu,
e. Nazwa powiatu kodu,
f. Nazwa województwa
i co w tym niby zlego?
- Rejestracja: dni
- Ostatnio: dni
Chodzi o to że nie-gramatycznie czy co?
- Rejestracja: dni
- Ostatnio: dni
Mimo, że jestem bazodanową lamą, to w oczy rzuca się tragiczny projekt tabeli. Nazwy województwa itp. powinno wyciągnąć się na zewnątrz do innej tabeli, a w tej tabeli trzymać ich id. Prawda, czy jestem większą lamą niż myślałem?
- Rejestracja: dni
- Ostatnio: dni
wpisałem nick napisał(a)
Mimo, że jestem bazodanową lamą, to w oczy rzuca się tragiczny projekt tabeli. Nazwy województwa itp. powinno wyciągnąć się na zewnątrz do innej tabeli, a w tej tabeli trzymać ich id. Prawda, czy jestem większą lamą niż myślałem?
na ch0j :| ?
- Rejestracja: dni
- Ostatnio: dni
Np dlatego ze jak masz warszawe, to tam jest pewnie tysiace kodow pocztowych (nawet jedna ulica moze miec kilka), a wiec kilka tysiecy razy powtorzysz "mazowieckie". Tak samo dla miasta, dzielnicy itp. Ogolnie ta tabela jest tragiczna, niby to kod pocztowy, ale idzie w coraz to bardziej ogolne pojecia, duplikacja danych fatalna.
Pytanie cepy to dla mnie niezly WTF.
- Rejestracja: dni
- Ostatnio: dni
mhm no jezeli mialo by byc takich rekordow w cholere to ok zgadzam sie po id bedzie lepiej, ale z drugiej strony kocham kiss i pobranie danych z takiej tabeli jednym banalnym selectem wydaje mi sie duzo prostsze niz <ort>jebanie </ort>sie z joinami po wielu tabelach, no chyba ze dla niektorych pisanie skomplikowanych zapytan to sposob na wydluzenie czlonka ;)
ps. chcialbym sprowadzic niektorych na ziemie, dopoki klient jest zadowolony z projektu, dopoty jest on warty wlozonego wen wysilku, w przeciwnym wypadku to przerost formy nad trescia :p
// za bluzgi ban na 4 godziny - Q
- Rejestracja: dni
- Ostatnio: dni
Masz racje, ale to nie znaczy ze nalezy robic taka glupote.
Co do dlugosci czlonka, to Ty probujesz chyba sobie nadrobic cos niecos <ort>hamstwem</ort>.
Czy moderatorzy juz nie czuwaja, forum odwiedzaja male dzieci ;-P
//czuwają lepiej niż Ci się wydaje - M
- Rejestracja: dni
- Ostatnio: dni
- Postów: 2964
Dla dobrego RDBMSa takie joiny nie powinny w ogóle spowolnić zapytania w porównaniu do zapytania na jednej tabeli. Tabelki słownikowe z miastami / województwami itp. w całości zmieszczą się w pamięci - przy indeksie mieszającym na kluczu obcym takie coś powinno iść lotem błyskawicy (w Postgresie nie idzie bo nie umie potokowo Hash Joina robić, w MySQL nie wiem).
Jeśli denerwują Cię cepa długie zapytania - co za problem zrobić sobie widok? Pamiętaj, że oprócz KISS ważne jest też DRY.
- Rejestracja: dni
- Ostatnio: dni
- Postów: 456
Patrząc praktycznie, jestem z Cepą :)
Zasady łamać można, bo czasem tak lepiej, grunt to wiedzieć jakie zasady się łamie i dlaczego.
- Rejestracja: dni
- Ostatnio: dni
- Postów: 3079
W relacyjnym modelu danych normalizacja powinna być stosowana w 100% przypadków. Twierdzenie, że normalizacja wiąże się ze spadkiem wydajności jest nieprawdziwe, ponieważ na danych poza SELECT-ami można wykonywać również INSERT-y i UPDATE-y, które jak się łatwo domyśleć będą chodzić znacznie wolniej. Poza tym problem redundancji danych nie sprowadza się tylko do zajętości pamięci i dysków ale głównie do problemu potencjalnych niespójności danych oraz obniżenia bezpieczeństwa.
Twierdzenie, że normalizacja nie jest konieczna porównałbym do twierdzenia, że zabezpieczanie skryptów PHP na wypadek ataków hackerskich jest niezalecane, ponieważ wtedy skrypty działają wolniej, są dłuższe i trudniejsze do zrozumienia.
- Rejestracja: dni
- Ostatnio: dni
Krolik napisał(a)
Pamiętaj, że oprócz KISS ważne jest też DRY.
Nie rozumiem co tu ma DRY do rzeczy. Brak DRY wynika raczej z lenistwa niż z algorytmu.
- Rejestracja: dni
- Ostatnio: dni
KISS - Keep It Simple, Stupid (zwracam uwage na przecinek, ktory tutaj duzo znaczy)
a nie
Keep It Simple & Stupid
Nie wiem jak zawodowcy moga nawet dyskutowac nad poprawnoscia tej tabeli, i jeszcze przekonywac innych ze to ma jakikolwiek sens, praktyczny czy cokolwiek. Nawet na studiach na bazach danych za takie cos bym dostal takiego buta ze by strony w indeksie nie starczylo, nie mowiac o projekcie komercyjnym, jakichkolwiek rozmiarow by on nie byl. Naprawde przykro mi z tego powodu, i pozostalo tylko usiasc w kacie i zaplakac nad losem takich projektow i co gorsza nad ich odbiorcami.
- Rejestracja: dni
- Ostatnio: dni
takisiaki napisał(a)
Naprawde przykro mi z tego powodu, i pozostalo tylko usiasc w kacie i zaplakac nad losem takich projektow i co gorsza nad ich odbiorcami.
nawet nie masz pojecia jakie gowno niektorzy sa w stanie opchnanc za absurdalnie wysokie pieniadze i do tego klient bedzie skakal z radosci [diabel]
gdzies mi sie niedawno obilo o uszy stwierdzenie "kod jest wart tyle ile ktos za niego chce zaplacic" i ja sie z nim w pelni zgadzam :P
somekind napisał(a)
zamówienie
somekind napisał(a)
mały CRM
no Panowie nie uwierze ze majac np: tydzien..dwa na taki projekt, zastosowali byscie wszystko to co Wam wpajano na studiach do glow :> zycie w praktyce nie jest tak idealne jak w teorii :P
nie twierdze ze taki model tabeli jest poprawny ale dopoki spelnia swoje zadanie jest ok :P
- Rejestracja: dni
- Ostatnio: dni
Cepa, zastanawia mnie jedno, w ktorym momencie przyjales role mentora dla nas, niedoswiadczonych zuczkow? Z takimi teoriami to sobie daruj, znam wieksze autorytety. Jesli lubisz tak pisac to pisz, nie sadze jednak ze wiele wiecej czasu potrzeba aby ten przyklad ladnie rozbic. To jest jedna z podstaw, jesli takie zagadnienie jest dla Ciebie czyms skomplikowanym, to nie wiem jakie projekty wykonujesz, a do tego sa ludzie (nie wiem czy potrafisz sobie to wyobrazic, ale moze jednak spotkales takiego w Twojej niesamowicie bogatej w doswiadczenia karierze dzieki ktorej zostales mastahem ktory sie unosi nad chodnikami) ktorzy pewne rzeczy pisza tak naturalnie jak ty bluzgi, bez zastanowienia, i robia to poprawnie i tak jak nalezy (nie pisze o sobie, ale sa tacy). Wstyd by mi bylo przed soba za taki kod. Jesli naprawde nie widzisz w tym nic durnego i niepoprawnego, to nalezy sie zastanowic gdzie Ty pracujesz, ze takie rzeczy sa dla Ciebie normalne.
- Rejestracja: dni
- Ostatnio: dni
- Lokalizacja: Stacktrace
- Postów: 6823
@Johnny_Bit, co za problem? Revert na pliku i niech gość pisze za karę dokumentację i User Manual dla klienta.
WTF z dzisiaj:
remoteServiceProxy = new RemoteServiceProxy(dynTable);
dynTable = new EditableTable(2, header, remoteServiceProxy);
I dwie godziny szukania dlaczego na tabelce leci NullPointer... było nie było jam to nie chwaląc się sprawił.
- Rejestracja: dni
- Ostatnio: dni
@takisiaki, wyluzuj poślady, widze ze latwo wyprowadzic Cie z rownowagi :D
to co pisze to tylko i wylacznie moja opinia z ktora jak najbardziej mozesz sie nie zgadzac tak samo jak ja nie musze zgadzac sie z Twoja, nie napisalem tez ani razu ze ta tabelka jest idealna, nie pisalem takze abym byl jakimkolwiek specem do db, ba nawet nie pretenduje, twierdze jedynie ze jesli to jednorazowy maly projekt i takie rozwiazanie miescilo by sie w wytycznych to czemu nie mialbym sobie uproscic zycia
co do unoszenia sie to preferuje sciolke lesna niz chodniki aczkolwiek na drzewa trzeba uwazac :P
w swojej "niesamowicie bogatej w doswiadczenia karierze" mialem (nie)przyjemnosc widziec projekt ktory nadawalby sie na WTF roku - zupelny brak normalizacji bazy, "obiektowe" php w ktorym slowo kluczowe class wystepuje doslownie 2 razy - "driver" do postgresa i cos w rodzaju wynalazku do wyswietlania kawalkow html i takie tam rozne kwiatki, wiem za ile byla sprzedawana licencja na to i co ciekawe projekt mial pochlebne opinie mimo ze prawdopodobnie wiekszosc osob na forum napisala by to lepiej
a co do mojej pracy to przewinelo sie kilka osob ktorym zawdzieczam wiele, praca w zespole w ktorym jest koles ze znacznie wieksza wiedza z danej dziedziny motywuje i rozwija, bo bazujac na jego doswiadczeniu wiem czego jeszcze nie rozumiem i mam na czym sie uczyc
ps. wiem, jestem ch*jem, ale kurde dobrze mi z tym [diabel]
- Rejestracja: dni
- Ostatnio: dni
- Postów: 2964
no Panowie nie uwierze ze majac np: tydzien..dwa na taki projekt, zastosowali byscie wszystko to co Wam wpajano na studiach do glow
Trochę trudno mi uwierzyć, że zrobienie 3 tabel zamiast jednej i jeden dodatkowy widok spowodowałoby zamieszanie w projekcie. Raczej czas poświęcony na to zwróciłby się przy kolejnych próbach zrozumienia, czemu w niektórych wierszach tabeli jest 'Warszawa', a w innych 'Warszawa ' (celowo ze spacją). Fajnie takie rzeczy kładą np. grupowanie w raportach.
A co do stosowania wszystkiego co wpajano na studiach, to nie raz się przekonałem (na szczęście najczęściej na cudzych błędach), że nie warto robić WBREW temu. Nie warto synchronizować wątków sleepem. Nie warto trzymać danych w jednej gigantycznej tabeli. Nie warto pakować 10 różnych rzeczy do jednej klasy, bo nam się nie chciało w "File->New" kliknąć.
- Rejestracja: dni
- Ostatnio: dni
- Postów: 3079
Jeżeli ktoś rozumie co to jest normalizacja to tworzenie znormalizowanych tabel przychodzi naturalnie i bez żadnego wysiłku. Normalizacja to tak jak ktoś już tu powtarzał absolutna podstawa, tworzenie bazy danych bez dopełnienia tego wymogu to poważny błąd pociągający za sobą masę komplikacji.
Btw. ja też widziałem gówniany kod z masą błędów np. brak normalizacji, liczba klas w projekcie obiektowym nie większa niż trzy itp. Jednak dla mnie był to argument aby zakończyć współpracę z taką firmą. Nie będę się podpisywał pod takim syfem i później męczył się z rozwijaniem takiego gówna.