Article View: pl.comp.lang.ruby
Article #1075Re: ruby - wrażenia i pytania
From: Radosław Bułat
Date: Sat, 17 May 2008 21:19
Date: Sat, 17 May 2008 21:19
35 lines
2563 bytes
2563 bytes
Jaroslaw Zabiello pisze: > Dnia 16-05-2008 o 11:25:50 Marcin Gryszkalis <mg@fork.pl> napisał(a): > >> Czy jeśli nagle metoda shuffle pojawi się w bibliotece standardowej to >> nie jest to >> groźne dla istniejącego kodu? > > Teoretycznie tak, w praktyce mała na to szansa. Ruby pozwala na > zamrożenie dowolnych obiektów. Wystrzeli wyjątkiem jak coś będzie > chciało grzebać w obiektach które zamrozisz (włącznie z tymi > wbudowanymi). To, plus automatyczne testy (co jest w zasadzie i tak > konieczne do pisania) powinno móc być w stanie wyłapać różne sytuacje. > Z tym zamrażaniem to jest dla mnie mit. Spotkałem się może kilka razy gdy ktoś używał freeze, zwykle na zasadzie: Stala = [1, 2, 3].freeze (by nie zmodyfikować obiektu wskazywanego przez Stala) Nie spotkałem się natomiast by ktoś zamrażał klasy, a już na pewno nie wbudowane (zupełnie bez sensu). A nawet jeśli zamrożę to jedyne co dostanę to wyjątek. Co jeśli jest on powodowany przez jakąś bibliotekę? Ok, niby lepsze to niż nic, ale jednak zamrożenie nie jest rozwiązaniem problemu "a co jeśli ktoś to zmodyfikuje, albo będzie kolizja nazw". Istniejące klasy (nie nasze), zwłaszcza te wbudowane mimo wszystko powinniśmy zostawić w spokoju za wszelką cenę. Dopiero gdy stwierdzimy, że nie mamy innego wyjścia to można pomyśleć nad tym rozwiązaniem. Niby oczywiste, ale często jest to nadużywane (monkey-patching). -- Radosław Bułat http://radarek.jogger.pl - mój blog
Technical Details
Message-ID:
<g0ni58$njj$1@bobo.ds5.agh.edu.pl>Path:
mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.rmf.pl!agh.edu.pl!news.agh.edu.pl!localhost!not-for-mailReferences:
<g0ia32$571$1@node1.news.atman.pl> <42e53512-c494-49ff-a6e9-61030eafba97@p25g2000hsf.googlegroups.com> <g0jku8$c34$1@node1.news.atman.pl> <op.ubab9ngmyvsyti@zbiru-at-home.local>Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.rmf.pl!agh.edu.pl!news.agh.edu.pl!localhost!not-for-mail From: Radosław Bułat <radarrek@poczta.fm> Newsgroups: pl.comp.lang.ruby Subject: Re: ruby - wrażenia i pytania Date: Sat, 17 May 2008 23:19:36 +0200 Organization: News serwer at news.ds5.agh.edu.pl Lines: 35 Message-ID: <g0ni58$njj$1@bobo.ds5.agh.edu.pl> References: <g0ia32$571$1@node1.news.atman.pl> <42e53512-c494-49ff-a6e9-61030eafba97@p25g2000hsf.googlegroups.com> <g0jku8$c34$1@node1.news.atman.pl> <op.ubab9ngmyvsyti@zbiru-at-home.local> NNTP-Posting-Host: 192.168.128.101 Mime-Version: 1.0 X-Trace: bobo.ds5.agh.edu.pl 1211059176 24179 192.168.128.101 (17 May 2008 21:19:36 GMT) X-Complaints-To: abuse@localhost NNTP-Posting-Date: Sat, 17 May 2008 21:19:36 +0000 (UTC) User-Agent: Thunderbird 2.0.0.14 (X11/20080505) In-Reply-To: <op.ubab9ngmyvsyti@zbiru-at-home.local> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit