- 
 1. Data: 2012-06-25 20:38:13
 Temat: Nie mieszczę się w tym garniturku część 2: Java i parametry in/out
 Od: Edek Pienkowski <e...@g...com>
 Powiedzmy, że mam metodę która ma ze 30 zmiennych i, co oczywiste 
 w tym przypadku, jest za duża. Chcę ją podzielić.
 
 Problem polega na tym, że cokolwiek bym nie chciał wydzielić
 z tej metody zmienia te zmienne lokalne. Jeżeli zmieniałoby
 jedną, nie ma problemu:
 x1 = doSth(a,b,c,d,e);
 
 Ale jeżeli zmienia x1, y1 i z1, różnych typów? Najlepsze,
 co dotychczas wymyśliłem ucząc się Javy po raz drugi to:
 
 A arrX1 = new A[1]
 B arrYZ = new B[] { y1, z1}
 doSth(a,b,c,d,e, arrX1, arrZY)
 x1 = arrX1[0];
 y1 = zrrYZ[0];
 z1 = arrZY[1];
 
 Jest jakiś ogólny prostszy sposób? Kombinowałem z EnumMap
 automatycznie weryfikującym typy i castującym przez generyki,
 ale to już chyba łatwiej mieć 'private static class'
 do każdej metody w celu przekazania parametrów "out" lub
 "in/out".
 
 Czy C# ma to jakoś lepiej rozwiązane?
 
 Edek
 
- 
 2. Data: 2012-06-25 20:50:48
 Temat: Re: Nie mieszczę się w tym garniturku część 2: Java i parametry in/out
 Od: Adam Klobukowski <a...@g...com>
 On Monday, 25 June 2012 20:38:13 UTC+2, Edek Pienkowski wrote: 
 > Powiedzmy, że mam metodę która ma ze 30 zmiennych i, co oczywiste
 > w tym przypadku, jest za duża. Chcę ją podzielić.
 
 Jeżeli te wydzielone części nie mają wielkiej szansy być wykorzystywane gdzie indziej
 to nie ma sensu jej dzielić, chyba że robi się nieczytelna, ale wtedy lepiej trochę
 popracować nad kodem i obkomentować co trudniejsze kawałki.
 
 Jeśli jednak jesteś pewien co do podziału, to myślę że lepiej niż tablic użyć
 dedykowanych do tego mini klas POD.
 
 AdamK
 
 
- 
 3. Data: 2012-06-25 21:26:33
 Temat: Re: Nie mieszczę się w tym garniturku część 2: Java i parametry in/out
 Od: "AK" <n...@n...com>
 Użytkownik "Edek Pienkowski" <e...@g...com> napisał: 
 
 > Czy C# ma to jakoś lepiej rozwiązane?
 
 Ma Tuple.
 http://msdn.microsoft.com/en-us/library/system.tuple
 .aspx
 
 PS0: Nie sa idealne (gorsze niz w Pythonie), ale sa.
 PS1: I nie C# jeno .NET k..de
 
 AK
 
 
- 
 4. Data: 2012-06-25 21:30:49
 Temat: Re: Nie mieszczę się w tym garniturku część 2: Java i parametry in/out
 Od: Bronek Kozicki <b...@s...net>
 On 25/06/2012 19:38, Edek Pienkowski wrote: 
 > Powiedzmy, że mam metodę która ma ze 30 zmiennych i, co oczywiste
 > w tym przypadku, jest za duża. Chcę ją podzielić.
 >
 > Problem polega na tym, że cokolwiek bym nie chciał wydzielić
 > z tej metody zmienia te zmienne lokalne. Jeżeli zmieniałoby
 > jedną, nie ma problemu:
 > x1 = doSth(a,b,c,d,e);
 
 elementarne - zrób klasę i zamień zmienne lokalne na prywatne pola
 klasy, a częsci funkcji na funkcje klasy. Potem upraszczaj.
 
 
 B.
 
 
- 
 5. Data: 2012-06-25 21:41:47
 Temat: Re: Nie mieszczę się w tym garniturku część 2: Java i parametry in/out
 Od: Edek Pienkowski <e...@g...com>
 Dnia Mon, 25 Jun 2012 20:30:49 +0100, Bronek Kozicki napisal: 
 
 > On 25/06/2012 19:38, Edek Pienkowski wrote:
 >> Powiedzmy, że mam metodę która ma ze 30 zmiennych i, co oczywiste w tym
 >> przypadku, jest za duża. Chcę ją podzielić.
 >>
 >> Problem polega na tym, że cokolwiek bym nie chciał wydzielić z tej
 >> metody zmienia te zmienne lokalne. Jeżeli zmieniałoby jedną, nie ma
 >> problemu:
 >> x1 = doSth(a,b,c,d,e);
 >
 > elementarne - zrób klasę i zamień zmienne lokalne na prywatne pola
 > klasy, a częsci funkcji na funkcje klasy. Potem upraszczaj.
 
 Powiedz od razu, że mam pisać klasy zamiast metod - jest takich metod
 dobre kilka. I nie bardzo wiem, co miałbym upraszczać i dlaczego miałbym
 psuć działający kod - upraszczanie poniżej miminum jak empirycznie
 stwierdzono nie jest najlepszym pomysłem, a metody nie są już do
 uproszczenia. Kopiowanie pól przy rekurencji też mało mnie pociąga.
 
 No ale ok, mogę stworzyć kilka takich klas. Wydajność będzie taka sama,
 czyli nie niższa od niskich stanów średnich? A czytelność metody-jako-
 klasy?
 
 Edek
 
 
- 
 6. Data: 2012-06-25 21:48:21
 Temat: Re: Nie mieszczę się w tym garniturku część 2: Java i parametry in/out
 Od: "AK" <n...@n...com>
 Użytkownik "Edek Pienkowski" <e...@g...com> napisał: 
 
 > Powiedz od razu, że mam pisać klasy zamiast metod - jest takich metod
 > dobre kilka. I nie bardzo wiem, co miałbym upraszczać i dlaczego miałbym
 > psuć działający kod
 
 Nie znam Javy prawie wcale, ale...: napisz se (na wzor tego z .NET - to trywialne)
 templejta tuple implementujacego interface Tuple i finito.
 
 PS: i przestan truc ciagle o "wydajnosci" bo sie mdlo robi :(
 PS1: zabraknie ci tej "wydajnosci" to sie bedziesz wtedy zastanawial
 
 AK
 
 
- 
 7. Data: 2012-06-25 22:05:42
 Temat: Re: Nie mieszczę się w tym garniturku część 2: Java i parametry in/out
 Od: Edek Pienkowski <e...@g...com>
 Dnia Mon, 25 Jun 2012 21:48:21 +0200, AK napisal: 
 
 > Użytkownik "Edek Pienkowski" <e...@g...com> napisał:
 >
 >> Powiedz od razu, że mam pisać klasy zamiast metod - jest takich metod
 >> dobre kilka. I nie bardzo wiem, co miałbym upraszczać i dlaczego
 >> miałbym psuć działający kod
 >
 > Nie znam Javy prawie wcale, ale...: napisz se (na wzor tego z .NET - to
 > trywialne)
 > templejta tuple implementujacego interface Tuple i finito.
 >
 > PS: i przestan truc ciagle o "wydajnosci" bo sie mdlo robi :(
 > PS1: zabraknie ci tej "wydajnosci" to sie bedziesz wtedy zastanawial
 
 Ja to mało wydajny jestem, ale już od dawna marudzą, że tool startuje
 aż w 2 minuty, i to pomimo tego, że wcześniej startował w 6. Ciężkie
 życie...
 
 Edek
 PS. Ciekawie cytujesz
 
 
 
 
 
 
 
- 
 8. Data: 2012-06-25 22:08:42
 Temat: Re: Nie mieszczę się w tym garniturku część 2: Java i parametry in/out
 Od: "AK" <n...@n...com>
 Użytkownik "Edek Pienkowski" <e...@g...com> napisał: 
 
 > Ja to mało wydajny jestem, ale już od dawna marudzą, że tool startuje
 > aż w 2 minuty, i to pomimo tego, że wcześniej startował w 6. Ciężkie
 > życie...
 
 No to sobie wbij do glowy, ze wlasnie to wychwalene "reczne" malloc jest
 _najbardziej kosztowna funkcja w C/C++_.
 Wiem, bo kiedys napisalem w asm86 cala biblioteke standardowa TC 2.0
 
 AK
 
 
- 
 9. Data: 2012-06-25 22:14:11
 Temat: Re: Nie mieszczę się w tym garniturku część 2: Java i parametry in/out
 Od: Edek Pienkowski <e...@g...com>
 Dnia Mon, 25 Jun 2012 11:50:48 -0700, Adam Klobukowski napisal: 
 
 > On Monday, 25 June 2012 20:38:13 UTC+2, Edek Pienkowski wrote:
 >> Powiedzmy, że mam metodę która ma ze 30 zmiennych i, co oczywiste w tym
 >> przypadku, jest za duża. Chcę ją podzielić.
 >
 > Jeżeli te wydzielone części nie mają wielkiej szansy być wykorzystywane
 > gdzie indziej to nie ma sensu jej dzielić, chyba że robi się
 > nieczytelna, ale wtedy lepiej trochę popracować nad kodem i obkomentować
 > co trudniejsze kawałki.
 
 Częsciej komentuję "co" niż "jak".
 
 >
 > Jeśli jednak jesteś pewien co do podziału, to myślę że lepiej niż tablic
 > użyć dedykowanych do tego mini klas POD.
 
 To ma taki sam problem, jak wszystkie inne w Javie. Zamieniam 10 linijek
 treści na call i 6 linijek kopiowania. Wycinając większy fragment,
 zamieniam 50 linijek na call i 15 linijek kopiowania. Nie widzę sensu,
 więc chyba zostaną duże metody z fluganiem na brak goto.
 
 Edek
 
 
- 
 10. Data: 2012-06-25 22:28:33
 Temat: Re: Nie mieszczę się w tym garniturku część 2: Java i parametry in/out
 Od: Edek Pienkowski <e...@g...com>
 Dnia Mon, 25 Jun 2012 22:08:42 +0200, AK napisal: 
 >
 > No to sobie wbij do glowy, ze wlasnie to wychwalene "reczne" malloc jest
 > _najbardziej kosztowna funkcja w C/C++_.
 > Wiem, bo kiedys napisalem w asm86 cala biblioteke standardowa TC 2.0
 
 malloc i inne new mogą mieć zachcianki w rodzaju deframentacji sterty,
 to wiadomo, że są na to podatne. Tyle, że to nic w porównaniu z Javą,
 startup, operacje na stosie przy rekurencji itp. Niedawno był
 chyba tutaj benchmark google kilku języków pod kątem właśnie takich
 algorytmów.
 
 Podobno każda klasa to jakieś 4K plus to co compiler, nie zamienię
 metod na klasy bez powodu.
 
 Edek
 
 
 


 do góry
 do góry![Reklama natywna - 5 najważniejszych zalet [© tashatuvango - Fotolia.com] Reklama natywna - 5 najważniejszych zalet](https://s3.egospodarka.pl/grafika2/artykul-natywny/Reklama-natywna-5-najwazniejszych-zalet-226496-150x100crop.jpg) 
![Ranking kont osobistych z najlepszymi korzyściami dla klientów [© Andrey Popov - Fotolia.com] Ranking kont osobistych z najlepszymi korzyściami dla klientów](https://s3.egospodarka.pl/grafika2/konto-osobiste/Ranking-kont-osobistych-z-najlepszymi-korzysciami-dla-klientow-266814-150x100crop.jpg) 
 
![Podatek od nieruchomości 2025 - czy właściciele i najemcy centrów handlowych zapłacą więcej? [© Dimitris Vetsikas z Pixabay] Podatek od nieruchomości 2025 - czy właściciele i najemcy centrów handlowych zapłacą więcej?](https://s3.egospodarka.pl/grafika2/podatek-od-nieruchomosci/Podatek-od-nieruchomosci-2025-czy-wlasciciele-i-najemcy-centrow-handlowych-zaplaca-wiecej-263510-150x100crop.jpg) 
 Elektromobilność dojrzewa. Auta elektryczne kupujemy z rozsądku, nie dla idei
Elektromobilność dojrzewa. Auta elektryczne kupujemy z rozsądku, nie dla idei 
 
 
 
![Milion na koncie? Wystarczyło inwestować po około 2 tysiące miesięcznie [© wygenerowane przez AI] Milion na koncie? Wystarczyło inwestować po około 2 tysiące miesięcznie](https://s3.egospodarka.pl/grafika2/oszczedzanie-pieniedzy/Milion-na-koncie-Wystarczylo-inwestowac-po-okolo-2-tysiace-miesiecznie-269397-150x100crop.jpg) 
![Wynajem mieszkania w Warszawie pochłania 44% pensji. Zobacz, jak wypadamy na tle Europy [© pixabay] Wynajem mieszkania w Warszawie pochłania 44% pensji. Zobacz, jak wypadamy na tle Europy](https://s3.egospodarka.pl/grafika2/rynek-najmu/Wynajem-mieszkania-w-Warszawie-pochlania-44-pensji-Zobacz-jak-wypadamy-na-tle-Europy-269391-150x100crop.jpg) 
![Lot z niespodzianką - jak overbooking zmienia podróż i jakie prawa mają pasażerowie? [© wygenerowane przez AI] Lot z niespodzianką - jak overbooking zmienia podróż i jakie prawa mają pasażerowie?](https://s3.egospodarka.pl/grafika2/prawa-pasazera/Lot-z-niespodzianka-jak-overbooking-zmienia-podroz-i-jakie-prawa-maja-pasazerowie-269384-150x100crop.jpg) 
![Lider z sercem: empatia i zaufanie jako klucz do sukcesu zespołu [© wygenerowane przez AI] Lider z sercem: empatia i zaufanie jako klucz do sukcesu zespołu](https://s3.egospodarka.pl/grafika2/lider/Lider-z-sercem-empatia-i-zaufanie-jako-klucz-do-sukcesu-zespolu-269133-150x100crop.png) 
![Bańka AI za 5 bilionów dolarów: Kiedy inwestorzy powiedzą: sprawdzam? [© wygenerowane przez AI] Bańka AI za 5 bilionów dolarów: Kiedy inwestorzy powiedzą: sprawdzam?](https://s3.egospodarka.pl/grafika2/AI/Banka-AI-za-5-bilionow-dolarow-Kiedy-inwestorzy-powiedza-sprawdzam-269382-150x100crop.png) 
 


