forum.ge
reklama
FORUM.GE წესები  · დახმარება  · ძებნა  · წევრები  · კალენდარი  · ფოსტა  · ჩატი
Pages: (2) [1] 2   ( გადავიდეთ პირველ წაუკითხავ წერილზე ) გამოხმაურება · ახალი თემა · ახალი გამოკითხვა

> PHP Application Architecture, როგორ აკეთებთ?
Lekso-Dav
ZZZZZZZ


*****
ჯგუფი: Members
წერილები: 4052
წევრი No.: 43573
რეგისტრ.: 8-October 07

გამოგზავნილია: 28 Sep 2009, 07:06  #15733065      · პროფილი · პირადი მიმოწერა · ჩატი · ელფოსტა
გამოცდილ პჰპ დეველოპერებისგან მაინტერესებს როგორ წყვეტთ პჰპ აპლიკაციის(ვებსაიტის) არქიტექტურას საკითხს?
რაიმე MVC ან მსგავსი ?
როგორია პროექტშI საქაღალდეების განლაგება? სად დევს ბიზნეს ლოგიკა კლასები(თუ იყენებთ) , რომელ ვარიანტშია აპლიკაციის დიზაინის და ლოგიკის განცალკევება კარგად რეალიზებული და ა.შ
მადლობთ წინასწარ


war.gif

This post has been edited by Lekso-Dav on 28 Sep 2009, 07:15
LRuby
Crazy Member


*****
ჯგუფი: Registered
წერილები: 1613
წევრი No.: 60480
რეგისტრ.: 7-May 08

გამოგზავნილია: 28 Sep 2009, 11:59  #15734424      · პროფილი · პირადი მიმოწერა · ჩატი · ელფოსტა
Lekso-Dav
ჩემი აზრით არა არის აუცილებელი ერქვას სტანდარტული სახელები.
მე ჩემს პროექტში MVC-ს არა მაგრამ დაახლოებით რაღაც მაგდაგვარს ვიყენებ, უფრო ჩემი მოფიქრებულ არქიტექტურას, რადგან უფრო სწრაფიცაა და მარტივიც. ამას ვიყენებ მხოლოდ მოდულებში. ჩემთან არ არის მოდელი. არის კონტროლერი ანუ იგივე მოდულები და view ანუ თარგები (შაბლონები).

მაგალითად example.com/news/view/15
აქ როგორც წესი view არის მეთოდი news კონტროლერის ან მოდულის რა.
ჩემთან არის უბრალოდ ფუნქცია _GET('view'); რომელიც გაძლევს მნიშვნელობა 15-ს.

ბევრს შეიძლება უაზროდ მოეჩვენოს მაგრამ ყველაფერი მაქვს გამარტივებული რომ მოდულების დაწერა არ გაძნელდეს.

აი ასეთი არქიტექტურა მაქვს დაახლოებით:
.classes
-- class1.pjp
-- class2.php
.modules
-- module1
----- index.php
----- blabla.php
-- module2
----- index.php
----- ragaca.php
.templates
-- template1
---- ......
-- template2
---- ......

ჩემთვის PHP-ში არ არსებობს "ფრეიმვორკი".
Lekso-Dav
ZZZZZZZ


*****
ჯგუფი: Members
წერილები: 4052
წევრი No.: 43573
რეგისტრ.: 8-October 07

გამოგზავნილია: 29 Sep 2009, 04:50  #15748481      · პროფილი · პირადი მიმოწერა · ჩატი · ელფოსტა
LRuby
კარგია , კარგად მოგიფიქრებია
BioHazard
Starless


*****
ჯგუფი: Members
წერილები: 1788
წევრი No.: 1161
რეგისტრ.: 12-August 02

გამოგზავნილია: 8 Jun 2010, 11:15  #20042492      · პროფილი · პირადი მიმოწერა · ჩატი · ვებგვერდი · icq · aim · yim · msn
user posted image

user posted image


--------------------
ნეტარ არიან მახინჯნი ვინაიდან ეგენი გალამაზდებიან...
Alecoder
M Power


*****
ჯგუფი: Members
წერილები: 3301
წევრი No.: 52696
რეგისტრ.: 29-January 08

გამოგზავნილია: 20 Jul 2010, 03:30  #20754628      · პროფილი · პირადი მიმოწერა · ჩატი · ელფოსტა · im · aim · yim · msn
არქიტექტურას ცოტა ავცდები მაგრამ, ყოველთვის მაინტერესებდა რა შუაშია საერთოდ "ბიზნეს ლოგიკა" აი არ მესმის რას ნიშნავს ბიზნეს ლოგიკა პროგრამაში.
ხო შეილება უბრალოდ ითქვას სხვანაირად ? ამიხსენით თუ შეიძლება რას ნიშნავს ბიზნეს ლოგიკა პროგრამაში ? არა ეგ კი არ ამიხსნათ, ამიხსენით რა კავშირია რეალურად ? ან რა ითვლება ბიზნეს და Soft ლოგიკათ, რა განსხვავებაა და რა საერთო.


--------------------
Человеческие возможности не имеют предела

Above & Beyond

Coderolog
Dato0011
Super Crazy Member +


*******
ჯგუფი: Members
წერილები: 10961
წევრი No.: 12471
რეგისტრ.: 30-August 05

გამოგზავნილია: 21 Jul 2010, 13:03  #20772010      · პროფილი · პირადი მიმოწერა · ჩატი · ელფოსტა
Alecoder
QUOTE
არქიტექტურას ცოტა ავცდები მაგრამ, ყოველთვის მაინტერესებდა რა შუაშია საერთოდ "ბიზნეს ლოგიკა" აი არ მესმის რას ნიშნავს ბიზნეს ლოგიკა პროგრამაში.
ხო შეილება უბრალოდ ითქვას სხვანაირად ? ამიხსენით თუ შეიძლება რას ნიშნავს ბიზნეს ლოგიკა პროგრამაში ? არა ეგ კი არ ამიხსნათ, ამიხსენით რა კავშირია რეალურად ? ან რა ითვლება ბიზნეს და Soft ლოგიკათ, რა განსხვავებაა და რა საერთო.

ბიზნეს ლოგიკა თავის თავს უკვე განმარტავს მაგ სიტყვებში biggrin.gif ლოგიკა რომელსაც შენი პროგრამა უნდა მიყვეს. დასმული ამოცანა.
როგორც წესი, სწორი არქიტექტურის შემთხვევაში, ბიზნეს ლოგიკა მოთავსებულია ცალკე მოდულში რასაც შრეს ეძახიან (იგივე ლეიერი). ამ არქიტექტურას n-tier architecture ქვია. ეს მარტო ბიზნეს ლოგიკას არ ეხებება, იგივე კეთდება Data Access Layer-ის (იგივე DAL) შემთხვევაში, რომელიც ბაზასთან ურთიერთობაზე აგებს პასუხს, Presentation Layer, რომელიც GUI-ზე მუშაობს და ა.შ.
ამ შემთხვევაში წარმოიდგინე ეკომერსის სისტემა, მომხმარებელი აკეთებს გადახდას, ამ დროს DAL ბაზაში აფიქსირებს გადახდას, ბიზნეს ლეიერი (იგივე BLL) ეუბნება DAL-ს რომ ბაზაში დააფიქსიროს ზემოთ აღნიშნული გადახდა, ასევე ითვლის საკომისიოს, განსაზღვრავს გადახდის სტატუს-ს და აკეთებს ვალიდაციებს, ხოლო Presentation Layer მომხმარებელს ეკრანზე უხატავს თავისი ტრანზაქციის სტატუს-ს, საკომისიოს, ვალიდაციის წარუმატებლად გავლის შემთხვევაში ატყობინებს მომხმარებელს ესა და ეს ველი არასწორად გაქ შევსებულიო და ა.შ. (ამ ინფორმაციას იღებს ბიზნეს ლეიერიდან)
ამ მიდგომას ბევრი პლიუსი აქვს. პირველ რიგში შენ თავიდან იცილებ ეგრედ წოდებულ სპაგეწი კოდს, aka ვისი კოდი ვის კოდშიაო biggrin.gif ყველა მოდული და კლასი თავის თავზეა პასუხისმგებელი, როცა შენი პროგრამა "გაასხავს", იცი პრობლემა სად უნდა ეძებო. იმპლიმენტაციის შეცვლით ინტერფეისი არ გეცვლება, მაგ თუ ოდესმე გადაწყვიტავ X ბაზიდან Y ბაზაზე გადასვლას, ცვლი მხოლოდ DAL-ის იმპლიმენტაციას, ინტერფეისი იგივე რჩება, ასევე ბევრად მარტივდება ახალ GUI-ზე გადასვლა, რადგან GUI-ში არ დევს არც ბაზასთან სამუშაო კოდი და არც ბიზნეს ლოგიკა და რავი რომელი ერთი გითხრა კიდე.
ყველაფრის მიუხედავად, შეგხვდება ხალხი ვინც არამარტო ბიზნეს ლოგიკას წერს SQL-ზე, არამედ შავი ხვრელის სიმულაციის ამოცანა რო დაუსვა, იმასაც SQL-ზე გაგიკეთებს (ნუ რა გამოვა ამ შემთხვევაში ამას არსებითი მნიშვნელობა არ აქვს biggrin.gif)
ზოგადად არამარტო ჩემი გამოცდილებით, კლიენტის მხარეს დაწერილი კოდი ბევრად უფრო ადვილი მოსავლელია და უფრო საიმედოა ვიდრე ბაზაში გატენილი აკრობატიკა. თუმცა ეს სხვა თემაა და კიდე ბევრის დაწერა მომიწევს, მე კიდე ზარმაცი ვარ biggrin.gif
მოკლედ ალექს, ბოლოს ვიტყვი რომ არც ჩემი ნათქვამია აქსიომა, ეს უბრალოდ მიდგომაა რომელიც დრომ გამოცადა და დასმული ამოცანების დიდი ნაწილის სწორად გადაჭრაში გეხმარება, თუმცა შეიძლება ყველა პროექტს არც მოერგოს და ვერც მოერგება. რომელი არქიტექტურით აიგოს პროექტი, ეგ სოFთ არქიტექტის მოვალეობაა.
Alecoder
M Power


