🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: alt.pl.comp.lang.csharp
Article #9681

Re: bledy popelniane przez programistow C#

#9681
From: Piotr 'Qertoip' Włodarek
Date: Mon, 31 Oct 2005 23:43
52 lines
3371 bytes
Dnia Mon, 31 Oct 2005 17:04:10 +0100, Grzesiek G. napisał(a):

> Piotr 'Qertoip' Włodarek napisał(a):
>> Dnia Mon, 31 Oct 2005 11:56:43 +0100, Grzegorz Danowski napisał(a):
>> 
>>>Użytkownik "Piotr 'Qertoip' Włodarek" <qer1@o2.pl> napisał w wiadomości
>>>news:4f5ksod9hocm.dlg@piotr-wlodarek.pl...
>>>
>>>
>>>>>Kod odwołania do właściwości i pola się może różnić. Zatem jeżeli kiedyś
>>>>>później zamienisz pole na właściwość, będzie to wymagać
>>>>>przekompilowania klasy wywołującej, a robiąc od razu właściwość
>>>>>pozbywasz się potencjalnego problemu.
>>>>
>>>>Przeczytaj dokładnie to co napisałem: "upublicznić pola, zaczynając ich
>>>>nazwę z dużej litery". Założenie jest takie, że pole nazywa się
>>>>identycznie jak późniejsza właściwość.
>>>>
>>>>Skutek: dodanie właściwości _nie_zmienia_ interfejsu klasy. Nie trzeba
>>>>więc zmieniać kodu klientów klasy.
>>>>
>>>
>>>Jeśli w bibliotece zmienisz pole na propercję, to bez przekompilowania
>>>klient nie będzie działał z nową biblioteką. Nawet jeśli nazwy będą takie
>>>same. Dostaniesz błąd typu 'System.MissingFieldException'.
>> 
>> To prawda, przekompilować trzeba. Zgadzam się, że może to być istotny
>> argument.
>> 
> A jeżeli dobierasz się do pola/właściwości przez refleksję, to może 
> zajść konieczność modyfikacji kodu wywołującego.

Tak; w tym wątku miałem na myśli "zwykłe" używanie bibliotek. Najbardziej
przekonuje mnie argument o potrzebie rekompilacji kodu klientów klasy.

Cieszę się, że udało mi się sprowokować dyskusję na ten temat - zastanawiało
mnie to od jakiegoś czasu. Już raz wcześniej prowokowałem, ale wtedy nikt
nie odpowiedział ( http://tinyurl.com/bmxlr )

Swoją drogą to szkoda, że w C# stawia się raczej na auto generację czysto
mechanicznego kodu (wizardy, makra, wtyczki itp) niż na mechanizmy języka,
które pozwoliłyby go po prostu nie pisać.

Przykładowo w Rubym i Pythonie istnieje specjalny mechanizm, pozwalający
uniknąć pustych akcesorów. Właściwości C# są temu bliskie, ale nie
wystarczająco bliskie - co pokazaliście w tym wątku.


-- 
| Piotr 'Qertoip' Włodarek
| www.piotr-wlodarek.pl
`-> Software Engineering 4 Those Who Care About The Craft
Technical Details
Message-ID: <13nmve9r1u93s$.dlg@piotr-wlodarek.pl>
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.gazeta.pl!not-for-mail
References: <1130508326.894711.153970@z14g2000cwz.googlegroups.com> <1eocwqzx1mywz$.dlg@piotr-wlodarek.pl> <dk4mhr$r5s$1@atlantis.news.tpi.pl> <4f5ksod9hocm.dlg@piotr-wlodarek.pl> <dk4t9e$pk5$1@inews.gazeta.pl> <crxbo9q0fdfi.dlg@piotr-wlodarek.pl> <dk5fb4$dmh$1@nemesis.news.tpi.pl>

Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.gazeta.pl!not-for-mail
From: Piotr 'Qertoip' Włodarek <qer1@o2.pl>
Newsgroups: alt.pl.comp.lang.csharp
Subject: Re: bledy popelniane przez programistow C#
Date: Tue, 1 Nov 2005 00:43:49 +0100
Organization: "Portal Gazeta.pl -> http://www.gazeta.pl"
Lines: 52
Message-ID: <13nmve9r1u93s$.dlg@piotr-wlodarek.pl>
References: <1130508326.894711.153970@z14g2000cwz.googlegroups.com> <1eocwqzx1mywz$.dlg@piotr-wlodarek.pl> <dk4mhr$r5s$1@atlantis.news.tpi.pl> <4f5ksod9hocm.dlg@piotr-wlodarek.pl> <dk4t9e$pk5$1@inews.gazeta.pl> <crxbo9q0fdfi.dlg@piotr-wlodarek.pl> <dk5fb4$dmh$1@nemesis.news.tpi.pl>
NNTP-Posting-Host: ntwklan-81-219-20-237.devs.futuro.pl
Mime-Version: 1.0
X-Trace: inews.gazeta.pl 1130802227 18214 81.219.20.237 (31 Oct 2005 23:43:47 GMT)
X-Complaints-To: usenet@agora.pl
NNTP-Posting-Date: Mon, 31 Oct 2005 23:43:47 +0000 (UTC)
X-User: qer1
User-Agent: 40tude_Dialog/2.0.15.1
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit