🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: pl.comp.lang.c
Article #246976

Re: ile czasu trzeba aby sie nauczyc c++?

#246976
From: (fir)
Date: Fri, 07 Apr 2017 14:24
114 lines
7675 bytes
W dniu piątek, 7 kwietnia 2017 16:02:27 UTC+2 użytkownik (fir) napisał:
> W dniu piątek, 7 kwietnia 2017 15:31:12 UTC+2 użytkownik (fir) napisał:
> > W dniu piątek, 7 kwietnia 2017 12:15:43 UTC+2 użytkownik godek....@gmail.com napisał:
> > > W dniu piątek, 7 kwietnia 2017 11:52:09 UTC+2 użytkownik slawek napisał:
> > > 
> > > > > Napisałeś, że uważasz, że na 40 linii kodu powinno=
> > > > >  przypadać
> > > > > 50 linii komentarza, ale nie napisałeś, dlaczego
> > > > 
> > > > Bo jeżeli piszę wysokopoziomowo, np. wywołując jakieś 100 różnych 
> > > > funkcji/metod w 40 linijkach, to robi się coś konkretnego. Te coś 
> > > > konkretnego wymaga opisania: co się robi, jakie parametry, jakie 
> > > > skutki, co powinno być a co nie,
> > > 
> > > Według mnie:
> > > 
> > > To, co się robi, powinno wynikać z nazwy funkcji.
> > > To, jakie parametry, powinno wynikać z nazw tych parametrów,
> > > albo czegoś w tym rodzaju -- ja jak piszę w Schemie, to daję
> > > jednosłowowe komentarze "przyimkowe", wyjaśniające role
> > > poszczególnych argumentów, np. w kodzie rozwiązującym
> > > problem komiwojażera miałem coś w stylu
> > > 
> > > (shortest-path+cost #;from start #;to end #;through others)
> > > 
> > > To, jakie skutki, powinno wynikać z asercji/kontraktów.
> > 
> > 
> > no asercje bylyby lepsze niz komentarze, ale nawet ich tez nie chce mi sie pisac - moze musze nad sobą popracowac w tym etemacie
> >  
> > (tj przetrenowac jak to jest kompatybilne z moim 
> > stylem klepanie i patrzenia na zrodlo)
> > 
> 
> 
> by wspomniec oczywista rownowage kosztow do zyskow
> 
> koszty:
> 1) trzeba je wpisywac, jesli bym tego wpisywal setki -
> a raczej bylyby setki - to jakis koszt jest
> 
> 2) wydluzaja zrodlo a dluzsze zrodlo jest troche 
> gorsze i byc moze wolniejsze w czytaniu
> 
> zyski:
> 1) jesli juz cos wylapią to b dobrze, od czasu do czasu
> zaoszczedzą troche z nieprzyjemnej sesji lokalizowania
> bledu
> 2) nie uzywam assertow ale od czasu do czasu uzywam 
> if(..) ERROR(..), gdyby to byl assert to mozliwosc wylaczenie tego przez NDEBUG jest dobra do optymalizacji
> 
> mixed:
> 
> 1) - z drugiej strony jest maly problem bo niektore a tych assercji byc moze chcialbym zostawic w release, a 
> rozkminianie teraz za kazdym razem co robic ifem a co assertem moze byc deczko spowoalniajace
> 
> 2) assert w windzie wywala okno i fatalny dzwiek ("d-dum-b!"), ktorego nie lubie i nie chcialbym tego sluchac,
> moje wlasne okno od erroru daje nieco lepszy "t-trrik!")
> do tego u mnie w dialogu przycisk "ignore error" (czasem przydatny)  dziala  a ten od assertu nie wydaje sie dzialac leci po nim u mnie sigsegv nie wiedomo czemu
> 
> 3) pozatym chyba wolalbym to pisac duzymi literami ASSERT
> czyli musialbym napisac swoj 
> 
> tak ze nie wiem, w sumie na razie by nie komplikowac chyba nie bede uzywac
> 

