NOVINKA - Online rekvalifikační kurz Python programátor. Oblíbená a studenty ověřená rekvalifikace - nyní i online.
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í.

Diskuze: čtení stringu po slovech

V předchozím kvízu, Test znalostí C# .NET online, jsme si ověřili nabyté zkušenosti z kurzu.

Aktivity
Avatar
arevyhs
Člen
Avatar
arevyhs:10.6.2013 12:28

Ahoj, chtěl bych se zeptat jesli tu nekdo neuvidi chybu proc mi tento program neprojede znovu pres goto a nevypisuje se mi druhe slovo...

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace neco
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            int mezera1 = 0;
            int mezera2 = 0;
            start:
            for (int i = mezera1; i < textBox1.Text.Length; i++)
            {
                if ((textBox1.Text[i] == Convert.ToChar(" ")))
                {
                    mezera1 = i;
                    break;
                }
            }
            if (mezera2 > 0)
                mezera2 = mezera2 + 1;

            for (int i = (mezera2); i < textBox1.Text.Length; i++)
            {
                    mezera2 = i;
                    textBox2.Text += textBox1.Text[i];
            }

            goto start;
            /*
            int cislo = 0;
            int pocet = 0;
            int pomoc = 0;
            int y = 0;
            pocet = Convert.ToInt32(textBox1.Text.Length);

            if (pocet % 2 == 0)
            {
                for (int i = 0; i < textBox1.Text.Length; i++)
                {
                    textBox2.Text += textBox1.Text[i] + " ";
                }
            }

            if (pocet % 2 != 0)
            {
            zpet:
                pomoc = cislo;
                for (int i = pomoc; i < (textBox1.Text.Length); i++)
                {

                    if (textBox1.Text[i] == Convert.ToChar(" "))
                    {


                        for (y = cislo; y < (i); y++)
                        {

                            if (y == (i / 2))
                            {
                                textBox2.Text += "";
                            }

                            else
                            {
                                textBox2.Text += textBox1.Text[y] + " ";
                            }
                            if ((y == (i - 1) && (y != (textBox1.Text.Length - 1))))
                            {
                                cislo = i + 1;
                                goto zpet;
                            }


                        }
                    }
             */

                }
            }
        }
 
Odpovědět
10.6.2013 12:28
Avatar
David Hartinger
Vlastník
Avatar
Odpovídá na arevyhs
David Hartinger:10.6.2013 12:30

Přestal jsem číst po goto, goto se nepoužívá. Zajímalo by mě, kam na to chodíte.

Nahoru Odpovědět
10.6.2013 12:30
New kid back on the block with a R.I.P
Avatar
arevyhs
Člen
Avatar
Odpovídá na David Hartinger
arevyhs:10.6.2013 12:32

Goto me napadlo jako dobre reseni na tohle ale porad nevim ni tak proc mi to nejde

 
Nahoru Odpovědět
10.6.2013 12:32
Avatar
David Hartinger
Vlastník
Avatar
Odpovídá na arevyhs
David Hartinger:10.6.2013 12:34

Tak na něj zase zapomeň :)

Nahoru Odpovědět
10.6.2013 12:34
New kid back on the block with a R.I.P
Avatar
Kit
Tvůrce
Avatar
Odpovídá na arevyhs
Kit:10.6.2013 12:36

K čemu je dobré goto? Ještě jsem ho nikdy nepotřeboval.

Nahoru Odpovědět
10.6.2013 12:36
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 David Hartinger
Kit:10.6.2013 12:40

Kam na to "goto" chodí? Přece do referenčního manuálu
http://msdn.microsoft.com/…s.71%29.aspx
Takové stránky by měly být zakázány zákonem. Připadá mi to jako pornografie.

Nahoru Odpovědět
10.6.2013 12:40
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
arevyhs
Člen
Avatar
arevyhs:10.6.2013 12:41

Mohl by si mi porsim poslat navrch jak by to bylo mozne bez toho? opravdu si nevim rady skousim to uz tejden a to podtim je dalsi moznost co sem delal pred timhle je to zbytecne slozity

 
Nahoru Odpovědět
10.6.2013 12:41
Avatar
Homo
Člen
Avatar
Odpovídá na Kit
Homo:10.6.2013 12:41

Goto je dobry na zprehledneni kodu, nevidim duvod proc ho nepouzivat, kdyz stejne kompilator ty goto tam dava(osobne ho ale nepouzivam, da se tomu vyhnout slovy break, return anebo continue). Goto je podobny nepodminenemu skoku v ASM.

Nahoru Odpovědět
10.6.2013 12:41
1010011 1000101 1011000
Avatar
Petr Nymsa
Tvůrce
Avatar
Odpovídá na arevyhs
Petr Nymsa:10.6.2013 12:44

Goto se prostě nepoužívá. Pokud chceš pustit "kus kódu" znovu, dej to do metody nebo do cyklu. Přečti si zdejší tutoriály. Kdo použiívá goto zaslouží si jít do pekel

Nahoru Odpovědět
10.6.2013 12:44
Pokrok nezastavíš, neusni a jdi s ním vpřed
Avatar
Kit
Tvůrce
Avatar
Odpovídá na Homo
Kit:10.6.2013 12:48

Jakže? Goto že je dobré na zprasení kódu? :)

Je mi jasné, že kompilátor z každého programu udělá posloupnost strojových instrukcí, včetně instrukce JMP, ale trend moderního programování je odstranit z programů nejen goto, ale i ify, cykly, switche apod. Je je kompilátor udělá do binárního kódu, není už záležitostí programátora.

Podle mého názoru je goto na ho*no. A za tím stojím.

Nahoru Odpovědět
10.6.2013 12:48
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
arevyhs
Člen
Avatar
arevyhs:10.6.2013 12:49

Tak mi prosim nekdo poradte jak jinak na to ja uz opravdu stracim viru :(

 
Nahoru Odpovědět
10.6.2013 12:49
Avatar
Kit
Tvůrce
Avatar
Odpovídá na arevyhs
Kit:10.6.2013 12:52

Nepotřebuješ tejden přemýšlet, jak udělat nekonečný cyklus. Není to tak složité.

for(;;) {
    // tělo cyklu, ze kterého můžeš vyskočit příkazem break
    // nebo zopakovat pomocí continue.
}

Jenže žádný cyklus není nekonečný. Je potřeba, aby ses zamyslel, co vlastně chceš udělat. Určitě nechceš nekonečný cyklus.

Nahoru Odpovědět
10.6.2013 12:52
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
arevyhs
Člen
Avatar
arevyhs:10.6.2013 12:58

Vim co potrebuju... kazde slovo ktere se zada v textboxu 1 jednotlive vypsalo pres cyklus nebo vice cyklusu v text boxu 2 ( konkretne mam udelat presne (8. Program rozdělí slova se sudým počtem hlásek na poloviny a slova s lichým počtem hlásek podobně, ale vypustí prostřední hlásku.
např: Kde se vzala, tu se vzala, byla tam. -> Kesevzla, tusevzla, by latm.)

 
Nahoru Odpovědět
10.6.2013 12:58
Avatar
Petr Nymsa
Tvůrce
Avatar
Odpovídá na arevyhs
Petr Nymsa:10.6.2013 12:59

Přečti si základní kontrukce C#, máme tu seriál. S ním to v pohodě vymyslíš. Zamysli se, vem si klidně tužku a papír a nakresli si co potřebuješ...

Nahoru Odpovědět
10.6.2013 12:59
Pokrok nezastavíš, neusni a jdi s ním vpřed
Avatar
Odpovídá na Kit
Luboš Běhounek Satik:10.6.2013 13:00

"trend moderního programování je odstranit z programů nejen goto, ale i ify, cykly, switche apod."

Muzes uvest nejaky zdroj nebo kde se to tvrdi? Jeste jsem nikde jinde takovyto nazor nepotkal.

Goto muze za jistych okolnosti kod zprehlednit a zrychlit, ale souhlasim s tim, ze drtiva vetsina programatoru zacatecniku ho pouziva nevhodne a kod se tim jen zneprehledni.

Sam jsem vhodnou situaci pro goto za 10 let co programuji potkal jen asi 2x.

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

Zkus se podívat třeba do manuálu Haskellu.

Používáš snad něco z těch řídicích struktur např. v Excelu? Jedině pokud píšeš makra, ale v buňce to ani nejde.

Řídicí struktury například brání v přirozené paralelizaci programů, tedy rozdělení úlohy na více procesorů, aniž by to musel řešit programátor.

BTW: Ty dva případy beztak byly jen kvůli tomu, že se ti to nechtělo předělávat :)

Editováno 10.6.2013 13:11
Nahoru Odpovědět
10.6.2013 13:08
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.6.2013 13:50

Proč bych se měl dívat do manuálu nějakého obskurního jazyka? :)
Dívám se jen do manuálů jazyků v kterých programuji nebo do obecných textů.

