Georgier.დიზაინი ვიზუალია უბრალოდ და Photoshop-ში იხატება ძირითადად (მე პირადად Photoshop-ში ვმუშაობ).
შემდეგ დიზაინი გადაეცემა ფრონტ ენდ დეველოპერს, რომელიც ამ დიზაინის მიხედვით ააწყობს html / css ვერსიას და დაურთავს java[ertad]script ანიმაციებს / ფუნცქიონალს რაც დიზაინში არის გათვალისწინებული (და დამკვეთთან შეთანხმებული).
ბექ ენდ დეველოპერის მოვალეობაა გამართოს სერვერის მხარე, შექმნას მონაცემთა ბაზა, ააგოს სტრუქტურა რაზეც / როგორც იმუშავებს ზოგადად საიტი - მაგალითად URL-ები როგორი იქნება ანუ იგივე Routing-ი, ინფორმაციის წაკითხვა / ჩაწერა როგორ მოხდება.. უნდა შექმნას ძირითადი ლოგიკა, ასე ვთქვათ საძირკველი, რაზეც შემდეგ ფრონტ ენდ დეველოპერის მიერ აგებული html / css / java[ertad]script საიტი იმუშავებს. ასევე საჭირო იქნება ბექ ენდის და ფრონტ ენდის შეერთება. ანუ სადაც მაგალითად რაიმე ფორმა ზის შესავსები, იქ არსებული input-ის სახელები უნდა ემთხვეოდეს პჰპ-ში დაწერილ რექუესთის მიღების კოდს და ასე შემდეგ. ფრონტ ენდის და ბექ ენდის შეერთებასაც ცალკე დრო ჭირდება თუკი სხვადასხვა დეველოპერები მუშაობენ.
კომპანიებს ყავთ ხოლმე თავიანთი server ადმინისტრატორები, ანუ მათი მოვალეობაა nginx / Apache -ს დაყენება და გამართვა ისე რომ PHP დეველოპერმა მხოლოდ და მხოლოდ php კოდის წერას მიხედოს და სხვა რაღაცეებზე არ იდარდოს. მაგრამ დღესდღეობით თითქმის ყველა php დეველოპერმა იცის და უნდა იცოდეს ეს უკანასკნელი. განსაკუთრებით terminal-თან მუშაობა.
და როგორც შალვამ აღნიშნა, ბექ ენდ დეველოპერის მოვალეობაა ისეთი კოდი დაწეროს რომ მომავალში ადვილად გასაგები, წასაკითხი და მართვადი იყოს. თუკი რაიმე ახალი ფუნქციონალის დამატება იქნება საჭირო, დრო არ უნდა იკარგებოდეს იმის გახსენებაში / გარკვევაში თუ რა დაწერა ამ კოდში დეველოპერმა 1 წლის წინ. და ეს ძალიან ხშირია ხოლმე, განსაკუთრებით მაშინ როდესაც სხვა დეველოპერის დაწერილ კოდზე გიწევს მუშაობა.
იგივე ეხება ფრონტ ენდსაც. Sass-ის გამოყენება იმიტომ არის უმჯობესი, რომ უფრო გარკვევით წაიკითხო რა წერია და არ დაუწყო ამა თუ იმ ცსს სტილის გაწერას ძებნა. და რადგანაც Sass-ში შეგიძლია დაყო ფაილებად თითოეული სექციის / ელემენტის სტილები, ყველაფერი მარტივი და იდეალური ხდება.
იგივე ეხება ჯავასკრიპტში Browserify-ს გამოყენებას.
რადგანაც პჰპ და ჯავასკრიპტი არის უფრო ლოგიკური პროგრამირება (ანუ ტაგების დაზეპირება არ არის, იქ უნდა მოიფიქრო შენთვითონ რა როგორ გააკეთო), კარგი კოდის წერის მისაღწევად არის რამდენიმე Pattern-ები შემუშავებული და წესები. თუკი გაეცნობი და მიყვები მათ, ბევრად გააუმჯობესებ შენს კოდს. ასეთი პატერნებია მაგალითად (ძირითადად პჰპ-ში): Factory Pattern, Adapter Pattern, Facade Pattern, Singletons, Decorator Pattern და კიდევ რამდენიმე. მე პირადად ჩემს პროექტებში ამათ ვიყენებ ხოლმე ყველაზე ხშირად.
და ასევე წესები (principles), მაგალითად: SOLID programming principles (ჩემი აზრით აუცილებელია ამას გადახედო პირველ რიგში).
ნუ ესეც შეიძლება წესად ჩაითვალოს - DRY programming (Don't Repeat Yourself). ამ ყველაფერს თუ გადახედავ და ჩაუჯდები, დახვეწავ შენს კოდს.
როდესაც კოდს დაწერ, ხშირად მიუბრუნდი ხოლმე და გადახედე, გადააკეთე - გაამარტივე თუკი შესაძლებელი იქნება.
შეიძლება მუშაობდეს კარგად შენი დაწერილი კოდი, მაგრამ SOLID და DRY პროგრამინგის თვალსაზრისით მიუბრუნდი ხოლმე და ნახავ რომ შენთვითონვე გააუმჯობესებ დაწერილ ლოგიკას.
-------------------------------
P.S. ეს წესები იმისთვის არ არის რომ გინდა თუ არა ასე უნდა დაწერო კოდიო და სხვანაირად თუ დაწერ არასწორიაო, არამედ უბრალოდ გეხმარებიან ამოცანა ამოხსნა უფრო მარტივად და კომპაქტურად.