Postřehy ohledně architektury JavaScriptu

čumil

Re:Postřehy ohledně architektury JavaScriptu
« Odpověď #120 kdy: 25. 08. 2016, 22:40:58 »
Pánové, to Object.create ... je k piči tyvole. Jako copy-on-write klonování to nejde použít. V tomhle vlákně sme došli k závěru že změny v klonu se nedostanou do parenta, jenom naopak. To by někdy šlapalo fajn, ale hovno, ty cyklický reference mi prostě vrtaly furt hlavou a tak sem se to jal vyzkoušet, výsledek je že díky cyklicitám leakne změna stavu v klonu do parenta, takže je to vlastně klonování napiču, přesněji jenom shallow copy, a to není to po čem volám že chci nativně. Kód je dole

Kód: [Vybrat]
var FckinObj = {
  x : { shit: "fuck this" }
};
FckinObj.x.parent = FckinObj;
console.log("FckinObj x: " + FckinObj.x.shit);

var y = Object.create(FckinObj);
y.x.shit = " ERROR BITCH ";

console.log("FckinObj x: " + FckinObj.x.shit);

/* OUTPUT
  "FckinObj x: fuck this"
  "FckinObj x:  ERROR BITCH "
*/

To má být vtip? Zkus odstranit tu cyklickou referenci. Vypíše to úplně to stejné. y.x.shit vezme x z prototypu. Musel bys nejdřív udělat něco jako y.x = {}, aby se ti vytvořilo x přímo v tom objektu. Create nemůže nahradit deep copy. To tu ani nikdo netvrdil.
Aa taky pravda. Tak tím pádem je to kompletně k ničemu, neb to v žádném scénáři neodstíní parenta od změn, a přesně to s tím odstíněním parenta tady někdo tvrdil ...


gl

Re:Postřehy ohledně architektury JavaScriptu
« Odpověď #121 kdy: 25. 08. 2016, 23:03:53 »
Pánové, to Object.create ... je k piči tyvole. Jako copy-on-write klonování to nejde použít. V tomhle vlákně sme došli k závěru že změny v klonu se nedostanou do parenta, jenom naopak. To by někdy šlapalo fajn, ale hovno, ty cyklický reference mi prostě vrtaly furt hlavou a tak sem se to jal vyzkoušet, výsledek je že díky cyklicitám leakne změna stavu v klonu do parenta, takže je to vlastně klonování napiču, přesněji jenom shallow copy, a to není to po čem volám že chci nativně. Kód je dole

Kód: [Vybrat]
var FckinObj = {
  x : { shit: "fuck this" }
};
FckinObj.x.parent = FckinObj;
console.log("FckinObj x: " + FckinObj.x.shit);

var y = Object.create(FckinObj);
y.x.shit = " ERROR BITCH ";

console.log("FckinObj x: " + FckinObj.x.shit);

/* OUTPUT
  "FckinObj x: fuck this"
  "FckinObj x:  ERROR BITCH "
*/

To má být vtip? Zkus odstranit tu cyklickou referenci. Vypíše to úplně to stejné. y.x.shit vezme x z prototypu. Musel bys nejdřív udělat něco jako y.x = {}, aby se ti vytvořilo x přímo v tom objektu. Create nemůže nahradit deep copy. To tu ani nikdo netvrdil.
Aa taky pravda. Tak tím pádem je to kompletně k ničemu, neb to v žádném scénáři neodstíní parenta od změn, a přesně to s tím odstíněním parenta tady někdo tvrdil ...

Odstíní ho to od stejných změn jako shallow copy.

čumil

Re:Postřehy ohledně architektury JavaScriptu
« Odpověď #122 kdy: 25. 08. 2016, 23:35:15 »
Pánové, to Object.create ... je k piči tyvole. Jako copy-on-write klonování to nejde použít. V tomhle vlákně sme došli k závěru že změny v klonu se nedostanou do parenta, jenom naopak. To by někdy šlapalo fajn, ale hovno, ty cyklický reference mi prostě vrtaly furt hlavou a tak sem se to jal vyzkoušet, výsledek je že díky cyklicitám leakne změna stavu v klonu do parenta, takže je to vlastně klonování napiču, přesněji jenom shallow copy, a to není to po čem volám že chci nativně. Kód je dole

Kód: [Vybrat]
var FckinObj = {
  x : { shit: "fuck this" }
};
FckinObj.x.parent = FckinObj;
console.log("FckinObj x: " + FckinObj.x.shit);

var y = Object.create(FckinObj);
y.x.shit = " ERROR BITCH ";

console.log("FckinObj x: " + FckinObj.x.shit);

/* OUTPUT
  "FckinObj x: fuck this"
  "FckinObj x:  ERROR BITCH "
*/

To má být vtip? Zkus odstranit tu cyklickou referenci. Vypíše to úplně to stejné. y.x.shit vezme x z prototypu. Musel bys nejdřív udělat něco jako y.x = {}, aby se ti vytvořilo x přímo v tom objektu. Create nemůže nahradit deep copy. To tu ani nikdo netvrdil.
Aa taky pravda. Tak tím pádem je to kompletně k ničemu, neb to v žádném scénáři neodstíní parenta od změn, a přesně to s tím odstíněním parenta tady někdo tvrdil ...

Odstíní ho to od stejných změn jako shallow copy.
jop ...

balki

Re:Postřehy ohledně architektury JavaScriptu
« Odpověď #123 kdy: 25. 08. 2016, 23:54:33 »
Kód: [Vybrat]
var FckinObj = {
  x : { shit: "fuck this" }
};
FckinObj.x.parent = FckinObj;
console.log("FckinObj x: " + FckinObj.x.shit);

var y = Object.create(FckinObj);
y.x.shit = " ERROR BITCH ";

console.log("FckinObj x: " + FckinObj.x.shit);

/* OUTPUT
  "FckinObj x: fuck this"
  "FckinObj x:  ERROR BITCH "
*/

Ehm su tie vulgarizmy nutne, aby ste ukazali, ze sa vlastne vytvori shallow copy?

gl

Re:Postřehy ohledně architektury JavaScriptu
« Odpověď #124 kdy: 26. 08. 2016, 00:26:03 »
Ehm su tie vulgarizmy nutne, aby ste ukazali, ze sa vlastne vytvori shallow copy?

Shallow copy se nevytvoří.


YF

Re:Postřehy ohledně architektury JavaScriptu
« Odpověď #125 kdy: 26. 08. 2016, 10:16:17 »
<trapne ticho>

Kek

Re:Postřehy ohledně architektury JavaScriptu
« Odpověď #126 kdy: 26. 08. 2016, 10:28:53 »
Sranda ako tu onanujete nad tým dementným jazykom a reálne patláte trápne webiky. JavaScriptári sú najväčšia háveď pod slnkom. Vymýšľať nejaké šialené super teoretické psychopatiny je príznak toho, že ste na programátori na nič.

YF

Re:Postřehy ohledně architektury JavaScriptu
« Odpověď #127 kdy: 26. 08. 2016, 10:35:24 »
Sranda ako tu onanujete nad tým dementným jazykom a reálne patláte trápne webiky. JavaScriptári sú najväčšia háveď pod slnkom. Vymýšľať nejaké šialené super teoretické psychopatiny je príznak toho, že ste na programátori na nič.

ja si nemyslim ze ten jazyk je dementni - on me prijde jenom ze ma strasne moc moznosti a tim padem se domluvit nad necim nad nim je  slozity a dochazi tam k mnoha nepochopenim ... ale zpet k te otazce at uzavrem aspon to klonovani kdyz uz nic at ma tohle vlakno alespon nejaky zaver kdyz uz sem to zacal (i kdyz toho ted trosku lituju) ... :}

takze proc je potreba tak strasne klonovat objekty? :) nemeli by ty prototypy slouzit predevsim k tomu ze definuji strukturu a hierarchii ze ktere pak tvorim instance a pomoci 'konstruktoru' potom definuju jejich vychozi stav ktery dale upravuje jen proces (jednotlive kroky programu? :) ) nebo to je v js spatny pristup?

diky

Re:Postřehy ohledně architektury JavaScriptu
« Odpověď #128 kdy: 26. 08. 2016, 11:41:22 »
Sranda ako tu onanujete nad tým dementným jazykom a reálne patláte trápne webiky. JavaScriptári sú najväčšia háveď pod slnkom. Vymýšľať nejaké šialené super teoretické psychopatiny je príznak toho, že ste na programátori na nič.

Aneb když nick sedí i na psaný projev...  ;) Nejdřív si v tom jazyce něco komplexního napište, než začnete nadávat.

Kit

Re:Postřehy ohledně architektury JavaScriptu
« Odpověď #129 kdy: 26. 08. 2016, 11:43:52 »
takze proc je potreba tak strasne klonovat objekty? :) nemeli by ty prototypy slouzit predevsim k tomu ze definuji strukturu a hierarchii ze ktere pak tvorim instance a pomoci 'konstruktoru' potom definuju jejich vychozi stav ktery dale upravuje jen proces (jednotlive kroky programu? :) ) nebo to je v js spatny pristup?

diky

Jinými slovy máme dostatek creational patterns a klonování k tomu nepotřebujeme.

YF


SB

Re:Postřehy ohledně architektury JavaScriptu
« Odpověď #131 kdy: 26. 08. 2016, 13:25:20 »
Ad 2: Go nějak přidělává práci?

Ano. Nemá zapouzdření.

SB

Re:Postřehy ohledně architektury JavaScriptu
« Odpověď #132 kdy: 26. 08. 2016, 13:40:40 »
Sranda ako tu onanujete nad tým dementným jazykom a reálne patláte trápne webiky. JavaScriptári sú najväčšia háveď pod slnkom. Vymýšľať nejaké šialené super teoretické psychopatiny je príznak toho, že ste na programátori na nič.

Javascript není špatný, jenom prostě není pro každého.

YF

Re:Postřehy ohledně architektury JavaScriptu
« Odpověď #133 kdy: 26. 08. 2016, 13:42:19 »
Ad 2: Go nějak přidělává práci?

Ano. Nemá zapouzdření.

Encapsulation: the ability to restrict or provide access to data and the ability to tie behavior or methods with the data. For Go some of the salient features are:
* There are two levels of access - within the package alone, and public.
* If a field, type, or method starts with a capital letter it is exported outside the package and is public. If instead it starts with a small letter, it is visible only within the package.
* Exported/public items: MyStruct, MyMethod, MyField
* Items with package visibility: myStruct, myMethod, myField
* You can tie in methods/behavior to a type by defining functions associated with it. func (m my_type) my_func() int { }
* You cannot attach methods to a type if it is not defined in the local package.

YF

Re:Postřehy ohledně architektury JavaScriptu
« Odpověď #134 kdy: 26. 08. 2016, 13:51:01 »
<trapne ticho>