Co má v IT nejlepší budoucnost?

anonym68

Re:Co má v IT nejlepší budoucnost?
« Odpověď #30 kdy: 10. 09. 2015, 14:53:23 »
Hlavní smysl OOP v mainstream jazycích je ušetření práce a zvýšení přehlednosti. Nic víc za tím nehledej, není to tam.
To je možná spíše jen hlavní způsob využití OOP většinou programátorů.

Těžko se užívá něco co tam není :)


JSH

Re:Co má v IT nejlepší budoucnost?
« Odpověď #31 kdy: 10. 09. 2015, 15:44:30 »
OOP je celé o "dependency managment", pomáha oddeliť oddeliť nízkoúrovňovú logiku aplikácie od tej vyššej úrovne ako je interakcia s užívateľom, umožňuje navrhovať systémy tak, aby boli ľahko rozšíriteľné. OO ponúka aj vysokú úroveň abstrakcie.
Tohle ale neříká nic o tom, co je a není OOP. Spíš to je hodně vágní popis dobrého návrhu a to bez ohledu na použité paradigma :)

Kit

Re:Co má v IT nejlepší budoucnost?
« Odpověď #32 kdy: 10. 09. 2015, 17:21:39 »
Hlavní smysl OOP v mainstream jazycích je ušetření práce a zvýšení přehlednosti. Nic víc za tím nehledej, není to tam.
To je možná spíše jen hlavní způsob využití OOP většinou programátorů.

Těžko se užívá něco co tam není :)

Bylo by to tam, kdyby programátoři psali objektově. Obvykle je to jen obyčejné strukturované programování zabalené do objektů.

Lama

Re:Co má v IT nejlepší budoucnost?
« Odpověď #33 kdy: 10. 09. 2015, 21:52:39 »
OOP je celé o "dependency managment", pomáha oddeliť oddeliť nízkoúrovňovú logiku aplikácie od tej vyššej úrovne ako je interakcia s užívateľom, umožňuje navrhovať systémy tak, aby boli ľahko rozšíriteľné. OO ponúka aj vysokú úroveň abstrakcie.
Hlavní smysl OOP v mainstream jazycích je ušetření práce a zvýšení přehlednosti. Nic víc za tím nehledej, není to tam.
A jakým způsobem se té přehlednosti podle tebe dosáhlo? Třeba vylepšeným editorem kódu, rozčleněním kódu do odstavců, dokumentačními komentáři nebo čím?

A co je to přesně to OOP? Abysme věděli o čem se vlastně diskutuje
S jistotou to neví nikdo. Ani ti největší odborníci v oboru se nejsou schopni dohodnout co to vlastně znamená. V knize Základy objektově orientovaného návrhu v UML autor popisuje tuto historku:
Když jsem poprvé vstoupil do království OOP, rozhodl jsem se vytvořit definici OOP jednou pro vždy. Sehnal jsem tucet chlapíků z OOP světa a zamkl je v pokoji bez jídla a vody. Řekl jim, že je pustím až poté, co  se dohodnou na definici, kterou bych mohl předat žádostivě čekajícímu publiku.
Po hodině křiku a rachotu v pokoji následovalo ticho. Protože jsem se bál nejhoršího, opatrně odmkle dveře a nahlédl na potenciálně krvavou scénu. Všichni guru byli naživu, seděli však samostatně a nikdo s nikým nemluvil.
Zřejmě každý začal sezení tím, že se snažil ustanovit definici OOP pomocí časem dobře prověřené vědecké praxe hlasitého a neustálého opakování svého tvrzení. Když tento postup nikam nevedl, všici souhlasili s vytvořením seznamu vlastností OOP prostředí a 6-10 bodech, které sami jednotlivě považovali za nezbytné.
Měli 2 volby, vytvořit jeden dlouhý seznam, který byl souhrnem všech jednotlivých seznamů, nebo vytvořit krátký seznam, který by byl průsečíkem jejich jednotlivých seznamů.
Zvolili druhou možnost a výsledkem byl krátký seznam vlastností, které se nacházely na všech jednotlivých seznamech.
Ten seznam byl opravdu krátký. Obsahoval jedno slovo - "zapouzdření".
Problém spočívá v tom, že termín OOP postrádá smysl, takže jeho definice je libovolná. Přesto se vrhám do propasti a nabízím svůj seznam vlastností, které tvoří základ OOP.

Zapouzdření - sseskupení souvisejících idejí do jedné jednotky, na kterou se lze odkazovat názvem. Takovým zapouzdřením může být i obyčejný podprogram.
Objektově orientované zapouzdření - zabalení operací a atributů představující nějaký stav do jednoho typu objektu. Daný stav je přístupný či upravitelný pouze skrze rozhraní.
Skrývání informací a implementace - omezení externí viditelnosti určitých informací nebo implementačních detailů, která jsou pro strukturu zapouzdření interní. Jinými slovy, nikomu nic není do toho jak dělám to co dělám, v krajním případě ani do toho co dělám. Něco jako černá skříňka se vstupy a výstupy.
Z další vlastností to mohou být:
zachování stavu, identita objektů, zprávy, třídy, dědičnost, mnohotvarost, obecnost.

