{"id":1720070,"user_name":null,"score":9,"text":"1. Dlaczego  funkcje s\u0105 lepsze od komentarzy i zwijania w IDE?\n\n\na) bo automatycznie u\u0142atwiaj\u0105 testowanie, \nb) bo, u\u0142atwiaj\u0105 debug,\nc) zmniejszaj\u0105 rozmiar problemu - analizuj\u0105c wi\u0119ksz\u0105 funkcj\u0119 masz w lokalnym zasi\u0119gu wi\u0119cej zmiennych lokalnych itp. niewa\u017cne jak  sobie to poprzedzielasz komentarzami, funkcja automatycznie przerywa takie zale\u017cno\u015bci,\nd) komentarze to w og\u00f3le WTF - my\u015bla\u0142em, \u017ce ju\u017c ten temat by\u0142 wielokrotnie wa\u0142kowany, pr\u0119dzej czy p\u00f3\u017aniej komentarz rozjedzie si\u0119 z kodem kt\u00f3rego dotyczy, w przypadku funkcji mo\u017ce rozjecha\u0107 si\u0119 nazwa (kt\u00f3r\u0105 \u0142atwo poprawi\u0107), ale przynajmniej parametry b\u0119d\u0105 musia\u0142y mie\u0107 sens\ne) co do zrzucania roboty na IDE - jako\u015b problem\u00f3w z jako\u015bci\u0105 kompilator\u00f3w nie mam, niewa\u017cnie jak poryty kod tworz\u0119 - natomiast IDE wykrzaczaj\u0105 mi si\u0119 cz\u0119sto i nie trzeba si\u0119 stara\u0107. Kompilowanie kodu, kt\u00f3ry IDE oznacza ca\u0142y na czerwono, bo si\u0119 gubi,  to zwykle standard. (nawet w prostackim kotlinie). Dlatego przerzucanie pracy z kompilator\u00f3w na IDE to s\u0142aby pomys\u0142.\n\n2.\n\n> Wydzielona funkcja ma stosunkowo du\u017cy koszt. \n\nJe\u015bli chodzi o performance to jedno pytanie:\nA kiedy mierzy\u0142e\u015b? \nTo nie tylko kompilatory s\u0105 sprytniejsze, r\u00f3wnie\u017c od dawna hardware coraz lepiej radzi sobie z takim kodem. O ile nie uruchamiasz kodu na 80386 to CPU jest wstanie ogarn\u0105\u0107 du\u017co optymalizacji  nawet jesli tw\u00f3j kompilator nie daje rady.\n\nCo wi\u0119cej - jeszcze 10 lat temu - w javie w czasach jdk 1.5 cz\u0119sto bywa\u0142o tak, \u017ce podzia\u0142 na mniejsze funkcje prowadzi\u0142 do lepszej wydajno\u015bci - po prostu mniejsze funkcje \u0142atwiej inlinowa\u0107, by\u0142y szybciej i wydajniej kompilowane - du\u017ce od razu przepada\u0142y.... ale to raczej \"dziwactwa\" kompilator\u00f3w w jvm\/hotstpota. Z tego co wiem  obecnie jest mniej takich problem\u00f3w.\n\n>  Zwi\u0119kszamy skomplikowanie kompilator\u00f3w w imi\u0119 lepszej czytelno\u015bci, \n\nTu raczej tej jest sprawa  jasna - kompilator piszemy raz, i mo\u017ce by\u0107 skomplikowany - po to w\u0142a\u015bnie \u017ceby kod dla ludzi m\u00f3g\u0142 by\u0107 prosty. Temat wielokrotnie wa\u0142kowany.\n\nPoruszy\u0142e\u015b te\u017c temat kolorowych funkcji - jak dla mnie to zupe\u0142nie ortogonalne zagadnienie, do tego co omawiamy. Bo tutaj jednak kod w wersji zbitej i rozproszonej na funkcje async ma w zasadzie inn\u0105 struktur\u0119. Zreszt\u0105 mnie osobi\u015bcie strasznie te wszystkie asyki i suspendy wkurzaj\u0105 (ale to temat na ca\u0142kiem inn\u0105 dyskusj\u0119).\n\nZ jednym si\u0119 zgadzam:\n> to i tak nie przebije dajmy na to bloku oddzielonego gwiazdkami w komentarzu. \n\nKod w komentarzu wykonuje si\u0119 zwykle niesko\u0144czenie szybko.\n\nNie wiem czy serio pisa\u0142e\u015b (bo cz\u0119\u015b\u0107 argument\u00f3w brzmi jak dyskusje, kt\u00f3re toczy\u0142em mo\u017ce 15 lat temu). Ale fragment o komentarzu z gwiazdkami brzmi jak jaki\u015b ostry trolling.","edit_count":5,"is_voted":null,"is_accepted":null,"is_subscribed":null,"user_id":78878,"deleter_name":null,"delete_reason":null,"orderingScore":9,"created_at":"2020-11-01T20:10:23+01:00","updated_at":"2020-11-02T09:57:56+01:00","deleted_at":null,"user":{"id":78878,"name":"jarekr000000","is_online":false,"bio":"Zgadzam si\u0119 ze wszystkimi przedm\u00f3wcami","location":"U krasnolud\u00f3w - pod g\u00f3r\u0105","allow_sig":1,"allow_count":1,"allow_smilies":1,"posts":4730,"visited_at":"2026-07-10T04:40:11.000000Z","created_at":"2016-09-15T21:38:28.000000Z","initials":"J0","is_verified":false,"is_deleted":false,"is_incognito":false,"is_blocked":false,"is_blocked_perm":false,"deleted_at":null,"photo":"\/uploads\/photo\/ggwraKmclN3ZY0QlPKdtjGBOBOZVZJKgtoPWSDuz.jpg","sig":"jeden i p\u00f3\u0142 terabajta powinno wystarczy\u0107 ka\u017cdemu\n"},"html":"<ol>\n<li>Dlaczego  funkcje s\u0105 lepsze od komentarzy i zwijania w IDE?<\/li>\n<\/ol>\n<p>a) bo automatycznie u\u0142atwiaj\u0105 testowanie,<br \/>\nb) bo, u\u0142atwiaj\u0105 debug,<br \/>\nc) zmniejszaj\u0105 rozmiar problemu - analizuj\u0105c wi\u0119ksz\u0105 funkcj\u0119 masz w lokalnym zasi\u0119gu wi\u0119cej zmiennych lokalnych itp. niewa\u017cne jak  sobie to poprzedzielasz komentarzami, funkcja automatycznie przerywa takie zale\u017cno\u015bci,<br \/>\nd) komentarze to w og\u00f3le WTF - my\u015bla\u0142em, \u017ce ju\u017c ten temat by\u0142 wielokrotnie wa\u0142kowany, pr\u0119dzej czy p\u00f3\u017aniej komentarz rozjedzie si\u0119 z kodem kt\u00f3rego dotyczy, w przypadku funkcji mo\u017ce rozjecha\u0107 si\u0119 nazwa (kt\u00f3r\u0105 \u0142atwo poprawi\u0107), ale przynajmniej parametry b\u0119d\u0105 musia\u0142y mie\u0107 sens<br \/>\ne) co do zrzucania roboty na IDE - jako\u015b problem\u00f3w z jako\u015bci\u0105 kompilator\u00f3w nie mam, niewa\u017cnie jak poryty kod tworz\u0119 - natomiast IDE wykrzaczaj\u0105 mi si\u0119 cz\u0119sto i nie trzeba si\u0119 stara\u0107. Kompilowanie kodu, kt\u00f3ry IDE oznacza ca\u0142y na czerwono, bo si\u0119 gubi,  to zwykle standard. (nawet w prostackim kotlinie). Dlatego przerzucanie pracy z kompilator\u00f3w na IDE to s\u0142aby pomys\u0142.<\/p>\n<ol>\n<li><\/li>\n<\/ol>\n<blockquote>\n<p>Wydzielona funkcja ma stosunkowo du\u017cy koszt.<\/p>\n<\/blockquote>\n<p>Je\u015bli chodzi o performance to jedno pytanie:<br \/>\nA kiedy mierzy\u0142e\u015b?<br \/>\nTo nie tylko kompilatory s\u0105 sprytniejsze, r\u00f3wnie\u017c od dawna hardware coraz lepiej radzi sobie z takim kodem. O ile nie uruchamiasz kodu na 80386 to CPU jest wstanie ogarn\u0105\u0107 du\u017co optymalizacji  nawet jesli tw\u00f3j kompilator nie daje rady.<\/p>\n<p>Co wi\u0119cej - jeszcze 10 lat temu - w javie w czasach jdk 1.5 cz\u0119sto bywa\u0142o tak, \u017ce podzia\u0142 na mniejsze funkcje prowadzi\u0142 do lepszej wydajno\u015bci - po prostu mniejsze funkcje \u0142atwiej inlinowa\u0107, by\u0142y szybciej i wydajniej kompilowane - du\u017ce od razu przepada\u0142y.... ale to raczej \"dziwactwa\" kompilator\u00f3w w jvm\/hotstpota. Z tego co wiem  obecnie jest mniej takich problem\u00f3w.<\/p>\n<blockquote>\n<p>Zwi\u0119kszamy skomplikowanie kompilator\u00f3w w imi\u0119 lepszej czytelno\u015bci,<\/p>\n<\/blockquote>\n<p>Tu raczej tej jest sprawa  jasna - kompilator piszemy raz, i mo\u017ce by\u0107 skomplikowany - po to w\u0142a\u015bnie \u017ceby kod dla ludzi m\u00f3g\u0142 by\u0107 prosty. Temat wielokrotnie wa\u0142kowany.<\/p>\n<p>Poruszy\u0142e\u015b te\u017c temat kolorowych funkcji - jak dla mnie to zupe\u0142nie ortogonalne zagadnienie, do tego co omawiamy. Bo tutaj jednak kod w wersji zbitej i rozproszonej na funkcje async ma w zasadzie inn\u0105 struktur\u0119. Zreszt\u0105 mnie osobi\u015bcie strasznie te wszystkie asyki i suspendy wkurzaj\u0105 (ale to temat na ca\u0142kiem inn\u0105 dyskusj\u0119).<\/p>\n<p>Z jednym si\u0119 zgadzam:<\/p>\n<blockquote>\n<p>to i tak nie przebije dajmy na to bloku oddzielonego gwiazdkami w komentarzu.<\/p>\n<\/blockquote>\n<p>Kod w komentarzu wykonuje si\u0119 zwykle niesko\u0144czenie szybko.<\/p>\n<p>Nie wiem czy serio pisa\u0142e\u015b (bo cz\u0119\u015b\u0107 argument\u00f3w brzmi jak dyskusje, kt\u00f3re toczy\u0142em mo\u017ce 15 lat temu). Ale fragment o komentarzu z gwiazdkami brzmi jak jaki\u015b ostry trolling.<\/p>\n","url":"http:\/\/static.175.128.202.116.clients.your-server.de\/Forum\/Inzynieria_oprogramowania\/345560-kiedy_gruboziarnisty_kod_jest_lepszy?p=1720070#id1720070","is_locked":false,"editor":{"id":78878,"name":"jarekr000000","is_online":false,"bio":"Zgadzam si\u0119 ze wszystkimi przedm\u00f3wcami","location":"U krasnolud\u00f3w - pod g\u00f3r\u0105","allow_sig":1,"allow_count":1,"allow_smilies":1,"posts":4730,"visited_at":"2026-07-10T04:40:11.000000Z","created_at":"2016-09-15T21:38:28.000000Z","initials":"J0","is_verified":false,"is_deleted":false,"is_incognito":false,"is_blocked":false,"is_blocked_perm":false,"deleted_at":null,"photo":"\/uploads\/photo\/ggwraKmclN3ZY0QlPKdtjGBOBOZVZJKgtoPWSDuz.jpg","sig":"jeden i p\u00f3\u0142 terabajta powinno wystarczy\u0107 ka\u017cdemu\n"},"permissions":{"write":false,"delete":false,"update":false,"accept":false},"moderatorPermissions":{"delete":false,"update":false,"accept":false,"merge":false,"sticky":false,"admAccess":false},"comments":{"647679":{"id":647679,"text":"da\u0142am \u0142apk\u0119 chocia\u017c  z punktem d si\u0119 nie zgadzam","html":"da\u0142am \u0142apk\u0119 chocia\u017c  z punktem d si\u0119 nie zgadzam\n","post_id":1720070,"created_at":"2020-11-01T22:02:59+01:00","updated_at":"2020-11-01T22:02:59+01:00","user":{"id":91447,"name":"Miang","is_online":true,"initials":"MI","is_verified":null,"is_deleted":false,"is_incognito":false,"is_blocked":false,"is_blocked_perm":false,"deleted_at":null,"photo":"\/uploads\/photo\/YQiXwaKiQcm00Tq2PBdtIUZ5BGCEcQI7Xu7rVd2s.jpg"},"url":"\/Forum\/Inzynieria_oprogramowania\/345560-kiedy_gruboziarnisty_kod_jest_lepszy?p=1720070#comment-647679","metadata":"eyJpdiI6IjJpeDlLT1llRlhRMDZPUHhvRHZLVlE9PSIsInZhbHVlIjoiUXcwR3UvT0FEVlYwbVpRTVc3OUI5eFdWdGxEeG50ODR5aGkxWDhCS3NSZ05IeUJZWDJyb05lNnk4RHh1am1tTFlNM2xRcnVyaXlSVUxBSE5GSy9Ec2xTOHdMNFRqMmwwNDJxTGtacjU1TC84b0h0R1NwS2xUcUQrc3Z2MkJGWlFYTXBvT2k2L2VUdE0rMDVxWkQ2aWI1NEx5REsrcXJXd2J5UDhFdWtVTDJ3PSIsIm1hYyI6ImQwNzBkZjRmYmM5ZjVjMDg0YTBhOWZhOWVhNTEyZDljYjkyZTVjZTg2OTc5ZDY4ZmY1NDM2ODA3NTA5N2Q1MjAiLCJ0YWciOiIifQ==","votes":0,"ownVote":false,"voters":[]},"648658":{"id":648658,"text":"`Co wi\u0119cej - jeszcze 10 lat temu - w javie w czasach jdk 1.5 cz\u0119sto bywa\u0142o tak, \u017ce podzia\u0142 na mniejsze funkcje prowadzi\u0142 do lepszej wydajno\u015bci - po prostu mniejsze funkcje \u0142atwiej inlinowa\u0107, by\u0142y szybciej i wydajniej kompilowane - du\u017ce od razu przepada\u0142y.... ale to raczej \"dziwactwa\" kompilator\u00f3w w jvm\/hotstpota. Z tego co wiem obecnie jest mniej takich problem\u00f3w.` ZTCW to dalej tak jest. Jest pewien limit wielko\u015bci (w bajtkodach chyba) na metody, kt\u00f3re s\u0105 ch\u0119tnie inline'owane ni\u017c inne. Mo\u017cna to pewnie jako\u015b wykorzysta\u0107, np \u017ceby cz\u0119\u015bciej inline'owa\u0107 wywo\u0142ania polimorficzne.","html":"<code>Co wi\u0119cej - jeszcze 10 lat temu - w javie w czasach jdk 1.5 cz\u0119sto bywa\u0142o tak, \u017ce podzia\u0142 na mniejsze funkcje prowadzi\u0142 do lepszej wydajno\u015bci - po prostu mniejsze funkcje \u0142atwiej inlinowa\u0107, by\u0142y szybciej i wydajniej kompilowane - du\u017ce od razu przepada\u0142y.... ale to raczej \"dziwactwa\" kompilator\u00f3w w jvm\/hotstpota. Z tego co wiem obecnie jest mniej takich problem\u00f3w.<\/code> ZTCW to dalej tak jest. Jest pewien limit wielko\u015bci (w bajtkodach chyba) na metody, kt\u00f3re s\u0105 ch\u0119tnie inline'owane ni\u017c inne. Mo\u017cna to pewnie jako\u015b wykorzysta\u0107, np \u017ceby cz\u0119\u015bciej inline'owa\u0107 wywo\u0142ania polimorficzne.\n","post_id":1720070,"created_at":"2020-11-03T20:45:55+01:00","updated_at":"2020-11-03T20:45:55+01:00","user":{"id":8278,"name":"Wibowit","is_online":true,"initials":"WI","is_verified":null,"is_deleted":false,"is_incognito":false,"is_blocked":false,"is_blocked_perm":false,"deleted_at":null,"photo":"\/uploads\/photo\/5032ae4953426.png"},"url":"\/Forum\/Inzynieria_oprogramowania\/345560-kiedy_gruboziarnisty_kod_jest_lepszy?p=1720070#comment-648658","metadata":"eyJpdiI6IkpqOW5jSENVeXdkNVcwbXBqcXh0Tmc9PSIsInZhbHVlIjoidVdOZW4xYVVBcUtpQzV4RStXTEY1WkVrWGVlbCs2bUwwbDBtTEVmUzBuaCsvTDg0K3hjajg0ek1IZW9hQTBiUGlLTm43aVRXM1F6V0E5NjNjSWRvODJQcEVPY2NCdW1MTHB0UU5JOHphRWd1NGQxUjJYZ3JkYU1PYSsrUHR0ZDZoU3ZaOGd3b2gvVUEvdzZTOTdwVXUvcVc1TzlhS0dNU0MwdVNJL1Zrdm1VPSIsIm1hYyI6ImExNmM2ODc5ZDc0ZjRlYTdlOWNmNDNkNzRlNjg1MTk1OTM0YWQxYTQxYTI5ZGMxMzllNDhjNjY4OGZhYzBjMDQiLCJ0YWciOiIifQ==","votes":0,"ownVote":false,"voters":[]}},"comments_count":2,"assets":[],"metadata":"eyJpdiI6ImRiYVR4bDZhQWZjdEZrenFSNk5rYWc9PSIsInZhbHVlIjoiZ1IvQUJsMVVtbWYwYk9XNlRsVlhtMENjeDRDMVd1STFnNjMweUk0OXdibDJqR3F1b1pGR2dkNnNRYks0cGxTZkVIdUY4eUV3d1hmSFp0dGZhZ2NwMVRUTXg4KzA5WkdTWWs4OU1WSUNnMXJnMjM1ejN3UnlYc1gyV25SNzRpbnkiLCJtYWMiOiJjNTIzYzdjYTNkZDhmMzkzNjZlZDI4ZTJhYTQ0MjdkMDQzODZlNzA3MTJmNjVkYmE4ZmEyZjljMzJhY2IwZjA4IiwidGFnIjoiIn0=","has_review":false,"review_style":"info","parentPostId":null,"childrenFolded":false,"type":"regular","highlighted":false}