Początki informatyki 2

dexter90
Użytkownik
Użytkownik
Posty: 391
Rejestracja: 11 lis 2011, o 09:48
Płeć: Mężczyzna
Pomógł: 32 razy

Początki informatyki 2

Post autor: dexter90 »

_fx, odnosiłem się do Twojego toku myślenia. Zadałem Ci pytanie, czy 40 linijkowa funkcja np. jest dobra?? Opdowiedz proszę

Edit: Ja nie mam zamiaru udawadniać że wiem co to są "wskaźniki"

EDIT: widzisz chłopie, nie bawię się tak, zadaje Ci pytanie, ty odpisujesz po 40 minutach i Bóg wie gdzie szukasz info.

Koniec dyskusji z mojej strony.

Pozdrawiam i życzę miłego programowania.

Notka od siebie: To, że w C# nie powinno się używać wskaźników, to nie mój wymysł, podważasz polskiego programistę, który piszę książki, ale to już nie mój problem. Każdy ma swoje techniki i rację.
Afish
Moderator
Moderator
Posty: 2828
Rejestracja: 15 cze 2008, o 15:45
Płeć: Mężczyzna
Lokalizacja: Seattle, WA
Podziękował: 3 razy
Pomógł: 356 razy

Początki informatyki 2

Post autor: Afish »

dexter90 pisze:Zadałem Ci pytanie, czy 40 linijkowa funkcja np. jest dobra??
To jak gdybanie wyższości breaka nad returnem albo rekurencji nad iteracją. To nie długość funkcji wyznacza jej jakość, tylko czytelność jej zapisu - są dobre funkcje mające 40 linii i złe funkcje mające 20, że już nie wspomnę o kompletnie nieczytelnych jednolinijkowcach.
dexter90 pisze:Notka od siebie: To, że w C# nie powinno się używać wskaźników, to nie mój wymysł, podważasz polskiego programistę, który piszę książki, ale to już nie mój problem. Każdy ma swoje techniki i rację.
Racja, pozbądźmy się wskaźników i odetnijmy się od całkiem sporej części WinAPI, tak samo nie używajmy goto, bo jest złe i basta. Używa się tego, co jest potrzebne, niekoniecznie tego, co za słuszne uważają inni.
dexter90
Użytkownik
Użytkownik
Posty: 391
Rejestracja: 11 lis 2011, o 09:48
Płeć: Mężczyzna
Pomógł: 32 razy

Początki informatyki 2

Post autor: dexter90 »

To nie długość funkcji wyznacza jej jakość, tylko czytelność jej zapisu - są dobre funkcje mające 40 linii i złe funkcje mające 20, że już nie wspomnę o kompletnie nieczytelnych jednolinijkowcach.
Czytelność funkcji to jeden z kilku dobrych nawyków, ale skoro 40 linijkową funkję uważasz za dobrą to jesteś w błędzie....

Ale o czystości kodu są odpowiednie książki i nie mam zamiaru się tutaj rozprawiać nad tym.

edit: ja mam swoje nawyki , wy swoje aczkolwiek nie mam zamiaru utwierdzać, że wasza droga jest niesłuszna, każdy używa to co mu pasuje.

Pozdrawiam.
Afish
Moderator
Moderator
Posty: 2828
Rejestracja: 15 cze 2008, o 15:45
Płeć: Mężczyzna
Lokalizacja: Seattle, WA
Podziękował: 3 razy
Pomógł: 356 razy

Początki informatyki 2

Post autor: Afish »

dexter90 pisze:Czytelność funkcji to jeden z kilku dobrych nawyków, ale skoro 40 linijkową funkję uważasz za dobrą to jesteś w błędzie....
Czytelność funkcji to nie nawyk, czytelność funkcji to rzecz niezbędna. Określanie jakości funkcji poprzez jej długość wyrażoną w liczbach linii kodu jest co najmniej śmieszne.
norwimaj
Użytkownik
Użytkownik
Posty: 5101
Rejestracja: 11 mar 2011, o 16:31
Płeć: Mężczyzna
Lokalizacja: 52°16'37''N 20°52'45''E
Podziękował: 4 razy
Pomógł: 1001 razy

Początki informatyki 2

Post autor: norwimaj »

dexter90 pisze: Czytelność funkcji to jeden z kilku dobrych nawyków, ale skoro 40 linijkową funkję uważasz za dobrą to jesteś w błędzie....
Czy chcesz stwierdzić, że każda czterdziestolinijkowa funkcja jest nieczytelna?
dexter90 pisze: Ale o czystości kodu są odpowiednie książki i nie mam zamiaru się tutaj rozprawiać nad tym.
I słusznie, bo po co tak skakać z tematu na temat. Czystość i czytelność to zupełnie różne pojęcia w informatyce, chociaż może pewna zależność między nimi występuje.

dexter90 pisze: Generalnie nie znasz paradygmatów programowania.
Cieszę się że Ty je znasz i na pewno mi wreszcie wyjaśnisz, dlaczego C++ jest standardem programowania obiektowego, bo podobno z tą szybkością to ściema była.
dexter90
Użytkownik
Użytkownik
Posty: 391
Rejestracja: 11 lis 2011, o 09:48
Płeć: Mężczyzna
Pomógł: 32 razy

Początki informatyki 2

Post autor: dexter90 »

Czy chcesz stwierdzić, że każda czterdziestolinijkowa funkcja jest nieczytelna?
40-linikowa funkcja jest złą funkcją jak i przeważnie każda z więcej niż jednym argumentem ( najlepiej bez lub jedno ) na jednym poziomie abstakcji.
I słusznie, bo po co tak skakać z tematu na temat. Czystość i czytelność to zupełnie różne pojęcia w informatyce, chociaż może pewna zależność między nimi występuje.
Nie do końca, proponuje zasięgnąć do literatury.
Cieszę się że Ty je znasz i na pewno mi wreszcie wyjaśnisz, dlaczego C++ jest standardem programowania obiektowego, bo podobno z tą szybkością to ściema była.
Już powiedziałem. Odpowiedziałem na pytanie dlaczego nie Smalltalk. Dziedziczenie wielobazowe w przeciwieństwie do Javy chociaż tam wzamian dali interfejsy i podklasy umożliwiające wielokrotne dziedziczenie. Google, i jeszcze raz google. Nie trzeba mieć 4 fakultetów aby z niego korzystać.

Jeszcze raz do wskaźników: C++ lepiej sobie z nimi radzi, programiści odradzają stosowanie wskaźników w C#, ale nigdzie nie napisałem, że nie są niemożliwe. Ale ja nie będę podważał zdań autorytetów.
Afish
Moderator
Moderator
Posty: 2828
Rejestracja: 15 cze 2008, o 15:45
Płeć: Mężczyzna
Lokalizacja: Seattle, WA
Podziękował: 3 razy
Pomógł: 356 razy

Początki informatyki 2

Post autor: Afish »

dexter90 pisze:40-linikowa funkcja jest złą funkcją jak i przeważnie każda z więcej niż jednym argumentem ( najlepiej bez lub jedno ) na jednym poziomie abstakcji.
Czyli większość bibliotek standardowych składa się ze złych funkcji? Preferujesz podejście spotykane w językach funkcyjnych, gdzie funkcja przyjmuje jeden parametr i zwraca funkcję, dla którego i tak kompilatory umożliwiają stosowanie uproszczonej składni polegającej na przekazaniu wielu parametrów, biorąc na siebie brudną robotę z przekazywaniem kolejnych funkcji? Ba, nawet zwykła funkcja max jest zła, wszak przyjmuje ona aż dwa argumenty?
dexter90 pisze:Już powiedziałem. Odpowiedziałem na pytanie dlaczego nie Smalltalk. Dziedziczenie wielobazowe w przeciwieństwie do Javy chociaż tam wzamian dali interfejsy i podklasy umożliwiające wielokrotne dziedziczenie. Google, i jeszcze raz google. Nie trzeba mieć 4 fakultetów aby z niego korzystać.
Wielokrotne dziedziczenie raczej niespotykane w innych językach, brak możliwości łatwego zdefiniowania klasy, po której nie można dziedziczyć (a przynajmniej do C++11 nie było to bezbolesne), brak jednej klasy będącej klasą bazową dla wszystkich innych? Tak, w istocie standardem jest to, co zostanie określone tym terminem przez ludzi będących w komitecie standaryzacyjnym, a nie to, co zostało za takie uznane przez społeczność (i zaimplementowane w kompilatorach).
dexter90 pisze:Jeszcze raz do wskaźników: C++ lepiej sobie z nimi radzi, programiści odradzają stosowanie wskaźników w C#, ale nigdzie nie napisałem, że nie są niemożliwe. Ale ja nie będę podważał zdań autorytetów.
A cóż to znaczy "lepiej sobie z nimi radzi" ? Czyżby w C# (bazującym w wielu miejscach na C++) nie było wsparcia dla tego elementu języka? Ponadto jak sam napisałeś w jednym z poprzednich postów: "Jeszcze raz powtarzam, pisz swoje przemyślenia".
wszamol
Użytkownik
Użytkownik
Posty: 490
Rejestracja: 7 maja 2009, o 22:01
Płeć: Mężczyzna
Podziękował: 1 raz
Pomógł: 64 razy

Początki informatyki 2

Post autor: wszamol »

