-
261. Data: 2012-07-28 00:59:10
Temat: Re: Czym jest programowanie?
Od: Andrzej Jarzabek <a...@g...com>
On 27/07/2012 11:11, Stachu 'Dozzie' K. wrote:
> On 2012-07-27, Tomek[TK] <t...@N...pl> wrote:
>> On 26.07.2012 23:28, Andrzej Jarzabek wrote:
>>>
>>> To że nie można przekazać parametru przez referencję,
>> Zdaje sie, ze tyczy sie to tylko typow prostych, ale ok :) Pytalem w
>> sumie z czystej ciekawosci.
>
> Typów prostych, czyli również javowego wskaźnika na obiekt, zwanego
> w Javie referencją.
W takim układzie naturalne jest, że dotyczy to tylko 'typów prostych'.
bo tylko takie typy można przekazywać jako argumenty do funkcji.
-
262. Data: 2012-07-28 13:09:40
Temat: Re: Czym jest programowanie?
Od: "yamma" <y...@w...pl>
Użytkownik "Andrzej Jarzabek" <a...@g...com> napisał w
wiadomości news:juv3sv$nt2$1@inews.gazeta.pl...
> On 27/07/2012 19:35, yamma wrote:
>>
>> Hm. Porównywanie Eclipse'a w kontekście Javy z VS w kontekście C++ jest,
>> delikatnie mówiąc, mocno niesprawiedliwe dla autorów VS. Bardziej
>> sprawiedliwy byłby kontekst języka C#,
>
> Co mnie obchodzi C#? Porównywałem C++ z Javą pod względem dostępności
> narzędzi, np. automatycznej refaktoryzacji. To niby co miałoby być
> odpowiednikiem Eclipse dla C++, żeby było sprawiedliwie?
C++ jest cholernie ciężkim językiem do wspierania przez IDE. Tylko tyle.
Java czy .NET ze swoimi wbudowanymi mechanizmami (choćby refleksji) czy samą
konstrukcją solution dają ogromne pole do popisu dla autorów narzędzi.
yamma
-
263. Data: 2012-07-28 16:27:05
Temat: Re: Czym jest programowanie?
Od: Andrzej Jarzabek <a...@g...com>
On 28/07/2012 12:09, yamma wrote:
>
>> Co mnie obchodzi C#? Porównywałem C++ z Javą pod względem dostępności
>> narzędzi, np. automatycznej refaktoryzacji. To niby co miałoby być
>> odpowiednikiem Eclipse dla C++, żeby było sprawiedliwie?
>
> C++ jest cholernie ciężkim językiem do wspierania przez IDE. Tylko tyle.
Toteż właśnie mówiłem o tym, że Java ma pewne zalety, chociaż jako język
mi niezbyt odpowiada.
> Java czy .NET ze swoimi wbudowanymi mechanizmami (choćby refleksji) czy
Nie jestem przekonany, czy te mechanizmy robią wielką różnicę. Przede
wszystkim, wydaje mi się, C++ jest znacznie bardziej rozbdowanym
językiem, i w dodatku z porąbaną składnią i np. preprocesorem.
> samą konstrukcją solution dają ogromne pole do popisu dla autorów narzędzi.
Nie wiem co to "konstrukcja solution" w Javie.
-
264. Data: 2012-07-30 10:18:20
Temat: Re: Czym jest programowanie?
Od: Paweł Kierski <n...@p...net>
W dniu 2012-07-28 00:57, Andrzej Jarzabek pisze:
[...]
> Niedawno ktoś opisywał, że ma problemy z za długimi metodami. Części
> tych metod możnaby wyobrębnić w osobne metody, ale problemem jest użycie
> w tych częściach zmiennych lokalnych. Brak możliwości przekazania
> zmiennych (typów referencyjnych czy jakichkolwiek innych) przez
> referencję powoduje utrudnienie refektoryzacji typu 'extract method'.
[...]
Do długich metod z dużą liczbą zmiennych lokalnych wymyślono
"Replace Method with Method Object"
http://www.refactoring.com/catalog/replaceMethodWith
MethodObject.html
Co nie zmienia faktu, że przekazywanie przez referencję w rozumieniu
C++ bywa bardzo wygodne.
--
Paweł Kierski
n...@p...net
-
265. Data: 2012-07-30 10:40:28
Temat: Re: Czym jest programowanie?
Od: Edek Pienkowski <e...@g...com>
Dnia Mon, 30 Jul 2012 10:18:20 +0200, Paweł Kierski napisal:
> W dniu 2012-07-28 00:57, Andrzej Jarzabek pisze:
> [...]
>> Niedawno ktoś opisywał, że ma problemy z za długimi metodami. Części
>> tych metod możnaby wyobrębnić w osobne metody, ale problemem jest użycie
>> w tych częściach zmiennych lokalnych. Brak możliwości przekazania
>> zmiennych (typów referencyjnych czy jakichkolwiek innych) przez
>> referencję powoduje utrudnienie refektoryzacji typu 'extract method'.
> [...]
>
> Do długich metod z dużą liczbą zmiennych lokalnych wymyślono
> "Replace Method with Method Object"
> http://www.refactoring.com/catalog/replaceMethodWith
MethodObject.html
Traci się kilka użytecznych właściwości: final, use-before-assign,
nested scopes, scopes w ogóle. Pola obiektów mają inną semantykę niż
zmienne lokalne. Co nie zmienia faktu, że często robię taką refaktoryzację.
> Co nie zmienia faktu, że przekazywanie przez referencję w rozumieniu
> C++ bywa bardzo wygodne.
Edek
-
266. Data: 2012-07-30 18:54:46
Temat: Re: Czym jest programowanie?
Od: "Waldek M." <w...@l...localdomain>
Dnia Fri, 27 Jul 2012 23:14:51 +0100, Andrzej Jarzabek napisał(a):
>> ewentualnie porównanie możliwości wsparcia Eclipse'a dla C++.
>
> I co, Elcipse ma automatyczną refaktoryzację dla C++?
Sam Eclipse w ogole nie obsługuje C++ :-)
Do tego trzeba mu CDT, ściąganego osobno lub zapaczkowanego
w komplecie.
Jak się jednak CDT zainstaluje, to owszem, istnieje w nim automatyczna
refaktoryzacja.
Waldek
PS. Tyle, że to raptem zmiana nazwy zmiennych/metod/klas oraz
"extract method". Ale dobre i to.