Re:Co má v IT nejlepší budoucnost?
« Odpověď #34 kdy: 10. 09. 2015, 22:03:40 »
S jistotou to neví nikdo. Ani ti největší odborníci v oboru se nejsou schopni dohodnout co to vlastně znamená.
S každým oborem lidské činnosti, který se přehnaně, neplodně a zcela zbytečně zabývá sám sebou, není něco v pořádku.


.

Re:Co má v IT nejlepší budoucnost?
« Odpověď #35 kdy: 11. 09. 2015, 09:44:47 »
Problém spočívá v tom, že termín OOP postrádá smysl, takže jeho definice je libovolná. Přesto se vrhám do propasti a nabízím svůj seznam vlastností, které tvoří základ OOP.

Zapouzdření - sseskupení souvisejících idejí do jedné jednotky, na kterou se lze odkazovat názvem. Takovým zapouzdřením může být i obyčejný podprogram.
Objektově orientované zapouzdření - zabalení operací a atributů představující nějaký stav do jednoho typu objektu. Daný stav je přístupný či upravitelný pouze skrze rozhraní.
Skrývání informací a implementace - omezení externí viditelnosti určitých informací nebo implementačních detailů, která jsou pro strukturu zapouzdření interní. Jinými slovy, nikomu nic není do toho jak dělám to co dělám, v krajním případě ani do toho co dělám. Něco jako černá skříňka se vstupy a výstupy.
Z další vlastností to mohou být:
zachování stavu, identita objektů, zprávy, třídy, dědičnost, mnohotvarost, obecnost.
Pro nás, co se v této oblasti pohybujeme už trochu déle ale tyhle vlastnosti nejsou ničím speciální, pokud zaměníme slovo objekt za modul tak tohle plně podporovala už třeba Modula-2 před 30 lety, která objekty v dnešním slova smyslu vůbec neměla. V podstatě je to popis modulárního programování...

Re:Co má v IT nejlepší budoucnost?
« Odpověď #36 kdy: 11. 09. 2015, 10:52:50 »
Problém spočívá v tom, že termín OOP postrádá smysl, takže jeho definice je libovolná. Přesto se vrhám do propasti a nabízím svůj seznam vlastností, které tvoří základ OOP.

Zapouzdření - sseskupení souvisejících idejí do jedné jednotky, na kterou se lze odkazovat názvem. Takovým zapouzdřením může být i obyčejný podprogram.
Objektově orientované zapouzdření - zabalení operací a atributů představující nějaký stav do jednoho typu objektu. Daný stav je přístupný či upravitelný pouze skrze rozhraní.
Skrývání informací a implementace - omezení externí viditelnosti určitých informací nebo implementačních detailů, která jsou pro strukturu zapouzdření interní. Jinými slovy, nikomu nic není do toho jak dělám to co dělám, v krajním případě ani do toho co dělám. Něco jako černá skříňka se vstupy a výstupy.
Z další vlastností to mohou být:
zachování stavu, identita objektů, zprávy, třídy, dědičnost, mnohotvarost, obecnost.
Pro nás, co se v této oblasti pohybujeme už trochu déle ale tyhle vlastnosti nejsou ničím speciální, pokud zaměníme slovo objekt za modul tak tohle plně podporovala už třeba Modula-2 před 30 lety, která objekty v dnešním slova smyslu vůbec neměla. V podstatě je to popis modulárního programování...

On hlavne v tom seznamu chybi polymorfismus.

A ze neco Modula umela je prima, ale dalsi otazka je jak to umela. V tomhle ohledu je prima mit zelene fajfky v checklistu vlastnosti, ale nakonec pri prgani hraji roli i detaily provedeni...

DD

Re:Co má v IT nejlepší budoucnost?
« Odpověď #37 kdy: 11. 09. 2015, 12:19:50 »
..

Obcas ctu forum na root.cz a myslim, ze velkou budoucnost ma psychologie, pripadne psychiatrie zamerena na pracovniky v IT.

Pavel Tisnovsky

Re:Co má v IT nejlepší budoucnost?
« Odpověď #38 kdy: 11. 09. 2015, 16:02:03 »
Zapouzdření - sseskupení souvisejících idejí do jedné jednotky, na kterou se lze odkazovat názvem. Takovým zapouzdřením může být i obyčejný podprogram.
Objektově orientované zapouzdření - zabalení operací a atributů představující nějaký stav do jednoho typu objektu. Daný stav je přístupný či upravitelný pouze skrze rozhraní.
Skrývání informací a implementace - omezení externí viditelnosti určitých informací nebo implementačních detailů, která jsou pro strukturu zapouzdření interní. Jinými slovy, nikomu nic není do toho jak dělám to co dělám, v krajním případě ani do toho co dělám. Něco jako černá skříňka se vstupy a výstupy.
Z další vlastností to mohou být:
zachování stavu, identita objektů, zprávy, třídy, dědičnost, mnohotvarost, obecnost.

Hmm jenže to například znamená, že tuto kategorii splňují FP jazyky a naopak takový Python ne :-)

Kit

Re:Co má v IT nejlepší budoucnost?
« Odpověď #39 kdy: 11. 09. 2015, 16:32:30 »
Zapouzdření - sseskupení souvisejících idejí do jedné jednotky, na kterou se lze odkazovat názvem. Takovým zapouzdřením může být i obyčejný podprogram.
Objektově orientované zapouzdření - zabalení operací a atributů představující nějaký stav do jednoho typu objektu. Daný stav je přístupný či upravitelný pouze skrze rozhraní.
Skrývání informací a implementace - omezení externí viditelnosti určitých informací nebo implementačních detailů, která jsou pro strukturu zapouzdření interní. Jinými slovy, nikomu nic není do toho jak dělám to co dělám, v krajním případě ani do toho co dělám. Něco jako černá skříňka se vstupy a výstupy.
Z další vlastností to mohou být:
zachování stavu, identita objektů, zprávy, třídy, dědičnost, mnohotvarost, obecnost.

Hmm jenže to například znamená, že tuto kategorii splňují FP jazyky a naopak takový Python ne :-)

Často mám pocit, že většina programátorů nezná význam slova "zapouzdření" a pod záminkou zapouzdřování narvou do třídy hromady nesmyslných getterů a setterů. A přitom systematicky nabourávají zapouzdření, protože tím odhalují její vnitřní strukturu do rozhraní - ať pravou či falešnou.

Lama

Re:Co má v IT nejlepší budoucnost?
« Odpověď #40 kdy: 12. 09. 2015, 21:36:18 »
On hlavne v tom seznamu chybi polymorfismus.
To jsem myslel, že je právě ta mnohotvarost, esli to teda dobře chápu.

Často mám pocit, že většina programátorů nezná význam slova "zapouzdření" a pod záminkou zapouzdřování narvou do třídy hromady nesmyslných getterů a setterů. A přitom systematicky nabourávají zapouzdření, protože tím odhalují její vnitřní strukturu do rozhraní - ať pravou či falešnou.
Já bych řekl, že největším narušitelem zapouzdření a skrývání implementace je dědičnost. Ale jinak máš asi taky pravdu. Dycky to bude o nějakém kompromisu.

Kit

Re:Co má v IT nejlepší budoucnost?
« Odpověď #41 kdy: 12. 09. 2015, 22:02:24 »
Často mám pocit, že většina programátorů nezná význam slova "zapouzdření" a pod záminkou zapouzdřování narvou do třídy hromady nesmyslných getterů a setterů. A přitom systematicky nabourávají zapouzdření, protože tím odhalují její vnitřní strukturu do rozhraní - ať pravou či falešnou.
Já bych řekl, že největším narušitelem zapouzdření a skrývání implementace je dědičnost. Ale jinak máš asi taky pravdu. Dycky to bude o nějakém kompromisu.

Ona i ta dědičnost se dá uchopit správně. Všechny atributy si držím private (a zásadně k nim nepíši gettery ani settery). Skoro jsem zapomněl, že nějaký protected existuje - do něj se vejde hromada porušení zapouzdření.

L Matejka

Re:Co má v IT nejlepší budoucnost?
« Odpověď #42 kdy: 01. 10. 2015, 07:07:15 »
Linux admin se jiste free uzivi, ale neni to prace uplne naporad a pro kazdeho. Prece jen je treba zastupitelnost a pro vetsi firmy je one-man-show problem. Ono casem i proto toho admina je dobre, pokud ma zastup a muzu v klidu odjet na dovolenou ci mit vecer "hotovo" ;)

No a kdyz uz se otom pise tak pokud by nekdo z diskutujicich o takovem prerodu uvazoval - tedy z free byt zamestnanec, ale dale resit zajimave projekty v Linuxu a pocitacovych sitich, akorat hledame nove kolegy na pozice Linux Administrator a nove i sitovy specialista, takze se muzete na prace@adminit.cz ozvat a zkusit to i z druhe strany a treba byt i rootem na Rootu ...

asdadasd

Re:Co má v IT nejlepší budoucnost?
« Odpověď #43 kdy: 01. 10. 2015, 13:46:31 »
Všechny atributy si držím private (a zásadně k nim nepíši gettery ani settery).

Ako ich potom inicializujes? Napada ma ze jedine cez konstruktor ale rovno pri deklaracii. Ked pri deklaracii tak potom to nie je vlastne konstanta? Ked cez konstruktor, ak dedis z tej triedy, musis v zdedenej triede volat jej nadtriedu kam musis opat prepasirovat tie agrumenty.

S gettrami nemam problem, settre by mali mat co najmensiu viditelnost z vonka a gettre by mali vratit unmodifiable veci

perceptron

Re:Co má v IT nejlepší budoucnost?
« Odpověď #44 kdy: 01. 10. 2015, 14:31:22 »
kit o getteroch klasicky trepe, uz pol roka nedal ziadny konkretny priklad