Správičky 2 787 Blogy 945 Fórum 18 329

Zaujímavosti zo sveta

13.05 Antispam report Exchange 2013/…
blogCZSK
Nedávno jsem se setkal s prosbou, zda je možno udělat report nad funkcionalitou antispamu Exchange a trošku jsem narazil na problém, jak dos…
13.05 Pozvánka: konference, workshop…
blogCZSK
Níže jsme pro vás připravili přehled akcí, které jsou pro vás připraveny v příštích několika týdnech. Coding Bootcamp 19. 5. 2016 – Praha V …
12.05 Pozvánka: Nástroje a služby pr…
blogCZSK
Od vývoje přes nasazení po správu napříč platformami Rádi byste optimalizovali vývoj svých aplikací na různé platformy a nevíte jak? Zajímá …
12.05 System Center Configuration Ma…
blogCZSK
V minulém díle jsme nainstalovali SQL Server, který je nutný pro běh Configuration Manageru. Dnes nás čeká instalace WSUS, což je produkt, j…
11.05 Hovory od křivého stolu (5)
blogCZSK
A máme tu další díl českého video seriálu Hovory od křivého stolu (5). Pro toto vydání HKS jsme se ponořili do hlubin naší budovy a natočili…
11.05 Pozvánka: Coding Bootcamp Meet…
blogCZSK
V rámci pražského Coding Bootcampu budete mít možnost se naučit vše, co potřebuje moderní webový vývojář. Abyste měli představu, co bude náp…
10.05 Zajímavé kurzy a videa–MVA a C…
blogCZSK
I tento měsíc vám přinášíme výběr nejzajímavějších videí, kurzů a záznamů konferencí. Veškeré kurzy pak naleznete na portálu MVA a výuková v…
10.05 Azure Site Recovery – VMWARE (…
blogCZSK
Připravil jsem pro vás sérii článků, zabývající se technologií Azure Site Recovery. Konkrétně v šesti na sebe navazujících článcích se dozví…
09.05 DataScript: akční nabídka škol…
blogCZSK
Připravili jsme pro vás nabídku školení On-Demand. A jaké jsou výhody? nižší cena učíte se z pohodlí svého domova nebo kanceláře přístup mát…
05.05 System Center Configuration Ma…
blogCZSK
V předchozím díle jsme si nainstalovali prerekvizity potřebné pro běh Primary Site Configuration Manageru a také jsme připravili doménu pro …
20.04 Odkazy z prohlížeče – 20.4.201…
atasoft
CodeProject Video Transcoding and Streaming on the fly – CodeProject – přímo v prohlížeči (?) A Sample Code Submitted for Senior C# …
11.04 Linq a pracovní pohovor
mstr
Zjišťovat znalosti Linqu u pracovního pohovoru může být obtížné - s Linqem se asi setkal každý C# programátor, ale vždy záleží, do jaké hlou…
08.04 Linq - k čemu použít Aggregate…
mstr
K jednomu z předchozích článků, ve kterém jsem dal k dispozici cheatsheet pro Linq, se mne jeden známý zeptal, k čemu že je dobrý Aggregate …
27.03 Bezpečnost – věc veřejná
Poslední březnový den se v Praze uskuteční jednodenní konference o počítačové bezpečnosti SecPublica 2016. Jejím heslem je "securitas, res p…
16.03 Příklad na pohovor s programát…
mstr
Na blogu jsem uveřejnil několik příkladů z pohovorů s uchazeči o místo programátora. Dovolím si tedy uveřejnit jeden z dalších možných příkl…
15.03 IDisposable v příkladech
viga
Rozhraní IDisposable slouží k uvolnění “unmanaged” zdrojů. Nejčastěji to jsou různé objekty z Win32API (otevřené soubory, síťové spojení, GD…

Immutable kolekcie pripravené dobiť svet

vlko - 13. 10. 2013 21:41 - 1713 views

Ja už síce moc správičky nepíšem, ale to neznamená, že sa svet zastavil. Ten funguje ďalej a aj to tie veci okolo programovania sa posúvajú (alebo ako hovoril môj bývaly šéf, tak cyklia dookola) a dnes je moderné asynchrónne programovanie, funkcionálne jazyky a všetky tie veci, ktorým ja starý senior moc nerozumiem.

Takže sa zubami nechtami držím C# ale nezaškodí si niektoré features preniesť na môj piesoček. Napríklad také immutable kolekcie. To si tak píšete kód v dvoch vláknach a kde sme kedysi lockovali ako divý a len nedávno začali používať System.Collections.Concurrent ale stále to bolo také nemastné neslané, lebo immutable sú the best, to nam tam pod ruky nepribudne nejaký item a dokonca môžme z kolekcie vo foreach odoberať itemy.

MS dal zopár hlav dokopy a tak tu máme System.Collection.Immutable (nanešťastie len pre .net 4.5) a vlko je z toho šťastný:

Immutable collections ready for prime time

 


Marian Vlcak

Článkov: 0, Správičiek: 1347, Príspevkov vo fóre: 2154, Príspevkov v blogu: 0, Bodov: 37710
Najaktívnejší č.: 1
Profil používateľa

Reakcie

# RE: Immutable kolekcie pripravené dobiť svet 14. 10. 2013 10:13:22 T (anonym)

@vlko: "multithreading" ... "lebo immutable sú the best" ... vacsinou to neriesi nic a aj tak nie vzdy to je akceptovatelne efektivne riesenie (vsak kodnut si to nebol velky problem :-D

# RE: Immutable kolekcie pripravené dobiť svet 14. 10. 2013 16:21:58 T

A este mi nedalo, toto je ukazka ako sa triedy nemaju designovat a ze ked dvaja ludia na prvy pohlad prisu o tom istom, mozu to byt dve protichodne veci (dovod preco bola v minulosti propagovana immutabilita a design ktory je uvadzany v clanku napr. snaha o always valid ...a nie riesenie concurrency)

class Order
{
public Order(IEnumerable<OrderLine> lines)
{
Lines = lines.ToImmutableList();
}

public ImmutableList<OrderLine> Lines { get; private set; }

public Order WithLines(IEnumerable<OrderLine> value)
{
//????
return Object.ReferenceEquals(Lines, value)
? this
: new Order(value);
}
}

# RE: Immutable kolekcie pripravené dobiť svet 14. 10. 2013 22:09:06 vlko

Na začiatku som začal s funkcionálnym programovaním a immutable s tým súvisy. To že objekt nemôžeš zmeniť, ale jeho zmena je vždy nová inštancia, ti porieši väčšinu multithread problémov samozrejme musíš zmeniť aj tvoj prístup k riešeniu problémov, ale to časom príde immutable kolekcie sú dobrý krok, čakam čoskoro podporu immutable objektov priamo v C#, pretože jeho hybridný smer je už dlhšie viditeľný.

# RE: Immutable kolekcie pripravené dobiť svet 14. 10. 2013 22:35:58 T (anonym)

@vlko: ak sa bavime o multithreadingu a immutable collections ako univerzalnom rieseni, tak je to hlupost. Samozrejme, su pripady, ked si to mozes dovolit a ked to nevadi. Ta immutabilita nie je nic nove, pozri si x rocny clanok o builderoch na mojom blogu a vidim uplatnenie aj ine ako zrovna pri multithreadingu. Navyse dlllho aj v jave existovali readonly collections, ok, nie je to uplne to iste a skutocne immutable su plus...ale...

# RE: Immutable kolekcie pripravené dobiť svet 14. 10. 2013 22:36:49 T (anonym)

@vlko: a ano, ten postreh o funkcionalom programovani bol fajn....

# RE: Immutable kolekcie pripravené dobiť svet 14. 10. 2013 22:43:09 T (anonym)

ok, dramatizujem, stary je ten clanok len 4.5 roka :-)))
http://blog.aspnet.sk/tomas/archive/2009/03/03/ako-p-237-sa-itateln-253-k-243-d-s-immutable-objektami.aspx

# RE: Immutable kolekcie pripravené dobiť svet 14. 10. 2013 23:55:35 vlko

Nikto sa neháda, že je immutabilita niečo nové. O čo ide mne je, že immutable objekty je základný rys funkcionálneho programovania, kde parellelizmus je "vedľajší" produkt takéhoto štýlu, preto ak už niekto má použiť concurrent kolekciu, tak je možno lepšie siahnuť po immutable kolekcii a vo výsledku sa možno posunúť k hľadaniu iného riešenia, kde koncept lokovania je už z princípu obsolete, pretože immutable kolekcia sa pod rukov proste nezmení.

A samozrejme ako som už písal v budúcnosti čakám ešte väčší príklon C# k funkcionálnemu štýlu (aj keď viac menej to bude možnosť voľby).

Počet jadier v CPU pribúda rýchlejšie ako reálny výkon a skôr či neskor sa budeme musieť adaptovať a to so štandardným prístupom nejde a funkcionálne programovanie ukazuje smer aj keď to nebude zajtra, alebo pozajtra (tento odstavec je viac menej poznámka pre ostatných ako pre teba:).

# RE: Immutable kolekcie pripravené dobiť svet 15. 10. 2013 10:07:12 liero

@T: ten "immutable" object v tvojom blogu nieje az taky immutable, orderLines sa daju zmenit, lebo:
var list = new List[string]();
var readOnlyList = new ReadOnlyCollection[string](list);
list.Add("hello");
//readOnlyList.Count == 1

viem, ze ten clanok bol o inom, ale v tomto kontexte to je bug :)

# RE: Immutable kolekcie pripravené dobiť svet 15. 10. 2013 10:39:36 T (anonym)

zase tie Tvoje malichernosti ;-)
@liero:
a) hej objavil si ameriku, keby si cital trochu medzi riadkami ("nie je to uplne to iste a skutocne immutable su plus") mohol si si to usetrit...ano toto je slabost readonly collections
b) v tom designe (upraveny order som tam nedal a zameral som sa na builder) sa ku povodnej collection nedostanes aspon nie priamociaro a ked velmi chces da sa tomu zabranit uplne
c) co si mi mohol vytknut, ze operujem s immutable v kontexte toho prikladu nie celkom spravne

# RE: Immutable kolekcie pripravené dobiť svet 15. 10. 2013 10:52:23 T (anonym)

@vlko:
"objekty je základný rys funkcionálneho programovania"
ano suhlasim, to vsetci vieme, ale co z toho vypliva? :-)

"lockovanie je už z princípu obsolete"
:-)) celkom vesele konstatovanie...o aky princip konkretne ide? Neviem este co to je, ale mozeme to volat Vlkova teorema o plnom aplikacnom multiprocesorovom paralelizme?

skor by som zacal vysvetlovat kedy a ako to pouzit ako zase hlasat o nejakom silver bullete, neviem, preco veci vzdy stavias do takychto nezmyselnych kategorickych poloh..."viva la revolution", spalme bez hlbsieho zamyslenia vsetko co pozname, je tu nove univerzalne riesenie na vsetko, aby sme to potom mohli znova objavil pod inym nazvom :-)

Funkcionalny C# - su problemove oblasti, kde sa to naozaj viac hodi riesit F, suhlasim a tipujem, ze to tak skonci.(zial vysledkom bude, ze ludia vo vacsine pripadov nebudu robit ani dobry objektovy ani funkcionalny design, ale budiz :-)

"a skôr či neskor sa budeme musieť adaptovať a to so štandardným prístupom nejde"
:-)))) neviem co je standardny pristup :-) podla mna tomu treba rozumiet a nie sirit myty. Immutable collection je prijemna vec, ale z hladiska parallelneho programovania zrnkom piesku v pieskovisku....

# RE: Immutable kolekcie pripravené dobiť svet 15. 10. 2013 12:16:58 vlko

to T: nejak precenujes význam správičiek. Z dvoj odstavcového textu sa nedajú vytvoriť nijaké závery, že immutable považujem za silver bullet. Immutable považujem za zaujímavý spôsob ako vyriešiť concurrency problém, ktoré sa občas hodí na niektorý môj problém.
A na quotes, nereagujem, lebo su vytrhnuté z kontextu:)

# RE: Immutable kolekcie pripravené dobiť svet 15. 10. 2013 14:28:42 T

@vlko: ani nie, len si uvedom dopad tych zjednoduseni na ludi, ktory zacinaju....a nepresili niekolkokrat kolom nadsenia pre nove a rozcarocania....

Pridať reakciu

Titulok:
Meno:
Url:
Koľko je 22 + 4?
(ochrana proti spamu)
Komentár:

Najaktívnejší užívatelia
1. 37710 b. photo vlko
2. 21045 b. photo T
3. 15955 b. photo spigi
4. 15450 b. photo Anonymous
5. 11110 b. photo dudok
6. 8985 b. photo Liero
7. 6885 b. photo siro
8. 6245 b. photo slavof
9. 5340 b. photo duracellko
10. 4430 b. photo xxxmatko