Przeczytałem już sporo bzdur, które wypisujesz na tym forum, ale stwierdziłem, że nie ma sensu się do nich odnosić, bo są mało "szkodliwe", ale to:
dexter90 pisze:40-linikowa funkcja jest złą funkcją jak i przeważnie każda z więcej niż jednym argumentem ( najlepiej bez lub jedno ) na jednym poziomie abstakcji.
kompletnie mnie rozbawiło. Ocenianie jakości funkcji na podstawie jej długości, pierwszy raz spotykam się z takim stwierdzeniem I jeszcze ilość argumentów... masa funkcji z OpenGL jest źle napisana, bo tam się często przyjmuje więcej niż jeden argument... Sporo rzeczy można się od Ciebie "dowiedzieć".
dexter90
Użytkownik
Użytkownik
Posty: 391
Rejestracja: 11 lis 2011, o 09:48
Płeć: Mężczyzna
Pomógł: 32 razy

Początki informatyki 2

Post autor: dexter90 »

Nie ode mnie, z pewnej książki z Heliony mój drogi. Skoro to są dla Ciebie bzdury to trudno, widocznie jesteś bardzo doświadczonym programistom i wiesz lepiej niż autorzy cenionych pozycji.

Co do cytatów Afisha:

Nie będę już więcej pisał zdań odnośnie wskaźników - zły nawyk, ale ty możesz robić w kodzie co Ci się podoba.
wszamol
Użytkownik
Użytkownik
Posty: 490
Rejestracja: 7 maja 2009, o 22:01
Płeć: Mężczyzna
Podziękował: 1 raz
Pomógł: 64 razy

Początki informatyki 2

Post autor: wszamol »

I tak bezgranicznie ufasz tej książce, żeby opowiadać takie rzeczy? Chętnie poznałbym tytuł, może być na PW, jeśli nie chcesz jej tu reklamować. Programistą doświadczonym nie jestem, ale tu nie trzeba wielkiego doświadczenia, patrzysz na funkcje z różnych dobrych bibliotek i od razu widzisz, że ilość argumentów jeszcze o niczym nie świadczy. Długość też.
dexter90
Użytkownik
Użytkownik
Posty: 391
Rejestracja: 11 lis 2011, o 09:48
Płeć: Mężczyzna
Pomógł: 32 razy

Początki informatyki 2

Post autor: dexter90 »

Tak ufam. Wysłałem na Pw. Nawet jeśli idzisz na rekrutację, patrzą na to w jaki sposób napisałeś funkcję, ale nie będę o tym rozprawiał.
wszamol
Użytkownik
Użytkownik
Posty: 490
Rejestracja: 7 maja 2009, o 22:01
Płeć: Mężczyzna
Podziękował: 1 raz
Pomógł: 64 razy

Początki informatyki 2

Post autor: wszamol »

Oczywiście, że patrzą, ale nie można mówić, że funkcja, która ma więcej niż jeden argument, czy jest dłuższa o ileś linijek jest zła. Wszystko zależy od sytuacji, tak samo jak ze stosowaniem wskaźników. Po prostu moim zdaniem nie można tak uogólniać tej sprawy. Tyle z mojej strony.
dexter90
Użytkownik
Użytkownik
Posty: 391
Rejestracja: 11 lis 2011, o 09:48
Płeć: Mężczyzna
Pomógł: 32 razy

Początki informatyki 2

Post autor: dexter90 »

Jasne że nie można, ale znam naprawdę wiele programistów, przelotem nawet spotkałem się z programistami z Microsoft czy IBM, według jednego z IBM:

"Każdą funkcję da się napisać w 10 linijkach, jeżeli ma więcej to jest zła bo wykonuje więcej niż jedno zadanie".

Nie wysysam tego z palca, ale jeszcze raz mówię: Każdy ma swoje racje.

Co do wskaźników: już nie będę mówił o tym czy o tamtym, ale wielu twierdzi że stosowanie wskaźników w c# jest oznaką "niezrozumienia" kodu zarządzanego GC i ref.
wszamol
Użytkownik
Użytkownik
Posty: 490
Rejestracja: 7 maja 2009, o 22:01
Płeć: Mężczyzna
Podziękował: 1 raz
Pomógł: 64 razy

Początki informatyki 2

Post autor: wszamol »

Zacytuję tylko Twoją wypowiedź z tego tematu:
Jeszcze raz powtarzam, pisz swoje przemyślenia, a nie to Twój "kolega" zrobił bo to 2 różne sprawy.
I teraz definitywnie kończę dyskusję, nie mi oceniać czy znasz "paradygmaty programowania".
dexter90
Użytkownik
Użytkownik
Posty: 391
Rejestracja: 11 lis 2011, o 09:48
Płeć: Mężczyzna
Pomógł: 32 razy

Początki informatyki 2

Post autor: dexter90 »

Pisze swoje przemyślenia i cytuje innych, nie mówię co zrobił mój pseudo kolega i ile czasu mu to zajęło tylko fakt iście teoretyczny mający zastosowanie w praktyce.

EDIT:

Co do tych linijek to zanim złamiemy taką zasadę trzeba się zastanowić czy nie da się napisać czegoś lepiej.

EDIT2:

No i ja też już raczej kończe tutaj dyskusję bo robi się to męczące.

Pozdrawiam.
ODPOWIEDZ