🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: pl.comp.lang.ruby
Article #1075

Re: ruby - wrażenia i pytania

#1075
From: Radosław Bułat
Date: Sat, 17 May 2008 21:19
35 lines
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-mail
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>

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