*****
ჯგუფი: Members
წერილები: 3301
წევრი No.: 52696
რეგისტრ.: 29-January 08

გამოგზავნილია: 21 Jul 2010, 13:20  #20772318      · პროფილი · პირადი მიმოწერა · ჩატი · ელფოსტა · im · aim · yim · msn
Dato0011
დიდი მადლობა ბატონო დავით უხვი პოსტისთვის, თუმცა ჩემი გაოცება სხვა რამემ გამოიწვია, განა შეილება დაუძახო იერარქიას ბიზნეს ლოგიკა, მხოლოდ იმის გამო რო ანხორციელებს ტრანზაქციებს ?
მე უბრალოდ შეუსაბამო მეჩვენება ეს გამოთქმა "ბიზნეს ლოგიკა", არ მომდის რაღაც თვალში, არასწორია. კოდინგი არის კოდინგი და რა საქმესაც არ უნდა ემსახურებდოეს კონკრეტული ამოცანა, კოდინგი მაინც კოდინგია და ბიზნესი კიდევ ბიზნესია, თავი ლოგიკებით და ღრმა ინტელექტუალური თემებით.
Dato0011
Super Crazy Member +


*******
ჯგუფი: Members
წერილები: 10961
წევრი No.: 12471
რეგისტრ.: 30-August 05

გამოგზავნილია: 21 Jul 2010, 13:24  #20772404      · პროფილი · პირადი მიმოწერა · ჩატი · ელფოსტა
Alecoder
QUOTE
განა შეილება დაუძახო იერარქიას ბიზნეს ლოგიკა, მხოლოდ იმის გამო რო ანხორციელებს ტრანზაქციებს ?

მოიცა ან რაღაც ვერ გამიგე, ან მე დავწერე ძაან აბდაუბდა, ან ორივე ერთად biggrin.gif
რა შუაშია იერარქია? ბიზნეს ლოგიკა n-tier არქიტექტურაში ხო არ აგერია? spy.gif
QUOTE
მე უბრალოდ შეუსაბამო მეჩვენება ეს გამოთქმა "ბიზნეს ლოგიკა", არ მომდის რაღაც თვალში, არასწორია. კოდინგი არის კოდინგი და რა საქმესაც არ უნდა ემსახურებდოეს კონკრეტული ამოცანა, კოდინგი მაინც კოდინგია და ბიზნესი კიდევ ბიზნესია, თავი ლოგიკებით და ღრმა ინტელექტუალური თემებით.

ნებისმიერი კოდინგი მოდის დასმული ამოცანიდან. მაშინ უკაკუნებ კლავიშებს როცა იცი რას აკეთებ. ხოდა ეგაა ზუსტად ბიზნეს ლოგიკა tongue.gif
ტერმინია რა. ეგრე მე პოლიმორფიზმი არ მომხვდა თვალში კარგად პირველად რო წავიკითხე მაგაზე biggrin.gif მეთქი ამ სიტყვას რა დაიმახსოვრებსთქო biggrin.gif
Alecoder
M Power


*****
ჯგუფი: Members
წერილები: 3301
წევრი No.: 52696
რეგისტრ.: 29-January 08

გამოგზავნილია: 21 Jul 2010, 13:38  #20772665      · პროფილი · პირადი მიმოწერა · ჩატი · ელფოსტა · im · aim · yim · msn
Dato0011
საქმე იმაშია რომ, პოლიმორფიზმი სახელწოდებაა, და ბიზნეს ლოგიკა არასწორი ტერმინი.
Otory
Insane


*******
ჯგუფი: Members
წერილები: 16585
წევრი No.: 1007
რეგისტრ.: 9-June 02

გამოგზავნილია: 21 Jul 2010, 14:33  #20773627      · პროფილი · პირადი მიმოწერა · ჩატი · ელფოსტა · ვებგვერდი
Alecoder
მთლად არასწორს ნუ უწოდებ ალექს, კარგი ხანია დამკვიდრებულია ეგ ტერმინი smile.gif
თავიდან მეც არ მეხამუშებოდა კარგი ხანი, მაგრამ ეხლა უკვე შევეჩვიე smile.gif


--------------------
Over 9000!
Alecoder
M Power


*****
ჯგუფი: Members
წერილები: 3301
წევრი No.: 52696
რეგისტრ.: 29-January 08

გამოგზავნილია: 21 Jul 2010, 14:38  #20773714      · პროფილი · პირადი მიმოწერა · ჩატი · ელფოსტა · im · aim · yim · msn
Otory
ნუ ცოტა გადავამლაშე ვაღიარებ, მაპატიეთ კოლეგებო.
დილით და საღამოს ძილის წინ, თვითშთაგონებას ჩავიტარებ, ბიზნეს ლოგიკა ჩემი მეგობარია, ბიზნეს ლოგიკა ჩემი მეგობარია, ბიზნეს ლოგიკა ჩემი მეგობარია...
Kirchi
Super Crazy Member


******
ჯგუფი: Members
წერილები: 7224
წევრი No.: 4820
რეგისტრ.: 7-April 04

გამოგზავნილია: 21 Jul 2010, 17:04  #20776090      · პროფილი · პირადი მიმოწერა · ჩატი · ელფოსტა
QUOTE
ბიზნეს ლოგიკა ჩემი მეგობარია

სხვათაშორის მხოლოდ ესე არ ექოდება მაგ შრეს ანუ ლეიერს.

გააჩნია რა პატერნში განიხილავენ ხან ერთს ეძახიან ხან მეორეს

თუ "Business Logic Layer" არ მოგწონს შეგიძლია გამოიყენო ტერმინი "Domain Layer", იქ ხშირად ბინადრობს "Domain Model".

კერძოდ Domain ნიშნავს სფეროს, ტერიტორიას (თარგმანი) და ამ კონტექსტში ნიშნავს რომ ამ შრეში მდებარეობს კონკრეტულ სფეროზე გათვლილი მცნებების აღმწერი კოდი. ეს კოდი ოპერირებს Domain ობიექტებით.

This post has been edited by Kirchi on 21 Jul 2010, 17:06


--------------------

Blog: http://blog.devarchive.net
Youtube: http://www.youtube.com/user/kirchikgmailcom
Alecoder
M Power


*****
ჯგუფი: Members
წერილები: 3301
წევრი No.: 52696
რეგისტრ.: 29-January 08

გამოგზავნილია: 23 Jul 2010, 02:07  #20796685      · პროფილი · პირადი მიმოწერა · ჩატი · ელფოსტა · im · aim · yim · msn
Kirchi
ანუ ბიზნეს ლოგიკა, გულისხმობს ზოგადად იერარქიებს ?
Kirchi
Super Crazy Member


******
ჯგუფი: Members
წერილები: 7224
წევრი No.: 4820
რეგისტრ.: 7-April 04

გამოგზავნილია: 23 Jul 2010, 02:55  #20797071      · პროფილი · პირადი მიმოწერა · ჩატი · ელფოსტა
Alecoder
QUOTE
ანუ ბიზნეს ლოგიკა, გულისხმობს ზოგადად იერარქიებს ?

არა მე ეს არ მითქვია

Dato0011-მ კარგად ახსნა პრინციპში ამ ლეიერის ამოცანა რაში მდგომარეობს.

ხარმოიდგინე რომ დიდ სამსახურში ისეთში როგორიც მაგალითად არის ავტო კონცერნი ყველა თანამშრომელი მუშაობს ერთ ოთახში -
გაყიდვების მენეჯერი, მუშა, საბურავების ჩამომსხმელი თუ რაც ქვია smile.gif
მოკლედ არაფერი არ გამოვა ხო ესეა?

უნდა იყოს ცალკე საბურავის ქარხანა ცალკე კონვეიერი ცალკე გაყიდვების მენეჯერები ესე ხდება ეფექტური დაყოფა

პროგრამაშიც ყველანაირი კოდი რო გაიტენოს ერთ ადგილას ულამაზო და საშინელი რამ გამოვა

ამიტომ შეიქმნა მიმართულებები პროგრამირების დარგში სადაც დაიწყეს შემუშავება ამა თუ იმ სტრატეგიის თუ როგორ დაიყოს ეფექტურად პროგრამა ისე რომ უფრო მარტივად იყოს გადაკეთებადი, განვითარებადი და ასე შემდეგ.

ერთი იდეა რომელზეც თითქმის ყველა შეთანხმდა არის ის რომ პროგრამების დდი ნაწილის სამი ძირითადი და გამოყოფილი ნაწილია

Data Layer
Business Layer
User Interface

Business Layer - რომელზეც კითხვა დაისვა არის პროგრამაში ყველაზე "ჭკვიანი" ლეიერი.
აქ განთავსებული კოდი აღწერს იმას რასაც გვიკვეთავს კლიენტი - აღწერს პროგრამის ლოგიკას

მაგალითად - მე რომ შევქმნი ახალ კლიენტს და მივუთითებ რომ ის მენეჯერია - დაენიშნოს ხელფასი ესა და ეს

Data Layer - არის შედარებით უტვინო ლეიერი რომელმაც მხოლოდ იცის როგორ შეინახოს და ამოიღოს მონაცემები

მაგალითად - შეინახე მენეჯერი - სახელია ეს და ეს, გვარი ეს და ეს

User Interface - აქაც დიდ მონაწილეობას ღებულობს კლიენტი - ეს არის ვიზუალური მხარე პროგრამის

მაგალითად - აჩვენე მენეჯერი წითელ ჩარჩოში - ან აჩვენე მენეჯერი ლურჯ ჩარჩოში - არჩევანი პროგრამისტზე/მოთხოვნებზეა და არაა დამოკიდებული
Data Layer ან
Business Layer ზე

ჩვენ რო ყველაფერი ერთად გაგვეთხარა გამოვიდოდა "სპაგეტი" ანუ მაკარონი - და მერე რამის შეცვლისას მაკარონები აბლანდულია და უნდა გავშალოთ smile.gif

ხოლო თუ დაყოფილი გვაქვს და გვინდა მწვანე ჩარჩო შევცვლით შესაბამის ადგილზე და ეგაა.
ან თუ ხელფასი იცვლება მენეჯერის smile.gif
xotabich
halt!


****
ჯგუფი: Registered
წერილები: 622
წევრი No.: 36129
რეგისტრ.: 7-June 07

გამოგზავნილია: 23 Jul 2010, 12:02  #20798806      · პროფილი · პირადი მიმოწერა · ჩატი · ელფოსტა
კონკრეტულად php-ს ახება, მაგრამ აქვე ვიკითხავ ბარემ...
ვთქვათ არის მონაცემთა ბაზა, ბიზნეს ლეიერი და კლიენტ აპლიკაცია(ები)...
კლიენტ აპლიკაციის ყოველი ახალი ეგზემპლიარის გაშვება/ქონექთის დროს ბიზნეს ლეიერმაც ახალი ქონექთი უნდა გააბას მონაცემთა ბაზასთან თუ ერთ ქონექთში უნდა მიდიოდეს ბაზასთან ურთიერთობა?


--------------------
paredise is very nice...
0 წევრი ათვალიერებს ამ თემას (0 სტუმარი და 0 უჩინარი წევრი)
0 წევრი:
Topic Options Pages: (2) [1] 2  გამოხმაურება · ახალი თემა · ახალი გამოკითხვა

 



ფორუმის სერვერების განთავსებას და ინტერნეტთან კავშირს უზრუნველყოფს: CLOUD9
[ Script Execution time: 0.0347 ]   [ 13 queries used ]   [ GZIP Disabled ]