Article View: alt.pl.comp.lang.csharp
Article #9681Re: bledy popelniane przez programistow C#
From: Piotr 'Qertoip' Włodarek
Date: Mon, 31 Oct 2005 23:43
Date: Mon, 31 Oct 2005 23:43
52 lines
3371 bytes
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-mailReferences:
<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