Jump to content
¯\_( ツ)_/¯
  • TAD GROUP are currently hiring penetration testers. Please read the topic in Career Central subforum.
  • Sponsored Ad
singleface

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

Recommended Posts

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

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

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

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

  • Thanks 1

Сподели публикацията


Адрес на коментара
Сподели в други сайтове

Здравейте,

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

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

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

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

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

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

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

 

Сподели публикацията


Адрес на коментара
Сподели в други сайтове

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

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

V-Server.rar

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

 

Сподели публикацията


Адрес на коментара
Сподели в други сайтове

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

Сподели публикацията


Адрес на коментара
Сподели в други сайтове

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

VS_001.thumb.png.e9846a79144df8a3cf565728288218a7.png

 

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

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

Сподели публикацията


Адрес на коментара
Сподели в други сайтове
На 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 ;) особено последния ....

Сподели публикацията


Адрес на коментара
Сподели в други сайтове
На 6.07.2018 г. at 14:57, Avatara написа:

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

VS_001.thumb.png.e9846a79144df8a3cf565728288218a7.png

 

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

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

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

Сподели публикацията


Адрес на коментара
Сподели в други сайтове
Преди 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, като връзката с базите се прави на физическо ниво (директно). 

Сподели публикацията


Адрес на коментара
Сподели в други сайтове

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

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

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

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

  • Thanks 1

Сподели публикацията


Адрес на коментара
Сподели в други сайтове
Цитат
преди 1 минута, memwarrior написа:

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

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

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

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

 

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

 

Сподели публикацията


Адрес на коментара
Сподели в други сайтове
Преди 6 часа, singleface написа:

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

 

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

  • Like 1

Сподели публикацията


Адрес на коментара
Сподели в други сайтове

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

 

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

 

Редактирано от singleface
  • Like 1

Сподели публикацията


Адрес на коментара
Сподели в други сайтове
Преди 5 часа, singleface написа:

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

 

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

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

 

Сподели публикацията


Адрес на коментара
Сподели в други сайтове

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

В случая с 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). 

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

 

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

 

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

Сподели публикацията


Адрес на коментара
Сподели в други сайтове

  • Потребители разглеждащи страницата   0 потребители

    No registered users viewing this page.

×

Important Information

За да посещавате този уебсайт е необходимо да се съгласите с 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.