Article View: pl.comp.lang.delphi
Article #345114Re: Czy nowe wersje Delphi nadają się do tworzenia stabilnych mobilnych Aplikacji ?
From: arivald
Date: Sun, 28 Aug 2016 11:25
Date: Sun, 28 Aug 2016 11:25
69 lines
4452 bytes
4452 bytes
W dniu 2016-08-27 o 21:19, Mikołaj 'Virion' Milewski pisze: > W dniu sobota, 27 sierpnia 2016 20:17:27 UTC+2 użytkownik arivald napisał: > >> Utrzymanie spójności danych globalnych to też problem - po każdej >> zmianie trzeba by wysyłać message do każdego workera który tej danej używa. >> >> >> W większości języków z wielowątkowością wątki mają wspólną pamięć, to >> program dba o synchronizację. Zmienne globalne, serwisy, cache, etc bez >> duplikatów. >> Przesyłać pomiędzy wątkami można wydajnie, po prostu wskaźnikami czy >> referencjami. > > No i spójrzmy, do czego to prowadzi: > 1. Globalne zmienne / globalny stan aplikacji - antywzorzec, który nader > ciężko wybić z głowy sobie / pracownikom Antywzorzec, ale niezbędny. I nie mówię tu o zmiennych w globalnej przestrzeni nazw, globalnym scope, bo np. statyczne pola i metody w klasach takze są globalami. Nadużywanie zmiennych globalnych to jest dopiero problem. > 2. Konieczność jawnej synchronizacji każdego współdzielenia danych między > wątkami - deadlocki, bottlenecki i wszystkie tej maści ścierwa, które > każdemu z nas niejedną godzinę z życia zeżarły, bo debugowanie tego to koszmar E, jaki tam koszmar. Wystarczy parę zasad (dane są albo stałe, każdy wątek może czytać, albo dane należą do danego wątku i tylko on może je czytać i zmieniać, używać odpowiednich mechanizmów do przesyłania danych z wątku do wątku), i problemy znikają. > 3. Organiczny wzrost couplingu (zna ktoś jakiś zgrabny polski odpowiednik?), > bo przecież łatwo i się da, to czemu nie IMO sprzęganie. Naprawdę nie widzę czemu akurat wielowątkowość ma na to jakiś wpływ. To raczej zależy od zadań i architektury aplikacji. Wystarczy zastosować pośrednika, np kontener IOC, do komunikacji jakiś szyna komunikatów albo slot-signal, etc., żeby osiągnąć luźne sprzeganie komponentów. > Myślę, że asynchroniczne podejście JSa promuje budowę software'u bardziej > na zasadzie mikroserwisów, niż złożonych struktur. Owo "asynchroniczne podejście JSa" jest wymuszone przez jego jednowątkowość. I nie jest to tyle podejście JS co podejście API których z JS się używa, żeby zapewnić w płynne działanie aplikacji. Dokładnie tak samo da się sterować aplikacją w każdym języku. Np kolejka komunikatów w Windows (i w wielu innych) jest bardzo podobnym rozwiązaniem, zamiast eventów JS są komunikaty. > Separując developera od > problemów, które 'starzy natywni wyjadacze' zwykli bohatersko rozwiązywać, > w gruncie rzeczy ułatwia pracę. Sam w to kiedyś nie do końca wierzyłem, > ale czy gdyby tak nie było, to czy ten ekosystem uzyskał by takie momentum? IMO to jest związane raczej z rosnącym znaczeniem, ilością i skomplikowaniem aplikacji przeglądarkowych. JS ma swoje nisze i zastosowania, ale nie jest to język na którym bazował bym aplikację. -- Arivald
Technical Details
Message-ID:
<npuhno$18g9$1@gioia.aioe.org>Path:
mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!news.nask.pl!news.nask.org.pl!news.unit0.net!news.mixmin.net!aioe.org!.POSTED!not-for-mailReferences:
<f598bc71-3997-4916-b6e2-4668a1845a7b@googlegroups.com> <nphfk8$1a1n$1@gioia.aioe.org> <57bca64b$0$15209$65785112@news.neostrada.pl> <463bdc36-6971-4080-a437-84944c62249c@googlegroups.com> <e27cf067-438a-408f-97c4-e5df166f9dc6@googlegroups.com> <577275ed-0aa6-4638-b786-14ab65f86538@googlegroups.com> <80d4b314-94b5-4571-a718-a54fd3466dfb@googlegroups.com> <nppqgi$j9q$1@gioia.aioe.org> <57c08238$0$15192$65785112@news.neostrada.pl> <nprcln$qsu$1@gioia.aioe.org> <e4a7e8b3-b45d-408c-80d7-4758d96335b4@googlegroups.com> <npslfj$qdd$1@gioia.aioe.org> <04bbf0f7-c9b3-4bdb-8db1-4d7df251dba7@googlegroups.com>Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!news.nask.pl!news.nask.org.pl!news.unit0.net!news.mixmin.net!aioe.org!.POSTED!not-for-mail From: arivald <arivald@nowhere.interia.pl> Newsgroups: pl.comp.lang.delphi Subject: Re: Czy nowe wersje Delphi nadają się do tworzenia stabilnych mobilnych Aplikacji ? Date: Sun, 28 Aug 2016 13:25:45 +0200 Organization: Aioe.org NNTP Server Lines: 70 Message-ID: <npuhno$18g9$1@gioia.aioe.org> References: <f598bc71-3997-4916-b6e2-4668a1845a7b@googlegroups.com> <nphfk8$1a1n$1@gioia.aioe.org> <57bca64b$0$15209$65785112@news.neostrada.pl> <463bdc36-6971-4080-a437-84944c62249c@googlegroups.com> <e27cf067-438a-408f-97c4-e5df166f9dc6@googlegroups.com> <577275ed-0aa6-4638-b786-14ab65f86538@googlegroups.com> <80d4b314-94b5-4571-a718-a54fd3466dfb@googlegroups.com> <nppqgi$j9q$1@gioia.aioe.org> <57c08238$0$15192$65785112@news.neostrada.pl> <nprcln$qsu$1@gioia.aioe.org> <e4a7e8b3-b45d-408c-80d7-4758d96335b4@googlegroups.com> <npslfj$qdd$1@gioia.aioe.org> <04bbf0f7-c9b3-4bdb-8db1-4d7df251dba7@googlegroups.com> NNTP-Posting-Host: 0bU75bhJ8rIBB/efsa6WUg.user.gioia.aioe.org Mime-Version: 1.0 X-Complaints-To: abuse@aioe.org User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:45.0) Gecko/20100101 Thunderbird/45.2.0 X-Notice: Filtered by postfilter v. 0.8.2 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit