Jump to content
ТУК НЕ СЕ ПРЕДЛАГАТ ХАКЕРСКИ УСЛУГИ ! ×

Малко въпросче относно програмиране


Recommended Posts

Здравейте от мен :) Приемаме че съм млад и ентусиазирам тип, който желае да се научи да "коди" на Delphi истински програмни продукти.

1ви въпрос : Според вас как е по добре, да хваща малки проекти и да ги прави ? или да хване един много голям (комплексен) и да прави парче по парче от него ?

2ри въпрос : Източници на информация ?

3ти въпрос : Освен език за програмиране какво още е необходимо за да имаме например едно напълно работещо клиент-сървър приложение ?  База от данни ( и каква) ?  и т.н.

  • Thanks 1
Link to post
Share on other sites

Здравейте,

Ще започна с това, какви проекти е добре да се правят.

Отговорът се съдържа във въпроса Ви. Започвате с нещо малко, което се развива в голям проект.

Източниците на информация са преди всичко техническата документация. Само и единствено нея може да считате за надежден и достоверен източник.

Тук бях дал адрес за изтегляне във формат на книгата на Марку Канту, която е изключително добре написана, но тя не дава отговор на много съществени въпроси. 

В този случай може да разчитате на помощта ми и тази на колегите.

Когато говорим за реални клиент-сървър приложение е задължително да се познава работата с бази данни. Това не е чак толкова страшно и бързо ще навлезете в материята, ако се запознаете с основите на SQL.

А искате ли да се опитаме заедно да реализираме проект?

 

Link to post
Share on other sites

Какво мислите да започнем с това, което звучи най-трудно, но е най-лесно за реализация - REST сървър?

Ето как изглежда това, което е налично в момента:

V-Server.rar

В архива е сървъра и всички допълнителни елементи към него.

 

Link to post
Share on other sites

Така първото нещо аз кат клиент ( малоумен но клиент), което бих подобрил е чисто във визуалната част. Бих сложил надписи кое какво е под всеки бутон или когато задържа мишката върху него без да го натискам да ми излиза за какво е. Например " Save"," Open document" и т.н.

Link to post
Share on other sites
На 6.07.2018 г. at 9:11, singleface написа:

Здравейте от мен :) Приемаме че съм млад и ентусиазирам тип, който желае да се научи да "коди" на Delphi истински програмни продукти.

1ви въпрос : Според вас как е по добре, да хваща малки проекти и да ги прави ? или да хване един много голям (комплексен) и да прави парче по парче от него ?

2ри въпрос : Източници на информация ?

3ти въпрос : Освен език за програмиране какво още е необходимо за да имаме например едно напълно работещо клиент-сървър приложение ?  База от данни ( и каква) ?  и т.н.

По 1-ви въпрос: Неискам да те отказвам ама ти на ясно ли си в коя част на "програмирането" си решил да плуваш? Бази данни, Системно програмиране и всичките му деривати - писане на драйвери например, или писане на инструменти и т.н. Интернет програмиране - разни веб нещица - Microsoft IIS Extensions, PHP Zend extensions.... МНОГО СА.

Искрен съвет: Недей да хващаш голям проект - направо ще се попилееш.

 

По 2-ри въпрос: www.torry.net - от тука се почва. Dumpz.ru, downloadly.ir ;) особено последния ....

Link to post
Share on other sites
На 6.07.2018 г. at 14:57, Avatara написа:

Правилно. Приема се без коментар.

VS_001.thumb.png.e9846a79144df8a3cf565728288218a7.png

 

Първа корекция (предложено от singleface) :

- Създаване на подсказки за бутоните. 

Копчето за гасене не му е там мястото. Бих го изнесъл някъде в дясно и горе. Прозореца "Server infomation" е прекалено голям за инфомацията кято носи. Какво я правим другата част? :) Седи като петно. Не си го представям ако дабълкликна на лентата на прозореца за цял екран как ли ще стои.

Link to post
Share on other sites
Преди 9 часа, memwarrior написа:

По 1-ви въпрос: Неискам да те отказвам ама ти на ясно ли си в коя част на "програмирането" си решил да плуваш? Бази данни, Системно програмиране и всичките му деривати - писане на драйвери например, или писане на инструменти и т.н. Интернет програмиране - разни веб нещица - Microsoft IIS Extensions, PHP Zend extensions.... МНОГО СА.

Искрен съвет: Недей да хващаш голям проект - направо ще се попилееш.

 

По 2-ри въпрос: www.torry.net - от тука се почва. Dumpz.ru, downloadly.ir ;) особено последния ....

 

Само не го препращай към ресурси на фарси. :D

Младите знаят само английски. Другите езици са им абсолютно неразбираеми, а и като видят арабски си мислят за кус-кус. :D

Руските форуми са тежка артилерия (визирам сериозните форуми). А Torry ще му помогне, определено.

Мисля, че е добре да започне към голям проект. Не самостоятелно, а като работи по елемент от него. Така ще натрупа опит.  Например може да започне с това как се пишат сървърни методи. Там е доста изчистено. Мисля, че ще му бъде от огромна полза. 

Размерите на отделните секции могат да се променят. Има хоризонтални и вертикални сплитери.  Посредством тях се регулират ширината и височината.

От Embarcadero дават трите бутона в този ред - Пускане на сървъра; Спиране на сървъра; Визуализация на web-ресурса. Канту и Добс - също в техните примери. Определено е по-добре да е изнесен крайно дясно, за да не бъде натиснат случайно. Тук съм абсолютно съгласен.

Все пак тук сървърът е като приложение, а не като процес. Ако е като процес, тогава няма да има никакви бутони, прозорци и пр.. Всичко отива на конзолни команди, но пък тук идеята е образователна. Да се вижда кое какво е. Да се види как при REST се обработва сесия, защото е доста различно от другите сървъри. Да се види как се следи за IP конекциите. 

СУБД е отделна тема. В този проект се ползва FireDac, като връзката с базите се прави на физическо ниво (директно). 

Link to post
Share on other sites

Не е фарси. Има си бутон English. Секцията Programming има много компоненти КОМЕРСИАЛНИ на сорс.

Несъм съгласен с тебе за голям проект:

Големия проект не е за сам човек първо, второ един сериозен проект изисква най-малкото да се започне с архитектурата, функционалноста, GUI-то и най-накрая е кодването.

Затова казах малко проектче - така казано еднопасово START -> DO -> END. Експириънс требва.

  • Thanks 1
Link to post
Share on other sites
Цитат
преди 1 минута, memwarrior написа:

Не е фарси. Има си бутон English. Секцията Programming има много компоненти КОМЕРСИАЛНИ на сорс.

Несъм съгласен с тебе за голям проект:

Големия проект не е за сам човек първо, второ един сериозен проект изисква най-малкото да се започне с архитектурата, функционалноста, GUI-то и най-накрая е кодването.

Затова казах малко проектче - така казано еднопасово START -> DO -> END. Експириънс требва.

 

Ок. Аз приемам всякакви критики и т.н.  Бих искал да се запозная с тезата и аргументите на memwarrior. На база какво го казваш ? Защо според теб е по-добре по конкретния начин и т.н. ? Също така ... къде видя големия проект да се развива от сам човек или пък да се говори за развитие от 1 човек ?

 

Link to post
Share on other sites
Преди 6 часа, singleface написа:

Ок. Аз приемам всякакви критики и т.н.  Бих искал да се запозная с тезата и аргументите на memwarrior. На база какво го казваш ? Защо според теб е по-добре по конкретния начин и т.н. ? Също така ... къде видя големия проект да се развива от сам човек или пък да се говори за развитие от 1 човек ?

 

никъде несъм го видял. просто си задай въпроса кой ще наеме начинаещ кодер.

  • Like 1
Link to post
Share on other sites

Този, който желае не да наеме така наречения "професионалист", "Специалист" или който както иска да му вика.... а иска да си го създаде и да знае какво е създал. Което вярвам ще му се отплати първо по-добре и по-качествено. Защото съм чул от един мъдър човек "Специалисти/Професионалисти се създават а не се наемат"

 

А и говорим за проект за ентусиасти в свободното време :) което не пречи да го доведем до работещ продукт за свободния пазар макар и с образователна цел :)

 

Edited by singleface
  • Like 1
Link to post
Share on other sites
Преди 5 часа, singleface написа:

Този, който желае не да наеме така наречения "професионалист", "Специалист" или който както иска да му вика.... а иска да си го създаде и да знае какво е създал. Което вярвам ще му се отплати първо по-добре и по-качествено. Защото съм чул от един мъдър човек "Специалисти/Професионалисти се създават а не се наемат"

 

А и говорим за проект за ентусиасти в свободното време :) което не пречи да го доведем до работещ продукт за свободния пазар макар и с образователна цел :)

Не ме разбирай погрешно. Много съм далече от мисълта да те отказвам или ако искаш си помисли и да се бъзикам. При малките проекти имаш повече динамика и различни ситуации. При големите проекти имаш едни релси и по тях трябва да върви влака. При малък проект ти си архитект, гуи дизайнер, лидер, тестер ... При големите си зъбно колело от една голяма машина. Ако искаш да видиш всички нива замисли се над аргументите ми. Иначе успех в търсенето на такъв работодател дето ще ти пристане на желанието и ще те направи завършен Профи.

 

Link to post
Share on other sites

Всеки голям проект се разбива на малки самостоятелни модули.

В случая с V-Serwer Имаме следните предимства:

1. Комплексност - Проектът има хибриден характер. В него има чисто програмиране (събиране, изваждане, умножение, сортировки, работа с файлове, работа с изображения и пр.). Има както процедурно, така и ООП. Има работа с потоци и критични секции, мутекси, синхронизация и пр.. В него има работа с бази данни. Най-хубавото е, че не се работи с конкретна база а с всички, които са достъпни в момента (DB2, Oracle, MySQL, MS SQL, IB, Firebird и пр.). Има и работа с JSON и XML.  Има и програмиране на ниско ниво TCP/IP протоколи и пр.. На практика всеки начинаещ ще може да "погледне" къде какво се прави и сам да определи към коя област да се насочи. Когато направи избора си ще има ментор, който ще му помага със заданията.

2.  Ясно дефинирана цел - Целта е една - ДА СЕ СЪЗДАДЕ ВИСОКОПРОИЗВОДИТЕЛЕН ЛЕСЕН ЗА УПОТРЕБА REST СЪРВЪР, КОЙТО ДА РАБОТИ КАТО КРАЙНО ПРИЛОЖЕНИЕ. Не като процес. Не като dll. Не като CGI, а именно като крайно приложение.  

3. Използване на получените резултати - Самият резултат е основа за генериране на други приложения с широк спeктър на употреба.

Какво може да се научи?

1. Как се работи в екип - Това е важно и се учи трудно.

2. Как се създава добре структурирана документация - Това никъде не се учи подробно, а е много важно.

3. Как се извършва устойностяване на извършените дейности - За да знае защо заплащането на час или това на програмен ред са нежелани и вредни за един голям проект.

4. Да се запознае как да подкрепи труда си със публикации в сериозни научни издания и как да си изгради професионален авторитет = Името е всичко за един специалист.

5. Да се научи на последователност и анализ на грешките - Не е лошо да се греши. Лошо е една и съща грешка да се повтаря непрекъснато.

6. Използване на стандарти и съблюдаване на законови разпоредби - тук ще помагат специалисти (на някои от тях им предстоят публични защити, но ще помагат), които не са програмисти, но на които ние помагаме с технически познания.

7. Да задаваме правилните въпроси и да търсим информация - Това е най-трудното.

Това е за начало.

Проектът е на модулен принцип и всеки, който иска да се учи може да получава персонални задания, да разработи свое решение и да го предложи. Ако всичко е коректно решението се имплементира. Това се отчита в документацията на проекта.

Все пак е нужно да се започне от някъде. Добре е да сме стъпили на здрава основа.

 

ЛИЧНИТЕ МИ АРГУМЕНТИ В ПОДКРЕПА НА ТЕЗАТА, КОЯТО ИЗЛАГАМ

И за да не говоря празни приказки нека ви покажа какво предлагам.

 

REST_001.thumb.jpg.b87c988cdba2a49d1bd69c17aa0feb93.jpg

 

Тук ясно може да видите за какво говоря.

Това, което предлагам е да започнем с Application Server Layer.

Винаги, когато се правят client-server приложения се започва със сървърната част. Това е златно правило, което спестява много време, средства и главоболия.

Сървър се прави много лесно, за разлика от крайно приложение.

Винаги се започва от лесното и се върви стъпка по стъпка към по-трудните неща.

КОГАТО СМЕ ГОТОВИ СЪС СЪРВЪРА ЩЕ МОЖЕ ДА ПРАВИМ МНОГО НЕЩА, ТАКА КАКТО Е ПОКАЗАНО НА КАРТИНКАТА.

 

Ако нямаме СВОЙ СОБСТВЕН СЪРВЪР ще се налага да ползваме сървър разработен от някой друг (да кажем Apach). 

АКО ПОЛЗВАМЕ ЧУЖД СЪРВЪР ЩЕ БЪДЕМ ЗАВИСИМИ (ФИНАНСОВО И ЮРИДИЧЕСКИ) И ОГРАНИЧЕНИ (ТЕХНИЧЕСКИ).

 

Ако направим свой сървър, който ще бъде слабо зависим от апаратната платформа ще имаме много по-голяма свобода да реализираме всичко, което пожелаем.

 

Това са моите аргументи. 

Link to post
Share on other sites
  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.