Vydělávej až 160.000 Kč měsíčně! Akreditované rekvalifikační kurzy s garancí práce od 0 Kč. Více informací.
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.
Avatar
Kit
Tvůrce
Avatar
Odpovídá na Luboš Běhounek Satik
Kit:8.1.2014 23:47

Přes foreach se dá v pohodě i zapisovat, ale nedělá se to. Pokud to jen jde, tak se všemi proměnnými zacházím tak, jako kdyby byly immutable.

Čtení bitmapy v PHP není zrovna nejběžnější činnost. Pokud bych přece jen potřeboval spočítat počty výskytů barev, použil bych Imagick::getImageHistogram(). Bez cyklu.

Odpovědět
8.1.2014 23:47
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
Odpovídá na Kit
Luboš Běhounek Satik:9.1.2014 0:07

V PHP možná (tam je možné všechno :D ), ale v C# by jsi do bitmapy přes foreach zapisovat nemohl.

Nevím, jestli pořád nechápeš moji narážku, nebo se jen vyhýbáš odpovědi, ale mě je fuk, jakou by jsi na to použil funkci a knihovnu, ale jak by jsi to řešil, kdyby to byla nějaká podobná funkcionalita, pro kterou zatím žádná knihovna není - třeba kdyby jsi u té bitmapy chtěl dělat něco jiného - třeba spočítat červené pixely...

Nahoru Odpovědět
9.1.2014 0:07
https://www.facebook.com/peasantsandcastles/
Avatar
Kit
Tvůrce
Avatar
Odpovídá na Luboš Běhounek Satik
Kit:9.1.2014 0:18

No co? Tak bych použil cyklus. Spokojen? Fakt si myslíš, že nedokáži napsat vlastní algoritmus, který nemá nikdo jiný?

(stejně bych to potajmu přepsal na některou existující funkci :D

Editováno 9.1.2014 0:20
Nahoru Odpovědět
9.1.2014 0:18
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
Nahoru Odpovědět
9.1.2014 0:25
https://www.facebook.com/peasantsandcastles/
Avatar
Kit
Tvůrce
Avatar
Odpovídá na Luboš Běhounek Satik
Kit:9.1.2014 0:36

Zrovna se mi do pazour dostalo tohle:

$pole = explode(':', $stringSeSouradnicemi);
$x = $pole[0];
$y = $pole[1];
$z = $pole[2];

Myslíš si, že bych to takhle napsal? Kdepak. Hezky bych to zkrátil na jeden řádek a proměnnou $pole bych úplně vypustil, protože dále už nebyla použita. Na takových zápisech se pak získávají zpět ty tiky ztracené interpretováním.

Nahoru Odpovědět
9.1.2014 0:36
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
petrph
Člen
Avatar
petrph:9.1.2014 12:19

Otázka je co chceš vlastně srovnávat-jestli pouze základní syntaxi jazyka (těch základních příkazů je obvykle pár)- a nebo co všechno v tom jazyku můžeš dokázat-což je ale pak otázka přídavných knihoven či jiných prostředků, které si ale musíš nastudovat zvlášť.
Abych dal u těchto dvou jazyků takový hezký příklad
V C# nemůžeš napsat ani jednoduchý uživatelský výstup (ono obligátní "Hello world") -i přitom už musíš volat objekt knihovny .NET.
Zatímco přímo v PHP sice totéž napsat můžeš ale je to tak primitivní a neprofesionální, že to musíš doplnit díky dobré znalosti HTML,popřípadě nějakého frameworku..

 
Nahoru Odpovědět
9.1.2014 12:19
Avatar
Kit
Tvůrce
Avatar
Odpovídá na Luboš Běhounek Satik
Kit:9.1.2014 17:42

Vidím, že tě to nijak nezaujalo, ale stejně napíšu řešení:

list($x, $y, $z) = explode(':', $stringSeSouradnicemi);

Tyto konstrukce odlišují PHP od C#. Měl bys být spokojen, protože jsem tvrdil, že jsou to podobné jazyky a přitom uvádím rozdíly.

Někteří programátoři však takové zápisy neuznávají. Zřejmě proto, že nemají ekvivalent v jejich oblíbeném jazyku.

Nahoru Odpovědět
9.1.2014 17:42
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
Odpovídá na Kit
Luboš Běhounek Satik:9.1.2014 17:58

Jak jsem psal, v PHP jsem dělal jen lehce a naposled nekde pred 4 roky, takze konstrukci nebo funkci list neznam :)