problemem przekonujacym mnie do tego jest chyba wlasnie to ze jesli napisze swoj wlasny ASSERT_() 
(kiedys pisalem i to bylo cos w stylu

#ifdef NO_ASSERTS
#define ASSERT_(p)          ;;;
#else
#define ASSERT_(p)     if(!(p)) (show_assert_failed_dialog( #p, __FILE__, __LINE__))
#endif

 void show_assert_failed_dialog(char* condition,
                                char* file,
                                 int line)
 {
   ERROR_("\nAssertion  (%s) failed \n\n %s %d  " , condition, file, line);
 }

cos w tym stylu to jako ze jest to makro musze to przeklejac headerem a ERROR_ ciagne jedna linijką importu z dll-ki, lamaloby to tez moja zasade nie uzywania makr

assert z headera c z kolei nie ma tych wad ale jest malymi literami (co jest niespojne u mnie bo wole duzymi)
i wola okno z glupim dzwiekiem (a tu wyzej moga dac nawet wyczesany dialog z pelna diagnostyka gdyby mi sie chcialo

> 
> > > Zresztą wydaje mi się, że w tym przypadku wartość programowania
> > > funkcyjnego jest szczególnie duża, bo zazwyczaj funkcje nie
> > > mają skutków, tylko wartości, a jeśli mają skutki, to w Haskellu
> > > albo Scali wynika to z typu.
> > > 
> > > > jaki algorytm i gdzie coś można poczytać (referencje). 
> > > 
> > > Tego, jaki algorytm, albo referencji, rzeczywiście nie da się
> > > zawrzeć poza komentarzem, ale to zazwyczaj jedna linijka.
> > > 
> > > > To będzie już 30 do 40 linijek komentarza. Do 
> > > > tego jeszcze kilkanaście w tekście, np. że nie robić czegoś 
> > > > oczywistego, bo dany fragment musi być taki właśnie jaki jest.
> > > >
> > > > I już jest nawet i 50 linii komentarza. Zwłaszcza że liczę takie 
> > > > 
> > > > A=5; // cm
> > > > 
> > > > za linię z komentarzem.
> > > 
> > > Chyba lepiej byłoby tak:
> > > 
> > > A_cm = 5;
> > > 
> > > Pod tym względem ciekawe rozwiązanie ma F#:
> > > https://en.wikibooks.org/wiki/F_Sharp_Programming/Units_of_Measure
Technical Details
Message-ID: <f0e6e860-a386-40a0-8ad8-33e4595635fa@googlegroups.com>
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!news.nask.pl!news.nask.org.pl!news.unit0.net!weretis.net!feeder6.news.weretis.net!news.glorb.com!y18no5801984itc.0!news-out.google.com!m191ni23363itc.0!nntp.google.com!y18no5807976itc.0!postnews.google.com!glegroupsg2000goo.googlegroups.com!not-for-mail
References: <451e90e7$0$17965$f69f905@mamut2.aster.pl> <2bb5.00000022.45239396@newsgate.onet.pl> <eg0l2h$pre$1@nemesis.news.tpi.pl> <2afb3725-2059-4f04-b4ac-0989aff4dbd4@googlegroups.com> <58e1d648$0$5141$65785112@news.neostrada.pl> <896bb474-1535-4eb5-a427-1d74855ca14e@googlegroups.com> <58e20fc5$0$643$65785112@news.neostrada.pl> <82bfc8d8-6b1d-4928-b831-bdbbe71fc013@googlegroups.com> <58e245ef$0$640$65785112@news.neostrada.pl> <ed300d94-7f05-4791-ae56-077b774efa54@googlegroups.com> <58e28b69$0$15195$65785112@news.neostrada.pl> <1a59b0b0-0be0-44c9-9886-28171ba25a91@googlegroups.com> <c04357ca-2816-449a-a76d-3544891487be@googlegroups.com> <85e6a3a0-9e65-4bb9-9465-433d9c9c5c5e@googlegroups.com> <58e53652$0$5144$65785112@news.neostrada.pl> <694df5a0-8446-49ac-8e95-64e29d3767b7@googlegroups.com> <58e53ca6$0$15190$65785112@news.neostrada.pl> <c11906bf-4238-4b12-bcd1-38fefcec7225@googlegroups.com> <oc4lvi$n5f$1@node1.news.atman.pl> <58e5df11$0$5156$65785112@news.neostrada.pl> <almarsoft.5519333400367255350@news.v.pl> <almarsoft.1887009307138951124@news.v.pl> <a01917ce-6005-4ba5-ab6f-7d503a694651@googlegroups.com> <almarsoft.3812374116751442610@news.v.pl> <d521c115-c757-439a-b6b5-8cf4b5886167@googlegroups.com> <almarsoft.5271328977613451308@news.v.pl> <df81b585-523e-4ed7-a9b1-3eb3a980639d@googlegroups.com> <almarsoft.37215651928186221@news.v.pl> <f52db3b6-cba3-4c7a-9d02-2fa8105dab31@googlegroups.com> <65b9eced-3da5-421c-bccc-7632b0dd23e1@googlegroups.com> <594f02ef-9bd5-43e2-b95f-5bfb933e93ba@googlegroups.com>

Show Full Headers
Complete Article Headers
X-Received: by 10.107.19.231 with SMTP id 100mr14870364iot.46.1491575052024;        Fri, 07 Apr 2017 07:24:12 -0700 (PDT)
X-Received: by 10.157.26.98 with SMTP id u31mr60161otu.0.1491575051990; Fri, 07 Apr 2017 07:24:11 -0700 (PDT)
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!news.nask.pl!news.nask.org.pl!news.unit0.net!weretis.net!feeder6.news.weretis.net!news.glorb.com!y18no5801984itc.0!news-out.google.com!m191ni23363itc.0!nntp.google.com!y18no5807976itc.0!postnews.google.com!glegroupsg2000goo.googlegroups.com!not-for-mail
Newsgroups: pl.comp.lang.c
Date: Fri, 7 Apr 2017 07:24:11 -0700 (PDT)
In-Reply-To: <594f02ef-9bd5-43e2-b95f-5bfb933e93ba@googlegroups.com>
Complaints-To: groups-abuse@google.com
Injection-Info: glegroupsg2000goo.googlegroups.com; posting-host=5.172.255.114; posting-account=Sb6m8goAAABbWsBL7gouk3bfLsuxwMgN
NNTP-Posting-Host: 5.172.255.114
References: <451e90e7$0$17965$f69f905@mamut2.aster.pl> <2bb5.00000022.45239396@newsgate.onet.pl> <eg0l2h$pre$1@nemesis.news.tpi.pl> <2afb3725-2059-4f04-b4ac-0989aff4dbd4@googlegroups.com> <58e1d648$0$5141$65785112@news.neostrada.pl> <896bb474-1535-4eb5-a427-1d74855ca14e@googlegroups.com> <58e20fc5$0$643$65785112@news.neostrada.pl> <82bfc8d8-6b1d-4928-b831-bdbbe71fc013@googlegroups.com> <58e245ef$0$640$65785112@news.neostrada.pl> <ed300d94-7f05-4791-ae56-077b774efa54@googlegroups.com> <58e28b69$0$15195$65785112@news.neostrada.pl> <1a59b0b0-0be0-44c9-9886-28171ba25a91@googlegroups.com> <c04357ca-2816-449a-a76d-3544891487be@googlegroups.com> <85e6a3a0-9e65-4bb9-9465-433d9c9c5c5e@googlegroups.com> <58e53652$0$5144$65785112@news.neostrada.pl> <694df5a0-8446-49ac-8e95-64e29d3767b7@googlegroups.com> <58e53ca6$0$15190$65785112@news.neostrada.pl> <c11906bf-4238-4b12-bcd1-38fefcec7225@googlegroups.com> <oc4lvi$n5f$1@node1.news.atman.pl> <58e5df11$0$5156$65785112@news.neostrada.pl> <almarsoft.5519333400367255350@news.v.pl> <almarsoft.1887009307138951124@news.v.pl> <a01917ce-6005-4ba5-ab6f-7d503a694651@googlegroups.com> <almarsoft.3812374116751442610@news.v.pl> <d521c115-c757-439a-b6b5-8cf4b5886167@googlegroups.com> <almarsoft.5271328977613451308@news.v.pl> <df81b585-523e-4ed7-a9b1-3eb3a980639d@googlegroups.com> <almarsoft.37215651928186221@news.v.pl> <f52db3b6-cba3-4c7a-9d02-2fa8105dab31@googlegroups.com> <65b9eced-3da5-421c-bccc-7632b0dd23e1@googlegroups.com> <594f02ef-9bd5-43e2-b95f-5bfb933e93ba@googlegroups.com>
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <f0e6e860-a386-40a0-8ad8-33e4595635fa@googlegroups.com>
Subject: Re: ile czasu trzeba aby sie nauczyc c++?
From: "(fir)" <profesor.fir@gmail.com>
Injection-Date: Fri, 07 Apr 2017 14:24:12 +0000
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit