ugrás a tartalomhoz

Hiding Implementation Details with ECMAScript 6 WeakMaps

MadBence · 2014. Jan. 18. (Szo), 22.08
Adatrejtési megoldások és összehasonlításuk az újgenerációs JavaScript tükrében
 
1

Nem is tudtam, hogy JS-t

Hidvégi Gábor · 2014. Jan. 19. (V), 14.44
Nem is tudtam, hogy JS-t lehet előre fordított (akár bájtkód) modulként is betölteni.
2

Lehet nekem kerülte el a

MadBence · 2014. Jan. 19. (V), 15.02
Lehet nekem kerülte el a szemem, de én nem találtam erre való utalást a cikkben.
3

Rejtés

Hidvégi Gábor · 2014. Jan. 19. (V), 16.36
Akkor továbbra sem értem, ki elől kéne elrejteni bármit is, hisz ez lehetetlen, mert nálunk van a forráskód.
4

Több alkalommal is

Joó Ádám · 2014. Jan. 19. (V), 16.47
Több alkalommal is elmagyaráztam már neked, hogy ez nem egy biztonsági intézkedés, hanem dokumentációs.
5

De akkor miért kell belőle

Hidvégi Gábor · 2014. Jan. 19. (V), 17.04
De akkor miért kell belőle biztonsági kérdést csinálni?
6

Ki és hogyan csinál belőle

Joó Ádám · 2014. Jan. 19. (V), 17.05
Ki és hogyan csinál belőle biztonsági kérdést?
7

Például a blogmark is erről

Hidvégi Gábor · 2014. Jan. 19. (V), 17.14
Például a blogmark is erről szól.
8

A blogmark arról szól, hogyan

Joó Ádám · 2014. Jan. 19. (V), 17.18
A blogmark arról szól, hogyan használd a hatókör szabályokat és egy új kollekciót arra, hogy az interfészeden ne jelenjenek meg implementációs részletek. Hol látsz itt biztonsági kérdést?
9

Mit ír, miért ne jelenjenek

Hidvégi Gábor · 2014. Jan. 19. (V), 17.33
Mit ír, miért ne jelenjenek meg az implementációs részek?
10

We use CodeMirror as the

Joó Ádám · 2014. Jan. 19. (V), 18.01
We use CodeMirror as the underlying implementation for our editor, but do not want to expose it directly to consumers of the editor API. Not exposing CodeMirror allows us to upgrade it when there are backwards incompatible releases or even replace CodeMirror with a different editor without the fear of breaking third party addons that have come to depend on older CodeMirror versions.
11

Lehet, hogy én értem félre,

Hidvégi Gábor · 2014. Jan. 19. (V), 18.27
Lehet, hogy én értem félre, de számomra így az egésznek nem csak dokumentációs jelentősége van.
12

JS-ben bevett szokás a privát

MadBence · 2014. Jan. 19. (V), 18.42
JS-ben bevett szokás a privát függvényeket, adattagokat _-vel ellátni. Ezek csak konvenció szintjén számítanak privátnak, hiszen bárki elérheti.
A privát nem azt jelenti, hogy "titkos". Pusztán azt, hogy az nem tartozik a publikus dolgok közé, bármikor megváltozhat a viselkedése, felépítése.
Ha viszont a privát adatok nehezen érhetőek el (pl a cikkben említett WeakMap segítségével), akkor egy implementáció sem fog/tud a belső működésre (_-vel kezdődő függvények, adattagok) hagyatkozni, csak a publikus függvényekre (~interfész). Ha egy komponens egy interfészen keresztül kommunikál, az sokkal rugalmasabb, mintha a konkrét implementáció belső metódusait közvetlenül hívogatná.
Az adatrejtés a hülye programozók ellen véd, hiszen kikényszeríti a publikus metódusok használatát.
13

Attól, hogy a fordító

Joó Ádám · 2014. Jan. 19. (V), 18.43
Attól, hogy a fordító kikényszeríti, még dokumentációról van szó. Pont ugyanolyan mechanizmus, mint a típusrendszer.