Nahoru Odpovědět
9.1.2014 17:58
https://www.facebook.com/peasantsandcastles/
Avatar
Jan Vargovský
Tvůrce
Avatar
Odpovídá na Kit
Jan Vargovský:9.1.2014 18:00

Napsal bych si nato objekt a pak by to šlo :)

 
Nahoru Odpovědět
9.1.2014 18:00
Avatar
Kit
Tvůrce
Avatar
Odpovídá na Jan Vargovský
Kit:9.1.2014 18:24

$stringSeSourad­nicemi bys tomu objektu předhodil do konstruktoru a pak dělal getX(), getY(), getZ()? Děkuji, nechci. Nebo jsi to myslel jinak?

Nahoru Odpovědět
9.1.2014 18:24
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
Jan Vargovský
Tvůrce
Avatar
Odpovídá na Kit
Jan Vargovský:9.1.2014 19:14

V podstatě takhle:

int[] p = "2;4;6".Split(';').Select(n => int.Parse(n)).ToArray();
var point = new { X = p[0], Y = p[1], Z = p[2] };

Je to dlouhé, ale na 2 řádky bych takhle vytvořil i kolekci těch pointů, což už by šlo.

 
Nahoru Odpovědět
9.1.2014 19:14
Avatar
Kit
Tvůrce
Avatar
Odpovídá na Jan Vargovský
Kit:9.1.2014 19:27

Než takhle, tak raději bych dopsal navíc jeden konstruktor k nějaké své třídě Point a použil to takto:

Point point = new Point('2;4;6');
Nahoru Odpovědět
9.1.2014 19:27
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
Jan Vargovský
Tvůrce
Avatar
Odpovídá na Kit
Jan Vargovský:9.1.2014 19:31

Pak bys přehodil parsování do třídy. Každá verze má svoje +.

 
Nahoru Odpovědět
9.1.2014 19:31
Avatar
Kit
Tvůrce
Avatar
Odpovídá na Jan Vargovský
Kit:9.1.2014 19:35

Uvnitř třídy je dostatek prostoru na ošetření všech možných chybových stavů. Ve volajícím kódu na to prostor není.

Nahoru Odpovědět
9.1.2014 19:35
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
Alesseon
Člen
Avatar
Odpovídá na petrph
Alesseon:10.1.2014 18:08

No, ano, hlavně chci srovnat možnosti, a vědět co je pro mě výhodnější, zatím se pro mě ukázalo výhodnější PHP, ale třeba C# by se hodně dalo využít na aplikace pro windows, s tím počítám a proto se ptám na tom jaké v tom jsou rozdíly oproti PHP právě ve webové sféře...

Nahoru Odpovědět
10.1.2014 18:08
This is a bad day to be human...
Avatar
Petr Nymsa
Tvůrce
Avatar
Odpovídá na Alesseon
Petr Nymsa:10.1.2014 19:00

Prostě jak bylo řečeno už, záleží co chceš dělat. Pokud převážně webové aplikace - PHP, pokud aplikace pro .NET platformu (Windows Desktop, Windows Phone, ASP .NET (web) či Windows 8 (MODERN UI) tak C#.

Nahoru Odpovědět
10.1.2014 19:00
Pokrok nezastavíš, neusni a jdi s ním vpřed
Avatar
Odpovídá na Alesseon
Zdeněk Pavlátka:10.1.2014 19:23

C# tě nenechá si nic dělat podle svého, ale u objektů toho nabízí víc.

Nahoru Odpovědět
10.1.2014 19:23
Kolik jazyků umíš, tolikrát jsi programátor.
Avatar
Odpovídá na Zdeněk Pavlátka
Neaktivní uživatel:10.1.2014 19:28

Jak jsi na to prosímtě přišel?

Nahoru Odpovědět
10.1.2014 19:28
Neaktivní uživatelský účet
Avatar
petrph
Člen
Avatar
Odpovídá na Alesseon
petrph:10.1.2014 20:17

Což je ještě horší. Protože pokud budeš chtít dělat ve webové sféře, tak to není otázka C# samotného, ale ASP.NET ve které ten web tvoříš. A ta technologie je sdosti složitá.
Ale asi bych ti odpověděl s pomocí křivky učení - když se začneš učit PHP, tak se tím pádem ihned začneš rychle učit i tvorbu dynamických webů (protože bez toho nemá PHP program smysl). Kdežto když začneš s C# tak tomu věnuješ třeba několik měsíců-čistě syntaxi toho jazyka (tedy na bázi jednoduchých konzolových prográmků)a až potom začneš studovat ten ASP.NET abys mohl tvořit dynamické stránky. Takže se můžeš rozhodnou sám..
A vlastně ještě jedna věc-pokud to tu ještě někdo nenapsal.Záleží taky na tom jak a pro koho budeš chtít pracovat. Pokud chceš pracovat samostatně a vytvářet sám pro zákazníky dynamické weby a vůbec weby,tak na většině středních i menších webů běží Apache s modulem PHP. Kdežto Microsoft IIS Web Server na kterém běží ASP.NET používají spíš velké firmy pro velké zakázky-tam by tě třeba líp zaplatili se znalostí C# a ASP.NET. }Ale neplatí to úplně-i spousta větších firem vyvíjí weby v PHP..)
Jinak samozřejmě bod 2 - s PHP se v konzolových aplikacích neškrtneš.
TAkže takhle to prosím posuzuj, není důležité v jakých podrobnostech se od sebe liší-obvykle lze s oběma docílit (na webu) podobných výsledků, podstatné je pro který se rozhodneš - čeká tě pár měsíců učení abys to mistrně zvládnul..

 
Nahoru Odpovědět
10.1.2014 20:17
Avatar
Nahoru Odpovědět
10.1.2014 20:21
Kolik jazyků umíš, tolikrát jsi programátor.
Avatar
David Hartinger
Vlastník
Avatar
Odpovídá na petrph
David Hartinger:10.1.2014 20:22

Nechtěl jsem se diskuze účastnit, ale toto jsou opravdu nepravdy. ASP.NET se hodí na malé weby stejně dobře, jako PHP. Křivka učení je ve tvém podání dost krátkozraká. V PHP sice začneš rychle bastlit, ale kvalita nula. C# ti takhle bastlit nedovolí, můžeme se dohadovat jestli je to dobře nebo špatně. Pokud chceš dělat weby na úrovni, budeš se to učit stejně dlouho v PHP i v C#, OOP a MVC se v nich dělá stejně.

Nahoru Odpovědět
10.1.2014 20:22
You are the greatest project you will ever work on.
Avatar
Kit
Tvůrce
Avatar
Odpovídá na petrph
Kit:10.1.2014 20:35

V PHP dělám i konzolové aplikace. Přesněji řečeno, pokud mám dělat aplikaci na webu nebo pracující s webem, volím PHP.

Nahoru Odpovědět
10.1.2014 20:35
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
Odpovídá na Kit
Neaktivní uživatel:10.1.2014 20:37

K tomu by možná bylo vhodné zmínit, že je děláš pro Linux, na Windowsech není běžné mít desktop aplikace v PHP :)

Nahoru Odpovědět
10.1.2014 20:37
Neaktivní uživatelský účet
Avatar
Kit
Tvůrce
Avatar
Odpovídá na Zdeněk Pavlátka
Kit:10.1.2014 20:38

Promiň, ale v C# se dají dělat dost podobné prasárny jako v PHP a C# tě to klidně nechá dělat. V C# se dá psát i procedurálně (pokud někdo chce) a také se to velmi často dělá, i když se to nemá.

Nahoru Odpovědět
10.1.2014 20:38
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
Kit
Tvůrce
Avatar
Odpovídá na Neaktivní uživatel
Kit:10.1.2014 20:40

Běžné to není, ale funguje to úplně stejně jako na Linuxu. Dokonce na Windows jede i webserver v PHP (bez Apache).

Nahoru Odpovědět
10.1.2014 20:40
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
Odpovídá na Kit
Zdeněk Pavlátka:10.1.2014 20:46

Příklad - převody mezi datovými typy:
PHP: automaticky převádí podle potřeby
C#: samo převede leda int na double
Jen aby bylo vidět, o čem mluvím.

Nahoru Odpovědět
10.1.2014 20:46
Kolik jazyků umíš, tolikrát jsi programátor.
Avatar
Odpovídá na Kit
Neaktivní uživatel:10.1.2014 20:48

Ale já neříkám že ne. Jenom říkám, že to není běžné. Zajímalo by mě, co ty vlastně děláš? Vím o většině aktivních lidech zde čím se živí/s čím se učí/co je baví, ale o tobě toho nikdo moc nevíme, jenom to, že jsi pořádný PHP a SQL blázen :)

Nahoru Odpovědět
10.1.2014 20:48
Neaktivní uživatelský účet
Avatar
Petr Nymsa
Tvůrce
Avatar
Odpovídá na Zdeněk Pavlátka
Petr Nymsa:10.1.2014 20:49

A co to má společného s výrokem "C# tě nenechá si nic dělat podle svého, ale u objektů toho nabízí víc." ? IMHO přijde mi lepší když je jazyk silně typovaný, kód je přehlednější a předchází se zbytečným chybám, na druhou stranu, PHP zase umí celkem hezky kouzlit a některé vlastnosti bych rád měl v C#

Nahoru Odpovědět
10.1.2014 20:49
Pokrok nezastavíš, neusni a jdi s ním vpřed
Avatar
Kit
Tvůrce
Avatar
Odpovídá na Zdeněk Pavlátka
Kit:10.1.2014 20:53

To jsou prkotiny. V tomhle směru bych spíš ocenil, kdyby se PHP chovalo jako C#. Aspoň by se pro spojování stringů dal místo tečky použít operátor "+".

Nahoru Odpovědět
10.1.2014 20:53
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
Odpovídá na Kit
Luboš Běhounek Satik:10.1.2014 20:54

Ano, prasit můžeš v obou, ale v PHP je to MNOHEM jednodušší.

A možná ty sám pro sebe používáš konzolové aplikace napsané v PHP běžně, jde to, ale rozhodně to není běžná praxe a kdyby ses o to pokoušel, tak budeš mít řadu problémů - nutnost klientům instalovat webserver a pak třeba obsazené porty (spousta lidí používá skype, který jede defaultně na portu 80), nutnost povolovat to ve firewallu (potřebuješ admin. přístup) apod., pokud jim to má běžet lokálně.

Nahoru Odpovědět
10.1.2014 20:54
https://www.facebook.com/peasantsandcastles/
Avatar
Kit
Tvůrce
Avatar
Odpovídá na Luboš Běhounek Satik
Kit:10.1.2014 20:59

Promiň, ale PHP jede i bez webserveru a může jet i bez obsazení portů. Tím pádem se o firewallu nemusíme bavit. A je to běžná praxe, jen o tom nevíš :)

Nahoru Odpovědět
10.1.2014 20:59
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
Odpovídá na Kit
Luboš Běhounek Satik:10.1.2014 21:00

Ano? Jaký běžně používaný program je v PHP? :)

Nahoru Odpovědět
10.1.2014 21:00
https://www.facebook.com/peasantsandcastles/
Avatar
Kit
Tvůrce
Avatar
Odpovídá na Luboš Běhounek Satik
Kit:10.1.2014 21:05

Tyto programy v PHP si uživatelé obvykle píší sami pro vlastní potřebu. Hodí se to například pro automatizované browsování po webu. Tedy crawlery, harvestery, data minery apod. Stažená a zpracovaná data obvykle ihned ukládají do DB.

Nahoru Odpovědět
10.1.2014 21:05
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
Odpovídá na Kit
Luboš Běhounek Satik:10.1.2014 21:43

Psal jsem, že sám pro sebe si konzolové programy v php možná píšeše, ale jinak to není běžná praxe, aby tyhle programy byly v php a ty mi na to odpovíš, že si to uživatelé obvykle píší pro vlastní spotřebu?

Nahoru Odpovědět
10.1.2014 21:43
https://www.facebook.com/peasantsandcastles/
Avatar
Kit
Tvůrce
Avatar
Odpovídá na Luboš Běhounek Satik
Kit:10.1.2014 21:48

Tohle prostě člověk, který si raději hraje s klikacíma okýnkama, nepochopí. Je zbytečné, abych ti to dál vysvětloval. Už jsi někdy viděl aplikaci, která běží bez okna?

Nahoru Odpovědět
10.1.2014 21:48
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
Odpovídá na Kit
Luboš Běhounek Satik:10.1.2014 22:00

Připadám ti jako někdo, kdo si hraje s klikacíma okýnkama? :)

Myslíš konzolovou aplikaci (ve Win dostane svoje okýnko) nebo úplně bez výstupu, jako třeba službu?

Samozřejmě, že jsem už takovou aplikaci potkal, dokonce jsem jich i pár napsal :) - např. služba pro updatování aplikace.

Jinak mám pocit, že tu pořád všechno píšeš jen ve smyslu co si tam ty někde bastlíš, případně jak to dělají jiní jednotlivci, ale zcela evidentně nemáš moc zkušeností s programováním někde ve firmě apod., takže se programováním neživíš, tak nevím, co se do mě pořád navážíš :)

Nahoru Odpovědět
10.1.2014 22:00
https://www.facebook.com/peasantsandcastles/
Avatar
Kit
Tvůrce
Avatar
Odpovídá na Luboš Běhounek Satik
Kit:10.1.2014 22:01

PHP se nehodí na událostní programování. GUI se v něm udělat nedá. Proto se nejčastěji používá ve spojení s prohlížečem a Javascriptem, které pro něj dělá rozhraní s uživatelem. To ale neznamená, že ten prohlížeč nebo server jsou pro použití PHP nezbytné. PHP funguje i bez nich a skript může klidně běžet nonstop.

Nahoru Odpovědět
10.1.2014 22:01
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
Odpovídá na Kit
Luboš Běhounek Satik:10.1.2014 22:04

Ano, ale není to nejběžnější použití, v drtivé většině je PHP využíváno na weby a na tyhle aplikace se používají jiné jazyky.

Nikde jsem nepsal, že to možné není, jen že to není běžné.

Editováno 10.1.2014 22:07
Nahoru Odpovědět
10.1.2014 22:04
https://www.facebook.com/peasantsandcastles/
Avatar
Kit
Tvůrce
Avatar
Odpovídá na Luboš Běhounek Satik
Kit:10.1.2014 22:15

A v čem se podle tebe píší roboti, kteří sbírají data z netu?

Příklad: Chci si každou hodinu stáhnout data z meteostanice a uložit jako záznam do databáze. Pro PHP je to trivialitka.

Editováno 10.1.2014 22:17
Nahoru Odpovědět
10.1.2014 22:15
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
Odpovídá na Kit
Luboš Běhounek Satik:10.1.2014 22:55

Roboty/crawlery jsou tak jednoduche aplikace, ze je muzes napsat skoro v cemkoliv.

Nahoru Odpovědět
10.1.2014 22:55
https://www.facebook.com/peasantsandcastles/
Avatar
petrph
Člen
Avatar
Odpovídá na Kit
petrph:11.1.2014 7:43

Abych nebyl špatně pochopen.Tady nejde o to v čem děláš třeba svoje programy sám pro sebe, nebo dlouhodobě pro jednoho zákazníka na jednom serveru.
Tady jde o uvědomění si rozdílu při práci na zakázku v tvorbě dynamických webových stránek a desktopové aplikace. Při tvorbě dynamického webu si omezen tím co běží zákazníkovi na web serveru.Jestli tam běží Apache s modulem PHP,tak budeš programovat v PHP a C# ti nebude nic platný.
Ale při tvorbě desktopové aplikace je zákazníkovi obvykle jedno v čem to naprogramuješ(C#,C++,P­ascal,Java.at­d.)-ale zrovna PHpko je naprosto nevhodný,i třeba proto že vyžaduje běžící web server,a ten si tam zákazník kvůli jedný aplikaci asi běžet nenechá.
Čili-z mýho pohledu-nezáleží moc na drobnějších rozdílech mezi C# a PHP v syntaxi jazyka-jak zde demonstrovali kolegové, podstatný je právě to, čemu se chceš věnovat hlavně ty, jestli tvorbě webů nebo desktopových aplikací.
Nakonec, když na to příjde, neškodí naučit se oboje,PHP i C#..

 
Nahoru Odpovědět
11.1.2014 7:43
Avatar
Kit
Tvůrce
Avatar
Odpovídá na petrph
Kit:11.1.2014 9:34

PHP nevyžaduje běžící webserver. Se zbytkem souhlasím.

Nahoru Odpovědět
11.1.2014 9:34
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
Jarda K.
Neregistrovaný
Avatar
Odpovídá na Kit
Jarda K.:5.3.2014 18:25

mysql_connect(...) or die(...)
mysql_connect(...) or throw new Exception(...)

ten die do php nemeli implementovat. to svadi programatory k prasarnam.
Vzdycky mi vytecou nervy, kdyz vidim neosetrenou vyjimku.
A kdyz uz tam ma throw new exception(...), tak aspon to obalit cele do try catch, ale vzdycky si vsechny vyjimky zpracovat. minimalne do logu, aby mel chudak spravce kteremu volaji lidi co hledat.

_____________­_______________________
delam projekty jak v php tak i v C#

 
Nahoru Odpovědět
5.3.2014 18:25
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 43 zpráv z 93.