Excel prakticky nepoužívám.

Nahoru Odpovědět
10.6.2013 13:50
https://www.facebook.com/peasantsandcastles/
Avatar
Kit
Tvůrce
Avatar
Odpovídá na Luboš Běhounek Satik
Kit:10.6.2013 13:58

Excel sice také moc nepoužívám, ale několik šikovných aplikací jsem v něm už napsal. Pokud nepoužíváš žádné Office, máš mé sympatie.

Haskell není obskurní, ale funkcionální programovací jazyk. SQL a XSL jsou podle tebe také obskurní?

Nahoru Odpovědět
10.6.2013 13:58
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
KlimiCZ
Člen
Avatar
Odpovídá na Kit
KlimiCZ:10.6.2013 19:08

šloby to také takhle

while (true)
{
     /*příkaz*/
}

Tohle by mělo fungovat aspoň já to používám :)

Nahoru Odpovědět
10.6.2013 19:08
Nesnaž se zakrýt něco, co jsi provedl úmyslně. Svět je tak malý, že dotyčný se to stejně dozví.
Avatar
Kit
Tvůrce
Avatar
Odpovídá na KlimiCZ
Kit:10.6.2013 19:17

To je to samé. A také v daném případě stejně nesmyslné.

Nahoru Odpovědět
10.6.2013 19:17
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
Odpovídá na KlimiCZ
Michal Žůrek - misaz:10.6.2013 19:28

však v ukázkách na VB.NET toto používám. Já tam z cyklu nevycházím, prostě ať je to nekonečné.

http://www.itnetwork.cz/…nik-jednotek

 
Nahoru Odpovědět
10.6.2013 19:28
Avatar
KlimiCZ
Člen
Avatar
Odpovídá na Kit
KlimiCZ:10.6.2013 19:29

mohl bych se jěště zeptat proč je tam to

true

a co to znamená ?

Nahoru Odpovědět
10.6.2013 19:29
Nesnaž se zakrýt něco, co jsi provedl úmyslně. Svět je tak malý, že dotyčný se to stejně dozví.
Avatar
Odpovídá na KlimiCZ
Michal Žůrek - misaz:10.6.2013 19:33

true je pravda

ten cykl while funguje následovně pokud v těch závrokách podmínka dá pravdu, tak se ten kód provede a pak se řeší znova ta podmínka a znova, jestliže pořád platí a nikdy platiti nepřestane program se ti zacyklí, ale jak si z té mé ukázky mohl vidět tak to není jenom na škodu, ale lze toho i využít.

 
Nahoru Odpovědět
10.6.2013 19:33
Avatar
KlimiCZ
Člen
Avatar
Odpovídá na Michal Žůrek - misaz
KlimiCZ:10.6.2013 19:40

také to používám ve svých výtvorech :)

Nahoru Odpovědět
10.6.2013 19:40
Nesnaž se zakrýt něco, co jsi provedl úmyslně. Svět je tak malý, že dotyčný se to stejně dozví.
Avatar
Kit
Tvůrce
Avatar
Odpovídá na Michal Žůrek - misaz
Kit:10.6.2013 19:45
for(;;) {
   echo "Je to na škodu.";
}
Nahoru Odpovědět
10.6.2013 19:45
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
David Hartinger
Vlastník
Avatar
Odpovídá na KlimiCZ
David Hartinger:10.6.2013 19:57

To bys neměl. Každý cyklus někdy skončí a proto by to měl mít v podmínce. Cyklus je takto navržený. Že něco jde neznamená, že se to má používat. Je opravdu začátečnické dělat nekonečné cykly a ty násilně přerušovat breakem, není k tomu důvod a je to nepřehledné.

Nahoru Odpovědět
10.6.2013 19:57
New kid back on the block with a R.I.P
Avatar
Odpovídá na David Hartinger
Luboš Běhounek Satik:10.6.2013 20:33

Duvod k tomu byt muze, treba cyklus, kde nevis predem pocet opakovani a kde muze byt vice duvodu k vyskoceni z toho cyklu.

Nahoru Odpovědět
10.6.2013 20:33
https://www.facebook.com/peasantsandcastles/
Avatar
David Hartinger
Vlastník
Avatar
Odpovídá na Luboš Běhounek Satik
David Hartinger:10.6.2013 20:36

Tak si uděláš proměnnou typu boolean, dáš tu do podmínky cyklu a tu modifikuješ. Ale v dobře navrženém programu se většinou tohle nestane.

Nahoru Odpovědět
10.6.2013 20:36
New kid back on the block with a R.I.P
Avatar
Odpovídá na David Hartinger
Luboš Běhounek Satik:10.6.2013 20:39

"...kde muze byt vice duvodu k vyskoceni z toho cyklu."

Kdyz nechces provadet zbytek cyklu, tak je jednodussi rovnou vyskocit nez to resit pres tu promennou a pak uvnitr cyklu (za tim prehozenim te bool promenne) osetrovat, jestli ta promenna neni uz nastavena na vyskoceni, tak neprovadet.

Nahoru Odpovědět
10.6.2013 20:39
https://www.facebook.com/peasantsandcastles/
Avatar
David Hartinger
Vlastník
Avatar
Odpovídá na Luboš Běhounek Satik
David Hartinger:10.6.2013 20:46

On je ten důvod většinou právě jeden :) Teoreticky je co říkáš pravda, prakticky je to pouze o návrhu a vždy to jde napsat tak, abys nekonečný cyklus nepotřeboval. Je to zbytečná a nepřehledná konstrukce.

Nahoru Odpovědět
10.6.2013 20:46
New kid back on the block with a R.I.P
Avatar
Dumdych
Neregistrovaný
Avatar
Dumdych:11.6.2013 17:20

Co je to za humus? Slovo po slově? Split?

foreach(string word in source.Split(' '))
 
Nahoru Odpovědět
11.6.2013 17:20
Avatar
Kit
Tvůrce
Avatar
Odpovídá na Luboš Běhounek Satik
Kit:11.6.2013 17:26

Většinou nepotřebuješ ani tu proměnnou. Takové nekonečné smyčky bývají často jen obcházením tovární metody. Kdybys programoval čistě, nikdy nekonečnou smyčku potřebovat nebudeš.

Nahoru Odpovědět
11.6.2013 17:26
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:11.6.2013 17:31

Teď teda netuším, jak spolu souvisí tovární metoda a nekonečný cyklus.

Čistě programuji už teď a nekonečnou smyčku občas využívám :) .

Nahoru Odpovědět
11.6.2013 17:31
https://www.facebook.com/peasantsandcastles/
Avatar
Dumdych
Neregistrovaný
Avatar
Odpovídá na Kit
Dumdych:11.6.2013 17:56

Takže já jako assemblerista nejsem programátor? Jak si představuješ program bez zacyklení, nebo větvení? Nechápu, proč programovat čistě, když mi to kompiler zprasí? Jako tady dole jsou jedině cykly a podmíněné cykly... Jediné, k čemu je dobrý vyšší jazyk - nemusím psát jednu napsanou nižší funkci vícekrát... (byť i v pozměněných podobách) Je fajn, že se vyšší jazyky dopracovali až tak daleko, že se dá programovat naprosto abstraktně - jenže se zvyšuje úroveň jen těch vyšších jazyků... To má za následek jen to, že programují naprostí neznalci - což přináší jen zahlcení nekvalitním materiálem... Plácá se místem, plácá se vším... Když se podívám na DOS - stačí málo a můžu si tam prohlížet internet přes WiFi, přehrávat videa atd. Dokonce jsem si napsal multitasking atd. a pořád se pohybuji v řádech MB - nějakých 60 - 70MB. Tak mi vysvětli - proč bych měl plácat prostředky, abych ztratil všechny znalosti o PC? Jak jsem psal - dokud je vyšší jazyk jen pro spravování nižších funkcí, je to fajn - ulehčí to práci a nijak zvlášť to nezhorší kvalitu programu. Ale když se pak někdo nabifluje syntax jazyka virtuálního stroje a myslí si, jak se tím bude živit, programovat operační systémy atd... Nevidím důvod, nač zušlechťovat vyšší jazyky - místo toho bych si pohrál s BIOSem - dal mu vyšší moc... (pro přerušení) Programátor by měl vědět, proč to všechno dělá a jak to funguje. Jinak mu neříkám programátor, ale biflovač někým řečených pravidel a syntaxe... Programátor je pro mě člověk, co ví jak to funguje... Kóderu stránek se již také říká programátor - přesně tímto směrem to tedy spěje... (Označení programátor nese dnes i ten, kdo se nenaučí ani ta pravidla - ale sotva syntax.) Zajímalo by mě, k čemu je psát program abstraktně - či prostě ve slovech...

Vytvořil jsem si vyšší jazyk tak, že jsem napsal OS v OOP v assembly jazyce a tím tedy vytvořil velký assembly Framework - samotný OS je ve skutečnosti pouze jeden malý (oproti tomu Frameworku) soubor, co objektově přistupuje k zmíněnému Frameworku. Pak tedy vyšší jazyk, na kterém pracuji pouze převede spravování Frameworku do slov - takže ano slova jsou fajn, ale pořád se vztahují přímo k danému kódu... A pokud na mne někdo vyjede s chráněným režimem a optimalizací funkcí, vysměji se mu do ksichtu - to vše mám v ono Frameworku... (Tedy na úrovni JSA.) Takže i ovládání všech zařízení PC a tím tedy ovládám vyšší funkce a výsledek se ani omylem nepodobá DOSu, ale zdárně se dorovnává operačním systémům napsaných ve vyšších jazycích. Právě proto se ptám, proč bych měl opustit všechny nabité znalosti a zkušenosti a vložit je do nějakých abstraktních slov...

 
Nahoru Odpovědět
11.6.2013 17:56
Avatar
Dumdych
Neregistrovaný
Avatar
Dumdych:11.6.2013 18:03

nabité = nabyté

Už jen z logiky - vše bude jednou strojový kód - proto v něm vše musí jít...

 
Nahoru Odpovědět
11.6.2013 18:03
Avatar
David Hartinger
Vlastník
Avatar
Odpovídá na
David Hartinger:11.6.2013 18:06

"Nechápu, proč programovat čistě, když mi to kompiler zprasí?" - Protože co vyleze z kompileru programátor nečtě, ale ten čistý kód na vstupu ano. Lowlevel programátoři mají s pochopením programování ve vyšších jazycích často problém.

Nahoru Odpovědět
11.6.2013 18:06
New kid back on the block with a R.I.P
Avatar
TomBen
Tvůrce
Avatar
Odpovídá na David Hartinger
TomBen:11.6.2013 18:10

Jakýkoli programátor má problém pochopit jiného programátora.
Proto je ze zásady špatná otázka "Co je špatně v mém kódu?".
Je třeba se zeptat "Jak bys to udělal ty?", pozorně to přečíst
a pak si to udělat po svém. :-)

Nahoru Odpovědět
11.6.2013 18:10
Za posledních 200 miliónů let se nic zvláštního nestalo, akorát dinosauři vymřeli a opice se naučily programovat.
Avatar
Dumdych
Neregistrovaný
Avatar
Odpovídá na David Hartinger
Dumdych:11.6.2013 18:14

Ale já to chápu - kdysi jsem začínal na virtuálním stroji. Já se ptám, proč vytvářet něco pěkného na povrchu? Kdyby se místo toho zkrášlovalo odspoda, tak by se zlepšila kvalita funkčnosti PC... Ale když jak jsem psal, někdo přijde k PC a naučí se syntax, jak bude chápat správné používání, funkčnost atd? Takové obyčejné echo/print/Con­sole.Write - kolik lidí tyto funkce používá a kolik z nich ví, co je TTY? :) Atd. Jak tedy může někdo programovat bez znalostí o PC? To je to co nechápu... Jasně - program vytvoří a on poběží, ale spousta aplikací poskytuje možnost vytvořit něco, co by jinak bylo nad rámec uživatele... Jako třeba klikací tvorba stránek... Ale těm kteří to naklikají také neříkáme programátoři - jen klikači... Tak ten kdo se naučí syntax je pro mne prostě kóder...

 
Nahoru Odpovědět
11.6.2013 18:14
Avatar
Petr Nymsa
Tvůrce
Avatar
Odpovídá na
Petr Nymsa:11.6.2013 18:14

Sice nemám tolik zkušeností jako ty ale zeptám se na jednu věc.. přijdeš do firmy budou chtít dejme tomu program který ti bude zpracovávat zaměstnance, jejich platy, evidovat pracovní dobu, životopisy, celé to bude online, komunikace apod ... budeš to celé psát low-level a ztrávíš nad tím bůh ví jak dlouho nebo šáhneš po vyšším jazyku, jazyku který je i udělán pro tyto potřeby (sekretářka nebude dělat v DOSu), tedy například klasické Windows Forms.

V ASM nevím na jak dlohuo to je ale například v C# , Javě či C++ apod to je mnohem rychlejší, přehlednějí, rozšiřitielnější a pro ostatní v týmu i čitelnější ..

Editováno 11.6.2013 18:16
Nahoru Odpovědět
11.6.2013 18:14
Pokrok nezastavíš, neusni a jdi s ním vpřed
Avatar
David Hartinger
Vlastník
Avatar
Odpovídá na
David Hartinger:11.6.2013 18:19

Proto, aby jsi se v tom vyznal. Např. devbook má desetitisíce řádků kódu, kdybych ho nepsal přehledně, tak by se do této podoby nikdy nedostal. Kdybych ho psal v ASM, vyvíjel bych ho 10x tak dlouho a měl by statisíce řádků.

C je TTY nikoho nezajímá, to je jako bych tě osočoval že děláš v ASM a přitom to neumíš sestavit pomocí číslicové logiky a hradel. Jsou ještě vyšší jazyky než c#, např. SQL. Vývoj jde tímhle směrem, abychom nevynalézali kolo a mohli tvořit stále složitější a větší aplikace v nižším čase.

Nahoru Odpovědět
11.6.2013 18:19
New kid back on the block with a R.I.P
Avatar
Dumdych
Neregistrovaný
Avatar
Odpovídá na Petr Nymsa
Dumdych:11.6.2013 18:20

Jak funguje vyšší jazyk? Musí mít co spravovat - zásobu funkcí nižšího jazyka. Jediné co by bylo jinak - já bych si své funkce musel donést na USB, či je tam prostě nějak dostat... Takže ano - psal bych v assembly - pěkně objektově... (OOP jsem si odnesl z virtuálního stroje a nějak mi zůstalo.)

 
Nahoru Odpovědět
11.6.2013 18:20
Avatar
Dumdych
Neregistrovaný
Avatar
Odpovídá na David Hartinger
Dumdych:11.6.2013 18:21

To je důvod pro vznik knihoven, Frameworků atd. Ne vysvětlení, proč psát abstraktně...

 
Nahoru Odpovědět
11.6.2013 18:21
Avatar
David Hartinger
Vlastník
Avatar
Odpovídá na
David Hartinger:11.6.2013 18:24

Není, i když budeš mít milion knihoven, tak nebude na 100% pasovat na tvůj usecase a nízký jazyk tě bude zdržovat. Navíc to bude nepřehledné, chtěl bych tě vidět, jak programuješ ERPčko se stovkami entit v ASM :D

V kancelářské aplikace je úplně jedno jestli request trvá 10ms nebo 100ms. Ne každý si programuje OS, 99,9% lidí dělá běžné programy. Ale ze zkušeností z podobných debat to stejně neuznáš, tak si můžeš myslet, že celý svět programuje špatně :)

Nahoru Odpovědět
11.6.2013 18:24
New kid back on the block with a R.I.P
Avatar
Petr Nymsa
Tvůrce
Avatar
Odpovídá na
Petr Nymsa:11.6.2013 18:28

Proč psát nepřehledně když můžeme psát přehledně tak abychom třeba v týmu tomu rozuměli a i já , když si to napíšu pěkně a přehledně můžu se v pohodě vrátit za půl roku a vím o co go. Kdybych měl najednou před sebou kód jak špagety ve školní jídelně vezmu HDD, najdu benzín, nakoupím špekáčky a udělám si táboráček.... prostě abstrakce zpřehledňuje kód a urychluje práci.

BTW vývoj jde dopředu, holt už se nejede ASM a low-level jazyky. A konstantovat že program udrží 70 mb paměti nikoho nezajímá. Technologie jdou dopředu a nějakých 70 MB je nic. Samozřejmě nebudeme prasata a nenapíšem program tak aby žral kompletně paměť, CPU vařilo vodu a větrák ohříval vzduch

Nahoru Odpovědět
11.6.2013 18:28
Pokrok nezastavíš, neusni a jdi s ním vpřed
Avatar
Dumdych
Neregistrovaný
Avatar
Odpovídá na David Hartinger
Dumdych:11.6.2013 18:31

Seznam funkcí bude vždy řešit problém psaní již napsaného. A samotnou aplikaci pak tedy budu psát s přerušováním. Naopak to mi přijde výhodnější - menší aplikaci udělám rychleji, lépe atd. Při vyšší si zase přidělám další objekty... I tak (když vezmu čas, který ušetřím při psaní další aplikace, co tyto objekty využije) to bude pomalejší, ale to tu neřeším... Ptám se, když něco udělám za delší čas, věnuji tomu vše co umím, nebude to lepší než desetitisíce aplikací napsaných za jeden den?

 
Nahoru Odpovědět
11.6.2013 18:31
Avatar
David Hartinger
Vlastník
Avatar
Odpovídá na
David Hartinger:11.6.2013 18:33

Kdyby bylo, tak by se to tak dělalo. Evidentně je vývoj v nízkých jazycích tak neefektivní, že ho žádná firma již nepraktikuje. A firmy si moc dobře hlídají co se vyplatí a co ne.

Nahoru Odpovědět
11.6.2013 18:33
New kid back on the block with a R.I.P
Avatar
Petr Nymsa
Tvůrce
Avatar
Odpovídá na
Petr Nymsa:11.6.2013 18:34

To už je otázka číslo dvě .. hobby nebo práce ? :) Myslím že už nikdo kromě pár vyvolených nehledá někoho kdo dělá něco X let ale někoho kdo aplikaci udělá moderně, rychle a pěkně a samozřejmě funkčně. Navíc taot práce není nijak špatně placená.... zatím jsem student, nemůžu tohle objektivně posoudit, ale myslím že to tak je :)

A desetitisíce aplikací ? Ne, já třeba dělám přes dva týdny takový menší engine na hry :)... zaítm co já za den vytvořím manažer obrazovek a logiku pro kolize ty budeš mít vytvořený možná tak vykreslování ... o tohle tu jde

Nahoru Odpovědět
11.6.2013 18:34
Pokrok nezastavíš, neusni a jdi s ním vpřed
Avatar
Dumdych
Neregistrovaný
Avatar
Odpovídá na Petr Nymsa
Dumdych:11.6.2013 18:34

Prasekód ještě neznačí nečitelnost. Netvrdím tedy, ať píšeme nečitelně. Jak vidno prasárna za cvíli bude i cyklus - přesto aplikace s cyklem nemusí být nutně nečitelná... Myslel jsem to tedy ve smyslu složení funkcí - ne ve smyslu samotné syntaxe atp. (Návrhem špatná aplikace.) Assembly/strojový kód nikdy nikdo nepřekoná - neboť se k ní stejně musí vracet - jen si prodlužují cestu... :)

 
Nahoru Odpovědět
11.6.2013 18:34
Avatar
Petr Nymsa
Tvůrce
Avatar
Odpovídá na
Petr Nymsa:11.6.2013 18:37

Dobře napiš prosím jak vypadá v ASM tento cyklus, vypíše hodnoty od 1 do 10 a jak vypadá třeba v C# ? :)

Nahoru Odpovědět
11.6.2013 18:37
Pokrok nezastavíš, neusni a jdi s ním vpřed
Avatar
David Hartinger
Vlastník
Avatar
Odpovídá na
David Hartinger:11.6.2013 18:38

K ASM se právě už nikdo nevrací, jen vývojáři programovacích jazyků. I operační systémy jsou v céčku, který je podle tvého pohledu vysoké, podle mého zas velmi nízký.

Nahoru Odpovědět
11.6.2013 18:38
New kid back on the block with a R.I.P
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 50 zpráv z 82.