კონსპექტები თვითგანვითარებისათვის
- 610
ზოგადი რჩევები თვითგანვითარებისათვის
1. დაკარგული დრო, დაკარგული ფულია.
— პროგრამისტობა და ინტელექტუალური საქმიანობა მუდმივად სწავლას ითხოვს, ამიტომ ეს საქმე მხოლოდ მათთვისაა, ვინც არასდროს დაიღლება ამით. გონების ნახევარი საყვარელ საქმიანობას უნდა დავუთმოთ, ნახევარი კი სხვა დანარჩენს.
2. სწორად დალაგებული აზრები
— კარგად სწავლა უკეთესია, ვიდრე ბევრი სწავლა
— ყველაფრის სწავლა უშედეგოა და წარმატება არ მოაქვს, უნდა ვისწავლოთ 1 რაღაცა კარგად და ყველაფერი რაც ამ ერთს უკავშირდება – ზოგადად.
— სწორად გადმოცემის უნარი ზოგჯერ უფრო სასარგებლოა ვიდრე პროფესიონალიზმი.
— სწორად დაგეგმილი საქმე ზოგჯერ უფრო ეფექტურია, ვიდრე საქმის კარგი ცოდნა.
— სწორად ახსნილი პრობლემა უფრო მეტს აკეთებს, ვიდრე დეტალური დოკუმენტაცია.
— ბევრ ცოდნას ვერ ავითვისებთ, თუ სწორად არ ვისწავლით.
— ბევრი ცოდნა არაეფექტური იქნება, თუ სწორად არ გამოვიყენეთ.
3. გადაუჭრელი პრობლემა არ არსებობს
— ზარმაცები პრობლემებს გვერდს უვლიან და მიდიან, საქმიანები კი შემოუვლიან და სხვა მხრიდან ჭრიან.
— გადაუჭრელი პრობლემა არ არსებობს, არსებობს მხოლოდ არასწორი მიდგომები.
— ყველა პრობლემის დაშლა შეიძლება ნაწილებად, დაშლილი პრობლემა პრობლემა აღარ არის.
4. გამოსავალი ყოველთვის არის
— პრობლემასთან შეჯახება ხშირად იწვევს მოტივაციის დაკარგვას, ეს დამახასიათებელია პროგრამისტებისათვის და ინტელექტუალური სფეროს წარმომადგენლებისათვის. როცა პრობლემის გადაწყვეტა არ ჩანს, ამ დროს ტვინი ჩერდება და ვეღარ მუშაობს, ასეთ დროს მოტივაციისათვის საჭიროა მოვძებნოთ რაიმე(ძაფი), რასაც ხელს ჩავჭიდებთ. ამის შემდეგ ტვინს სტიმული მიეცემა და მთელი ძალით ამუშავდება.
5. საქმისადმი ერთგულება
— პრობლემების გაჩენა და რაიმე საკითხით დაღლა იწვევს ყურადღების გადატანის მოთხოვნილებას, გადატანის შემდეგ კი საქმის მიმართ კონცენტრაციის დაკარგვას, ზარმაცობას და უნებისყოფობას. ასეთ დროს ჯობია ყურადღება დავაბათ საქმეზე და ამ საკითხის ირგვლივ ვიტრიალოთ, შესაბამისად დასვენებაც საქმესთან კავშირში უნდა მოვახერხოთ, ასე ყოველთვის შრომისუნარიანი ვიქნებით და პროდუქტიულობაც მოიმატებს.
6. ანალიზის უნივერსალური 3 მეთოდი
— ნებისმიერი საკითხის დაგეგმვისა და ანალიზისას ჯერ ხდება მთავარი საკითხის გამოყოფა და შემდეგ მეორეხარისხოვნების მნიშვნელობის მიხედვით.
— ჯერ ხდება პირველი რიგის საკითხების გამოყოფა და შემდეგ მეორე და სხვა რიგისები.
— საკითხების დალაგებისას რეკურსიულად ხდება მათი გადახედვა და ახლიდან გადაჯგუფება. თუ სქემა არ იცვლება, საკითხიც ამოწურულია.
7. საკითხის სრულყოფილი გააზრება
— ნებისმიერი საკითხი დაკავშირებულია სხვა საკითხებთანაც, ამიტომ მის სრულყოფილ გასააზრებლად საჭიროა მასთან დაკავშირებული ყველა საკითხის გააზრებაც.
— ნებისმიერი საკითხის გააზრება უნდა მოხდეს დეტალურად, ყველა წვრილმანის გააზრებით, ნახტომები ჩავარდნებს იწვევს.
— პროფესიის კარგად შესასწავლად საჭიროა ცალკე თეორიის და ცალკე პრაქტიკული მუშაობის შესწავლა. თეორიის სწავლა მხოლოდ წარმოდგენას იძლევა იმაზე, თუ რა ხერხები და ფუნქციები გამოიყენება პროგრამირებაში, პრაქტიკა კი გვასწავლის იმას, თუ როგორ გამოვიყენოთ ისინი. პრაქტიკაში შესასწავლი საკითხები გაცილებით მეტია იმაზე, რაც თეორიაში ისწავლება.
8. რაც მეტი, მით უკეთესი
— რაც მეტს სწავლობ, მით ადვილია სწავლა. რაც მეტს მუშაობ, მით ადვილი ხდება მუშაობა.
9. მეტი შეცდომა მეტი სწავლაა, ვეძებოთ შეცდომები
— შეცდომები გვასწავლიან იმას, რის არცოდნამაც შეცდომა დაგვაშვებინა. მეტი შეცდომა მეტის სწავლაა. ვეძებოთ შეცდომები ყველგან, განსაკუთრებით კი იქ სადაც არ ველით.
10. სამუშაოზე მისაღებად მუშაობის უნარს უფრო ითხოვენ, ვიდრე ცოდნას.
— სერთიფიკატი არის ბილეთი გასულ მატარებელზე, რომელსაც არავინ მოგთხოვს, ცოდნა კი საინჟინრო ჩარხი ინსტრუქციის გარეშე. მხოლოდ მუშაობის უნარში იხდიან ხელფასს.
11. მოლოდინი და რეალობა
— სამუშაოს უმეტესი ნაწილი 80% კეთდება იგივე დროში, რაშიც დარჩენილი 20% ნაწილი.
— პრობლემები ყოველთვის იქ ჩნდებიან, სადაც არ ელოდებიან.
— პრობლემები ყოველთვის ჯგუფურად დადიან.
— საქმე ყოველთვის მეტია დაგეგმილზე.
12. თვისებები
— საკითხის თეორიული ცოდნა მხოლოდ 10% წილს ნიშნავს წარმატებაში.
— პიროვნულ თვისებებს 30% წილი აქვს(ნებისყოფა, შრომისმოყვარეობა, მოწესრიგებულობა, პოზიტიურობა, დაკვირვებულობა).
— გამოცდილებას და უნარ-ჩვევებს 60% წილი აქვთ. ეს პროფესიონალის უნარ-ჩვევებია გამოცდილებასთან და დაგროვებულ ცოდნასთან ერთად.
13. თავდაჯერებულობა და პოზიტიურობა წარმატების საწინდარია
— პოზიტიური მიდგომა ყველგან და ყველაფერში საჭიროა, განსაკუთრებით როცა არ გვილხინს.
— პრობლემები დროებითია, ყველა პრობლემა მოგვარებადია, ყველაფერი რაც არ ვიცით შეგვიძლია ვისწავლოთ, რაც დღეს არ გამოდის მერე გამოვა…
კითხვები, რაზეც უნდა გვქონდეს პასუხები
1. დეველოპმენტის რა მიმართულებები გვაინტერესებს
— დეველოპმენტში ყველა მიმართულება ერთმანეთთან კავშირშია, ამიტომ აუცილებელია ყველა მათგანზე ზოგადი წარმოდგენის ქონა, ხოლო კონკრეტულ სპეციალობაში კი კარგი ცოდნა.
2. დღეში რამდენი საათი შემიძლია დავუთმო ინტენსიურ მეცადინეობას
— დღეში 5 საათი ინტენსიური მუშაობა არის ნორმა ინტელექტუალური საქმისთვის.
3. მზად ვარ თუ არა 6 თვე ინტენსიური სწავლისთვის
— ეს არის მინიმალური დრო ნებისმიერი ინტელექტუალური სფეროს რეალური და პრაქტიკული ათვისებისათვის
4. შემიძლია თუ არა სრული მობილიზება საქმის ირგვლივ
— სრული მობილიზება აუცილებელია ეფექტური გონებრივი მუშაობისთვის
5. შემიძლია თუ არა დამოუკიდებლად სწავლა
— არ არსებობს IT სფეროში ისეთი დარგი, სადაც არ არის საჭირო დამოუკიდებელი სწავლა
---------- საიტების ტესტირების ონლაინ ინსტრუმენტები ----------- 1. https://pr-cy.ru/ საიტის გატესტვა ბევრი პარამეტრით 2. https://search.google.com/search-console საიტის პარამეტრების მეტრიკა ბევრი მონაცემებით(რეგისტრაციით) 3. https://www.bing.com/webmasters/ საიტების მონაცემები რამოდენიმე პარამეტრით(რეგისტრაციით) 4. https://pagespeed.web.dev/ საიტების სიჩქარის გუგლის ტესტი 5 https://gtmetrix.com/ საიტის სწრაფი ჩატვირთვის ტესტი 6. https://validator.w3.org/checklink საიტზე პრობლემური ლინკების ძებნა 7. https://validator.w3.org/#validate_by_input მარკაპის HTML ვალიდაციის შემოწმება 8. https://pr-cy.ru/dns/ საიტის დომენის DNS ჩანაწერისა და IP-ის გაგება ------- სხვა ხელსაწყოები ------- 1. Selenium, WebDriver, TestComplete, Katalon Studio, Espresso ავტომატური ტესტირება 2. Databene Benerator, DTM Data Generator მონაცემთა გენერატორები 3. Jira, TestRail, Test It, TestLink, Redmine, YouTrack, Bugzilla პროექტის მართვის სისტემები 4. BrowserStack, CrossBrowserTesting, Mobile Phone Emulator მობილურის ემულიატორები 5. Reflector, User Zoom, Loop მომხმარებლის UX ინტერფეისის გასატესტი ხელსაწყოები 6. SoapUI, Postman აპლიკაციების(API) ინტერფეისის გატესტვის ხელსაწყოები 7. NetSparker, Acunetix Vulnerability Scanner, OWASP უსაფრთხოების გასატესტი ხელსაწყოები 8. Apache JMeter, WebLOAD, Micro-Focus Loadrunner დატვირთვის გატესტვა(სისტემის რეაქციაზე) 9. https://teamsuccess.io/UX მზა ჩეკ-ლისტი UX ტესტირებაზე 10. https://checkvist.com/checklists/476089 მზა ჩეკ-ლისტების ბაზა ქართული IT ვაკანსიები: https://temicloud.io/communities ==== გამოსადეგი ინსტრუმენტები ==== -- ტექსტური ბლოკნოტი = Notation -- უბრალო ტექსტური რედაქტორი = Notepad -- ძლიერი ტექსტური რედაქტორი = VScode -- ძლიერი ტექსტური რედაქტორი = Sublime Text(ეს უკეთესია) -- სკრინშოტების გადასაღები პროგრამა = GreenShot -- სკრინშოტების გადასაღები პროგრამა = LightShot(ეს უკეთესია) -- სკრინშოტების გადასაღები პროგრამა = ShareX -- ეკრანის ვიდეოს გადასაღები პროგრამა Free Screen Recorder -- MAP-სქემების შესადგენი პროგრამა = Mind Map -- საიტის იერარქიული სქემის შესადგენი პროგრამა https://www.xmind.net -- პროტოტიპების შესადგენი პროგრამა = justinmind -- მონაცემების გენერატორი = https://www.mockaroo.com/ -- ჩეკლისტებისა და პროექტების მართვის საიტი, ჯგუფური მუშაობა = https://trello.com/ -- საიტის პარამეტრების, კოდის ნახვა = Chrome DevTools(F12) -- მაკეტის შედგენა https://moqups.com -- მაკეტის შედგენა https://app.mockplus.com -- დიზაინის შედგენა https://www.figma.com/ ==== გამოსადეგი საიტები ==== -- trello.com = ტესტირების გეგმისა და ჩეკ-ლისტების შედგენა, ტესტირების კონტროლი -- asana.com = პროექტების შედგენისა და ტესტირებისათვის, უნივერსალური სამუშაო გარემო -- testcaselab.com = ტესტ-კეისების გასაკეთებლად -- https://www.atlassian.com/software/jira = უნივერსალური სამუშაო გარემო, მრავალი პლაგინით ==== ონლაინ სახელმძღვანელოები, საიტები ტესტირებაზე ===== -- http://protesting.ru/testing/ -- https://software-testing.ru/ -- https://qalight.ua/ ==== ონლაინ მუშაობა, ფრილანსი ===== -- https://www.utest.com -- https://test.io -- https://www.upwork.com -- https://www.freelancer.com/ ==== საიტები SQL სწავლისთვის ==== HTML, CSS, SQL სწავლისთვის = https://www.w3schools.com/html/default.asp
===== საჭირო ლინკები =====
1. ტესტირების ქართული არხი იუთუბზე
https://www.youtube.com/c/LadyBugs/videos
2. ტესტირების იუთუბ კურსი
https://www.youtube.com/watch?v=BxayegIRUXU&list=PLEG2ksF0ZeQccZN_yzyDC0b6PcMMLwITj&index=2
3. ტესტირების მეთოდები(ქართულად)
https://automation.ge/doc/?fbclid=IwAR1Qb6oMAgOsCvEGzGrkVkgaE7KMIwF2QFjDn-ydimx1QRr2kWloCE4ZbpA
4. postman სახელმძღვანელო რუსულად
https://testengineer.ru/gajd-po-testirovaniyu-v-postman/
5. საიტი ტესტირებაზე (ინგლისურ ენოვანი)
https://www.guru99.com/
===== გამოსადეგი ლინკები რუსულად: =====
1. ტესტირების თეორია რუსულად
https://dou.ua/forums/topic/13389/
2. რა უნდა იცოდეს დამწყებმა ტესტერმა, რუსულად
http://testbase.ru/
3. საიტი ტესტირებაზე, რუსულად
https://software-testing.ru/
4. როგორ შევადგინოთ ტესტ-კეისები
– https://testengineer.ru/kak-pisat-test-kejsy-polnoe-rukovodstvo/
– https://coderlessons.com/tutorials/kachestvo-programmnogo-obespecheniia/ruchnoe-testirovanie/obrazets-shablona-testa
5. რა არის სცენარების ტესტირება
– https://coderlessons.com/tutorials/kachestvo-programmnogo-obespecheniia/ruchnoe-testirovanie/testovyi-stsenarii
6. როგორ შევადგინოთ ბაგ-რეპორტი
– https://beqa.pro/blog/%D0%B1%D0%B0%D0%B3-%D0%B8-%D0%B1%D0%B0%D0%B3-%D1%80%D0%B5%D0%BF%D0%BE%D1%80%D1%82/
– https://testit.software/blog/post/kak-pravilno-oformit-bag-report
– https://itvdn.com/ru/blog/article/bugreport
7. ტესტირების ანგარიშის შედგენა
– https://habr.com/ru/company/performance_lab/blog/207512/
8. ტესტირების მართვა
– https://habr.com/ru/company/otus/blog/599921/
9. ტესტირების ტერმინების განმარტებები
– http://www.protesting.ru/testing/
10. დეფექტების კლასიფიკაცია
– https://qalight.ua/ru/baza-znaniy/klassifikatsiya-defektov/
11. იუთუბის არხები ტესტირებაზე
– https://www.youtube.com/c/QASTARTUPITTrainingCenter/playlists
– https://www.youtube.com/c/ArtsiomRusauQALife/playlists
– https://www.youtube.com/c/%D0%9B%D1%91%D1%88%D0%B0%D0%9C%D0%B0%D1%80%D1%88%D0%B0%D0%BB/playlists
– https://www.youtube.com/c/QAAcademyTV/videos
– https://www.youtube.com/user/natasturza/videos
– https://www.youtube.com/channel/UCmiv7ZiPmP98mr2Lrfxg8lA
12. საიტები და ბლოგები
– https://testengineer.ru/category/obuchenie-testirovanie/manual-testing/
– https://www.educba.com/system-testing/
– https://www.guru99.com/qa-interview-questions-answers.html
13. კურსები ქართულად
– https://upway.ge/
– https://www.programirebis-kursebi.ge/
– https://mycourse.ge/searchpage?isFree=true&sortfield=registrationEndDate&direction=desc
– https://scsa.ge/ka/kursebi/
– https://olacademy.ge/
– https://digitalbus.ge/
– https://commschool.ge/courses-list/
– https://webcourses.ge/index.html
– https://smartacademy.ge/
საიტების კლასიფიკაცია საიტები დანიშნულების მიხედვით იყოფა საინფორმაციო, მომსახურებითი და უნივერსალური(მრავალმხრივი) დანიშნულებით ------ საინფორმაციო დანიშნულებით ----- - საჩვენებელი ტიპი, კონკრეტულად ერთი მიზნისთვის შექმნილი მარტივი საიტი. 1. პროდუქტი 2. ღონისძიება 3. რეკლამა 4. პრომო - წარმომადგენლობითი ტიპი, ვინმეს ან რაიმეს წარმოსაჩენი ინფორმატიული საიტი 5. პერსონალური 6. პორტფოლიო 7. კომპანია 8. ორგანიზაციის 9. სამთავრობო - საინფორმაციო ტიპი, მუდმივი ინფორმაციული ნაკადის მქონე საიტი 10. აუდიო 11. ფოტო 12. ვიდეო 13. მედია გამოცემა 14. ბლოგი 15. კატალოგი ------ მომსახურებითი დანიშნულებით ----- - სერვისული ტიპი, კონკრეტული სერვისების გაწევისთვის შექმნილი საიტი 1. სერვისები 2. გადახდები 3. სათამაშო 4. საძიებო 5. ფოსტა - მომსახურებითი ტიპი, მომხმარებლების ინტერესებისთვის მომსახურე საიტი 6. სოციალური 7. ფორუმი 8. ჩატი - კომერციული ტიპი, ბიზნესის დანიშნულების მქონე საქმიანი საიტი 9. მაღაზია 10. აუქციონი 11. განცხადებები -------- უნივერსალური პორტალები ------- - დიდი მოცულობისა და ფუნქციონალის, მრავალმხრივი დანიშნულების კომბინირებული საიტები 1. ბიზნეს-პორტალი 2. მედია-პორტალი 3. უნივერსალური სოც-ქსელი საიტების აგებულებისა და არქიტექტურის სრული აღქმისათვის საჭიროა ყოველი ტიპის საიტზე გავარჩიოთ რა სტრუქტურა აქვს და რა სტილს მიეკუთვნებიან(კონსპექტი საიტების სტრუქტურაზე და სტილებზე), ასევე რა პრინციპებია გამოყენებული დიზაინის საფუძვლებიდან(კონსპექტი საიტების დიზაინი და ინტერფეისი). როგორ მუშაობს საიტი? -- საიტის შესაქმნელად ჯერ უნდა ვიყიდოთ დომენი, ანუ საიტის სახელი. ეს სახელი იქნება რომელიმე დომენურ ზონაში გაფორმებული, მაგალითად .ge ან .com ზონაში. დომენს არეგისტრირებს სპეციალური უფლების მქონე რეგისტრატორი(მაგალითად პროსერვისი), რომელიც გააფორმებს დომენს ჩვენს სახელზე. ამის მერე საჭიროა ვიყიდოთ საიტის ასამუშავებლად საჭირო სერვერული რესურსი. სერვერი იგივე კომპიუტერია, ოღონდ მთლიანად საიტების მუშაობაზე მორგებული კომპიუტერი, სადაც აქირავებენ ამ კომპიუტერის სამუშაო სიმძლავრეებს, მეხსიერებას და გარკვეული მომსახურებების ჩამონათვალს, მაგალითად საიტის სამართავ პანელებს. სერვერზე რესურსების ყიდვის შემდეგ სერვერი გვაძლევს DNS სახელებს, რომლებიც ჩვენი საიტის მისამართს წარმოადგენენ და ამ მისამართის მიხედვით დგინდება ინტერნეტში ჩვენი საიტის ადგილმდებარეობა. ეს DNS სახელები უნდა გავუწეროთ დომენის პარამეტრებს, ანუ სადაც ეს დომენი ვიყიდეთ, იმ კომპანიის საიტზე არის შესაბამისი განყოფილება ამისთვის. უმეტეს შემთხვევაში მოგვიწევს DNS სახელებთან ერთად IP მისამართების გაწერაც, ამ IP მისამართებსაც სერვერი გვაძლევს. ამის მერე საჭიროა მხოლოდ სერვერზე ჩვენს ნაყიდ მეხსიერებაზე ავტვირთოთ ჩვენი საიტის ფაილები და საიტიც მზად იქნება. ატვირთვის გარდა დაგვჭირდება უსაფრთხოების ზომების მიღებაც, მაგალითად SSL სერთიფიკატის დაყენება საიტზე, სარეზერვო მეხსიერება საიტის ბექაპისთვის(ასლის შესანახად), ასევე შეგვიძლკია სხვადასხვა მომსახურების ყიდვა, მაგალითად SEO ინსტრუმენები.
ვებსაიტის დამზადება, შემუშავების ეტაპები, ბიზნეს ანალიზი 1. მოსამზადებელი ეტაპი, ბრიფი, საკითხის შესწავლა, მიზნების განსაზღვრა და ამოცანები - საიტის დანიშნულების გარკვევა, ბიუჯეტი და ვადები - საქმიანობის სფეროსა და სამიზნე აუდიტორიის შესწავლა, ბიზნეს-გათვლები - კონკურენტი საიტებიდან გამოსადეგი დიზაინისა და ფუნქციონალის ელემენტების შესწავლა - საიტის ტიპის განსაზღვრა, ბრენდის სტილი, დიზაინის ზოგადი აღწერა - საიტის ტექნიკური საკითხები, სერვერი, დომენი და შემუშავების ტექნოლოგიები. - ძირითადი ფუნქციონალის ჩამონათვალი - სხვა გასაწევი სამუშაოებს სრული ჩამონათვალი - შეთანხმება საიტის გაშვების შემდგომ მომსახურებაზე 2. ტექნიკური დავალების შედგენა - ანალოგიური საიტებიდან სასარგებლო იდეების გადმოტანა - საიტის ტიპის დადგენა, ზოგადი კონცეფცია - ფერთა სქემის შედგენა, მოთხოვნები დიზაინის სტილზე - საიტის რუკა და სტრუქტურული სქემა - განყოფილებების, გვერდებისა და კატეგორიების აღწერა, სემანტიკა, SEO და კონტენტი - ძირითადი ფუნქციონალის ჩამოწერა, დამატებითი მოდულების განსაზღვრა - მომხმარებლის მოქმედებების სცენარების გაწერა - ტექნიკური მოთხოვნების გაწერა, პროგრამირების ტექნოლოგიების განსაზღვრა - წინასწარი მაკეტის შექმნა, სრული ფუნქციონალის დასრულება - შეთანხმება დეველოპერებთან და დამკვეთთან 3. დიზაინის შემუშავების ეტაპი: პროტოტიპირება, დიზაინი - წინასწარი მაკეტის დახვეწა, მოდიფიცირება - დიზაინის რამოდენიმე ვარიანტის განხილვა - ლოგო, ფერები, შრიფტი - საწყისი გვერდის დიზაინის შექმნა - გარე და შიგნითა გვერდების დიზაინი - სტანდარტული ელემენტების შემუშავება, პოპუპ ფანჯრები - ყველაფრის პროექტირება ხდება UX/UI იდეოლოგიის გათვალისწინებით. 4. ფრონტის აწყობის ეტაპი: მარკაპი და ფრონტენდი - დიზაინის მიხედვით მარკაპის შედგენა - ინტერაქტიული ელემენტების დამუშავება - ადაპტიური დიზაინი და მობილური ვერსია - ტექნიკური SEO ფაქტორების გათვალისწინება - კოდის ტესტირება შეცდომებისადმი მდგრადობაზე, ვალიდაცია, ოპტიმიზაცია, კროს-ბრაუზერულობა. 5. ბექის პროგრამირების ეტაპი: სისტემური პროგრამირება, ბექენდი - საიტის სისტემური და სერვერული ნაწილის პროგრამული უზრუნველყოფა - ადმინ-პანელის პროგრამირება - სოციალური ქსელების ჩართვა, სტატისტიკური მთვლელები - გადახდისა და სხვა სისტემების ინტეგრაცია - კოდის ტესტირება შეცდომებისადმი მდგრადობაზე, ოპტიმიზაცია, უსაფრთხოება. 6. გაშვების ეტაპი: საიტის გამართვა და კონტენტით შევსება - დომენისა და სერვერის პარამეტრების გამართვა. - SEO-ს გათვალისწინებით საიტის კონტენტით შევსება 7. ტესტირების ეტაპი: ვიზუალური და ფუნქციური ტესტირება. - ვიზუალური მხარისა და დიზაინთან შესაბამისობაში გადამოწმება - ინტერფეისის ზოგადი ტესტირება - ცალკეული გვერდებისა და ელემენტების ტესტირება - ფუნქციონალის ტესტირება - ტექნიკური მხარის ტესტირება - SEO ტესტირება. 8. მხარდაჭერის ეტაპი: გაშვების შემდგომი პროგრამული და ტექნიკური უზრუნველყოფა - სერვერის ადმინისტრირება - შეცდომების გასწორება - ახალი ფუნქციების დამატება - მედია-მარკეტინგი და SEO განვითარება.
საიტის ტექნიკური დავალების შედგენა - ტექნიკური დავალება საჭიროა საიტის სწორი დაგეგმვისა და ხარჯების გათვლისათვის. - ტექნიკური დავალების შექმნამდე კეთდება ბრიფი(კითხვების ჩამონათვალი შემკვეთთან). - ტექნიკურ დავალებას ადგენს პროგრამისტი ან პროექტის მენეჯერტი, იშვიათად შემკვეთი - ტექნიკური დავალება დგება საიტის დიზაინის შემუშავებამდე და აღწერს მთელი საიტის ფუნქციონალს ინტერფეისისა და სტრუქტურის ჩათვლით - ტექნიკური დავალების შემუშავებისას თავიდან კეთდება საიტის სტრუქტურის ძირითადი მონახაზი, შემდეგ კი დიზაინის პროტოტიპი უფრო დეტალური სახით. 1. მოსამზადებელი ეტაპი, ბრიფი, კითხვარი საიტის შემუშავებისათვის - საიტის დანიშნულების გარკვევა, ბიუჯეტი და ვადები - საქმიანობის სფეროსა და სამიზნე აუდიტორიის შესწავლა, ბიზნეს-გათვლები - კონკურენტი საიტებიდან გამოსადეგი დიზაინისა და ფუნქციონალის ელემენტების შესწავლა - საიტის ტიპის განსაზღვრა, ბრენდის სტილი, დიზაინის ზოგადი აღწერა - საიტის ტექნიკური საკითხები, სერვერი, დომენი და შემუშავების ტექნოლოგიები. - ძირითადი ფუნქციონალის ჩამონათვალი - სხვა გასაწევი სამუშაოებს სრული ჩამონათვალი - შეთანხმება საიტის გაშვების შემდგომ მომსახურებაზე 2. ტექნიკური დავალების შედგენა - ანალოგიური საიტებიდან სასარგებლო იდეების გადმოტანა - საიტის ტიპის დადგენა, ზოგადი კონცეფცია - ფერთა სქემის შედგენა, მოთხოვნები დიზაინის სტილზე - საიტის რუკა და სტრუქტურული სქემა - განყოფილებების, გვერდებისა და კატეგორიების აღწერა, სემანტიკა, SEO და კონტენტი - ძირითადი ფუნქციონალის ჩამოწერა, დამატებითი მოდულების განსაზღვრა - მომხმარებლის მოქმედებების სცენარების გაწერა - ტექნიკური მოთხოვნების გაწერა, პროგრამირების ტექნოლოგიების განსაზღვრა - წინასწარი მაკეტის შექმნა, სრული ფუნქციონალის დასრულება - შეთანხმება დეველოპერებთან და დამკვეთთან 3. ტექნიკურ დავალებაში შემავალი საკითხები - ტექნიკური დავალების მიზანი, განსახილველი საკითხების სია - საიტის მიზნები და ამოცანები, ანალიტიკა, მარკეტინგული გათვლები, აუდიტორია - საიტის კარტა, სტრუქტურა და ლოგიკური კავშირები - უცვლელი ელემენტების ფუნქციონალი(ჰეადერი, ფუტერი, გვერდითი პანელები, Float ფანჯრები) - ძირითადი(საბაზისო) გვერდების ფუნქციონალი და აღწერა - ელემენტების მუშაობის აღწერა და ფუნქციონალი - მომხმარებლის მოქმედებების სცენარების აღწერა - ზოგ შემთხვევაში მონაცემთა ბაზების არქიტექტურა - ლინკების გენერაციის წესი, მონაცემთა მიკრო-სტრუქტურა ფეისბუქისა და გუგლისათვის - SEO კონტენტი, TDH ავტოგენერაციის წესი title, description, H1 - წინასწარი მაკეტი, პროტოტიპი, მოთხოვნები ადაპტივზე, დიზაინის აღწერა - ადმინ-პანელი, სტატისტიკური მონაცემების გვერდი - გადახდისა თუ სხვა ინტეგრაციული სისტემების აღწერა - ტექნიკური მოთხოვნები, ჩატვირთვის სისწრაფე, უსაფრთხოება, სერვერი, გამოყენებული ტექნოლოგიები - ტერმინების განმარტება 4. ხშირად დაშვებული შეცდომები - არ არის მითითებული ზუსტი ვადები - არასრულყოფილი შევსება - არ არის დეტალიზებული ფუნქციონალი - არ არის დაზუსტებული დიზაინის დეტალები - ხარვეზებია საიტის სტრუქტურაში - ხარვეზებია ფუნქციონალის ლოგიკაში - დომენისა და სერვერის ყველა საჭირო მონაცემების არქონა
======= საიტების სტრუქტურა და სტილები ====== 1. საიტის სტრუქტურის დადგენის თანამიმდევრობა -------------------------- - საიტის დანიშნულების, საქმიანობის სფეროსა და სამიზნე აუდიტორიის შესწავლა - კონკურენტი საიტების შესწავლა და სასარგებლო ინფორმაციების გადმოტანა - საიტის გვერდებზე საჭირო ყველა კომპონენტისა და ელემენტის ჩამოწერა - ფერებისა და ფონტის არჩევა, ლოგო, საიტის ტიპისა და სტილის განსაზღვრა - საიტის ლოგიკური სტრუქტურის გრაფიკული გამოსახვა(მინდმაპი) - კომპონენტების განაწილება მთავარ ველებზე, ინტერფეისის წინასწარი მონახაზის გაკეთება, მაკეტის შედგენა, პროტოტიპი - კომპონენტების მოწესრიგება UX/UI იდეოლოგიით, სტრუქტურის დეტალიზაცია 2. საიტის სტრუქტურის მთავარი ველები ------------------------------ 2.1. ჰეადერი, საიტის ზედა ნაწილი, ანუ ნავიგაციური მენიუს ბლოკი - ჰეადერი შედგება მენიუების ჰორიზონტალური ზოლებისგან(ბლოკებისგან), ასევე ზშირად მთავარი ბანერისგანაც. ბანერი განლაგებულია უმეტესად ზოლების ქვემოთ, ან ზოლების შუაში, ან მთლიანი ფონის სახით. - ჰეადერი არის უმეტესად 1 ან 2, ზოგჯერ 3 ზოლიანიც. - უმეტესად მარცხნივ ან ზოგჯერ შუაში განლაგებულია ლოგო. - ჰეადერის ზოლების მარჯვენა ბოლოში განლაგებულია სოც. ქსელების ლინკები, ასევე რეგისტრაციისა და ავტორიზაციის იკონები, ასევე ზოგჯერ რაიმე ფუნქციის ღილაკიც. - ზოლის შუაში ხშირად განლაგებულია ძებნის ველი, ზოგჯერ მარცხნივ ან მარჯვნივ. - ზედა ზოლზე ხშირად განლაგებულია კომპანიის საკონტაქტო მონაცემები, ასევე სოც. ქსელების ლინკები - ზოლების ერთმანეთისგან გამოყოფა ხდება მკრთალი ხაზით ან კონტრასტული ფონებით - მთავარი ბანერი ხშირად შეიცავს წარწერებს დიდი ასოებით(სათაური), წვრილი ასოებით(დახასიათება) და ასევე ლინკს(ან ფუნქციურ ღილაკს). 2.2. მთავარი ცენტრალური ბლოკი, კონტენტისათვის - ეს არის ძირითადი კონტენტის განთავსების ადგილი, პოსტების, კატალოგების, გალერეის, პროდუქტისა და სხვა ძირითადი ინფორმაციისათვის. 2.3. გვერდითი პანელები, მენიუს, კატეგორიების ან დამატებითი ინფორმაციისათვის - ძირითადად გამოიყენება კატეგორიების სიებისათვის(უმეტესად მარცხენა მხარეს), ასევე სარეკლამო ბანერების განსათავსებლად, იშვიათ შემთხვევებში კი პოსტების განსათავსებლად. 2.4. ფუტერი, საიტის ქვედა ნაწილი, დამატებითი ინფორმაციებისათვის - ფუტერში განთავსებულია კომპანიის შესახებ ინფორმაცია, სოც.ქსელების ლინკები, სხვა გვერდებზე გადასასვლელი ლინკები, ასევე სარეკლამო ლინკები და სხვა დამატებითი სახის ინფორმაცია. 2.5. სარეგისტრაციო და სხვა ფორმები, პოპ-უპ ფანჯრები - კეთდება მოდალური ფანჯრის სახით, ან ცალკე გვერდად. 3.საიტის სტრუქტურის ელემენტები ----------------------------------- - მთავარი ელემენტებია: მენიუ, კატეგორიები, კონტენტი, დამატებითი ინფორმაცია, Float პანელები - მენიუ(ნავიგაცია): შედგენილია საიტის მთავარი საკითხების მიხედვით, მენიუში უნდა იყოს რამოდენიმე(5-6) ელემენტი. შესაძლებელია მენიუს ქონდეს ჩამოსაშლელი ქვემენიუების(ან კატეგორიების) სიაც. - კატეგორიები: ეს არის კატეგორიებად გაშლილი მენიუს ელემენტები, შესაძლებელია კატეგორიებად და ქვეკატეგორიებად დაყოფაც, შეიძლება შეიცავდეს 5-30 ცალ ელემენტს. - კონტენტი: საბოლოო მოხმარების ინფორმაცია, შეიძლება წარმოდგენილი იყოს პოსტების, პუბლიკაციის, ცხრილის, კატალოგის, პროგრამის, სიის ან რაიმე სხვა სახით. - დამატებითი ინფორმაცია: ტექნიკური, სარეგისტრაციო, საინფორმაციო და სარეკლამო ლინკები, სხვადასხვა საინფორმაციო ტექსტი, საავტორო და სხვა მონაცემები. - Float პანელები: სარეგისტრაციო, სარეკლამო და საინფორმაციო ხასიათის ფანჯრები 4. საიტის იერარქიის ლოგიკური აგებულების ტიპები ---------------------------- - ხაზოვანი სტრუქტურა, უმეტესად ერთი შვილობილი გვერდი ყოველ გადასვლაზე - ბლოკური სტრუქტურა, ყველა გვერდიდან ნებისმიერ გვერდზე გადასვლა - იერარქიული სტრუქტურა, მშობელი გვერდებისა და შვილობილი გვერდების განტოტვა - იერარქიის საუკეთესო სიღრმეა 3-4 კლიკით გადასვლა საბოლოო მიზნამდე 5. საიტის ელემენტების განლაგებისა და აგებულების სტანდარტები ------------ - საიტის მთავარი არეალები განაწილებული უნდა იყოს მნიშვნელობის მიხედვით - საიტის სქემის სტანდარტის მიხედვით საიტი შედგება ჰეადერის, ცენტრალური კონტენტის და ფუტერისაგან, შეიძლება გვერდითი პანელების დამატებაც. - ჰეადერში მარცხნივ არის ლოგო, მარჯვნივ იკონები, შუაში კი მენიუ(ნავიგაცია). 6. სტანდარტული შეცდომები საიტის სტრუქტურირებაში --------------------- - ძნელად აღსაქმელი სტრუქტურა - გვერდის მისამართებში გაუგებარი დასახელებები - ელემენტების/კატეგორიების არასწორი და არათემატური დაჯგუფება - პროდუქციისთვის საკმარისი ფილტრების არქონა - კატეგორიების დიდი რაოდენობა საწყის გვერდზე - დუბლირებული გვერდები სხვადასხვა მისამართებით 7. საიტის დიზაინის საფირმო სტილის ელემენტები ------------------------- - ლოგო - საფირმო ნიშანი - საფირმო ფერი - საფირმო პერსონაჟი - საიტის საფირმო სტრუქტურა და ელემენტების განლაგება 8. საიტის მახასიათებელი სტილები -------------------------------------- - შუქის მიხედვით: ღია ნათელი, მუქი(ბნელი), კონტრასტული, ფონური სურათით - ფერის მიხედვით: მხიარულ ფერებში, შავ-თეთრი, სტანდარტული შეხამებით, ფონური სურათით - გრაფიკის მიხედვით: მშრალი(ცივი) გრაფიკა, მხატვრულად გაფორმებული, სტილიზებული, კლასიკური - თემატიკის მიხედვით: კლასიკური, რეტრო, ფუტურისტული, საგაზეთო, მულტიპლიკაციური, სარეკლამო - დატვირთულობის მიხედვით: მინიმალისტური, ნორმალური, გადატვირთული ელემენტებით - ელემენტების მიხედვით: Flat ელემენტები, ჩვეულებრივი ჩრდილებით, 3D ელემენტები, სტილიზებული
ვებ საიტების დიზაინი მოიცავს 3 ძირითად კომპონენტს: 1. გრაფიკული მხარე: - საიტის ზოგადი ვიზუალი, კომპონენტების ვიზუალი, ფერები და გაფორმება, სტილი 2. ინტერფეისი - საიტის სტრუქტურა, კომპონენტების განლაგება, ზომები და ფორმები 3. ფუნქციონალი - საიტის ინტერაქტიური ელემენტები ==== დიზაინის შემუშავების ეტაპები ==== 1. საკითხის შესწავლა, ანალიზი - საიტის დანიშნულების, საქმიანობის სფეროსა და სამიზნე აუდიტორიის შესწავლა - კონკურენტი საიტების შესწავლა და სასარგებლო ინფორმაციების გადმოტანა 2. ზოგადი სტრუქტურის ჩამოყალიბება - საიტის გვერდებზე საჭირო ყველა კომპონენტისა და ელემენტის ჩამოწერა - ფერებისა და ფონტის არჩევა, ლოგო, საიტის ტიპისა და სტილის განსაზღვრა - საიტის ლოგიკური სტრუქტურის გრაფიკული გამოსახვა(მინდმაპი) - კომპონენტების განაწილება მთავარ ველებზე, ინტერფეისის წინასწარი მონახაზის გაკეთება, მაკეტის შედგენა, პროტოტიპი - კომპონენტების მოწესრიგება UI/UX იდეოლოგიით, სტრუქტურის დეტალიზაცია 3. გვერდების დიზაინი, ელემენტების დამუშავება - საწყისი გვერდის დიზაინის შექმნა - გარე და შიგნითა გვერდების დიზაინის შექმნა - სტანდარტული ელემენტების დამუშავება, პოპუპ ფანჯრები, ფორმები - დიზაინის გატესტვა UI/UX იდეოლოგიასთან შესაბამისობაზე. - დიზაინის შეთანხმება მარკაპის პრინციპებთან 4. ხშირად დაშვებული შეცდომები - ვიზუალური ხმაური - ერთიანი სტილის არქონა - რთულად აღსაქმელი ინტერფეისი - ძალიან ბევრი ელემენტი გვერდზე - დაუბალანსებელი ფერთა გამა - დამაბნეველი სტრუქტურა - მიღებულ სტანდარტებთან შეუსაბამობა - სხვადასხვა ზომის ეკრანისთვის ადაპტაციის არქონა - ტექსტის დამალული ნაწილები - ფონის ფერთან არაკონტრასტული ტექსტი - ლინკების ჩვეულებრივ ტექსტად გამოჩენა - მცირე დაშორებები ელემენტებს შორის - საიტის ელემენტების ზომების შეუსაბამობა მის მნიშვნელობასთან 5. დიზაინის შედგენის პრინციპები, ფერები, ელემენტები - საიტი უნდა იყოს ერთიან სტილში ჩამჯდარი - ფონი უნდა იყოს ერთ ფერში, ან ერთფეროვანი სურათების შპალერი - კარგად აღსაქმელი შრიფტების შერჩევა, მაქსიმუმ 2-3 ტიპის(ძირითადი, სათაურების, პარამეტრების) - საიტს უნდა ქონდეს ერთი საფირმო ელფერი, რომლის მიხედვით დგინდება დამხმარე ფერების გამა - ფონტების ხასიათი უნდა იყოს საიტის თემატიკასთან შესაბამისობაში - ელემენტთაშორისი მანძილები(დაშორებები) იზრდება შემდეგი თანმიმდევრობით: ასოებს შორის, სიტყვებს შორის, წინადადებებს შორის, აბზაცებს შორის, ბლოკებს შორის. - ნებისმიერი ელემენტის დიზაინი უნდა იყოს მარტივი და უბრალო, მაგრამ ინფორმაციულად სრულად და გასაგებად უნდა ასახავდეს მათ დანიშნულებას. - მნიშვნელოვანია პრინციპი: "დიზაინი მაშინ კი არ არის სრულყოფილი, როცა ვერაფერს ვეღარ დაამატებ, არამედ მაშინ, როცა ვერაფერს ვერ მოაკლებ". - "არ მაიძულო ვიფიქრო" - ინტერფეისის მთავარი ლოზუნგი. 6. დიზაინის შედგენის პრინციპები, ინტერფეისი და ინტერფეისის ელემენტები - დიზაინის აწყობამდე შეიძლება რამოდენიმე სიტყვით დავახასიათოთ საიტის დანიშნულება(მიზანი), შემდეგ ეს დანიშნულება გამოვსახოთ ვიზუალურად საიტის მთავარ არეალში და მის ირგვლივ ავაწყოთ საიტი. - თუ საიტის დანიშნულება(მიზანი) რამოდენიმე კომპონენტისგან შედგება, მაშინ ისინი მნიშვნელობების მიხედვით უნდა გამოვსახოთ ცენტრალურ ადგილზე და მათ ირგვლივ ავაწყოთ საიტი. - ინტერფეისის აწყობა იწყება საიტის მთავარ სივრცეებში მნიშვნელოვანი კომპონენტების განაწილებით, შემდეგ ბლოკების განლაგებით და მთავრდება ცალკეული ელემენტების დამუშავებით. - საიტის სტრუქტურა ერთი შეხედვითაც მკაფიო და ინტუიციურად გასაგები უნდა იყოს. - ბლოკებისა და ელემენტების ზომები, გამოკვეთილობა და განლაგება თანხვედრაში უნდა იყოს მათ მნიშვნელობასთან და აქტუალობასთან. - ელემენტის ირგვლივ დიდი სივრცე მეტ მნიშვნელობას ანიჭებს მას ვიზუალური გადატვირთვის გარეშე - ტექსტის ზომა და გამოკვეთილობა თანხვედრაში უნდა იყოს მის მნიშვნელობასთან - საიტის სივრცეში ადგილების მნიშვნელობა ზევიდან ქვევით და მარცხნიდან მარჯვნივ მცირდება - ცენტრალური ადგილი უნდა დაეთმოს ყველაზე მუშა და მოთხოვნად ინფორმაციას - საიტზე ყველა ხაზი, ფერი და ფორმა უნდა იყოს ბუნებრივად მისაღები და არა ხელოვნური - ყველა ელემენტი(განსაკუთრებით სტანდარტული) უნდა იყოს ისეთი, როგორიც მოსალოდნელია რომ იყოს. - ყველა ფუნქციურად დამოუკიდებელი ელემენტი უნდა იყოს განლაგებული თავისუფლად, სხვა ელემენტებისგან ვიზუალურად დამოუკიდებლად. - ელემენტები უნდა შემოისაზღვროს საკმარისი დაშორებებით, მკრთალი ხაზებით, ან ფონის ფერით - ინტერფეისის ყველა ფუნქცია უნდა აღიქმებოდეს თვალის ერთი გადახედვით და არ უნდა ჭირდებოდეს დაფიქრება ან ძებნა. - საიტზე აუცილებლად უნდა ჩანდეს სტანდარტული და საჭირო ელემენტები: ძებნა, მენიუ, კატეგორიები, ლოგო, დასახელება, საკონტაქტო ინფორმაცია, ავტორიზაცია, ნავიგაცია და ა.შ. - ნებისმიერი ინფორმაცია უნდა იყოს ხელმისაწვდომი ზედმეტი ძებნის გარეშე, ინტუიციურად. - ელემენტებს უნდა ქონდეთ მოკარნახე საინფორმაციო ტექსტი მაუსის გადატარებისას. - ღილაკის მონიშვნა ხდება ფონის ფერის შეცვლით, ტექსტის ფერის შეცვლით(ან გამსხვილებით), ან მკრთალი ჩარჩოს გამოჩენით. შესაძლებელია ანიმაციის ეფექტების გამოყენებაც. - საიტის დიზაინში გათვალისწინებული უნდა იქნას ყველა მიღებული პრაქტიკა ==== საჭირო ლინკები ==== -- მატერიალის რეკომენდაციები დიზაინზე https://material.io/ -- რუკის შედგენა XMind https://www.gloomaps.com https://www.justinmind.com/thank-you-win -- დიზაინი და გრაფიკა https://www.figma.com -- მაკეტის შედგენა https://moqups.com https://app.mockplus.com
==== ლენდინგის ტიპის საიტების შემუშავება ==== ლენდინგი არის ერთი გარკვეული დანიშნულებით შექმნილი საიტი და შეიძლება ემსახურებოდეს რაიმე პროდუქტის რეკლამას, გაყიდვას, კომპანიის ან რაიმე ღონისძიების შესახებ ინფორმაციას, ასევე შეიძლება იყოს უბრალოდ პორტფოლიო, პირადი ბლოგი, ან ორგანიზაციის წარმომადგენლობითი საიტი. მთავარი განმასხვავებელი სხვა საიტებისგან არის კონცენტრირება ერთ ამოცანაზე. ლენდინგის პრინციპებით შეიძლება სხვა ტიპის საიტის ნებისმიერი გვერდის შექმნა. ლენდინგის მთავარი ლოზუნგია: ერთი გვრდი, ერთი შეთავაზება, ერთი მოქმედება. ლენდინგზე მომხმარებლის ქმედების კლასიკური სცენარები: 1. ვნახე-გავიგე-გავაკეთე 2. ყურადღების მიქცევა-დაინტერესება-სურვილის გაჩენა-მოქმედება 3. ყურადღების მიქცევა-შთაბეჭდილების მოხდენა-ეფექტური შეთავაზება-მოქმედება 4. პრობლემის წარმოჩენა-პრობლემის გამწვავება-იმედის გაჩენა-გადაწყვეტის შეთავაზება ლენდინგის ტიპის საიტის პრინციპები - ლენდინგზე ყველა ინფორმაცია უნდა იყოს ერთი იდეის ირგვლივ - ლენდინგ გვერდი უნდა იკითხებოდეს შინაარსობლივად მიყოლებით - გვერდზე ყველა ბლოკი უნდა იყოს განლაგებული მნიშვნელობის მიხედვით ზევიდან ქვევით - მთავარ გვერდზე ცენტრში უნდა იყოს გამოსახული ყველაზე მნიშვნელოვანი ინფორმაცია, ეფექტური სურათისა თუ მნიშვნელოვანი ტექსტის სახით. - ცენტრალურ არეალში უნდა იყოს მთავარი მოქმედებაც, რომელიც მომხმარებელმა უნდა შეასრულოს. შეცდომები ლენდინგ საიტის კეთებისას - გრძელი ტექსტები - ძალიან გრძელი გვერდი - ერთი შეხედვით ძნელად აღსაქმელი კონტენტი - ზედმეტად ბევრი ელემენტები და გადატვირთული ფუნქციონალი ლენდინგის შემადგენელი ბლოკები, სექციები - გვერდი უნდა დაიყოს აზრობრივ სექციებად - მთავარია საწყისი ბლოკი, შთაბეჭდილების მოსახდენად - შემდეგ აღწერის ბლოკები, ინტერესის გაღვივებისთვის - შემდეგ შეთავაზებების ბლოკები, დასარწმუნებელი არეალი - ბოლოში საბოლოო მოქმედების ბლოკი - სექციები გამოყოფილი უნდა იყოს საკმარისი დაშორებებით - სექციების მონაცვლეობა უმჯობესია ფონის კონტრასტული ცვალებადობით - ლენდინგის ელემენტები უნდა იყოს ვიზუალურად დიდი და შთაბეჭდილების მომხდენი - სათაურები და ტექსტები უნდა იყოს ერთნაირად სტილიზებული
მარკაპის შედგენის პრინციპები 1. მარკაპის თანამიმდევრობა - დიზაინის მაკეტის შესწავლა და ანალიზი, მნიშვნელოვანი საკითხების ჩამოწერა - ფაილების სტრუქტურის მომზადება, კოდის საწყისი სახით გამზადება - საიტის გარე HTML სტრუქტურის შექმნა მაკეტის ლოგიკური იერარქიის მიხედვით, ადაპტურობის მიცემა მინიმუმ 360 px ზომაზე, გატესტვა ადაპტივზე და შეცდომებზე - საწყისი გვერდისა და უცვლელი ელემენტების მარკაპი - ინტერაქტიული ელემენტების დამუშავება - საიტის სხვა გვერდების მარკაპის აწყობა - გატესტვა ადაპტივზე, კოდის ვალიდურობაზე და შეცდომებზე 2. სწორი კოდის პრინციპები - ნაკლები კოდი, ნაკლები იერარქია - ტეგები ყოველთვის უნდა დაიხუროს - აუცილებელია < !DOCTYPE html > - CSS ფაილების ლინკები უნდა იყოს ჩასმული Head-ში - ჯავასკრიპტის ფაილები უნდა იყოს ბოლოში < script type="text/javascript" src="path/to/anotherFile.js" >< /script > - HTML და CSS კოდმა უნდა გაიაროს ვალიდაცია - კოდის ყველა მნიშვნელოვან ფრაგმენტს უნდა ქონდეს კომენტარები - კოდის ტეგები ყოველთვის პატარა ასოებით უნდა დაიწეროს. - სურათებს აუცილებლად უნდა ქონდეთ ტეგი alt - ფუნქციური ელემენტები და a ლინკები ჯობია ჩავსვათ div ჩარჩოში - ლოგოს უნდა ქონდეს მთავარი გვერდის ლინკი - ყველა ღილაკი უნდა იყოს ერთნაირ სტილში - ზომის ერთეული არ უნდა იცვლებოდეს, უმჯობესია პიქსელები - არ შეიძლება ტეგებისა და კლასების ერთად გაწერა CSS-ში - ღილაკები კეთდება 3 საშუალებით: input(ფორმისათვის), button(მოქმედებისათვის), a(სხვა გვერდზე ან გვერდის განყოფილებაზე გადასასვლელად) - !important დასაშვებია იყოს მხოლოდ მედია ქუერიებში - #ID იდენტიფიკატორები გამოიყენება მხოლოდ HTML-ში - inline სტილის გასმოყენება დასაშვებია უნიკალურ ელემენტებში, როცა კოდი მცირეა. ასევე იმ ელემენტებში, რომლებიც რაღაცით განსხვავდებიან კლასის სხვა წარმომადგენლებისაგან. - ღილაკების დასაშვები მინიმალური ზომა მობილური ვერსიის შემთხვევაში იწყება 34-48 პიქსელიდან - ყველა ელემენტს უნდა ქონდეს საკუთარი უსაფრთხო დაშორებები - ტექსტურ რედაქტორში html და css მნიშვნელოვანი განყოფილებები უნდა გაერთიანდეს ჯგუფებად - ადაპტივის მედია ქუერიები შესაძლებელია გაიწეროს ეკრანების სტანდარტული ზომების პრინციპითაც და ასევე ნებისმიერი ზომების პრინციპითაც, რომლებზეც საიტის დიზაინი მოითხოვს გადაწყობას. 3. სემანტიკური ტეგები - header = მთავარი ზედა კონტეინერი, ზედა მენიუსა და ნავიგაციისათვის - main = მთავარი ცენტრალური კონტეინერი, ძირითადი კონტენტისათვის - footer = მთავარი ქვედა კონტეინერი, სხვადასხვა ლინკებისა და საჭირო ინფორმაციისათვის - aside = მთავარი გვერდითი კონტეინერი, კატაგორიებისა და სხვა ინფორმაციისათვის - section = ნახევრად-ავტონომიური კონტეინერი, ბლოკების ან ელემენტების გასაერთიანებლად - article = ავტონომიური კონტეინერი, ერთი ინფორმაციული ჯგუფის გამოსახვისათვის - nav = კონტეინერი ნავიგაციის ღილაკებისათვის - H1-H6 = ტეგები სათაურებისათვის, მნიშვნელობის მიხედვით - გვერდის სტრუქტურა იწყობა იერარქიით: მთავარი კონტეინერი-კონტეინერი-ბლოკი-ელემენტები 4. ტექნიკური საკითხები - საიტის ადაპტიური(რესპონსივი) მარკაპის მთავარი მეთოდია Flex ან Grid მეთოდები - მარკაპის საწყისი დიდი ეკრანის ზომა არის მინიმუმ Full HD გაფართოება 1920x1080 - გვერდი უნდა იყოს ადაპტიური ეკრანის ყველა ზომაზე 320px ან 360px მინიმალური ზომით - გვერდის კონტენტი სასურველია იყოს მაქსიმუმ 1200px-1600px ზომამდე ჰორიზონტალურად - ზომის ადაპტაციური ცვლილება ხდება ელემენტების დრეკადობით(მინიმალურ ზომამდე)+გადაადგილებით - ჩატვირთვის სისწრაფე მისაღებ ფარგლებში უნდა იყოს, კომპიუტერის და მობილურის ვარიანტებში - სურათების ზომა ოპტიმალური უნდა იყოს, ასევე კოდის და ბიბლიოთეკების ზომებიც - კოდის ჩატვირთვა უნდა მოხდეს სწორი მიმდევრობით, ასევე უმჯობესია კოდის კომპრესია. - სავალდებულოა კოდის გავლა ვალიდურობაზე - საწყისი HTML გვერდი უნდა იყოს ფაილში index.html - CSS და JS ფაილები უნდა ინახებოდეს ცალკე - სასურველია საიტის ბანერების/სურათის ჩატვირთვა CSS ფაილიდან, რათა მხოლოდ ერთხელ ჩაიტვირთოს - სასურველია საიტის ზოგადი ჩარჩოს(მთავარი კონტეინერების) CSS ჩაიწეროს ცალკე ჯგუფად, ან ცალკე ფაილად, ხოლო ბლოკების და ელემენტების CSS კი ცალკე ჯგუფად, ან ცალკე ფაილებად. - სურათები უნდა ინახებოდეს fotos, images და icons ფაილებში 5. უსაფრთხო მარკაპის პრინციპები - კოდი უნდა შემოწმდეს ვალიდურობაზე - ყველა ბრაუზერში ერთნაირად უნდა ჩანდეს გვერდი - ტექსტური არეები უნდა შემოწმდეს ძალიან გრძელ და მოკლე ტექსტებზე - ყველა ბლოკი უნდა შემოწმდეს დიდი და პატარა მოცულობის კონტენტზე - ყველა ბლოკის ადაპტურობა და სწორი განლაგება უნდა შემოწმდეს ყველა ზომის ეკრანზე. 6. SEO მოთხოვნები - აუცილებელია საიტის ფავიკონი < link rel="icon" > 32x32 PNG საწყის ფოლდერში - ყველა გვერდზე უნდა იყოს 1 ცალი H1 ტეგი - ყველა სურათს სასურველია ქონდეს alt ტეგში სწორი სახელი SEO გათვალისწინებით - გვერდების title ტეგში უნდა გაიწეროს გვერდის მისამართის იერარქია და ბოლოში KEY სიტყვა - აუცილებელია საიტის რუკის შედგენა Google ინდექსაციისათვის - აუცილებელია robot.txt ფაილი საძიებო ბოტებისათვის 7. მარკაპის გატესტვა - დიზაინის ვიზუალთან თანხვედრაში შემოწმება - სხვადასხვა ბრაუზერებში დიზაინთან შესაბამისობის ტესტირება - ბლოკების ტესტირება დიდი და მცირე ზომის კონტენტზე - ფორმების ფუნქციონალის შემოწმება - ღილაკების, ლინკებისა და აქტიური ელემენტების შემოწმება - რესპონსივის გატესტვა ეკრანის მინიმუმიდან მაქსიმალურ ზომებდე - SEO ოპტიმიზაციაზე შემოწმება - ვალიდაციაზე შემოწმება 8. საჭირო ლინკები და პროგრამები - ვალიდურობაზე HTML შემოწმება https://validator.w3.org - ტექსტის რედაქტორები SublimeText Notepad++ VisualCode კლასების სახელდებისა და CSS ფაილის აგების მეთოდოლოგიები 9. BEM მეთოდოლოგია, მეთოდოლოგია მთლიანად მორგებულია კოდის მრავალჯერადად გამოყენებაზე - B = ბლოკი E = ელემენტი M = მოდიფიკატორი, კომპონენტური მიდგომის მეთოდოლოგია - BEM აგებულია ინტერფეისის ბლოკებად დაყოფაზე, ბლოკზეა დაფუძნებული კლასებისა და ფაილების სისტემაც, ბლოკი არის დამოუკიდებელი და ავტონომიური, შეიძლება გამოყენება მრავალჯერადად - დასაშვებია ბლოკებში ბლოკების ჩასმა, ასევე ელემენტების ელემენტებში - ყველა ბლოკს აქვს კლასი, ამ კლასის გავლით ხდება ელემენტებისა და მოდიფიკატორების სახელების დარქმევა - ბლოკის სახელი უნდა აღნიშნავდეს მის შინაარს და დანიშნულებას(menu), და არა მახასიათებელს(red, big). - ბლოკის ყველა ელემენტის(მათ შორის ბლოკების) სახელები მთავარი ბლოკის სახელიდან იწარმოება. - სახელების გამყოფია ტირე "-", ელემენტის გამყოფი ბლოკისგან ორმაგი ქვედა ტირე "__", მოდიფიკატორის სახელის გამყოფია ერთი ქვედა ტირე "_" ან ორმაგი ტირე "--" - სახელების მინიჭების მაგალითი: .card, .card__img, card--dark, card__img--dark - რთული მაგალითი: header__red-block_theme--green-forest აქ header ბლოკის სახელია, red-block ელემენტის სახელია, theme მოდიფიკატორია, green-forest მოდიფიკატორის მნიშვნელობაა - მოდიფიკატორი აღწერს ბლოკის ან ელემენტის სტილს, მდგომარეობას ან ქცევას. - მოდიფიკატორის სახელი იწერება: _სახელი_მნიშვნელობა search-form__button_size_m - BEM-ის მიხედვით CSS-ში არ არის ტეგები და ჩასმული სელექტორები, ასევე არ გამოიყენება კომბინირებული სელექტორები, ატრიბუტები და ID იდენტიფიკატორები - BEM-ში არის მიქსები, ანუ ორი კლასის მქონე ელემენტები, ერთი კლასია ზოგადი(საერთო), მეორე კი კონკრეტულად ელემენტისთვის. საჭიროა სხვა ბლოკში ჩასმული ბლოკის აღწერისთვის. - ფაილურ სტრუქტურაში ბლოკს აქვს თავისი ფოლდერი იგივე სახელით, ფოლდერში მოთავსებულია ყველა საჭირო ტექნოლოგია და ფაილი რაც ბლოკს ჭირდება. ბლოკის მოდიფიკატორები და ოპციები მოთავსებულია ბლოკის ფოლდერის ცალკეულ ფოლდერებში თავისივე დასახელებით. 10. OOCSS მეთოდოლოგია - CSS-ში ცალკე იწერება სტრუქტურის სტილი და ცალკე გაფორმების. HTML-ში ელემენტს ენიჭება 2 კლასი, სტრუქტურის და გაფორმების. class="btn btn-blue">ცისფერი ღილაკი< /a > 11. Atomic CSS ატომარული მეთოდოლოგია - სტილები დაყოფილია, ყოველი ხშირად გამოყენებადი მახასიათებელი ცალკე კლასია - კლასის სახელი შედგენილია თვისებებისაგან class = "F1-start W-20px P-20 Bxz-bb" 12. SMACSS მეთოდოლოგია Base, Layout, Module, State, Theme - სტილები იყოფა 5 ნაწილად: საბაზისო, განლაგება, მოდული, მდგომარეობა, თემა. - საბაზისო არის ძირითადი ელემენტების სტილები input, button, ul, body, a, reset.css - განლაგების(Layout), ანუ მაკეტის სექციების სტილი header, footer, საზელს შეიძლება დაემატოს l- - მოდულების, ანუ განმეორებადი ელემენტების(ბლოკების) სტილები, სახელს შეიძლება დაემატოს m- - მდგომარეობის სტილები is-error is-collapsed is-hidden სახელს ემატება is- - თემის, ანუ გაფორმების სტილები
ვებსაიტების SEO ოპტიმიზაცია, რანჟირების პარამეტრები და ტექნიკური მოთხოვნები 1. საიტის კონტენტის ოპტიმიზაცია - უნიკალური და საინტერესო კონტენტი - სემანტიკური ბირთვის შედგენა საკვანძო ფრაზებით - დიდი მოცულობის რელევანტური კონტენტი - შინაარსობლივად და გრამატიკულად გამართული კონტენტი - აქტუალური და გაზიარებადი კონტენტი - გამოხმაურებების მქონე კონტენტი - დამალული კონტენტის არარსებობა 2. საიტის სტრუქტურა - ადაპტური დიზაინი - მოხერხებული UserFriendly ინტერფეისი - სტრუქტურული აგებულების მცირე სიღრმე, მაქსიმუმ 3-4 კლიკით გადასვლა - საიტის იერარქიის სწორი, ლოგიკური აგებულება - მობილურისთვის ოპტიმიზირებული ინტერფეისი 3. ტექნიკური SEO ოპტიმიზაცია - SSL სერთიფიკატი - Robots.txt ფაილი - Sitemap ფაილი - გვერდების სწორი დასახელება, სწორი სათაურები - საიტის იკონკა, Title და Description(150 სიმბოლო) ყოველი გვერდისთვის - საიტის ჩატვირთვის სიჩქარე მობილურზე და პერსონალურზე - ვირუსებისა და ფარული რეკლამის არარსებობა - სტრუქტურირებული მონაცემები Schema, Open Graph - მეტატეგების სწორი განაწილება H1, H2, H3... - გვერდზე ერთი H1 სათაური საკვანძო სიტყვებით, სურათების alt ტეგზე დასახელების გაწერა - სტატისტიკური მთვლელები საიტის ფუტერში 4. გვერდების ლინკები, შემომავალი და გამავალი ლინკები - გვერდების ლინკების დამოკლება და კითხვადობა - გვერდების მისამართის აგება საკვანძო სიტყვებით - მთავარი გვერდებისკენ გამავალ ლინკებზე canonical ტეგის გაწერა - არაინდექსირებადი გვერდებისთვის noindex nofollow გაწერა - დუბლირებული გვერდების გამორთვა რანჟირებიდან - 404 შეცდომის ცალკე გვერდი - HTTP გადამისამართება HTTPS-ზე - გაუქმებული და შეცდომის გვერდების გადამისამართება 3XX, 4XX, 5XX - გადამისამართებები www-დან მის გარეშე, სლეშით და გარეშე, index.html index.php-დან გარეშე - ცუდი გამავალი ლინკებისთვის, ტექნიკური გვერდებისთვის და დუბლირებული გვერდებისთვის nofollow გაწერა < a href="http://www.example.com" rel="nofollow" >Anchor text here< /a > 5. საიტის ინდექსაციის გაუმჯობესების მეთოდები - სურათის ზომების შემცირება - საკვანძო სიტყვებით დასპამვისგან თავის არიდება - საიტის დომენის რელევანტობა შინაარსთან, მოკლე და შესაფერისი დასახელება - მნიშვნელოვანი გვერდებისა და სიახლეების ლინკების განთავსება გარეთა გვერდებზე, ასევე ფუტერში - შიგნითა გვერდების თავში სანავიგაციო ლინკების ჯაჭვი - საიტის ლინკების განთავსება ფორუმებზე და სხვა პოპულარულ საიტებზე - საიტზე ყოფნის დროის გაზრდა, დათვალიერებული გვერდების რაოდენობის გაზრდა, კონვერსია - პაგინაციის გვერდების ოპტიმიზაცია - საიმედო ჰოსტინგი კარგი პინგით 6. გამოსადეგი კოდები - საკვანძო სიტყვის შემოწმება საიტზე site:https://www.hipermarket.ge ავეჯი - დუბლირებული გვერდის დაბლოკვა საძიებო ბოტისთვის robots.txt-ში User-agent: * Disallow: /page - დუბლირებული გვერდის დაბლოკვა საძიებო ბოტისთვის < meta name="robots" content="noindex, nofollow" / > - კანონიკური გვერდის მითითება ლინკში < link rel="canonical" href="https://site.net/example" / >.
===== ტესტირების მეთოდოლოგიები ===== Quality Control(QC) = ხარისხის კონტროლი, პროდუქტის ხარისხზე ორიენტირებული მიდგომა Quality Assurance(QA) = ხარისხის უზრუნველყოფა, ტესტირების ეფექტურ მეთოდებზე ორიენტირებული მიდგომა, გრძელვადიანი და სრული უზრუნველყოფა ===== ტესტირების საკითხები ===== -- რატომ არის საჭირო ტესტირება = ხარვეზები არის არამარტო შეცდომების გამო, არამედ გაუთვალისწინებელი საკითხებისა და ლოგიკური შეუსაბამობების გამოც. -- განსხვავება ტესტერს, QC და QA შორის = ტესტერი მხოლოდ ერთჯერადად ტესტირებაზე მუშაობს, QC არის პროდუქტის ხარისხის კონტროლი, QA კი ხარისხის უზრუნველყოფაა პროდუქტის მთელი სასიცოცხლო ციკლის განმავლობაში. -- ტესტირების მიზანი = პროგრამული უზრუნველყოფისადმი წაყენებულ მოთხოვნებთან შესაბამისობის შემოწმება, შეცდომების აღმოფხვრა და ხარვეზების გასწორება. -- დებაგინგი = პროგრამული ხარვეზების აღმოფხვრა -- პოზიტიური ტესტირება = პროგრამული პროდუქტის მოთხოვნებთან შესაბამისობის დადასტურება კორექტული(სწორი) მონაცემებით -- ნეგატიური ტესტირება = პროგრამული პროდუქტის გამართული მუშაობის ტესტირება არასტანდარტული და გაუთვალისწინებელი მონაცემების შემთხვევებში. -- დესტრუქციული ტესტირება = სტრესული ვითარების შექმნა, გადატვირთვა, უსაფრთხოების გარღვევა და ა.შ. -- სტატიკური ტესტირება = თეთრი ყუთის ტიპის ტესტირება, როცა ტესტირება ხდება პროგრამული კოდის გაშვების გარეშე, პროგრამული უზრუნველყოფის შექმნის ადრეულ ეტაპზე(ვერიფიკაციის ეტაპი) -- დინამიური ტესტირება = როცა ტესტირება ხდება კოდის გაშვებით/პროგრამის მუშაობისას(ფუნქციონალის ტესტირება, ვალიდაციის ეტაპზე). -- ხარვეზის სასიცოცხლო ციკლი = ხარვეზის დაფიქსირება-> გასწორება-> ხელმეორე გატესტვა-> დახურვა -- ხარვეზების პრიორიტეტები = მოგვარების რიგითობა, რამდენად სასწრაფო გადასაჭრელია -- ხარვეზების სერიოზულობა[вug severity] = კრიტიკულობა, რამდენად სერიოზული ხარვეზია -- ტესტირების მონიტორინგი და კონტროლი = ტესტირების მიმდინარეობისას სტატისტიკისა და მეტრიკის წარმოება -- SDLC მოდელები = პროგრამული პროდუქტის შემუშავების მოდელები. მთავარი ეტაპებია: 1. დაგეგმვა-ანალიზი 2. დიზაინი 3. პროგრამირება 4. ტესტირება 5. მომსახურება შესაძლებელია ეტაპობრივი შემუშავება მიმდევრობით: ანალიზი-დიზაინი-კოდირება-ტესტირება-მომსახურება. ასევე შეიძლება მთელი გუნდის ერთობლივი მუშაობით და ყოველ ეტაპზე ტესტირებით, არის შერეული ტიპებიც. -- STLC მოდელები = პროგრამული უზრუნველყოფის ტესტირების სასიცოცხლო ციკლი, Software Testing Life Cycle: 1. მოთხოვნების ანალიზი 2. ტესტირების დაგეგმვა 3. ტესტური ნიმუშების შემუშავება 4. ტესტირება 5. დახურვა - ვერიფიკაცია: ვქმნით ჩვენ სწორად პროდუქტს? = (ჩანაფიქრი) - ვალიდაცია: ვახორციელებთ ჩანაფიქრს სწორად? = (შესრულება) -- ვერიფიკაცია = კოდის გარეშე პროცესი(მანამდე), პასუხობს კითხვაზე: სწორად ვაკეთებთ თუ არა? -- ვერიფიკაციის მეთოდები: reviews, walkthroughs, inspections განსაზღვრაცს არის თუ არა პროგრამული უზრუნველყოფა მაღალი ხარისხის, ვერიფიკაცია მთავრდება Validation-ით -- ვალიდაცია = ითვალისწინებს პროგრამის გაშვებას, ხდება ვერიფიკაციის შემდეგ, პასუხობს კითხვაზე = სწორ პროდუქტს ვაკეთებთ თუ არა? არის თუ არა მოთხოვნების შესაბამისი? -- ვალიდაციის მეთოდები: Black Box, White Box და ფუნქციონალური ტესტირება. ===== ტესტირების ტერმინოლოგიები ===== -- Alfa-test = დეველოპერების ან ტესტერების მიერ განხორციელებული ტესტირებას ეწოდება ალფა-ტესტირება, ტარდება პროგრამული პროდუქტის გაშვებამდე, დეველოპინგის ეტაპზე. -- Beta-test = მომხმარებელთა მიერ განხორციელებულ ტესტირებას ეწოდება ბეტა-ტესტირება, ტარდება პროგრამული პროდუქტის გაშვების შემდგომ, მოხმარების ეტაპზე. -- Experience-based Test Techniques (Exploratory Testing) = გამოცდილებაზე დაფუძნებული ტესტირება, როცა ტესტერი თვითონ წყვეტს რა გატესტოს -- Smoke = ზოგადი(ზედაპირული, სწრაფი) ტიპის ტესტირება, ხდება პროექტის ყოველ ახალ ვერსიაზე, ხარვეზების ადრეული აღმოჩენისათვის -- Severity = ბაგის გავლენის სერიოზულობა -- Priority = ბაგის გასწორების რიგითობა -- Sanity = კონკრეტული ფუნქციონალის ტესტირება, ხდება Smoke-ს შემდეგ, ძირითადად ხელით -- Regression = განმეორებითი ტესტირებები ახალი ფუნქციონალის დამატებისას, რათა დავრწმუნდეთ ცვლილებებმა მოახდინა თუ არა გავლენა არსებულ და გატესტილ ნაწილზე -- Re-test = განმეორებითი ტესტირება ხარვეზების გასწორების შემდეგ -- black box = ტესტირება კოდთან წვდომის გარეშე, გარეგანი ტესტირებით -- white box = ტესტირება კოდთან წვდომით, როცა ვიცით რისგან შედგება -- Test summary report = ტესტირების შედეგების ანგარიში ცხრილის(ან სიის) სახით. ანგარიშში იწერება: ტესტის ნომერი(ტესტ-კეისის ID), სახელწოდება, ოპერაციის/პროცედურის აღწერა, მოსალოდნელი(სწორი) შედეგი, ტესტირების შედეგი, ხარვეზის სიმძიმე. ანგარიშში შეიძლება იყოს შეტანილი სტატისტიკური მონაცემები ტესტების რაოდენობაზე და ტიპზე, შენიშვნები, რჩევები და ა.შ. -- test data სატესტო მონაცემები, ტესტირებამდე ხდება მათი წინასწარი შეგროვება ხელით ან გენერაცია პროგრამულად -- Test Scenario = გატესტვის სცენარი, შეიცავს რამოდენიმე საფეხურს(პროცედურებს) -- Test Suite = შესრულების მიხედვით დალაგებული ტესტ-კეისების გაერთიანება -- State Transition Technique = მდგომარეობის გადასვლის ტექნიკა. გამოიყენება იმ შემთხვევებში, როცა ხდება სისტემის მდგომარეობის შეცვლა, მაგალითად პაროლის 3-ჯერ არასწორად შეყვანის შემდეგ სისტემა იბლოკება. -- Shift Left Testing = ტესტირების გადაწევა პროდუქტის შემუშავების ადრეული ეტაპებისაკენ. -- RTM (Requirements Traceability Matrix) = მოთხოვნილებათა თვალყურის(შესაბამისობის) 2 განზომილებიანი მატრიცა, სადაც ყველა სახის მოთხოვნათა ერთობლიობა(დიზაინის, ბიზნესის, სისტემური, უსაფრთხოების და ა.შ.) დაკავშირებულია ტესტ-კეისებთან(ყველა-ყველაზე). ხშირად არის ტესტ-გეგმის ნაწილი, გამოიყენება მოთხოვნილებათა შესრულებისა და მათი შესაბამისი ტესტირების კონტროლისათვის. -- ტესტ-დიზაინი(Test Design) = ტესტების დაგეგმვა და შემუშავება -- ტესტ-სტრატეგია(Test strategy) = ტესტირების პროცესის მიმდინარეობის სტრატეგია -- ტესტ-გეგმა(Test plan) = ტესტირების პროცესის დეტალური გეგმა, აღწერა -- ჩეკ-ლისტი(Check list) = გასატესტი საკითხების და ტესტირების იდეების ჩამონათვალი, მოკლე აღწერებით -- ტესტ-კეისი(Test case) = კონკრეტული ფუნქციონალის ტესტირებისთვის საჭირო მოქმედებათა დეტალური აღწერა -- ბაგ-რეპორტი(Bug report) = ანგარიში ხარვეზებზე, ივსება ტესტ-კეისების შესრულებისას. რეპორტში დეტალურად იწერება გასატესტი საკითხი, მოსალოდნელი შედეგი და აღმოჩენილი ხარვეზი. -- ტესტ-რეპორტი(Test report) = ანგარიში ტესტ-კეისების შესრულებაზე, კეისების შესრულებისა და აღმოჩენილი ხარვეზების ზოგადი სტატისტიკა -- Inspection in software engineering = ინსპექცია პროგრამული უზრუნველყოფის შემუშავების დროს მცოდნე სპეციალისტების მიერ, რომლებიც ეძებენ დეფექტებს მკაფიოდ განსაზღვრული პროცედურებით. -- Walkthroughs In software engineering = პროგრამული უზრუნველყოფის ეტაპობრივი განხილვის სახელმძღვანელო ექსპერტული შეფასებისათვის, რომლითაც დიზაინერი ან პროგრამისტი ჯგუფის წევრებთან განიხილავს ეტაპობრივად პროგრამულ პროდუქტს, წევრები კი სვავენ კითხვებს და აკეთებენ კომენტარებს შესაძლო შეცდომებსა და პრობლემებზე. -- Reviews In software development = პროგრამული პროდუქტის რეცენზირების ტიპი, რომლის დროსაც ხდება მისი შესწავლა ავტორის ან მისი კოლეგების მიერ პროდუქტის ხარისხისა და ტექნიკური შემადგენლობის შესაფასებლად. -- BrowserStack = სხვადასხვა ბრაუზერებისა და ოპერაციული სისტემების ემულატორი. -- შავი ყუთის ტექნიკები: Equivalence Partitioning, Boundary Value Analysis, Decision Table Testing, State Transition Testing,Use Case Testing); -- თეთრი ყუთის ტექნიკები: Statement Testing and Coverage, Decision Testing and Coverage, The Value of Statement and Decision Testing); -- გამოცდილებაზე დაფუძნებული ტექნიკებით ტესტირება: Error guessing, Exploretory testing, Checklist-based Testing. ==== ტესტირების 7 პრინციპი ==== 1. დეფექტების ვერპოვნა არ ნიშნავს რომ ისინი არ არსებობს. 2. სრული ტესტირება ყველა შესაძლო შემთხვევისთვის არ არსებობს, მთავარია სწორი პრიორიტეტების განსაზღვრა 3. ტესტირების დაწყება უმჯობესია ადრეულ ეტაპზე, ხარვეზების დროული გასწორებისთვის 4. შეცდომების უმრავლესობა მცირე ადგილზეა ერთად დაგროვებული 5. მუდმივად ერთი ტიპის ტესტირების გამოყენებისას შეცდომების აღმოჩენა მცირდება და ვეღარ ხდება 6. სხვადასხვა ტიპის პროდუქტი სხვადასხვანაირად იტესტება, ტესტირების ტიპი დამოკიდებულია კონტენტზე 7. პრობლემების პოვნა და გასწორება არ არის ეფექტური, თუ პროდუქტი არ აკმაყოფილებს წაყენებულ მოთხოვნებს. ტესტირება შეიძლება მოხდეს პროექტის დასრულების შემდეგ სრულად, ან დასრულებამდე ეტაპობრივად(იტერაციულად), პროექტის მზადების პარალელურ რეჟიმში. ტესტირება არსებობს მრავალი ტიპის: ფუნქციონალური, უსაფრთხოების, თავსებადობის, სისტემური, სტრესული, მწარმოებლური(სისწრაფე დატვირთვაზე), ინტეგრაციული, საინსტალაციო, ინტერფეისის(უსაბილიტი), საკონფიგურაციო და ა.შ. ტესტირების დონეები Test Levels შეიძლება დავყოთ: 1. მოდულური(Unit, ერთეულის) ტესტირება, პროდუქტის ცალკეული ნაწილის ტესტირება 2. ინტეგრაციული/კომპლექსური(Integration, მოდულების ერთობლივი მუშაობის) ტესტირება 3. სისტემური(System, მთელი სისტემის) ტესტირება 4. გამოყენებითი, მოთხოვნებთან(Acceptance, სპეციფიკაციები) შესაბამისობის ტესტირება ==== ტესტირების უნივერსალური მეთოდოლოგია ==== 1. გასატესტი პროდუქტის ანალიზი, მთავარი და მეორეხარისხოვანი საკითხების განსაზღვრა, ფუნქციონალის შესწავლა, დამახასიათებელი ნიუანსები. 2. ტესტირების მოთხოვნების ჩამოყალიბება, მნიშვნელოვანი საკითხების გამოყოფა და ტესტირების ზოგადი გეგმის გაწერა. 3. ტესტირების გეგმის დეტალიზაცია, ჩეკ-ლისტებისა და ტესტ-კეისების შედგენა. 4. დეტალური ტესტირება გეგმაში გაწერილი პრიორიტეტების მიხედვით, ბაგ-რეპორტინგი. 5. ზოგადი გეგმისა და ჩეკ-ლისტების კორექტირება საჭიროების მიხედვით. 6. განმეორებითი ტესტირება, ბაგ-რეპორტინგი. 7. ტესტირების შედეგის აღწერა უნდა იყოს დეტალური და კონკრეტული! -- ტესტირების გეგმას აუცილებლად უნდა გაუკეთდეს აღწერა მნიშვნელოვან საკითხებზე: წაყენებულ მოთხოვნებზე, ვადებზე, რისკებზე, გამოყენებულ რესურსებზე, საჭირო დოკუმენტაციაზე, მონაცემთა შეგროვებაზე, ტესტირების სტრატეგიაზე და ა.შ. ტესტირების გეგმის აგებულება: 1. ჩეკ-ლისტები(სია) ტიპების მიხედვით(ტიპი: ვიზუალური ტესტირების ჩეკ-ლისტი, ფუნქციონალურის ჩეკ-ლისტი, სისტემურის, პროგრამულის და ა.შ.) 2. ჩეკ-ლისტები გასატესტი საკითხების მიხედვით(ვიზუალურში: ზოგადი დიზაინის ჩეკ-ლისტი, ინტერფეისის, რესპონსივის და ა.შ.) 3. ტესტ-კეისები კონკრეტულ საკითხებზე და ფუნქციონალზე(ზოგად დიზაინში: საიტის ფერთა გამა, კონტრასტები და ა.შ.) 4. ტესტირების გეგმა შეიძლება იყოს 2 ან ბევრ საფეხურიანი. საწყისი საფეხურია ტიპები, შემდეგ სიები და ქვესიები(ჩეკ-ლისტები), ბოლოს ტესტ-კეისები. ტესტირება ხდება ტესტ-კეისების ან ჩეკ-ლისტების მეშვეობით, პირველი არის გასატესტი პროცედურების დეტალური აღწერა, მეორე კი მხოლოდ გასატესტი საკითხების ჩამონათვალი. ტესტ-კეისის შემადგენლობა(ასეთივე შეიძლება იყოს ბაგ-რეპორტის შაბლონიც): 1. ტესტ-კეისის ნომერი ID 2. ტესტ-კეისის სახელწოდება(სათაური) 3. წინასიტყვაობა, ტესტირებისთვის საჭირო წინაპირობების მოკლე აღწერა 4. შესასრულებელ მოქმედებათა(პროცედურები) დეტალური აღწერა, თანამიმდევრობა 5. მოსალოდნელი შედეგი, რას ველოდებით ტესტირებისაგან 6. სტატუსი, ტესტირების შედეგი(Success, Failed, Blocked) 7. სერიოზულობა: რამდენად კრიტიკულია 8. პრიორიტეტი: რამდენად სასწრაფოდ მოსაგვარებელია 9. დამატებითი ინფორმაცია(საჭიროების მიხედვით): ავტორი, თარიღი, კომენტარი, სკრინშოტი, ფაილი და ა.შ. ბაგ-რეპორტის შაბლონი2 1. ID 2. ხარვეზის სათაური 3. ხარვეზის აღწერა 4. შესასრულებელი პროცედურები 5. მოსალოდნელი შედეგი 6. ფაქტიური შედეგი 7. დასკვნა ხარვეზის სერიოზულობა 1. Blocker = ბლოკავს აპლიკაციას, შეუძლებელია მუშაობა 2. Critical = მნიშვნელოვანი და დამაზიანებელი ხარვეზი 3. Major = მნიშვნელოვანი ხარვეზი 4. Minor = ნაკლებად მნიშვნელოვანი ხარვეზი 5. Trivial = უმნიშვნელო ხარვეზი ხარვეზის პრიორიტეტი 1. High = მაღალი 2. Medium = საშუალო 3. Low = დაბალი ხარვეზის სტატუსი 1. Passed = გაიარა ტესტი 2. Failed = ჩავარდა ტესტი 3. Skipped = გამოტოვებულია 4. In progress = მიმდინარეობს ტესტირება 5. Blocked = ტესტირება შეუძლებელია ტესტ-კეისის შედგენის წესები 1. ერთი ტესტ-კეისი მხოლოდ ერთ კონკრეტულ ფუნქციონალს ამოწმებს 2. ტესტ-კეისი არ უნდა იყოს დამოკიდებული სხვა ტესტ-კეისებზე 3. პროცედურების თანამიმდევრობა უნდა იყოს მკაფიოდ გაწერილი 4. ტესტ-კეისები სრულად უნდა შეიცავდნენ ტესტირებისთვის საკმარის ინფორმაციას რა უნდა იცოდეს ტესტერმა 1. კომპიუტერული საკითხების ცოდნა 2. ტესტირების თეორია 3. ტესტირების ინსტრუმენტები 4. უნარ-თვისებები
====== საიტების სრული ტესტირება ======= ------------- საიტის აღწერა და ტესტირების ამოცანების განსაზღვრა --------- 1. საიტის თემატიკის, დანიშნულებისა და ტიპის გარკვევა, დოკუმენტაციის შესწავლა 2. საიტის დანიშნულების, წაყენებული მოთხოვნებისა და მნიშვნელოვანი ფუნქციონალის აღწერა 3. ტესტირების მიზნებისა და მთავარი ამოცანების ჩამოყალიბება -------------ვიზუალური ტიპის ტესტირება------------------ 1. საიტის დიზაინთან შესაბამისობა 2. ღილაკებისა და ლინკების მუშა მდგომარეობის შემოწმება 3. რესპონსივის გატესტვა 360 პიქსელამდე 4. responsivis gatestva mobiluris zomebze 5. ვიზუალის შემოწმება ყველა ბრაუზერზე 6. დიზაინის ზოგადი სტილისა და სტრუქტურის შეფასება 7. ინტერფეისის მოხერხებულობის(იუზაბილიტის) შეფასება 8. საიტის ფუნქციონალის შესაბამისობა მოთხოვნებთან 9. კონტენტის შესაბამისობა 10. ტექსტების ზომების, ფერისა და შინაარსის შესაბამისობა ------------ ფუნქციონალური ტიპის ტესტირება ---------- 1. ადმინის ფუნქციონალის ტესტირება 2. ზედა მენიუ, ნავიგაცია, კატეგორიების მუშაობა 3. სხვადასხვა ლინკებისა და ღილაკების მუშაობა 4. რეგისტრაციის, ავტორიზაციის, სხვა ფორმების გამართულობა 5. ფილტრების, დალაგების ფუნქციების მუშაობა 6. ძებნის გამართული მუშაობა 7. ინპუტები და შესავსები ველები 8. ელემენტების ტესტირება: ჩამოსაშლელი სიები, სურათები, ჩეკბოქსები, რადიოები, სლაიდერები 9. მოკარნახე title ტექსტების შემოწმება 10. ფუტერის ტესტირება, პაგინაცია 11. უპლოად ფორმები, არვირთვა/ჩამოტვირთვა 12. გრძელ ტექსტებზე მდგრადობა ------------ ტექნიკური ტიპის ტესტირება ------------- 0. SEO გამართულობა 1. დატვირთვაზე ტესტირება 2. უსაფრთხოება 3. მკვდარი გვერდები 4. კოდის ვალიდურობა(HTML, CSS) 5. robots.txt ფაილი 6. sitemap ფაილი 7. ჩატვირთვა, რეაგირების სისწრაფე 8. იკონკა, გვერდების title სათაურები 9. SSL სერტიფიკატი 10. H1-H6 ტეგები 11. სტატისტიკის მთვლელები 12. 404, 301 და სხვა გადამისამართებები 13. სტრუქტურირებული მონაცემები scheme.org 14. დუბლირებული გვერდები 15. საიტის კუკ-ფაილები 16. მოკლე ლინკები 18. ბრაუზერებთან თავსებადობა --------------- ტესტირების პროცედურა -------------- 1. საიტის შეფასება, დოკუმენტაციის გაცნობა 2. საიტის გასატესტი გვერდების რუკის შედგენა 3. გასატესტი ფუნქციონალებისა და მეთოდების გაწერა 4. ვიზუალის ტესტირება, UX/UI ინტერფეისის ტესტირება 5. ფუნქციონალის ტესტირება, ტექნიკური საკითხების ტესტირება 6. ონლაინ ინსტრუმენტებით ტესტირება 7. რეპორტი ----------- საიტების ტესტირების ონლაინ ინსტრუმენტები ----------- 1. https://pr-cy.ru/ საიტის გატესტვა ბევრი პარამეტრით 2. https://search.google.com/search-console საიტის პარამეტრების მეტრიკა ბევრი მონაცემებით(რეგისტრაციით) 3. https://www.bing.com/webmasters/ საიტების მონაცემები რამოდენიმე პარამეტრით(რეგისტრაციით) 4. https://pagespeed.web.dev/ საიტების სიჩქარის გუგლის ტესტი 5 https://gtmetrix.com/ საიტის სწრაფი ჩატვირთვის ტესტი 6. https://validator.w3.org/checklink საიტზე პრობლემური ლინკების ძებნა 7. https://validator.w3.org/#validate_by_input მარკაპის HTML ვალიდაციის შემოწმება 8. https://pr-cy.ru/dns/ საიტის დომენის DNS ჩანაწერისა და IP-ის გაგება
==== Manual ტესტირება, საფუძვლები ==== ==== მოსამზადებელი სამუშაოები ==== 1. Figma დაინსტალირება 2. Notepad რედაქტორი 3. Sublime Text დაინსტალირება 4. lightshot სკრინშოტერი 5. word საოფისე პროგრამა 6. Trello რეგისტრაცია, შესწავლა 7. Jira სამუშაო გარემოს შესწავლა 8. HTML, CSS, JS ზოგადად შესწავლა ===== კონკრეტული საკითხები რაც უნდა ვიცოდეთ ===== 1. ტესტ-გეგმის შედგენა 2. ჩეკ-ლისტების შედგენა 3. ტესტ-კეისების შედგენა 4. ტესტ-სცენარების შედგენა 5. ზღვრული მნიშვნელობების მეთოდი 6. ბაგ-რეპორტის სწორი გაფორმება 7. ბაგ-ტრეკინგის სისტემები(Jira, Redmine(უფასო), Trello) 8. ტესტ-მენეჯმენტის სისტემები(Zephyr, TestRail) 9. დიზაინერული რედაქტორები(Figma, Adobe XD) ===== ზოგადი საკითხები რაც უნდა ვიცოდეთ ===== 1. ტესტირების მეთოდები და ინსტრუმენტები(1 კონსპექტი) 2. საიტის შემუშავების პრინციპები(3 კონსპექტი) 3. დიზაინის საფუძვლები(3 კონსპექტი) 4. მარკაპის პრინციპები, SEO(2 კონსპექტი) 5. საიტების სრული ტესტირება(1 კონსპექტი) 6. ზოგადი წარმოდგენა HTTP, HTML, CSS, JS, SQL(1 კონსპექტი) 7. პროგრამული ინსტრუმენტები(1 კონსპექტი) ===== ტესტერის თვისებები ===== 1. ყველა წვრილმანის გათვალისწინება -- ხარვეზები უმეტესად წვრილმანებში იმალება 2. ყველა შესაძლო ვარიანტის გათვალისწინება -- ხარვეზები შეიძლება მხოლოდ ზოგიერთ ვარიანტში იყოს 3. აზრის მკაფიოდ და გასაგებად გადმოცემის უნარი -- სხვა პროფესიის ადამიანებს მათ ენაზე უნდა ავუხსნათ 4. პრობლემის დეტალური ახსნისა და ზუსტი დაკონკრეტების უნარი -- სწორი დოკუმენტაცია აუცილებელი პირობაა ყველა საქმეში 5. კრიტიკული აზროვნება, ცნობისმოყვარეობა, დაკვირვებულობა -- ტესტერის მთავარი თვისებებია 6. საქმის სწრაფი და დროული კეთების უნარი -- აუცილებელი თვისება მაღალანაზღაურებადი პროფესიის შემთხვევაში ==== ხარვეზების სახეობები ==== 1. შეცდომა = როცა რაღაცა არ მუშაობს, ან არასწორია, ან შეუსაბამოა -- მაგ. ფუნქციონალი არ მუშაობს, მენიუს დასახელება არასწორია, ელემენტის დიზაინი შეუსაბამოა 2. ხარვეზი = როცა რაღაცა ზოგჯერ არ მუშაობს, ან რაღაც მხრივ არასწორია, ან ყველაფერი არ არის გათვალისწინებული -- მაგ. შესავსები ველი არ არის დაცული არასწორი მონაცემების შეტანისგან, რესპონსივი არ სწორდება 3. ნაკლი(არასრულყოფილი) = როცა უკეთესად უნდა იყოს, ან უფრო მოხერხებულად -- მაგ. რეგისტრაციის ღილაკი არასტანდარტულია, ან არასწორ ადგილზეა ==== ტესტირების სახეობები ==== 1. მოდულური ტესტირება = კომპონენტებისა და ცალკეული ელემენტების ტესტირება. 2. ინტეგრაციული ტესტირება = კომპონენტთა ურთიერთქმედებების ტესტირება, ელემენტთა ერთობლივი მუშაობის ტესტირება. 3. სისტემის ტესტირება = მთელი სისტემის ტესტირება სრულ გამართულობაზე. 4. გამოყენებითი/სამომხმარებლო ტესტირება = წაყენებულ მოთხოვნებთან შესაბამისობის ტესტირება, მომხმარებელთა მხრიდან გამოყენებაზე ტესტირება. 5. შავი ყუთის ტესტირება = ტესტირება, როცა არ ვიცით როგორ მუშაობს შიგნით სისტემა. 6. თეთრი ყუთის ტესტირება = ტესტირება, როცა ვიცით სისტემის აგებულება და შიგა სტრუქტურა. -- ტესტირება ხდება თავიდან მოდულური მეთოდით, შემდეგ ინტეგრირებული, შემდეგ მთელი სისტემის, ბოლოს კი სამომხმარებლო ტესტირება. ==== ტესტირების დაგეგმვის უნივერსალური მეთოდი: რეკურსია მთავარიდან დეტალებამდე ===== -- ვადგენთ რა არის მთავარი საკითხი/საკითხები -- ვახდენთ მთავარი საკითხის/საკითხების დეტალიზაციას -- ვუბრუნდებით საწყისს და ვახდენთ გადაჯგუფება/დეტალიზაციას -- თუ დეტალიზაცია და გადაჯგუფება აღარ ხდება, პროცესი დასრულებულია ========= როგორ გავტესტოთ, პროცესი ========= 1. წაყენებულ მოთხოვნილებათა შეგროვება, გარკვევა რა და რაზე უნდა გაიტესტოს. 2. ტესტირების მეთოდებისა და სცენარების განსაზღვრა, ჩამოწერა. 3. ჩეკ-ლისტებისა და ტესტ-კეისების შედგენა, გადამოწმება 4. ტესტების შესრულება მიყოლებით. 5. შედეგების ანგარიშების შედგენა, ანალიზი და ახალი ტესტების დაგეგმვა. ====== Manual ტესტირების სამუშაო პროცესი ====== 1. გუნდის სამუშაო გარემოში(ონლაინ პროგრამები Jira, Trello) მენეჯერებისგან მოდის დავალებები გუნდის ყოველი წევრისათვის. 2. ტესტერი იღებს თავის ამოცანებს და ადგენს ტესტ-ქეისებს(ან ჩეკ-ლისტებს) 3. გატესტვის შედეგებს წერს სამუშაო გარემოში გუნდის იმ წევრების მისამართით, ვისაც ეკუთვნით კონკრეტული ბაგების გასწორება(დიზაინერი, ფრონტენდი, ბექენდი) 4. ხარვეზების გასწორების შემდეგ მოდის დადასტურება ამის შესახებ. 5. მენეჯერი ადგენს ახალ ამოცანებს გუნდის წევრებისათვის. ======= Manual ტესტირების უპირატესობები ======= -- ავლენს ვიზუალურ შეუსაბამობებს -- ავლენს UX ინტერფეისის ხარვეზებს -- უკეთესია დაუგეგმავ შემთხვევებში -- შესაძლებელია მომხმარებელთან თანამშრომლობა -- ავლენს გამონაკლის შემთხვევებს -- არის დაბალი ღირებულების ======= Manual ტესტირების ნაკლოვანებები ======= 1. ჭირდება შესრულების მეტი დრო 2. ნაკლები სიზუსტე ტექნიკურ საკითხებში, ფერებში და ზომებში 3. არ ფარავს ყველა სახის ტესტირებას(მაგ. მწარმოებლურობა) ==== როგორ გავიაროთ საიტების ტესტირების პრაქტიკა დამოუკიდებლად ==== -- პრაქტიკების გავლამდე საჭიროა მინიმალური ცოდნა გადაკითხვის დონეზე HTML, CSS, JS სახელმძღვანელოები, ტესტირების ინსტრუმენტების ათვისება, ასევე კონსპექტებისა და დამატებითი საკითხების გადახედვა, მთავარი თემების გუგლში დაძებნა და დამუშავება(საჭირო დრო: დაახლოებით 2 თვე). -- პრაქტიკების გავლის ინსტრუქცია: 1. კონსპექტში "საიტების კლასიფიკაცია" ჩამონათვალიდან სათითაოდ ცალკეულ ტიპზე ვეძებთ შესაბამის მუშა საიტებს(უმჯობესია რამოდენიმეს). 2. ვამუშავებთ ამ საიტების შედგენისა და შემუშავების წესებს კონსპექტის "საიტის შემუშავება, ანალიტიკა" მიხედვით. 3. ვამუშავებთ ამ საიტების არქიტექტურას კონსპექტის "საიტების სტრუქტურა და სტილები" მიხედვით. 4. ვამუშავებთ ამ საიტების დიზაინის აგებულებას კონსპექტიდან "საიტების დიზაინი და ინტერფეისი". 5. ლენდინგის შემთხვევაში ვამუშავებთ დიზაინის აგებულებას კონსპექტიდან "ლენდინგ საიტის პრინციპები". 6. ვახდენთ საიტების ტესტირებას კონსპექტის "საიტების სრული ტესტირება" მიხედვით. 7. ვადგენთ ბაგ-რეპორტებს და ტესტირების შედეგების ჯამურ ანგარიშს. ==== ზოგიერთი კითხვა გასაუბრებაზე Manual ტესტერი ==== 1. რითი განსხვავდება QC და QA -- QC-პროდუქტის ხარისხზე ორიენტირებული მიდგომა -- QA-ტესტირების ეფექტურ მეთოდებზე ორიენტირებული მიდგომა 2. რას ნიშნავს პროგრამული უზრუნველყოფის ტესტირება -- უზრუნველყოფის ტესტირება მასზე წაყენებულ მოთხოვნებთან შესაბამისობაზე 3. რატომ არის საჭირო ტესტირება -- პროგრამული უზრუნველყოფის შეცდომების აღმოფხვრის, ხარვეზების გასწორებისა და სრულყოფისთვის. 4. რა არის ტესტირების 2 მთავარი კატეგორია -- Manual და Automation ტესტირება 5. რა სახეობები არსებობს Manual ტესტირებაზე -- 1. მოდულური 2. ინტეგრაციული, 3. სისტემის 4. გამოყენებითი 5. თეთრი ყუთის 6. შავი ყუთის 6. განსხვავება ალფა და ბეტა ტესტირებას შორის --Alfa პროდუქტის გაშვებამდე ტესტირება ფართო აუდიტორიის მიერ --Beta პროდუქტის გაშვების შემდგომი ტესტირება მომხმარებლის მიერ 7. Manual ტესტირების დონეები -- 1. მოდულური 2. ინტეგრაციული, 3. სისტემის 4. გამოყენებითი 8. რა არის სატესტო სტენდი -- ტესტირებისთვის აუცილებელი აპარატურული და პროგრამული უზრუნველყოფა 9. როგორია Manual ტესტირების პროცედურა -- დაგეგმვა -- ანალიზი, ტესტ-დიზაინი -- ტესტირება -- შეფასება -- დახურვა 10. რა არის ტესტ-კეისი -- ტესტირების პროცედურა და პირობები 11. რა არის API ტესტირება -- პროგრამული უზრუნველყოფის პროგრამული ნაწილის(ლოგიკის) ტესტირება 12. განსხვავება ბაგსა და ხარვეზს(დეფექტს) შორის -- ბაგი არის შეცდომა, შეუსაბამობა, ხარვეზი კი გამოსწორებადი ან გაუმჯობესებადი. 13. რა არის რეგრესიული ტესტირება -- განმეორებითი ტესტირება, ტარდება ხარვეზის გასწორების შემდეგ, ან ცვლილებების შეტანისას. 14. რა არის პოზიტიური და ნეგატიური ტესტირება -- პოზიტიური - როცა ტესტირება ხდება სწორი მონაცემების შემთხვევაში -- ნეგატიური - როცა ტესტირება ხდება არასწორი/დაუშვებელი მონაცემების შემთხვევაში 15. რა არის კრიტიკული შეცდომა -- როცა შეცდომას მნიშვნელოვანი დამაზიანებელ გავლენა აქვს და აუცილებლად უნდა გასწორდეს 16. რა არის პესტიციდის პარადოქსი -- როცა ტესტირების მეთოდები(ტესტ კეისები) არ იცვლება და ამის გამო გამორჩებათ ხარვეზები 17. რა არის ხარვეზების კასკადი -- როცა რაიმე ხარვეზს შეუძლია სხვა ხარვეზების გამოწვევა 18. რას ნიშნავს ხარისხი -- როცა პროდუქტი აკმაყოფილებს მასზე წაყენებულ აუცილებელ მოთხოვნებს 19. რა არის ტესტირება გამოცდილებით -- როცა ტესტირება ხდება მიღებულ გამოცდილებაზე დაყრდნობით, გამოიყენება კვლევით ტესტირებაში 20. რა არის აღმავალი და დაღმავალი ტესტირება -- აღმავალი = როცა ტესტირება იწყება მცირე მოდულებიდან და გადადის ზედა მოდულებისკენ -- დაღმავალი = როცა ტესტირება ხდება ზედა დონის მოდულებიდან ქვედა დონისკენ 21. როდის მთავრდება ტესტირება -- როცა ტესტირების შედეგები დამაკმაყოფილებელია, ან პროდუქტის ხარისხი საკმარის ნიშნულზეა ==== ვაკანსიების კლასიფიკაცია Manual ტესტერზე ==== - trainee - სტაჟიორი = კურსდამთავრებული - junior - ჯუნიორი = 0,5-1 წელი პრაქტიკით - middle - 2-3 წელი პრაქტიკით - senior - 5+ წელი პრაქტიკით - QA tech lead ==== მოთხოვნები ვაკანსიებში ==== 0. ტესტ-გეგმის(ტესტ-დიზაინის) შედგენა 1. ტესტ-კეისების, ჩეკ-ლისტების შედგენა 2. ბაგ-ტრეკინგი 3. ფუნქციონალური ტესტირება 4. API ტესტირება 5. სცენარიების შედგენა 6. Usability ტესტირება 7. ბაგ-რეპორტების დაწერა 8. ბაგ-ტრეკერთან(Gitlab) მუშაობა 9. ტესტური დაფარვა ფრონტისა და ბექის 10. ვინდოვს აპლიკაციის ტესტირება 11. სკრამ ჯგუფთან მუშაობის უნარი 12. სისტემის ლოგების ანალიზი(Android(ბაზაში)/Web(ნეტვორკში)) 13. ბაგების(დეფექტების) კალასიფიკაცია და ტრეკინგ სისტემაში შეყვანა 14. ტესტირების შედეგების ანალიზი და სტატისტიკა 15. ტესტ-დოკუმენტაციის შედგენა 16. შავი ყუთის მეთოდით ტესტირება 17. შეცდომების ძებნა 18. HTTP პრინციპების ცოდნა 19. HTML საბაზისო ცოდნა 20. JS საბაზისო ცოდნა 21. დეფექტების გამოვლენა და რეგისტრაცია Jira-ში 22. რეგრესიული ტესტირება 23. ინტერნეტ მაღაზიის ტესტირება 24. devtools ცოდნა 25. sql ტესტირება 26. ინტეგრაციული ტესტირება 27. არტეფაქტების მართვა 28. XML კოდის ანალიზი 29. UI ტესტირება 30. დატვირთვაზე ტესტირება 31. Backend ტესტირება 32. მუშაობა ტესტირების სისტემებთან SoapUI/Insomnia/Postman 33. მუშაობა ბაგტრეკინგის სისტემებთან HP ALM, Atlassian Jira 34. REST, GRPC ცოდნა 35. Smoke ტესტირება 36. დიზაინ-მაკეტის ტესტირება 37. ბიზნესის მოთხოვნილებების ტესტირება 38. Андроид/iOS ტესტირება სასურველი მოთხოვნები: 1. პროგრამირების ენების ცოდნა 2. ინგლისური მაღალ დონეზე 3. sql ბაზების ცოდნა 4. Linux 5. SoapUI/Postman/JMeter/cURL 6. Git 7. Jira-სთან მუშაობის გამოცდილება 8. CI/CD სისტემებთან მუშაობა 9. bash და git-თან მუშაობა 10. Rest Api ტესტირება 11. Jira, Redmine, Bugzilla ცოდნა 12. Wiki, Confluence ტესტ-კეისების შესანახად
----------- DevTools ----------------- - საიტზე იხსნება F12 ან მარჯვენა ღილაკით inspect - შეიძლება კოდის ჩასწორება და ლაივ რეჟიმში ნახვა 1. Elements მოიცავს html და css კოდს, DOM ხეს 2. Console შეცდომები და გაფრთხილებები, ამოწმებს JS მუშაობას 3. Sources აჩვენებს რა არის ჩატვირთული, ფაილოვანი სისტემა 4. Network აჩვენებს სერვერზე გაგზავნილ მოთხოვნებს, ჩატვირთვის სიჩქარეებს 5. Performances აჩვენებს დატვირთვას კომპიუტერზე 6. Memory აჩვენებს მეხსირებისა და დატვირთვის განაწილებას 7. Application აჩვენებს ქეშს და მეხსიერებას, ასევე ბაზებს 8. Security აჩვენებს კავშირის დაცულობას და სერთიფიკატს 9. Lighthouse აჩვენებს ჩატვირთვის მაჩვენებლებს 10. control + F ძებნა სახელით, ტეგით ან კლასით 11. inspect აჩვენებს ელემენტის კოდს, გვერდის სტატუსს(404,503,200...) DevTools საჭირო ფუნქციები ტესტერისთვის 1. android და ios ემულაცია. 2. CSS სტილების შეცვლა კოდში, ლაივ რეჟიმში. 3. გამოუყენებელი CSS და JS კოდები = Sources->Coverage 4. cookies კუკ-ფაილები = Application->Cookies 5. ელემენტის ძებნა = Element -> control + F (ძებნის ველი) შესაძლებელია ძებნა HTML ან CSS ფაილში. 6. ელემენტების გადაადგილება = HTML-ში ხდება მაუსით გადატანა 7. Cookies კუკების წაშლა = Application -> Cookies -> Clear All DevTools ფუნქციონალი -- ისარი(select) ზედა მარცხენა კუთხეში = ელემენტების მონიშვნისათვის(აჩვენებს მთავარ პარამეტრებს) -- გადამრთველი(Toggle) ახდენს მობილურისა და დესკტოპის ვარიანტებზე გადართვას. Element ფუნქციონალი -- გამოსახავს ელემენტებს და მათ თვისებებს. ელემენტზე მარჯვენა ღილაკის მენიუთი შესაძლებელია კოდის რედაქტირება, კოპირება, დუბლირება და სხვა ოპერაციები. -- Styles = ელემენტების CSS სტილები(კოდი), აქვეა ფსევდოკლასების დამატების ღილაკები(:hov), კლასის დამატების ღილაკი(cls), მთავარ კოდში შესაბამის ადგილზე გადასვლის ღილაკი. ჩანს ელემენტის დაკავებული სივრცე თავის დაშორებებით. -- Computed = იგივეა რაც Style თვისებების უფრო სრული ჩამონათვალით -- Layout = სქემატურად გამოსახავს ელემენტების განლაგებას -- Event Listener = მოვლენების ჩამონათვალი -- Dom Breakpoints = წყვეტის წერტილები(ჩვენს მიერ შექმნილი) -- Properties = თვისებების ჩამონათვალი Network ფუნქციონალი -- რეალურ დროში გამოსახავს ჩატვირთულ ფაილებს, შეგვიძლია ავირჩიოთ რა ტიპის ფაილები გვაჩვენოს. -- ჩატვირთული ფაილების თვისებებია(სიები): Name(სახელი), Status(სერვერის პასუხის კოდი), Type(ფაილის ტიპი), Initiator(რასაც დაჭირდა ფაილი), Size(ზომა), Time(ჩატვირთვის დრო), Waterfall(ჩატვირთვის ვიზუალი) -- ქვევით ბოლოში იწერება გაგზავნილი და მიღებული მოთხოვნების(request), ინფორმაციის(transferred) და საჭირო რესურსების(resources) რაოდენობა, ასევე DOM ჩატვირტვის დრო. -- Record Network Log(შავი მსხვილი წერტილი) = ახდენს ჩატვირთვის პროცესების ჩამოწერას. -- Clear = ჩატვირთვის მონაცემების გასუფთავება -- Filter = ფილტრების მენიუს/ძებნის ჩამოშლა -- Disable cache = ქეშის ჩატვირთვის დამალვა -- Fast3d/No throttling = ჩატვირთვის სიჩქარეების შეცვლა -- Offline = ინტერნეტის გარეშე საიტის გამოჩენა -- Capture Screenshots = ჩატვირთვის სკრინშოტების ჩვენება Console ფუნქციონალი -- შეგვიძლია გავუშვათ ბრძანებები(კოდი) -- ტესტირებისთვის მნიშვნელოვანია შეცდომები და გაფრთხილებები -- Clear = კონსოლის გასუფთავება -- Errors = კოდის შეცდომების ჩვენება -- Warnings = გაფრთხილებები შესაძლო შეცდომებზე Source ფუნქციონალი -- აჩვენებს ყველა ფაილს თავისი შემადგენლობით(კოდი, სურათები, სკრიპტები...) -- შესაძლებელია კოდის რედაქტირება, წყვეტის წერტილების შექმნა(დებაგერში). -- მარჯვენა მხარეს არის კოდის შესრულების ინსტრუმენტები. Lighthouse ფუნქციონალი -- ახდენს საიტის შეფასებას სხვადასხვა მაჩვენებლებით -- Performance = კონტენტის ჩატვირთვის სიჩქარეები, ბლოკირების დრო, DOM სიღრმე -- Accessibility = ინტერფეისის ხელსაყრელობა, სხვადასხვა ელემენტების გამართული მუშაობა. -- Best Practices = რეკომენდაციები -- SEO = SEO ოპტიმიზაცია, კოდის გამართულობა Application ფუნქციონალი -- გამოიყენება ჩატვირთული ელემენტების გამოკვლევისათვის. -- გამოაქვს სხვადასხვა ტიპის მეხსიერების შესახებ ინფორმაცია, ასევე კუკებისა და ქეშის შესახებ Performance -- სხვადასხვა პროცესებზე დახარჯული დროის მონიტორინგი -- გვაჩვენებს რესურსების ჩატვირთვას და ჯავასკრიპტის პროცესების შესრულებას Secuirity -- აჩვენებს ინფორმაციას მოთხოვნებზე და მონიშნავს რის გამოც ვერ იღებს საიტი მწვანე სტატუსს. -- აჩვენებს აქვს თუ არა საიტს SSL სერთიფიკატი Memory -- გვაძლევს ინფორმაციას საიტებისა და აპლიკაციების მიერ მეხსიერების გამოყენებაზე. -- გვაჩვენებს ჯავასკრიპტის კოდებზე დახარჯულ დროს და მეხსირების განაწილებას. Audits -- აკეთებს გვერდის ანალიზს ჩატვირთვისას, იძლევა რეკომენდაციებს ოპტიმიზაციაზე.
---------- Figma ყველაზე პოპულარული საიტების დიზაინ-რედაქტორი დეველოპმენტში ---- - ფიგმაში კეთდება საიტების ინტერაქტიული პროტოტიპები, ინტერფეისის ელემენტები, ვექტორული გამოსახულებები, ლოგოები და ა.შ. აქვს ვერსიის კონტროლი, შესაძლებელია ჯგუფური მუშაობაც. - ინახება ქლაუდში, ასევე აქვს დესკტოპ ვარიანტიც, რომელიც სინქრონიზირებულია ქლაუდთან. ცვლილებები ინახება ინტერნეტში, არის პირობითად უფასო პროგრამა(1 მომხმარებლისთვის). დიზაინის გარდა შესაძლებელია დიაგრამების, ბლოკ-სქემებისა და პროტოტიპების შექმნა. - აქვს 2 მთავარი განყოფილება, ფაილების მენეჯერი და გრაფიკული რედაქტორი. - ყველა ელემენტს აქვს პიქსელებში მითითებული ზომები და დაშორებები, ფერების მნიშვნელობები, ფონტის ზომები, ლინკები და ყველა სხვა პარამეტრები. ასევე მოცემულია CSS კოდის მნიშვნელობები. - ფიგმას პროექტში არის ცალკეული ელემენტები(სურათი, ტექსტი, ფიგურა) და ჯგუფები, ასევე ფენები(Layer) - ზედა მარცხენა მხარეს არის მენიუ და სამუშაო ხელსაწყოები: Frame = გამოიყენება როგორც დაფა(კონტეინერი) სხვა ელემენტებისათვის Figure = გეომეტრიული ფიგურების ხატვა Pen = ხაზები და მრუდები, შეიძლება ტექსტის გადაყვანა მრუდში Text = ტექსტი Hand = არჩევის ინსტრუმენტი Grid = ფრეიმის პარამეტრებში ფონური ბადის მიცემა, დაყოფილია სვეტებად(Columns) ან უჯრედებად - ზედა მარცხენა მხარეს(კუთხეში) არის ჩამოსაშლელი მენიუ, სადაც ხდება ფაილის შენახვა, ვერსიის შენახვა, ექსპორტი. - ზედა მარცხენა მხარეს ფენების(Layers) განყოფილებაში მოცემულია სტრუქტურულ ფენებად დაყოფილი ყველა ელემენტი - ზედა მარცხენა მხარეს კომპონენტების(Assets) განყოფილებაში მოცემულია კომპონენტები(შენახული ელემენტები), აქ ასევე შეიძლება ბიბლიოთეკების ჩატვირთვა. - ზედა მარჯვენა მხარეს დიზაინის(Design) განყოფილებაში არის დიზაინის პარამეტრები(ფერები, გჰანლაგება, ტექსტი და ა.შ.) - ზედა მარჯვენა მხარეს პროტოტიპის(Prototype) განყოფილებაში არის დაკავშირებული ელემენტები, აქ ხდება ფრეიმებს შორის გადასვლების გაკეთება. - ზედა მარჯვენა მხარეს Inspect განყოფილებაში არის დეტალური პარამეტრები და კოდის მნიშვნელობები(პიქსელები, დაშორებები და ა.შ.) შესაძლებელია კოდის 3 ფორმატში გამოტანა: CSS, IOS, Android - ზედა მარჯვენა მხარეს Present ახდენს პროექტის გაშვებას - ზედა მარჯვენა მხარეს მენიუ 100% არის მასშტაბისა და ჩვენების რეჟიმებზე გადართვისათვის. - ცენტრში სახელთან არის ჩამოსაშლელ მენიუში Version History ანუ ვერსიების ისტორია(გაიხსნება მარჯვენა მხარეს) --- ზოგიერთი ფუნქცია ფიგმაში ---- - Greate component - საბაზო(მუდმივი) კომპონენტის შექმნა რაიმე ობიექტისგან/ელემენტისგან. - Duplicate - კლონის შექმნა, კლონირებული კომპონენტები რედაქტირდება ერთდროულად https://www.figma.com/
----------- Jira --------------- Create issue = ამოცანის შექმნა, ჯერ უნდა ავირჩიოთ პროექტი სადაც ვქმნით ამოცანას, მერე კი ვირჩევთ ამოცანის ტიპს(Bug, Task, Epic, Story, Improvement და ა.შ.) და ვავსებთ გამოსული ფანჯარის აუცილებელ ველებს: -- Summary = სათაური -- Priority(Critical, Major, Minor) = პრიორიტეტი -- Status = სტატუსი -- Description = აღწერა -- Attachment = მიმაგრებული ფაილი(სკრინშოტი, ვიდეო) -- Label = ტიპის მინიჭება(გასაფილტრად) -- Assignee = პასუხიმგებლობა(ვინ უნდა მოაგვაროს პრობლემა) -- Pre = საწყისი აღწერა -- Post = საბოლოო აღწერა ტესტირების იერარქია(შეიძლება განსხვავებულადაც) -- Test-plane -> Test-Suite -> TestCase -> Test JIRA შედგება რამოდენიმე კომპონენტისაგან, რომელთა პარამეტრები შეიძლება ვცვალოთ -- (Workflow)Рабочий процесс = სამუშაო პროცესი -- (Issue Types)Типы задач = ამოცანების(პრობლემების) ტიპები -- (Custom Fields)Пользовательские рабочие пространства = სამომხმარებლო არეალი -- (Screens)Окна = ფანჯრები -- (Field Configuration)Настройка рабочих пространств = სამუშაო სივრცეები -- (Notification)Уведомления = შენიშვნები -- (Permissions)Решения = გადაწყვეტილებები განყოფილება issues შეიცავს ფუნქციებს: -- Issue Types(Типы задач) = პრობლემათა(ამოცანათა) ტიპები -- Workflow(Рабочий процесс) = სამუშაო პროცესი -- Screens(Окна) = ფანჯრები -- Fields(Рабочие пространства) = სამუშაო სივრცეები -- Issue Attributes(Свойства задач) = პრობლემათა(ამოცანათა) თვისებები -- ამოცანების(issues) ტიპების ორგანიზება შეიძლება სტანდარტულად და აგილე სისტემით, ან მომხმარებლის მოწყობილი სქემით. Components(Компоненты) JIRA კომპონენტები -- პროექტის ქვეგანყოფილება, გამოიყენება ამოცანების კომბინირებისათვის. -- შეგვიძლია ახალი კომპონენტების დამატება(მაგ: სახელი, აღწერა, ხელმძღვანელი, დანიშნულება) JIRA screen(Окна JIRA) ფანჯრები(ეკრანები) -- ჯირაში შექმნილი issue გამოჩნდება სხვადასხვა ფანჯარაში(სამუშაო სივრცეში). -- შეგვიძლია issue დავაკავშიროთ ფანჯრებთან Associate an issue operation with a screen -- Issue Attributes(Свойства задач) ამოცანების თვისებებში შედის: 1. Statuses(Статусы) = სტატუსები 2. Resolutions(Решения) = გადაწყვეტილებები 3. Priorities(Приоритеты) = პრიორიტეტები სტატუსები(Statuses) გამოიყენება პროექტის შემუშავების პროგრესის მაჩვენებლად 1. To do(Ожидает выполнения) = ელოდება შესრულებას 2. InProgress(Выполняется) = კეთების პროცესშია 3. Open(Открыт) = ღიაა 4. Closed(Закрыт) = დახურულია 5. ReOpened(Переоткрыт) = ახლიდან გაიხსნა 6. Resolved(Решен) = გადაწყვეტილია გადაწყვეტილებები(Resolutions) გამოიყენება ამოცანების შესრულების პროგრესის მაჩვენებლად 1. (Fixed)Исправлено = გასწორდა 2. (Won’t fix)Не будет исправлено = არ გასწორდება 3. (Duplicate)Дубликат = დუბლიკატი 4. (Incomplete)Не завершено = დაუსრულებელია 5. (Cannot reproduce)Не воспроизводится = არ ეშვება 6. (Done)Выполнено = შესრულებულია პრიორიტეტები(Priorities) გამოიყენება ამოცანების მნიშვნელობის გამოსახატავად 1. Critical(Критический) = კრიტიკული 2. Major(Высокий) = მაღალი 3. Minor(Малозначимый) = ნაკლებ მნიშვნელოვანი 4. Blocker(Блокирующий) = ბლოკირებადი 5. Trivial(Тривиальный) = ტრივიალური(ჩვეულებრივი) Issue Security Schemes ამოცანებთან(issues) დაშვების სქემები -- Audit Log(Логи ревизий)= ლოგების აუდიტი -- Issue Linking(Связывание задач) -- Mail in JIRA(Система почты JIRA) -- System events, Custom Events(События) -- Watch list(Контрольный список) -- Issue Collectors(Счетчик задач) -- Development Tools(Инструменты разработки) ჯირაში ამოცანებთან(issues) დაშვება ხდება ID და პაროლის შეყვანის შემდეგ. გამოჩნდება განყოფილება Project(პროექტები) სადაც არის ჩამონათვალი: -- Simple Issue Tracking = ამოცანების ტრეკინგი -- Project Management = პროექტის მენეჯმენტი -- Agile Kanban = აგილე კანბან მეთოდოლოგია -- Agile Scrum = აგილე სკრამ მეთოდოლოგია -- Jira Classic = ჯირა კლასიკური მეთოდოლოგია -- Software Development = პროგრამული უზრუნველყოფა ზოგიერთი ფუნქცია: -- ამოცანების ძებნა = Issues -> search for Issues -- ჯამური ანგარიში = Summary -- აქტივობის ჟურნალი = Activity Stream -- შესაძლებელია შევქმნათ ამოცანის ქვეამოცანა ნებისმიერი რაოდენობით, ან ქვეამოცანა გადავაკეთოთ ძირითად ამოცანად. ქვეამოცანებს არ აქვს თავისი ქვეამოცანები. -- ქვე-ამოცანის შექმნა = Assign More -> Create sub-task -- კონვერტირება ქვე-ამოცანად = Assign More -> convert to sub-task Jira-ს სამუშაო პროცესი(WorkFlow) შედგება: -- სტატუსებისგან(statuses) = ამოცანების სტატუსები სამუშაო პროცესის განმავლობაში -- გადასვლებისგან(transitions) = სტატუსების გარდაქმნები -- დანიშნულებისგან(assignee) = პასუხიმსგებლობების განაწილება პროცესში მონაწილეებზე -- გადაწყვეტილებებისგან(resolution) = განმაპირობებლი მიზეზები -- პირობებისგან(conditions) = გადასვლებზე წვდომის კონტროლი -- ვალიდატორებისგან(validators) = გადასვლების ვალიდაცია ამოცანების სტატუსების შესაბამისობასთან -- თვისებებისგან(properties) = Jira-ს თვისებები გადასვლებისას JIRA Agile -- გამოიყენება ჯგუფური მუშაობისთვის და დაფუძნებულია roadmap(საგზაო რუკა) კონცეფციაზე. -- სტატუსების გადასვლა ხდება To do —> In Progress —> Done პრინციპით -- აგილე ამოცანის(agile-issue) ან ეპიკის(Epic) შექმნა = Getting Started -> Scrum(ან Kanban) კომბინირებული ძებნა Jira-ში -- კომბინირებულ ძებნას აქვს ასეთი სტრუქტურა: Field - Operator - Value -- Field(ველი) = ჯირაში გამოყენებულ მონაცემთა ტიპები, მაგალითად Project, Issuetype, Summary, Security Level, Severity, Priority, Assignee, AffectedVersion, FixVersion, Environment და ა.შ. -- Operator(ოპერატორი) = ველსა და მის მნიშვნელობას შორის დამაკავშირებელი ოპერატორი, მაგალითად: Status = Open, Priority != Major -- ოპერატორები: IN (-ში), = (ტოლია), != (არ არის ტოლი), ~ (შეიცავს), !~ (არ შეიცავს), IS EMPTY(ცარიელია), IS NOT NULL(არ არის ნული). -- სხვა ოპერატორები: WAS, WAS IN, WAS NOT IN, WAS NOT, CHANGED -- მაკავშირებელი სიტყვები: OR, AND, NOT, EMPTY, NULL, ORDER BY მაგალითი: Status = Closed OR Assignee = i.p.freely ფილტრები Filters(Фильтры) -- შესაძლებელია საკუთარი ფილტრებნის შექმნა. ფილტრები იყოფა ტიპების მიხედვით: მონაცემები(date), კომპონენტები(component), პრიორიტეტები(priority), გადაწყვეტილებები(resolution) და ა.შ. ----------------------------------------- Jira თასქების და ბაგების შედგენის წესი: • ივსება სათაურის ველი • ივსება კომენტარის ველი, სადაც კეთდება დეტალური აღწერა ბაგის შესახებ • უნდა აიტვირთოს ბაგის აღმწერი სქრინები ან ვიდეო • უნდა მოხდეს თასქის Assigne (მინიჭება) შესაბამის დეველოპერზე. თუ ფრონტის ბაგია, ფრონტ დეველოპერზე, თუ ბექის ბაგია, ბექ დეველოპერზე. • უნდა მიენიჭოს თასქს პრიორიტეტი. თუ მნიშვნელოვანი ბაგია, High ან Highest პრიორიტეტი. თუ საშუალო პრიორიტეტის ბაგია - Medium, ხოლო თუ დაბალი პრიორიტეტის არის - Low • უნდა მიეთითოს ბაგს, რომელ გარემოზეა აღნიშნული ბაგი (Dev, Staging, Live) • უნდა შეივსოს დანარჩენი დამატებითი აუცილებელი ველები თუ აქვს კომპანიას თასქის შედგენის ჭრილში დამატებული Jira თასქის ფლოუები. რა ფლოუებს გადის თასქი გატესტვამდე და გატესტვის შემდეგ. -- თასქი ჯერ მიდის დეველოპერთან, შემდეგ დეველოპერს გადაყავს პროგრეს სტატუსში, როდესაც დაასრულებს დეველოპერი თასქზე მუშაობას, გადააქვს ტესტინგ სტატუსში, აქ უნდა ჩაერთოს ტესტერი და გატესტოს აღნიშნული დეველოპერის მიერ დასრულებული თასქი. თუ კონკრეტულ თასქზე არ არის ბაგი, ტესტერს გადააქვს Done სტატუსში. თუ რაიმე ხარვეზი აღმოჩნდა, ტესტერი აფეილებს თასქს და უბრუნდება კვლავ დეველოპერს ეს თასქი ცვლილებების შეტანისათვის და გასწორებისათვის. https://www.atlassian.com/software/jira
----------- Trello --------------- -- საიტი trello.com = განკუთვნილია პროექტებისა და ღონისძიებების დაგეგმვისა და თანმიმდევრული შესრულებისათვის -- საიტზე შესაძლებელია სამუშაო დაფის შექმნა, რომელიც შესასრულებელი სამუშაოს ტიპის მიხედვით შეგვიძლია დავყოთ სვეტებად, სვეტებში კი ჩავწეროთ შესასრულებელი/დაგეგმილი პროცედურები, ჩეკ-ლისტები, ტესტ-კეისები და ა.შ. საიტი უზრუნველყოფს კომენტარების დამატებას, შეტყობინებების დაგზავნას, ფაილების მიმაგრებას, დროის ათვლას, ჯგუფურ მუშაობას და ყველა სხვა საჭირო ფუნქციონალს. ტრელოში პროექტზე მუშაობის დაწყება -- მუშაობის დაწყება ხდება დაფის(Board) შექმნით. -- დაფის შემდეგ უნდა შევქმნათ სვეტები(Add List). სვეტები შეიძლება იყოს სხვადასხვა ტიპის და განკუთვნილი პროექტის სხვადასხვა მონაწილისათვის. სვეტები ასევე შეიძლება დახარისხებული იყოს გაკეთებული და გასაკეთებელი საქმეებით, ან დაყოფილი თემატიკურად. -- სვეტებში(List ლისტებში) უნდა გავხსნათ ბარათები(Card) სახელით(იგივე სათაურით), შემდეგ შეგვიძლია გავუწეროთ აღწერა, კომენტარები, მივამაგროთ ფაილები და ა.შ. ბარათების(Card ქარდების) გადატანა სხვა სვეტში ხდება მაუსით გადათრევით. -- Card-ების მარჯვენა ზედა მენიუ: 1. Members = ამოცანაში(იგივე Task) მონაწილის(ან პასუხისმგებელი პირის) დამატება. 2. Labels = ამოცანის ტიპის(იგივე სახეობის) განსაზღვრა. 3. Checklist = ჩეკლისტის(სიის) დამატება. 4. Dates = თარიღის ჩასმა(როგორც წესი, შესრულების ბოლო ვადა) 5. Attachment = ფაილის ან სხვა დოკუმენტის მიმაგრება. 6. Cover = კარტის ზევით ფონის მიცემა, სურათის ან ფერის სახით. 7. Activity = კომენტარები. ტესტერმა უნდა იცოდეს Trello ტრელოზე სვეტების, განყოფილებების შექმნა და სტატუსების მინიჭება. ასევე ტრელოს თასქზე რომელიმე იუზერის Assigne (მინიჭება). ტრელოზე შეგვიძლია პროექტის დაყოფა ასეთ სტრუქტურად: 1. დაფები, ანუ პროექტები(boards). 2. დაფებზე განლაგებული სვეტები(List-ები ანუ პროექტის განყოფილებები) 3. საკითხები/ტესტები(Card ბარათების სახით), რომლებიც დაჯგუფდება თემატურ(label) ჯგუფებად 4. გასატესტი საკითხების სიები(Checklist ჩეკ-ლისტების სახით), რომლებიც ჩაწერილია ბარათებში 5. მიმაგრებული ტექსტური ან სხვა სახის ფაილები 6. კომენტარები ----------- Asana ------ Task მენეჯერი --------- ასანაში შესაძლებელია სხვადასხვა სახისა და ტიპის პროექტის ან ამოცანის შექმნა, შეიძლება ასევე წევრების მოწვევა და მესენჯერის ორგანიზება. არსებობს მრავალი შაბლონი პროექტებისათვის. პროექტის შექმნა ხდება 4 რეჟიმში: სიები(Lists), დაფა(Board), ტაიმლაინი(Timeline), და კალენდარი(Calendar). ნებისმიერი პროექტი შეგვიძლია ერთი რეჟიმიდან მეორეში გადავიყვანთ. ამოცანები(Task) შეიძლება შევქმნათ ცალკე ან რომელიმე პროექტში. ამოცანები შეიძლება გამოვსახოთ სიის სახით, ან სვეტებში(Board) განლაგებული ბარათების სახით. ყველა ცვლილება ერთდროულად ჩნდება პროექტის ყველა მონაწილესთან. პორტფელში(Portfolio) შეგვიძლია გავაერთიანოთ რამოდენიმე პროექტი. ბარათების გადატანა შეიძლება მაუსით. ტაიმლაინში(Timeline) შეგვიძლია დროში გავწეროთ ამოცანის შესრულება თავისი შემსრულებლით. მთავარი მენიუ(მარცხენა მხარეს) 1. Home(მთავარი) = სხვადასხვა სახის პარამეტრების დაყენება. 2. My Tasks(ჩემი ამოცანები) = ამოცანები სხვადასხვა რეჟიმში გამოსახვით: სიის ან დაფების სახით, ასევე არის კალენდარი და ფაილები 3. Inbox(შემოსულები) = მთავარი განყოფილება პროექტის წევრებთან ურთიერთობისთვის 4. Reporting(ანგარიშები) = მონიტორინგი. ჩანს შესრულებული და მიმდინარე სამუშაოები, ასევე გუნდი. 5. Portfolio(პორტფელი) = სხვადასხვა სახის ინფორმაცია პორტფელში გაერთიანებულ პროექტებზე. 6. Goals(მიზნები) = მიზნების გაწერა, მიზნებისა და ქვემიზნების შესრულების გრაფიკი. საიტები: trello.com = ტესტირების გეგმისა და ჩეკ-ლისტების შედგენა, ტესტირების კონტროლი asana.com = ტესტირების გეგმისა და ჩეკ-ლისტების შედგენა, უნივერსალური სამუშაო გარემო testcaselab.com = ტესტ-კეისების გასაკეთებლად
-------------- HTTP საკითხები ------------------ -- HTTP = ინტერნეტში ინფორმაციის გადაცემის პროტოკოლი -- HTTPS = ინფორმაციის დაშიფრული სახით გადაცემის პროტოკოლი -- TCP/IP = საბაზო პროტოკოლების ძირეული ნაკრები, რომელზე დაფუძნებითაც მუშაობს HTTP/HTTPS პროტოკოლები. კავშირისთვის ძირითადად გამოიყენება პორტი N80 -- ინფორმაციის მიმოცვლა ხდება კლიენტ-სერვერს შორის, სადაც შუაში შესაძლებელია მრავალი მაკავშირებელი პროქსი-სერვერი იყოს. კლიენტის როლს როგორც წესი ბრაუზერი ასრულებს. -- HTTP მოთხოვნა შედგება 3 ნაწილისგან: 1. საწყისი სტროფი, რომელიც შეიცავს მოთხოვნის ან პასუხის პარამეტრებს მეთოდი + URL + HTTP/ვერსია მეთოდებია GET, HEAD, POST, PUT, DELETE,CONNECT, OPTIONS, TRACE, PATCH 2. სათაური, რომელშიც არის აღწერა და სხვა მომსახურე ინფორმაცია. ნიმუში: Server: Apache/2.2.11 (Win32) PHP/5.3.0 Last-Modified: Sat, 16 Jan 2010 21:16:42 GMT Content-Type: text/plain; charset=windows-1251 Content-Language: ka 3. კონტენტი, ანუ გადასაცემი ინფორმაცია HTTP-სთან მუშაობა ხდება DevTools-ში Network განყოფილებაში, სადაც შეგვიძლია კონტექსტური მენიუდან ჩავამატოთ ცხრილის სვეტები: - Method: გამოძახების მეთოდი(Get, Post) - Status: სერვერის მხრიდან დაბრუნებული პასუხის სტატუსი(200 OK, 404 error) - Scheme: ტიპი(https) - Domain: შეერთების ლინკი - Type: დოკუმენტის ტიპი(font, document, script, png) - Initiator: გამომძახებელი - Size: დოკუმენტის ზომა - Time: ჩატვირთვის დრო - Priority: ჩატვირთვის პრიორიტეტულობა - Waterfall: ჩატვირთვის პროცესი ვიზუალურად - Name სვეტში დაწკაპუნებით გამოვა სრული ინფორმაცია ჩამოტვირთულ მასალაზე(Header, Preview, Response, Initiator, Timing, Cookies) ==== HTTP პროტოკოლის მუშაობის საფეხურები ==== 1. მისამართი URL იწერება ბრაუზერში 2. ბრაუზერი ეძებს საჭირო IP მისამართს, სადაც განლაგებულია მოთხოვნილი რესურსი 3. ბრაუზერი აგზავნის HTTP მოთხოვნას. მოთხოვნის ნიმუში: GET/index.html HTTP/1.1 Host: www.example.com აქ GET არის ინფორმაციის მოთხოვნა, index.html არის რესურსის მისამართი სერვერზე, HTTP/ 1.1 არის პროტოკოლისა და ვერსიის მაჩვენებელი, Host არის ჰოსტინგის აღმნიშვნელი, www.example.com არის დომენის სახელი. 4. სერვერი აბრუნებს HTTP პასუხს, მაგალითად: HTTP/1.1 200 ОК Content-Type: text/html; charset=UTF-8 Content-Length: 208 აქ 200 OK არის მოთხოვნის წარმატებით დამუშავების კოდი, Content-Type აჩვენებს რა ტიპის დოკუმენტია(აქ text/html) გაგზავნილი, Content-Length აჩვენებს დოკუმენტის ზომას ბაიტებში HTTP პროტოკოლის მუშაობის თავისებურებები HTTP-კლიენტი, ანუ ბრაუზერი, აგზავნის HTTP-მოთხოვნას და ელოდება პასუხს. სერვერი ამუშავებს მოთხოვნას და აგზავნის პასუხს, რის შემდეგაც კავშირი წყდება. ყოველ ახალ მიმართვაზე ახლიდან ხდება დაკავშირება. HTTP არ არის დამოკიდებული მოწყობილობაზე, საჭიროა მხოლოდ გაგზავნილი კონტენტის ტიპის მითითება. HTTP-ს არ აქვს მდგომარეობის(stateless) სტატუსი, კლიენტ-სერვერის კავშირი არის მხოლოდ მოთხოვნის დროს. HTTP მეთოდები: 1. GET = მოთხოვნის გაგზავნა 2. POST = გამოიყენება მონაცემთა გადაცემისათვის 3. HEAD = ანალოგიურია GET-ის, მაგრამ არ აქვს კონტენტი. 4. PUT = გამოიყენება ინფორმაციის ჩატვირთვისათვის 5. PATCH = ანალოგიურია PUT-ისა, გამოიყენება მხოლოდ რესურსის ფრაგმენტის მიმართ 6. DELETE = შლის რესურსს 7. TRACE = მოთხოვნის დაბრუნებისას აჩვენებს შუალედური სერვერების მიერ დამატებულ ინფორმაციას 8. CONNECT 9. OPTIONS სერვერის მხრიდან მოსული Response status code კოდები 1xx = საინფორმაციო სახის კოდები 2xx = წარმატებით შესრულებული მოთხოვნა 3xx = გადამისამართებები 4xx = შეცდომა კლიენტის მხარეს 5xx = შეცდომა სერვერის მხარეს 200 = მოთხოვნა დადასტურდა წარმატებით. 201 Webpage Created = მოთხოვნის დადასტურება წარმატებით, გამოიყენება PUT და POST მოთხოვნის შემთხვევაში. 202 Accepted = მოთხოვნა მიღებულია დასამუშავებლად, მაგრამ არ დასრულებულა 204 No Content = არ არის კონტენტი(არ გადაიცემა) 206 Partial Content = ნაწილობრივი კონტენტის გადაცემა 300 Moved Permanently = URL მისამართის შეცვლის დადასტურება 301 Moved Permanently = გადამისამართება სხვა URL-ზე 304 Not Modified = მოთხოვნილი კონტენტი უკვე არის ბრაუზერში და არ არის საჭირო სერვერიდან განახლება 400 Bad Request = მოთხოვნა არასწორია. 401 Unauthorized = შეცდომა, საჭიროა აუტენთიფიკაცია. 403 Forbidden = რესურსი აკრძალულია 404 Not Found = არ მოიძებნა მოთხოვნილი რესურსი. 405 Method Not Allowed = მოთხოვნილი მეთოდი არასწორია. 409 Conflict = კონფლიქტური მოთხოვნა. 426 Upgrade Required = მოთხოვნა განახლებაზე 500 Internal Server Error = სერვერის მხრიდან შეცდომა. 501 Not Implemented = სერვერს არ აქვს შესაბამისი მხარდაჭერა 503 Service Unavailable = ტექნიკური პრობლემა 507 Insufficient Storage
-------------------- GIT --------------------- GIT არის პროექტებზე ერთობლივი მუშაობის სისტემა ფაილების ვერსიების შენახვისა და კონტროლის ფუნქციებით. GIT-ში ყველა მონაწილეს მთელი პროექტი თავის ლოკალურ დისკზე აქვს. მსგავსი სისტემები SVN, Mercurial, Perforce, CVS, Bitkeeper მომსახურე საიტები github, bitbucket. არის ცენტრალიზებული და განაწილებული(GIT) ვერსიების კონტროლის სისტემა. განაწილებულ სისტემაში ყველა მონაწილე ინახავს პროექტის ყველა ვერსიას და მის ისტორიას. Github Desktop პროგრამის სახელმძღვანელო ახალი ფაილების დამატება რეპოზიტორიაში ხდება საიტიდან github.com ოპციით add file შემდეგ საჭიროა Github desktop-ში Pull ბრძანება და ფაილები დაემატება რეპოზიტორიის ლოკალურ ფოლდერშიც(კომპიუტერში) მენიუ: File - New Repository - ახალი რეპოზიტორიის შექმნა, იქმნება კომპიუტერის ლოკალურ ფოლდერში File - Add Local Repository - ლოკალური რეპოზიტორიის გახსნა File - Clone Repository - კლონირება გიტჰაბიდან ან ლოკალიდან Option - Integrations - ინტეგრაცია სუბლიმესთან ან ვიზუალ სტუდიო კოდთან Option - Git - გიტჰაბის სახელის და მეილის ჩაწერა Repository - Push - ცვლილებების შენახვა Repository - Pull - ცვლილებების წამოღება გიტჰაბიდან ლოკალურში Show in Explorer ფაილების ჩვენება Open in Sublime Text ტექსტურ რედაქტორში გახსნა Publish your repository to GitHub რეპოზიტორიის გამოქვეყნება გიტჰაბზე განყოფილებები: Current Repository - რეპოზიტორებს შორის გადართვა Current Branch - განშტოებებს შორის გადართვა Fetch origin - ცვლილებების განახლება და სინქრონიზაცია ლოკალურ და დაშორებულ ფაილებს შორის Changes - მიმდინარე ცვლილებების სია History - რეპოზიტორიის ოპერაციათა ისტორია ზოგადი ოპერაციები: Commit - ცვლილებების დაფიქსირება, კომიტს აქვს უნიკალური იდენტიფიკატორი, ავტორი, თარიღი, კომენტარები. Tag - ანიჭებს სახელს განსაზღვრულ ვერსიას clone - კლონირებას უკეთებს მთელ საცავს Pull - აკოპირებს რეპოზიტორიის ცვლილებებს დაშორებული საცავიდან ლოკალურ საცავში Push - აკოპირებს რეპოზიტორიის ცვლილებას ლოკალურიდან დაშორებულ საცავში ზოგადი ბრძანებები git config - პარამეტრების შეცვლა git config --global user.email адрес@gmail.com მეილის დაყენება git init - GIT რეპოზიტორიის შექმნა git add - ფაილების დამატება git add temp.txt ტექსტის დამატება git clone - რეპოზიტორიის კლონირება git clone имя.пользователя@хост:/путь/до/репозитория git commit - ცვლილების შენახვა git commit –m “Сообщение идущее вместе с коммитом” git status - ფაილების სია მდგომარეობის სტატუსებით git push - ცვლილების შენახვა მთავარ შტოში git push origin master git checkout - განშტოების შექმნა command git checkout -b <имя-ветки> - შტოებს შორის გადასვლა git checkout <имя-ветки> git remote - გადართვა დაშორებულ რეპოზიტორიასთან - ლოკალური რეპოზიტორიის დაკავშირება დაშორებულთან git remote add origin <адрес.удаленного.сервера> git branch - შტოს ჩვენება, შექმნა, წაშლა git branch –d <имя-ветки> შტოს წაშლა git pull - გლობალური ცვლილებების დამატება ლოკალურ ფაილებში git merge - განშტოების გაერთიანება აქტიურ განშტოებასთან git merge <имя-ветки> git diff - განშტოებებს შორის განსხვავების გამოვლენა git diff --base <имя-файла> git tag - კომიტის მარკირება/მონიშვნა git tag 1.1.0 <вставьте-commitID-здесь> git log - განშტოებაში ყველა კომიტის სიის ჩვენება git reset - კომიტის ბოლო მდგომარეობამდე დაბრუნება git rm - ფაილის წაშლა მუშა კატალოგიდან git rm имяфайла.txt git stash - ცვლილებების დროებითი შენახვა git show - git ობიექტზე ინფორმაციის ნახვა git fetch - დაშორებული რეპოზიტორიიდან ყველა ობიექტთან წვდომა git fetch origin git ls-tree - ობიექტების ხის ნახვა დასახელებებთან ერთად git ls-tree HEAD git cat-file - ობიექტის ტიპის ნახვა SHA1-ის მეშვეობით git cat-file –p d670460b4b4aece5915caf5c68d12f560a9fe3e4 git grep - ფრაზის ან სიტყვის მოძებნა ხის შემადგენლობაში git grep "www.hostinger.ru" gitk - ლოკალური რეპოზიტორიის გრაფიკული ინტერფეისი git instaweb - ლოკალურ რეპოზიტორიასთან დაკავშირებული ვებსერვერის გაშვება git instaweb –httpd=webrick git gc - რეპოზიტორიის ოპტიმიზაცია git archive - ფაილების დაარქივება git archive --format=tar master git fsck - ფაილური სისტემის მთლიანობის შემოწმება git rebase - სხვა განშტოების კომიტის გამოყენება git rebase master კომიტების იდენტიფიცირება ხდება უსაფრთხო ჰეშებით SHA1 URL არის რეპოზიტორიის მისამართი ბრძანება git status გამოსახავს ფაილის 4 მდგომარეობას: 1. untracked - უცნობი 2. modified - უკვე შეცვლილი 3. staged - შესანახად გამზადებული 4. უცვლელი, საწყისი სახით GIT-ის ფაილების სტრუქტურა ფოლდერში Git init რეპოზიტორიის შექმნისას ├── HEAD ├── branches ├── config ├── description ├── hooks │ ├── pre-commit.sample │ ├── pre-push.sample │ └── ... ├── info │ └── exclude ├── objects │ ├── info │ └── pack └── refs ├── heads └── tags 1. HEAD - მიუთითებს განშტოებაში ბოლო კომიტზე. 2. config - პარამეტრების ფაილი, სადაც ინახება რეპოზიტორიის url, სახელი, მეილი და ა.შ. 3. description - რეპოზიტორიის აღწერა 4. hooks - სკრიპტების ფოლდერი. 5. info/exclude - რეპოზიტორიის გარეთ მყოფი ფაილები სასარგებლო ინფორმაციები: - init - создание репозитория - remote add - добавление удалённого репозитория - clone - копирование удалённого репозитория - add - добавление файлов для фиксации изменений - commit - фиксация изменений (может сопровождаться комментарием, чтоб не вводили в ступор ситуации из “Введение”) - push - отправка изменений в удалённый репозиторий - pull - получение изменений из удалённого репозитория - merge - слияние веток - checkout - создание/переключение локальных веток კომიტი = ცვლილებების(მუშა ფოლდერების) შენახვა. დაკომიტებისას ხდება ფაილის დაარქივება და სათაურთან(ჰეშთან) ერთად შენახვა. ├── 4c │ └── f44f1e3fe4fb7f8aa42138c324f63f5ac85828 // hash ├── 86 │ └── 550c31847e518e1927f95991c949fc14efc711 // hash ├── e6 │ └── 9de29bb2d1d6434b8b29ae775ad8c2e48c5391 // hash ├── info // let's ignore that └── pack // let's ignore that too კომიტი შედგება 4 საკითხისგან: 1. სახელი(ჰეში) 2. კომენტარები 3. შემსრულებლის ინფორმაცია 4. მშობელი კომიტის ჰეში (tags) და (branch) არის ლინკები კომიტებზე
ციფრული თუ სხვა სახის პროდუქტების(პროექტების) შემუშავებისათვის ძირითადად 3 სპეციალობაა: ბიზნეს ანალიტიკოსი, პროექტის მენეჯერი და პროდუქტის მფლობელი(Product Owner). მათი მოვალეობები უმეტეს შემთხვევაში თავსებადია და მხოლოდ რამოდენიმე საკითხში განსხვავდება. ბიზნეს ანალიტიკოსი = მარკეტინგისა და ბიზნესის სპეციალისტი, ახდენს ბიზნეს-პროექტების დაგეგმვასა და შემუშავებას, ბაზრის ანალიზს, სამომხმარებლო აუდიტორიის კვლევას, სარეკლამო გათვლებს. ასევე ახდენს საიტის საწყის პროექტირებას, ტექნიკური დავალების შედგენას, საიტის სტრუქტურის ჩამოყალიბებას, SEO მარკეტინგულ გათვლებს. პროექტის მენეჯერი არის ხელმძღვანელი პირი, რომელიც დაკავებულია შემკვეთებთან ურთიერთობით, ბიზნეს-ანალიტიკით, მარკეტინგით, პროექტის შემუშავებითა და შემდგომი მხარდაჭერით. ასევე ახდენს საიტის საწყის პროექტირებას, ტექნიკური დავალების შედგენას, საიტის სტრუქტურის ჩამოყალიბებას, SEO მარკეტინგულ გათვლებს. პროდუქტის(იგივე პროექტის) მფლობელი არის სქრამის გუნდის მთავარი მამოძრავებელი, პროექტის განხორციელებაზე პასუხისმგებელი, ადგენს მოთხოვნებს პროდუქტისადმი, ადგენს სამუშაო პროცესის მიმდინარეობის განრიგს(roadmap), ყოფს შესასრულებელ სამუშაოებს სპრინტებად, აწესებს სპრინტების ხანგრძლივობასა და მოცულობას(ბექლოგი), ახდენს ბექლოგის ელემენტების პრიორიტეტიზაციას, აკონტროლებს სამუშაოს შესრულების მიმდინარეობას და საჭიროების შემთხვევაში შეაქვს ცვლილებები. აგილე-მანიფესტი, რომელზეც არის დაფუძნებული სკრამ მეთოდოლოგია - ადამიანები უფრო მნიშვნელოვანია ვიდრე ინსტრუმენტები - ხარისხი უფრო მნიშვნელოვანია ვიდრე დოკუმენტაცია - შემკვეთთან ურთიერთობა უფრო მნშვნელოვანია ვიდრე კონტრაქტი - ცვლილებებისათვის მზადყოფნა უფრო მნიშვნელოვანია ვიდრე შედგენილი გეგმა სკრამის სამუშაო პრინციპები - ყველა პროცესი არის გამჭვირვალე გუნდის წევრებისთვის - გუნდის წევრები ახდენენ პროცესის მიმდინარეობის მუდმივ ინპექციას და ახდენენ ცვლილებების შეტანას - შემკვეთის მოთხოვნები გუნდის ყველა წევრისთვის მნიშვნელოვანია - სამუშაო სრულდება 1-4 კვირიანი ციკლებით(სპრინტებით), ყოველი ციკლისას ხდება შემკვეთთან უკუკავშირი. - გუნდის ყველა წევრი თავისუფალია გადაწყვეტილების მიღებაში და პასუხისმგებელია თავის სამუშაოზე. - ყოველდღიურად ხდება 15 წუთიანი შეხვედრა, სადაც გუნდის წევრები განიხილავენ წინა დღისით შესრულებულ და მიმდინარე დღისთვის დაგეგმილ სამუშაოებს, ასევე არსებულ პრობლემებს. სკრამის ტერმინები - პროდუქტი = იგივე პროექტია, უმეტესად ციფრული პროექტი, შესაძლებელია სხვა ტიპის პროექტიც იყოს. - პროდუქტის მფლობელი = სკრამ გუნდის ლიდერი, პროდუქტის განვითარებაზე პასუხისმგებელი - სკრამ-მასტერი = სკრამის სამუშაო გარემოს უზრუნველყოფის სპეციალისტი - დეველოპერების გუნდი = ტექნიკური საკითხების პროფესიონალთა თვითორგანიზებადი გუნდი - სპრინტი = წინასწარ განსაზღვრული ვადა, რომლის დროსაც უნდა შესრულდეს სამუშაოთა ნაწილი - ბექლოგი = შესასრულებელ ამოცანათა სია, რომლებიც უნდა შესრულდეს სპრინტის განმავლობაში - ინკრემენტი = პროდუქტის ბექლოგის იმ ელემენტების ჯამი, რომლებიც შესრულდა მიმდინარე და წინა სპრინტების განმავლობაში. 4. Product Owner-ის მოვალეობები - ურთიერთობა შემკვეთთან, ტექნიკურ პერსონალთან და დეველოპერებთან - პროექტის შესწავლა, შემუშავება, მარკეტინგული ანალიზი - ბექლოგის შემუშავება, პროექტის დაყოფა შესასრულებელ ამოცანებად - სპრინტის დაგეგმვა და განხორციელების კონტროლი - შესასრულებელი ამოცანების პრიორიტეტიზაცია - ბექლოგის მართვა, ბექლოგის ამოცანების შესრულების კონტროლი - ფოკუს-ჯგუფის შექმნა, მომხმარებელთა ინტერესების შესწავლა - სტრატეგიების შემუშავება, ამოცანების გადაწყობა 5. სკრამ-მასტერის მოვალეობები - დეველოპერთა გუნდის დახმარება, სამუშაო გარემოს უზრუნველყოფა - ხელს უწყობს და ეხმარება დეველოპერთა ჯგუფს ხარისხიანი და ღირებული პროდუქტების შექმნაში - აღმოფხვრის ჯგუფის მუშაობის პროცესში წარმოქმნილ შეფერხებებს - მოთხოვნისა და საჭიროებისამებრ ხელს უწყობს სქრამის პროცესებს და ფასილიტაციას უწევს მას - ასწავლის დეველოპერთა გუნდს, როგორ ადაპტირდნენ იმ გარემოში, სადაც სქრამი ჯერ კიდევ ახალია - ახდენს შესაბამის ცვლილებებს სქრამის ჯგუფის პროდუქტიულობის გასაზრდელად 6. სპრინტი - სპრინტის ხანგრძლივობა განისაზღვრება ერთი თვით ან უფრო ნაკლებით 1 კვირამდე - ახალი სპრინტი იწყება მისი წინამორბედი სპრინტის დასრულებისთანავე. - Product Owner-ს შეუძლია, სპრინტი დროზე ადრე გააუქმოს - ყოველდღიური სქრამი გრძელდება 15 წუთი და ხდება გუნდის წევრების მიერ გასული დღის ანგარიშის ჩაბარება, მიმდინარე დღის მიზნებისა და პრობლემების განხილვა. 7. სპრინტის განხილვა: - პროდუქტის მფლობელი იწვევს პროექტის ყველა მონაწილეს - პროდუქტის მფლობელი განმარტავს, თუ ბექლოგის რომელი ელემენტი შესრულდა და რომელი არა - დეველოპერთა გუნდი განიხილავს, რომელი საკითხი განხორციელდა წარმატებით, რომლებს შეექმნა პრობლემა და როგორ გადაიჭრა ეს პრობლემები; - დეველოპერთა გუნდი ახდენს შესრულებული სამუშაოების დემონსტრირებას და პასუხობს კითხვებს ინკრემენტის შესახებ - პროდუქტის მფლობელი განიხილავს პროდუქტის ბექლოგის მიმდინარე სტატუსს და პროგრესის გათვალისწინებით განსაზღვრავს პროექტის დასრულების სავარაუდო თარიღებს - მიმოხილვის დროს მთელი ჯგუფი განიხილავს და გეგმავს მომდევნო საკითხებს - განიხილავენ რომელია მომდევნო ყველაზე მნიშვნელოვანი და ღირებული საკითხი - განიხილავენ პროდუქტის მომდევნო მოსალოდნელი გამოსვლის ვადებს, ბიუჯეტს და პოტენციალს 8. სპრინტის რეტროსპექტივა, მიზნები - ბოლო სპრინტის შემოწმება, თუ როგორი იყო წევრებს შორის ურთიერთობა, როგორ მიმდინარეობდა პროცესი და რა ინსტრუმენტები გამოიყენეს - იდენტიფიცირება იმისა თუ რა მიდიოდა სწორად და რა იყო პოტენციურად გამოსასწორებელი - პროცესის გაუმჯობესებისთვის სამოქმედო გეგმის შემუშავება, რათა სქრამის გუნდმა უკეთ შეასრულოს თავის სამუშაო. 9. განსხვავებული მეთოდოლოგიები, სკრამი და კანბანი - სკრამში მთავარია სპრინტის შესრულება, კანბანში მთავარია დასახული ამოცანების შესრულება. - სკრამი ორიენტირებულია ცვლილებებზე და უკუკავშირზე, კანბანი ამოცანების თანამიმდევრულ შესრულებაზე. სკრამის სამუშაო ონლაინ პროგრამა: https://www.atlassian.com ----- jira.com
------------------- SQL ---------------------- მონაცემთა ბაზები: SQL, MySql, MS Access, Oracle, Sybase, Informix, Postgres, microsoft SQL -- მონაცემთა ბაზები არის სტრუქტურიზირებულ მონაცემთა საცავი. -- SQL არის პროგრამირების ენა მონაცემთა ბაზების დამუშავებისა და კონტროლისათვის -- მონაცემთა ბაზების სტრუქტურა არის იერარქიული(დატოტვილი), ქსელური(მრავალმხრივი), რელაციური. -- პოპულარული მონაცემთა ბაზები: MySql, MS SQL, Oracle, PostgreSql, MongoDB ყველა მონაცემთა ბაზას აქვს საერთო ძირითადი ბრძანებები(მაგალითად SELECT, UPDATE, DELETE, INSERT, WHERE), ასევე საკუთარი ბრძანებებიც. -- მონაცემთა ბაზების მართვის პროგრამებია: MySQL, Microsoft Access, Microsoft SQL Server, FileMaker Pro, Oracle Database, dBASE. -- მონაცემთა ბაზებში გამოყენებული გავრცელებული მონაცემთა ტიპები: int(მთელი რიცხვი), dec, blob/text/memo, char(ასო), varchar, date(თარიღი), time(დრო), year(წელი), float(ათწილადი), double(დიდი ათწილადი), boolean(ლოგიკური), null(ნული). ტესტირებაში SQL ძირითადად გამოიყენება ბაზაში მონაცემების არსებობის შესამოწმებლად. რა უნდა იცოდეს ტესტერმა: -- მონაცემთა ბაზების ტიპების გარჩევა -- მონაცემთა ბაზებთან დაკავშირება შესაბამისი პროგრამით -- ცხრილებს, გასაღებებსა და ინდექსებს შორის კავშირები -- მარტივი ამორჩევის ოპერატორების(Select) წერა სხვა ოპერატორებთან კომბინაციაში -- რთული SQL მოთხოვნების გაგება ძირითადი გასატესტი საკითხები SQL ტესტირებაში 1. ინფორმაციის ასახვაზე ტესტირება = უნდა გაიტესტოს არის თუ არა ინტერფეისის შესავსები და სხვა ველების შესაბამისი ველები ბაზაში. 2. ინფორმაციის განახლებაზე ტესტირება = გარე ინტერფეისში ინფორმაციის ცვლილების ან შენახვისას უნდა მოხდეს ბაზაში შესაბამისი ველების განახლება. როგორც წესი ასეთ შემთხვევებში სრულდება ოპერაციები: -- CREATE = ახალი ჩანაწერის შექმნა -- INSERT = ჩანაწერის ჩასმა -- READ = არსებული ჩანაწერის წაკითხვა -- UPDATE = ჩანაწერის განახლება -- DELETE = ჩანაწერის წაშლა 3. ოპერაციების თვისებების ტესტირება = უნდა გაიტესტოს არის თუ არ ოპერაციები იზოლირებული, დაცული, თანმიმდევრული. 4. სტრუქტურული შემოწმება = უნდა გაიტესტოს ბაზების სტრუქტურული სქემა, ცხრილები, სვეტები, ტრანზაქციები და ტრიგერები. 5. დატვირთვაზე, უსაფრთხოებაზე და სტრეს-ტესტირება. 6. ცხრილებში მონაცემთა ტიპებზე ტესტირება, ველებში მონაცემთა დასაშვები სიგრძის ტესტირება. 7. ბაზების არაკორექტულ მოთხოვნებზე ტესტირება. 8. მწარმოებლურობაზე ტესტირება(შესრულებული ოპერაციებისა და ტრანზაქციების რაოდენობა დროში) 9. მონაცემთა დაცულობასა და უსაფრთხოებაზე ტესტირება. ტესტირებაში ხშირად გამოყენებადი SQL ფუნქციები: -- Data Manipulation Language (DML): გამოიყენება მონაცემთა შენახვის, შეცვლის, წაშლისა თუ ჩასმისათვის, მაგალითად ოპერატორები: SELECT, UPDATE и INSERT. -- Data Definition Language (DDL): გამოიყენება მონაცემთა ბაზის ობიექტების სტრუქტურის შექმნისა და ცვლილებებისათვის, მაგალითად ოპერატორები: CREATE, ALTER и DROP. -- Transactional Control Language (TCL): მართავს ბაზებში მიმდინარე ტრანზაქციებს, მაგალითად ოპერატორები: COMMIT, ROLLBACK. -- Inner Join: აკეთებს კომბინირებას სხვადასხვა ცხრილებიდან. -- Distinct: გამოაქვს მნიშვნელობები ერთი ან რამოდენიმე ველიდან. -- In: გამოიყენება ცხრილში მნიშვნელობის პოვნისთვის. -- Between: გამოიყენება გარკვეული დიაპაზონის მნიშვნელობების მისაღებად. -- WHERE: უთითებს რომელი სტროფები გამოიყენება. -- Like: მიუთითებს შაბლონებზე, გამოიყენება WHERE ოპერატორთან ერთად. -- Order By Clause: სტრიქონების მოწესრიგება, დალაგება(დეფაულტად ზრდადი). -- GROUP BY: მონაცემების რაიმე ნიშნით დაჯგუფება. -- HAVING: არჩევს ოპერატორ GROUP BY-ით განსაზღვრულ ჯგუფიდან. -- Aggregate Functions: ახდენს გამოთვლებს და აბრუნებს ერთ მნიშვნელობას, მაგალითად: Avg, Min, Max, Sum, count და ა.შ. ტესტირებაში ხშირად გამოყენებადი SQL ოპერატორები: -- Select = ამორჩევა -- from = ცხრილი საიდანაც ვირჩევთ -- order by = დალაგება ზრდით -- order by desc = დალაგება კლებით -- where = სადაც(რჩევის შეზღუდვისათვის, გამოიყენება > < =) -- where in(ჩამონათვალი) = სადაც მნიშვნელობა უნდა იყოს არჩელი ჩამონათვალიდან. -- where like "ნაწილი%" = სადაც არჩეული მნიშვნელობა შედგება ნაწილისგან და პლიუს '%' ნებისმიერი სიმბოლოსგან, ან ვთქვათ '_' ერთი რაიმე სიმბოლოსგან. -- Is null = ნულზე შემოწმება -- from a inner join b on = არეალების კვეთის ნაწილი -- from a left join b on = მარცხენა არეალი -- from a right join b on = მარჯვენა არეალი -- from a cross join b on = ორივე არეალი -- insert into ცხრილი(სვეტი1, სვეტი2) values('მნიშვნელობა1, მნიშვნელობა2) = მნიშვნელობების ჩასმა -- update ცხრილი set პარამეტრი1='მნიშვნელობა1', პარამეტრი2='მნიშვნელობა2' where პირობა = განახლება პირობით -- delete from ცხრილი where პირობა = წაშლა პირობით მონაცემთა ბაზების ბრძანებები -- CREATE DATABASE databasename = ქმნის ბაზას 'databasename' -- DROP DATABASE databasename = შლის არსებულ ბაზას -- BACKUP DATABASE databasename TO DISK='D:\backups' = ქმნის ბაზის კოპიოს მისამართზე -- CREATE TABLE table_name (column1 datatype, column2 datatype...) = ქმნის ცხრილს სვეტების სახელებით -- DROP TABLE table_name = ცხრილის წაშლა -- TRUNCATE TABLE table_name = ცხრილის გასუფთავება მონაცემებისაგან -- ALTER TABLE table_name ADD column_name datatype; = სვეტის ჩამატება ცხრილში -- ALTER TABLE Customers DROP COLUMN Email; = სვეტის წაშლა ცხრილიდან -- CREATE VIEW = ქმნის ვირტუალურ ცხრილებს რეალური ბაზიდან პირობითი ოპერატორები -- NOT NULL = არ უნდა იყოს ნული -- UNIQUE = უნდა იყოს უნიკალური(არ მეორდებოდეს) -- PRIMARY KEY = პირველადი გასაღები, სტროფების უნიკალური იდენტიფიკატორი -- FOREIGN KEY = გარე გასაღები(სხვა ცხრილის ID-თან დამაკავშირებელი) -- DEFAULT = დეფაულტ მნიშვნელობა(თუ არ არის მითითებული) -- CREATE INDEX = ინდექსის შექმნა -- CHECK = შემოწმება რამე პირობაზე SQL Date თარიღები MySQL თარიღის ტიპები და ფორმატები: -- DATE = ფორმატი YYYY-MM-DD -- DATETIME = ფორმატი YYYY-MM-DD HH:MI:SS -- TIMESTAMP = ფორმატი YYYY-MM-DD HH:MI:SS -- YEAR = ფორმატი YYYY ან YY SQL Server თარიღის ტიპები და ფორმატები: -- DATE = ფორმატი YYYY-MM-DD -- DATETIME = ფორმატი YYYY-MM-DD HH:MI:SS -- SMALLDATETIME = ფორმატი YYYY-MM-DD HH:MI:SS -- TIMESTAMP = ფორმატი a unique number რა საკითხების ცოდნა შეიძლება მოითხოვონ გასაუბრებაზე 1. რა არის მონაცემთა ბაზები SQL - პასუხი: SQL(Structured Query Language) = მონაცემთა მართვის სისტემა(სტრუქტურირებულ მოთხოვნათა ენა). 2. რა ტიპის მონაცემთა ბაზები არსებობს - პასუხი: არსებობს რელაციური, სტრუქტურული, ქსელური, ჰიბრიდული, მრავალგანზომილებიანი, ობიექტ-ორიენტირებული და ა.შ. 3. რა არის პირველადი გასაღები(PRIMARY KEY) - პასუხი: ჩანაწერის უნიკალური, არანული იდენტიფიკატორი. შეიძლება იყოს შედგენილიც. 4. როდის გამოიყენება პირველადი გასაღები - პასუხი: როგორც ძირითადი იდენტიფიკატორი გამოიყენება სხვა ცხრილებთან დასაკავშირებლად, რომლებიც შეიცავენ გარე გასაღებს ამ იდენტიფიკატორზე მითითებით. 5. რა არის გარე გასაღები(FOREIGN KEY) - პასუხი: გარე იდენტიფიკატორი, მიეთითება სხვა ცხრილის ძირითად(PRIMARY KEY) გასაღებს. 6. რა სახის შეზღუდვები(constraints) არსებობს - პასუხი: UNIQUE — მნიშვნელობის კონტროლი უნიკალურობაზე NOT NULL — მნიშვნელობაზე კონტროლი არანულოვანზე INDEX — ცხრილის ინდექსის შექმნა სწრაფი დაკავშირებისათვის CHECK — მნიშვნელობის კონტროლი გარკვეული პირობების დაცვით DEFAULT — სვეტის მნიშვნელობა დეფაულტად 7. რისთვის გამოიყენება ORDER BY - პასუხი: მნიშვნელობების დალაგება ზრდადობით ან კლებადობით(ASC და DESC) SELECT * FROM user ORDER BY name DESC; 8. შეერთების(Join) 4 ძირითადი სახე SQL-ში - პასუხი: INNER JOIN = მხოლოდ საერთო გადაკვეთილი მნიშვნელობები FULL OUTER JOIN = გადაკვეთის მქონე ორივე არეალის მნიშვნელობები LEFT JOIN = საერთო გადაკვეთისა და + მარცხენა არეალის მნიშვნელობები RIGHT JOIN = საერთო გადაკვეთისა და + მარჯვენა არეალის მნიშვნელობები 9. რა არის Self JOIN - პასუხი: ცხრილის გაერთიანება თავისივე დუბლიკატთან 10. რისთვის არის საჭირო ოპერატორი UNION - პასუხი: ერთნაირი რაოდენობის სვეტებისა და მსგავსი მონაცემთა ტიპების გაერთიანება SELECT column(s) FROM first_table UNION SELECT column(s) FROM second_table; 11. როგორ მუშაობს ჩასანაცვლებელი ნიშნები - პასუხი: გამოიყენება LIKE ოპერატორთან ერთად სიმბოლოების ჩასანაცვლებლად 12. რა სახის ჩასანაცვლებელი ნიშნებია - პასუხი: ' % ' = ნული ან მეტი სიმბოლო, ' _ ' = 1 ან მეტი სიმბოლო SELECT * FROM user WHERE name LIKE '%test%'; SELECT * FROM user WHERE name LIKE 't_est'; 13. რას აკეთებს ფსევდონიმი Aliases - პასუხი: გამოიყენება დროებითი სახელის მისაცემად SELECT very_long_column_name AS alias_name FROM table; 14. რისთვის არის საჭირო INSERT INTO SELECT - პასუხი: აკოპირებს მონაცემებს ერტი ცხრილიდან მეორეში INSERT INTO second_table SELECT * FROM first_table WHERE condition; 16. რა განსხვავებაა DELETE და TRUNCATE შორის - პასუხი: 17. რით განსხვავდება VARCHAR და NVARCHAR - პასუხი: VARCHAR = ASCII ფორმატის მონაცემები, სიმბოლო 1 ბაიტში NVARCHAR = Unicode ფორმატის მონაცემები, სიმბოლო 2 ბაიტში 18. როგორ ავარჩიოთ ჩანაწერები კენტი ID-ით - პასუხი: SELECT * FROM sample WHERE id % 2 != 0; 19. როგორ ვიპოვოთ დუბლები მეილის ველში - პასუხი: SELECT email, COUNT(email) FROM customers GROUP BY email HAVING COUNT(email) > 1; 21. ავირჩიოთ მხოლოდ უნიკალური სახელები - პასუხი: SELECT DISTINCT name FROM users; 22. ვიპოვოთ ცხრილში საშუალო მნიშვნელობა - პასუხი: SELECT AVG(salary) FROM workers; 23. მოვიპოვოთ სია საშუალოზე მეტი მნიშვნელობებით - პასუხი: SELECT * FROM workers WHERE salary > (SELECT AVG (salary) FROM workers); 24. გადავარქვათ სახელი ცხრილს - პასუხი: ALTER TABLE first_table RENAME second_table; მონაცემთა ბაზების ოპერატორები -- SELECT- ამოაქვს ბაზიდან მონაცემები -- SELECT * FROM Customers; = SELECT(არჩევა)*(ყველა)FROM(საიდან)Customers(ცხრილის სახელი); -- SELECT column1, column2 FROM table_name; = არჩევს column1, column2 სვეტებს table_name ცხრილიდან -- DISTINCT = განსხვავებული -- SELECT DISTINCT Country FROM Customers; = ირჩევს სვეტ Country-დან განსხვავებულ(არაიგივე) მნიშვნელობებს -- COUNT = მთვლელი -- SELECT COUNT(DISTINCT Country) FROM Customers; = გვაჩვენებს არაერთნაირთა რაოდენობას Country სვეტიდან -- WHERE = ფილტრავს მონაცემებს SELECT column1, column2, ... = არჩევს სვეტებს column1, column2 FROM table_name = ცხრილიდან table_name WHERE condition; = სადაც მნიშვნელობაა condition SELECT * FROM Customers = არჩევს ყველაფერს ცხრილიდან Customers WHERE Country='Mexico'; = სადაც სვეტში Country მნიშვნელობა ტოლია 'Mexico' SELECT * FROM Customers = არჩევს ყველაფერს ცხრილიდან Customers WHERE CustomerID=1; = სადაც სვეტში CustomerID მნიშვნელობა არის 1 -- SQL AND(და), OR(ან) და NOT(არა) დაკავშირების ოპერატორები SELECT column1, column2, ... = არჩევს სვეტებს column1, column2 FROM table_name = ცხრილიდან table_name WHERE condition1 AND condition2 AND condition3 ...; = სადაც მნიშვნელობაა condition1, condition2 და condition3 SELECT * FROM Customers = არჩევს ყველაფერს ცხრილიდან Customers WHERE Country='Germany' AND (City='Berlin' OR City='München'); = სადაც Country უდრის 'Germany' და (City უდრის 'Berlin' ან 'München') ოპერატორი "და" ნიშნავს ორივე პირობის შესრულებას, "OR" ნიშნავს ერთერთის მაინც. -- ORDER BY ASC|DESC = დალაგება ზრდადობით/კლებადობით SELECT * FROM Customers = არჩევს ყველაფერს ცხრილიდან Customers ORDER BY CustomerName asc; = ალაგებს სვეტ CustomerName-ის მიხედვით ზრდადი ალფავიტით ORDER BY Country ASC, CustomerName DESC; = ალაგებს 2 სვეტის მიხედვით -- INSERT INTO = ჩასმა სვეტებში INSERT INTO Customers (CustomerName, City, Country) = ჩასვამს ცხრილ Customers-ში 3 სვეტში შესაბამისად VALUES ('Cardinal', 'Stavanger', 'Norway'); = ჩასმული მნიშვნელობები შესაბამის სვეტებში(სხვაგან NULL-ებს ჩასვამს) -- NULL ოპერატორი ნული (IS NULL, IS NOT NULL) SELECT CustomerName, ContactName, Address = არჩევს 3 სვეტს FROM Customers = ცხრილიდან Customers WHERE Address IS NULL; = სადაც მნიშვნელობები ნულია -- UPDATE- აახლებს ბაზაში მონაცემებს UPDATE Customers = განაახლებს ცხრილს Customers SET ContactName = 'Alfred Schmidt', City= 'Frankfurt' ჩასვამს ამ მნიშვნელობებს სვეტებში ContactName და City WHERE CustomerID = 1; იმ ხაზში სადაც CustomerID = 1 UPDATE Customers = განაახლებს ცხრილს Customers SET ContactName='Juan' = ჩასვამს მნიშვნელობას სვეტში ContactName WHERE Country='Mexico'; იმ ხაზში სადაც Country='Mexico' -- DELETE- შლის ბაზიდან მონაცემებს DELETE FROM Customers WHERE CustomerName='Alfreds Futterkiste'; წაშლის იმ ხაზს სადაც CustomerName='Alfreds Futterkiste'; -- TOP = ზედა SELECT TOP 3 * FROM Customers; = არჩევს ზედა 3 ხაზს ცხრილიდან Customers SELECT * FROM Customers LIMIT 23; = არჩევს 23 ხაზს ცხრილიდან Customers SELECT * FROM Customers FETCH FIRST 3 ROWS ONLY; = არჩევს პირველ 3 ხაზს ცხრილიდან Customers SELECT TOP 50 PERCENT * FROM Customers; = არჩევს ზედა 50% ხაზებს ცხრილიდან Customers -- COUNT() = ხაზების რაოდენობა, AVG() = რიცხვითი სვეტის საშუალო, SUM() = ჯამი სვეტში SELECT COUNT(column_name) = ითვლის სვეტში column_name FROM table_name = ცხრილიდან table_name WHERE condition; = სადაც მნიშვნელობაა condition SELECT AVG(column_name) = ითვლის საშუალო მნიშვნელობას სვეტში column_name FROM table_name = ცხრილიდან table_name WHERE condition; = სადაც მნიშვნელობაა condition -- MIN, MAX = სვეტის უმცირესი და უდიდესი რიცხვი SELECT MIN(column_name) = არჩევს უმცირესს სვეტიდან FROM table_name = ცხრილიდან table_name WHERE condition; = სადაც მნიშვნელობაა condition -- LIKE აღნიშნავს შაბლონს, % არის რაიმე სიმბოლო ან სიმბოლოები, _ არის 1 სიმბოლო SELECT * FROM Customers = ირჩევს ცხრილიდან Customers WHERE CustomerName LIKE '%a'; = სადაც სვეტში CustomerName ბოლო სიმბოლოა a -- დამხმარე სიმბოლოები % = Represents zero or more characters, bl%= finds bl, black, blue, and blob _ = Represents a single character, h_t= finds hot, hat, and hit [] = Represents any single character within the brackets, h[oa]t= finds hot and hat, but not hit ^ = Represents any character not in the brackets, h[^oa]t= finds hit, but not hot and hat - = Represents any single character within the specified range, c[a-b]t= finds cat and cbt -- IN Operator = სადაც(WHERE column_name IN (value1, value2, ...);) -- BETWEEN Operator = ორ მნიშვნელობას შორის მყოფი(WHERE column_name BETWEEN value1 AND value2;) -- JOIN (INNER) JOIN: Returns records that have matching values in both tables LEFT (OUTER) JOIN: Returns all records from the left table, and the matched records from the right table RIGHT (OUTER) JOIN: Returns all records from the right table, and the matched records from the left table FULL (OUTER) JOIN: Returns all records when there is a match in either left or right table -- SQL-ში კომენტარების სინტაქსი: -- comments ან /* comments */ საიტი SQL სწავლისთვის https://www.w3schools.com/sql/sql_and_or.asp
Upwork რჩევები
==== პროფილის შესავსები ====
1. Overview = აღწერა საქმიანობის, გამოცდილების, ენების, ტექნოლოგიებისა და უნარების.
– რამოდენიმე წინადადება რა შეგვიძლია და რას ვაკეთებთ.
– რა გაგვიკეთებია.
– რა ამოცანების გადაჭრა შეგვიძლია კონკრეტულად.
2. Portfolio = ნამუშევრები და მიღებული გამოცდილება.
3. Certifications = სერთიფიკატები.
4. Tests = სპეციალური ტესტების გავლა, რეკომენდებულია Top 30% -ში მოხვედრა. შესაძლებელია ტესტის შედეგების დამალვა/გამოჩენა. განმეორებით გავლა შეიძლება 1 თვეში.
– ასევე საჭიროა საიტის წესების ცოდნაზე ტესტის გავლა: Upwork Readiness Test for Independent Contractors and Staffing Managers
– Employment History, Education = არასავალდებულო, გამოცდილებისა და განათლების ველი.
– პროფილში ასევე უნდა მივუთითოთ ჩვენი ძლიერი მხარეები და მთავარი მოტივაციები.
– პროფილში უნდა მივუთითოთ საკომუნიკაციო საშუალება(წერითი, ხმოვანი და ა.შ.), ინგლისურის დონე.
– პროფილში უნდა იყოს სწორი პირადი მონაცემები.
– ექაუნტში შესაძლებელია 2 სპეციალიზირებული პროფილის შექმნა, სადაც უნდა ჩაიწეროს ძირითადი უნარები.
– ძირითადი უნარები უნდა ეწეროს მაქსიმუმ 15-მდე
– სპეციალიზირებულ პროფილში შესაძლებელია მაღალი ანაზღაურების ჩაწერა.
==== თანხის გამოტანა ====
– თანხის გამოტანის საშუალებები: Payoneer, Skrill, PayPal, Direct Deposit(ბანკის ანგარიში). – საკომოსიო 1$-დან 2$-მდე
==== Cover letter წერილის მიწერა შემკვეთთან ====
– წერილი უნდა შედგეს შემკვეთის ინტერესების გათვალისწინებით, გასაგებად და მარტივად.
– შემკვეთის მთავარი ინტერესებია:
1. შეკვეთის ხარისხიანი შესრულება.
2. შეკვეთის დროული დასრულება.
3. შეკვეთის ბიუჯეტში ჩატევა.
4. ურთიერთობა პრობლემების გარეშე.
– წერილის მთავარი აქცენტები უნდა იყოს:
1. მარტივი განმარტება თუ როგორ მოხდება შეკვეთის ხარისხიანად შესრულება.
2. მკაფიო ახსნა შეკვეთის სწორი და მისაღები ვადის შესახებ.
3. მოლაპარაკება ბიუჯეტზე და გადახდის დეტალებზე.
4. შეკვეთის დეტალებისა და ნიუანსების მარტივ ენაზე ახსნა, გაუგებარი დეტალების დაზუსტება, პროფესიული კითხვები გაურკვეველ სააკითხებზე, დაზღვევა პრობლემების წარმოშობის შემთხვევაში.
==== რჩევები ====
– განაცხადი Cover letter უნდა გაკეთდეს მხოლოდ შესაფერის შეკვეთაზე.
– განაცხადი Cover letter უნდა იყოს პერსონალიზებული და არასტანდარტული
– განაცხადი Cover letter უნდა გაკეთდეს ახალ შეკვეთაზე, არაუმეტეს 1 დღისა.
– უმჯობესია განაცხადის დაწყება სახელით
– კარგი იქნება განაცხადში უკვე გაკეთებული ნიმუშის ჩართვა.
– 20-ზე მეტი განაცხადისას ნაკლები შანსია შეკვეთის მიღების.
– შემკვეთი უმჯობესია იყოს ვერიფიცირებული და გადახდების მქონე.
– ენის ცოდნის დონე თავიდანვე უნდა იყოს გასაგები შემკვეთისთვის.
– შემკვეთთან ინტენსიური ურთიერთობა ზრდის საქმის აღების შანსებს.
– უმჯობესია დიდხნიანი ურთიერთობა ერთ შემკვეთთან.
– სადაო საკითხების განსაზღვრა უნდა მოხდეს წინასწარ.
– საუკეთესო დამკვეთები არიან ინგლისურენოვანი ქვეყნებიდან: ამერიკა, ინგლისი, ახალი ზელანდია, ავსტრალია, კანადა, ესპანეთი, იტალია, საფრანგეთი, იაპონია, გერმანია.
– ცუდი დამკვეთები არიან: აზიური ქვეყნებიდან, არაბული ქვეყნებიდან, ინდოეთიდან.
– შეკვეთების ძებნის დაწყება ჯობია ამერიკული დროით.
– შემკვეთს უნდა ქონდეს შეფასება 4,5-ზე მაღალი, Hire rate 60%-ზე მაღალი, დახარჯული 10კ-ზე მეტი.
– თუ ინტერვიუ 2-ზე მეტია, შანსები საქმის აღებაზე დაბალია
– დასაწყისში ჯობია რეიტინგზე მუშაობა
– ფასიან ექაუნტში(10$) ჩანს პროექტზე ფასების შეთავაზებები.
– კონფლიქტურმა სიტუაციამ არ უნდა დააზიანოს შემკვეთი
– საიტის გარეთ ურთიერთობა წესებით დასაშვებია მხოლოდ კონტრაქტის გაფორმების შემდეგ
– საქმის დასრულებისას შესაძლებელია მოვითხოვოთ გამოხმაურების დატოვება.
==== გავრცელებული დარღვევები ====
– გადახდის მოთხოვნა საიტის გარეთ
– კონტრაქტების შეუსრულებლობა
– უცენზურო მიმართვები, მუქარები და ა.შ.
==== მუშაობა ====
– მუშაობა ხდება ორნაირად: 1.საათობრივი ანაზღაურებით 2.მოჭრილი ბიუჯეტით.
– საათობრივი ანაზღაურებისას უნდა ჩაირთოს პროგრამა Upwork Team App, რომელიც ყოველ 10 წუთში იღებს სკრინშოტს.
– საიტის პროცენტული განაკვეთები:
20% — პირველი $500-იდან.
10% — საერთო ანგარიშში $500-დან $10 000-მდე.
5% – საერთო ანგარიშში $10 000 ზევით.
– საიტზე არის სპეციალური ვალუტა Connects რომლითაც ხდება გარკვეული სახის გადახდები.
– საათობრივი მუშაობისას საჭიროა პროგრამა Upwork Team App პროგრამა ყოველ 10 წუთში აკეთებს სკრინშოტს.
– შესაძლებელია სკრინშოტის წაშლა, რაც აუქმებს ნამუშევარ 10 წუთს.
==== jQuery ====
– jQuery სინტაქსი შექმნილია HTML ელემენტების ამორჩევისა და მათზე მოქმედებისათვის
– სინტაქსი $(selector).action()
– $(this).hide() – დამალავს მიმდინარე ელემენტს.
– $(“p”).hide() – დამალავს ყველა <p > ელემენტს.
– $(“.test”).hide() – დამალავს ყველა ელემენტს, რომელთა კლასიცაა test.
– $(“#test”).hide() – დამალავს ყველა ელემენტს, რომელთა id არის test.
ძირითადი სელექთორები(სელექთორი უნდა მოთავსდეს ბრჭყალებში.)
* – ყველა ელემენტი
#idName – ელემენტები რომელთა id არის “idName”
.className – ელემენტები რომელთა კლასია “className”
tagName – ელემენტები მითითებული html ტეგის მიხედვით
——————- ატრიბუტ-სელექთორები —————–
$(“[classname]”).css({“border”:”2px solid red”});
$(“[classname=courses]”).css({“border”:”2px solid red”});
$(“[classname!=courses]”).css({“border”:”2px solid red”});
$(“[classname^=cou]”).css({“border”:”2px solid red”}); – სახელი იწყება სიტყვით cou
$(“[classname$=ses]”).css({“border”:”2px solid red”}); – სახელი მთავრდება სიტყვით ses
$(“[classname*=urs]”).css({“border”:”2px solid red”}); – სახელი შეიცავს სიტყვას urs
$(“[classname~=courses]”).css({“border”:”2px solid red”}); – სახელი შეიცავს ცალკე სიტყვას
$(“[classname|=pref]”).css({“border”:”2px solid red”}); – სახელი შეიცავს პრეფიქსს pref-
$(“[alt][classname=coursess][id|=pref]”).css({“border”:”2px solid red”}) – კომბინირებული
———————— ფილტრები ———————–
$(“h2:contains(Sauces)”).css({“border”:”2px solid red”}); – თუ შეიცავს Sauces
$(“h2:empty”).css({“border”:”2px solid red”}); – შიგთავსი ცარიელია
$(“p:has(img)”).css({“border”:”2px solid red”}); – შიგთავსის ერთის მაინც შემცვლელობით
$(“p:parent”).css({“border”:”2px solid red”}); – თუ ელემენტი მშობელია
$(“li:first-child”).css({“border”:”2px solid red”}); – პირველ შვილზე მოქმედება
$(“li:last-child”).css({“border”:”2px solid red”}); – ბოლო შვილზე მოქმედება
$(“li:nth-child(even)”).css({“border”:”2px solid red”}); – მერამდენე (even – odd)
$(“li:nth-child(odd)”).css({“border”:”2px solid red”}); – კენტი პოზიციები
$(“li:nth-child(3)”).css({“border”:”2px solid red”}); – მესამე პოზიციაზე მყოფზე მოქმედება
$(“li:only-child”).css({“border”:”2px solid red”}); – ერთადერთ შვილზე მოქმედება
$(“input:button”).css({“border”:”2px solid red”}); – თუ ღილაკია
$(“input:radio”).css({“display”:”none”}); – თუ რადიოა
$(“input:checkbox”).css({“display”:”none”}); – თუ ჩეკბოქსია
$(“input:text”).css({“border”:”2px solid red”}); – თუ ტექსტური ველია
$(“input:password”).css({“border”:”2px solid red”}); – თუ პაროლის ველია
$(“input:file”).css({“border”:”2px solid red”}); – თუ ასატვირთი ველია
$(“input:image”).css({“border”:”2px solid red”}); – თუ ფორმის დადასტურების ღილაკი-სურათია
$(“.form :input”).css({“border”:”2px solid red”}); – input, textarea და button ელემენტები
$(“.form :selected”).val() – ფორმის ჩამოსაშლელი სიის მონიშნული ოპცია
$(“.form :checked”).val(); – მონიშნული ჩეკბოქსი ან რადიო
$(“.form :enabled”).css({“border”:”2px solid red”}); – ფორმის აქტიური ელემენტები
$(“.form :disabled”).css({“border”:”2px solid red”}); – ფორმის არააქტიური ელემენტები
$(“p, span, a”).css({“border”:”2px solid red”}); – კომბინაციური გაფილტვრა
$(“p > a”).css({“border”:”2px solid red”}); – შვილი ელემენტის გაფილტვრა
———————– ატრიბუტები ————————
$(“.a”).attr(“href”,”http://facebook.com”); – ატრიბუტის შეცვლა
$(“img”).attr({“src”:”images/teriyaki.jpg”, “width”:”20px”}); – იცვლება სურათების src
$(“a”).attr(“href”,function () {return “http://facebook.com”;}); – ატრიბუტის დაბრუნება
$(“.a”).removeAttr(“href”)); – ატრიბუტის წაშლა
$(“.a”).addClass(“current”); – კლასის ჩამატება ელემენტში
$(“.a”).removeClass(“current”); – კლასის წაშლა
function my() {$(“a”).toggleClass(“current”);} – კლასის წაშლა/გამოჩენა
$(“h1”).hasClass(“current”); – კლასის შემოწმება
$(“.text”).val(); – აბრუნებს value მნიშვნელობას
$(“.text”).val(“new value”) – ცვლის value მნიშვნელობას
$(“h1”).prop(“tagName”) – პარამეტრის დაბრუნება/შეცვლა
—————– CSS გამოყენება ———————
alert($(“div#for-ex”).css(“marginTop”)); – აბრუნებს პარამეტრს
$(“div#for-ex”).css(“marginTop”,”20px”); – ცვლის პარამეტრს
$(“div#for-ex”).css(“width”, function () {return “500px”;}); – ფუნქციით პარამეტრის შეცვლა
$(“div#for-ex”).height(); – სიმაღლის გაგება
alert($(“div#for-ex”).outerHeight()); – მთლიანი სიმაღლის გაგება
$(“h1”).offset({top:100,left:300}); – top/left დაშორებების მიცემა
$(“img”).position().top; – დაშორების გაგება
$(“div”).scrollTop(); – სკროლინგის მნიშვნელობების გაგება
—————— ცვლილებები ————————
document.write($(“#header”).html()); – HTML შიგთავსის გამოტანა
$(“header”).html(“<p>header</p>”); – შიგთავსის შეცვლა
$(“header”).text(“new text”) – ტექსტური შიგთავსის შეცვლა
$(“img”).wrap(“<p class=’new’></p>”); – სურათების სათითაოდ ჩასმა პარაგრაფებში(wrapAll() ერთად)
$(“strong”).unwrap(); – წაშლის მშობელ ელემენტს
$(“ul”).append(“<li>new li</li>”); – რაიმეს ბოლოში ელემენტის ჩამატება(.prepend() თავში)
$(“<li>new li</li>”).appendTo($(“ul”)); – ელემენტის ბოლოში ჩამატება(.prependTo() თავში)
$(“h1”).after(“<span>span after h1</span>”); – რაიმეს მომდევნო ელემენტად დამატება(.bedore())
$(“<span>span after h1</span>”).insertAfter($(“h1”)); – მომდევნო ელემენტად დამატება
——————- წაშლა —————————
$(“h1”).remove(); – ელემენტის წაშლა
$(“h1”).detach(); – ელემენტის ამოღება/წაშლა
$(“img”).remove(“:first”); – პირველი სურათის წაშლა
$(“h1”).empty(); – ელემენტის გასუფთავება
————– მოვლენები და მოქმედებები —————–
$(“p”).click(function(){ operacia; }); – დაწკაპუნებისას რაიმე ოპერაცია ყველა p-სათვის
$(“p”).dblclick(function(){$(this).hide();}); – მოქმედება ორმაგ დაწკაპუნებაზე
$(“p”).mouseenter(function(){alert(“Your element !”);}); – მაუსის enter-ზე
$(“p”).mouseleave(function(){alert(“Bye! element !”);}); – ასევეა: mouseup(), hover()
$(“p”).on(“click”, function(){$(this).hide();}); – მოვლენის მიმაგრება
$(“p”).on({
mouseenter: function(){$(this).css(“background-color”, “lightgray”);},
mouseleave: function(){$(this).css(“background-color”, “lightblue”);},
click: function(){$(this).css(“background-color”, “yellow”);}
}); – რამოდენიმე მოვლენის მიმაგრება
——————- კლავიატურა ———————
$(“input”).keydown(function(){$(“input”).css(“background-color”, “yellow”);});
$(“input”).keypress(function(){$(“input”).css(“background-color”, “yellow”);});
$(“input”).keyup(function(){$(“input”).css(“background-color”, “yellow”);});
კლავიატურის მოქმედებათ მიმდევრობა: keydown – keypress – keyup
—————- ფორმის მოვლენები ——————-
$(“input”).focus(function(){$(this).css(“background-color”, “#cccccc”);}); – ფოკუსის მიღებისას
.focusin, .focusout, .blur – ფოკუსირებისას და ფოკუსის დაკარგვისას მომხდარი მოვლენები
$(“input”).change(function(){alert(“The text has been changed.”);}); – ცვლილებისას
$(“input”).select(function(){alert(“Text marked!”);}); – მონიშვნისას
$(“form”).submit(function(){alert(“Submitted”);}); – ფორმისას გაგზავნისას
—————- ბრაუზერის მოვლენები ——————-
$(window).resize(function(){$(‘span’).text(x += 1);}); – ვინდოვსის ზომის შეცვლისას შეჯამება
$(“div”).scroll(function(){$(“span”).text(x += 1);}); – დასკროლვისას
—————- მოვლენის თვისებები ——————-
$(document).mousemove(function(event){$(“span”).text(“X: ” + event.pageX + “, Y: ” + event.pageY);}); – კურსორის კოორდინატორების გადაცემა
$(“a”).click(function(event){event.preventDefault();}); – მოქმედების შეჩერება
event.target() – მეთოდი აბრუნებს თუ რომელ DOM ელემენტზეა მიმაგრებული მოვლენა.
event.type თვისება აბრუნებს თუ, რა ტიპის მოვლენა, რომელი მოვლენა დაფიქსირდა
event.which კლავიატურის ან მაუსის რომელ ღილაკზე დაჭერამ გამოიწვია მოვლენის დაფიქსირება.
—————- ეფექტები და ანიმაციები —————-
$(“button”).click(function(){$(“p”).hide();}); – ელემენტის დამალვა
$(“button”).click(function(){$(“p”).show();}); – ელემენტის გამოჩენა
$(“button”).click(function(){$(“p”).toggle();}); – გამოჩენა/დამალვის გადამრთველი
$(“button”).click(function(){$(“#box”).animate({height: “300px”});}); – ანიმაცია
$(“div”).clearQueue(); – პროცესების რიგის შესრულების შეჩერება
$(“#div5”).delay(4000).fadeIn(); – პროცესის შესრულების დაპაუზება რაღაც დროით
$(“#complete”).click(function(){$(“div”).finish();}); – ოპერაციების გაჩერება/დასრულება
$(“#stop”).click(function(){$(“div”).stop();}); – მიმდინარე ოპერაციის გაჩერება
$(“p”).fadeIn(); – გამჭვირვალობიდან გამოჩენა
$(“p”).fadeOut(); – გამჭვირვალობის მიცემა
$(“button”).click(function(){$(“p”).fadeTo(1000, 0.4);}); – გამჭვირვალობიდან გამოჩენა
$(“button”).click(function(){$(“#div1”).fadeToggle();}); – გადამრთველი გამჭვირვალობის
$(“button”).click(function(){$(“p”).slideDown();}); – ელემენტის გამოჩენა/ჩამოშლა
$(“button”).click(function(){$(“p”).slideUp();}); – ელემენტის შეკეცვა
$(selector).slideToggle(speed,easing,callback); – გადამრთველი ჩამოშლა/აკეცვა
$(“#p1”).css(“color”, “red”).slideUp(2000).slideDown(2000); – გადაბმული ოპერაციები
—————- გადაადგილებები DOM-ში —————-
$(“span”).parent(); – ზედა მშობელი ელემენტი(მსგავსია closest() უახლოესი)
$(document).ready(function(){$(“span”).parents();}); – ყველა მშობელი ელემენტები
$(document).ready(function(){$(“span”).parents(“ul”);}); – გაფილტრული მშობლები
$(document).ready(function(){$(“div”).children();}); – შვილი ელემენტები
$(“div”).children(“p.first”); – გაფილტრული შვილი ელემენტები
$(“div”).find(“span”); – გაფილტრული ყველა შვილი ელემენტი
$(“h2”).siblings(); – მოძმე ელემენტები
$(“h2”).siblings(“p”); – გაფილტრული მოძმე ელემენტები
$(“h2”).next(); – მომდევნო მოძმე ელემენტი
$(“h2”).nextAll(); – ყველა მომდევნო მოძმე ელემენტი
$(“h2”).nextUntil(“h6”); – მომდევნო ელემენტები მითითებულ ელემენტამდე
prev(), prevAll() და prevUntil() – წინა ელემენტები
—————- DOM-ფილტრები —————-
$(“div p”).first(); – პირველი ნანახი ელემენტებიდან
$(“div p”).last(); – ბოლო ნანახი ელემენტებიდან
$(“p”).eq(1); – ნანახი ელემენტებიდან რიგით მეორე
$(“p”).filter(“.intro”); – ნანახი ელემენტები კლასის სახელით
$(“p”).not(“.intro”); – ნანახი ელემენტებიდან გამოკლება კლასის სახელით
==== JSON ====
JSON არის ტექსტური ტიპის ფორმატი
ჯეისონის ფაილის ნიმუში: ‘{“name”:”John”, “age”:30, “car”:null}’
მონაცემების(Data) key/value სინტაქსი : “name”:”John” აუცილებელია ორმაგი ბრჭყალები
დასაშვები ტიპები:
– string ტექსტური {“name”:”John”}
– number რიცხვითი {“age”:30}
– object ობიექტი { “employee”:{“name”:”John”, “age”:30, “city”:”New York”} }
– array მასივი { “employees”:[“John”, “Anna”, “Peter”] }
– boolean ბულეანი {“sale”:true}
– null ნული {“middlename”:null}
დაუშვებელი ტიპები:
– ფუნქციები
– თარიღები
– undefined
ჯეისონის პირდაპირი გადაყვანა JS ობიექტში:
const Obj = {“name”:”John”, “age”:30, “car”:null};
ჯეისონის გადაყვანა JS ობიექტში:
const obj = JSON.parse(‘{“name”:”John”, “age”:30, “city”:”New York”}’);
const obj = JSON.parse(‘[“Ford”, “BMW”, “Audi”, “Fiat”]’);
JS ობიექტის გადაყვანა ჯეისონში:
const myJSON = JSON.stringify({name: “John”, age: 30, city: “New York”});
const myJSON = JSON.stringify([“John”, “Peter”, “Sally”, “Jane”]);
თარიღის გადაყვანა ჯეისონის ფაილში:
const myJSON = JSON.stringify({name: “John”, today: new Date()});
მონაცემის ამოღება JSON ფაილიდან 1:
const myJSON = ‘{“name”:”John”, “age”:30, “car”:null}’;
const myObj = JSON.parse(myJSON);
x = myObj.name;
მონაცემის ამოღება JSON ფაილიდან 2:
const myJSON = ‘{“name”:”John”, “age”:30, “car”:null}’;
const myObj = JSON.parse(myJSON);
x = myObj[“name”];
==== SCSS ====
—————————————————————————-
ცვლადების ტიპები:
ტექსტური: $String: “ტექსტი”;
რიცხვითი: $Num: 10px;
ფერის: $Color: white;
ლოგიკური: $Bool: true;
მონაცემების: $ItemList: 1px solid red;
ნულოვანი: $Var: null;
—————————————————————————-
– ჩასმული სტილები:
#p {
color: black;
a {
font-weight: bold;
&:hover {color: red;}
}
}
– იგივე კოდი CSS-ში:
#p {color: black;}
#p a {font-weight: bold;}
#p a:hover {color: red;}
—————————————————————————-
– მიქსინების გამოცხადება:
@mixin border-radius($radius) { // Префиксы для:
-webkit-border-radius: $radius; // Chrome и Safari
-moz-border-radius: $radius; // Firefox
-ms-border-radius: $radius; // Internet Explorer
-o-border-radius: $radius; // Opera
border-radius: $radius; // Стандартный CSS
– მიქსინების გამოყენება:
.box { @include border-radius(10px); }
—————————————————————————-
– ლოგიკური ოპერატორების გამოყენება
@mixin button-color ($height, $width) {
@if (($height < $width) and ($width >= 35px)) {
background-color: blue;
} @else {
background-color: green;
}
}
– გამოყენება:
.button {
@include button-color(20px, 30px)
}
==== linux ====
საჭირო ბრძანებები
==== Basic Linux CLI Commands ====
ls = List the directory (folder) system.
cd pathname = Change directory (folder) in the file system.
cd .. = Move one level up (one folder) in the file system.
cp = Copy a file to another folder.
mv = Move a file to another folder.
mkdir = Creates a new directory (folder).
rmdir = Remove a directory (folder).
clear = Clears the CLI window.
exit = Closes the CLI window.
man command = Shows the manual for a given command.
– man — чуть ли не самая важная команда — она отображает справку о команде, название которой ты напишешь следом;
– ls (от слова list, список) — перечислить все файлы в текущей директории, аналог виндовой команды dir. Самые важные ключи: -a (all) — показывать скрытые файлы, -l (long) — показывать подробности, -h (human) — показывать размеры в «человеческих» единицах, а не в байтах. Можно писать все ключи сразу: ls -lha;
– cd (change directory) — сменить директорию. Дальше можно указать папку, в которую ты хочешь перейти;
– pwd (print working directory) — узнать текущий путь;
– cp (copy) — скопировать файл. Дальше нужно указать, что и куда копировать;
– mv (move) — переместить файл. Тоже указываем какой, затем — куда;
– rm (remove) — стереть файл. Если стираешь каталог, указывай опцию -r (recursive), чтобы стереть все подкаталоги внутри, подкаталоги внутри них и так далее;
– chmod и chown — поменять права на файл или владельца файла;
– cat (concatenate) — придумана, чтобы объединять файлы, но часто используется, чтобы всего лишь вывести содержимое текстового файла. Просто напиши его название после cat;
– less — если файл длинный, то его удобно прокручивать. Для этого и придумана команда less;
– head и tail — с опцией -n число показывают сколькото строк от начала (head) или конца (tail) указанного файла;
– grep — поиск в строке по подстроке или регулярному выражению;
– find — поиск файлов;
– mkdir (make directory) — создание директории;
– touch — создание пустого файла. Просто укажи его название;
– sudo — выполнить следующую далее команду от имени суперпользователя;
– df (disk free) — посмотреть, сколько на дисках свободного места. Рекомендую писать df -h по аналогии с ls -h;
– du (disk usage) — узнать, сколько занимает каталог. Тоже есть опция -h;
– ps (processes) — посмотреть список запущенных тобой процессов и их идентификаторы;
– kill и идентификатор — завершить какойто процесс.
– Несколько важных сетевых команд:
– ping = попинговать узел;
– nslookup = узнать информацию об узле;
– traceroute = проследить путь пакетов до узла;
– netstat = информация об открытых портах и соединениях;
– whois = информация о регистрации домена.
в Linux обычно есть несколько утилит, которые сильно облегчат тебе жизнь. Если их нет, то стоит их установить:
– git = популярнейшая система контроля версий, как и ядро Linux, созданная Линусом Торвальдсом;
– nano = простейший текстовый редактор, работающий в терминале;
– unzip и unrar = думаю, ты догадываешься, зачем они нужны;
– curl = нужен для веб‑запросов;
– wget = для скачивания больших файлов;
– htop = показывает уровень загрузки системы и список процессов.
– Важно: выйти из программ, которые не закрываются сами, обычно можно, нажав Q.
– Прервать работу = Ctrl-C. А чтобы выйти из vim, если ты его открыл случайно, набери последовательность :q! и нажми Enter.
==== AJAX ====
AJAX (აბრევიატურა «Asynchronous Javascript And Xml») დაფუძნებულია შემდეგ ორ რამეზე
1. ბრაუზერში ჩაშენებული XMLHttpRequest ობიექტი (გამოიყენება ინფორმაციის მისაღებად)
2. JavaScript და HTML DOM (გამოიყენება მიღებული ინფორმაციის გამოსატანად)
– მოქმედების თანამიმდევრობა:
1. დაფიქსირდა მოვლენა ვებ-გვერდზე (ჩაიტვირთა გვერდი, დაეჭირა რომელიმე ღილაკს და ა.შ)
2. JavaScript-მა შექმნა XMLHttpRequest ობიექტი
3. XMLHttpRequest ობიექტმა გააგზავნა მოთცოვნა სერვერზე
4. სერვერმა მიიღო მოთხოვნა
5. სერვერმა დაუბრუნა გვერდს პასუხი მოთხოვნაზე
6. პასუხი წაიკითხა JavaScript-მა
7. შესაბამისი ქმედება (გვერდის განახლების მსგავსი) მოახდინა JavaScript-მა
==== XMLHttpRequest ობიექტის მეთოდები ====
– new XMLHttpRequest() – ახალი XMLHttpRequest ობიექტის შექმნა
– var variable = new XMLHttpRequest(); – XMLHttpRequest ობიექტის შექმნა
– abort() – მიმდინარე მოთხოვნის გაუქმება
– getAllResponseHeaders() – აბრუნებს სათაურ ინფორმაციას
– getResponseHeader() – აბრუნებს განსაზღვრულ სათაურ ინფორმაციას
– open(method, url, async, user, psw) – მოთხოვნის განსაზღვრა
– send() – მოთხოვნის გაგზავნა სერტვერზე GET მეთოდით
– send(string) – მოთხოვნის გაგზავნა სერტვერზე POST მეთოდით
– setRequestHeader() – სათაურ ინფორმაციის მნიშვნელობის მითითება
==== XMLHttpRequest ობიექტის თვისებები ====
onreadystatechange – განსაზღვრავს ფუნქციას რომელიც გამოიძახება readyState თვისების შეცვლისას
readyState – XMLHttpRequest – ის სტატუსი. მან შეიძლება მიღოს შემდეგი მნიშვნელობები:
0 – მოთხოვნა არ არის ინიციალიზებული
1 – დამყარებულია კავშირი სერვერთან
2 – მოთხოვნა მიღებულია
3 – მოთხოვნა მუშავდება
4 – მოთხოვნა დამუშავდა, შესრულდა და პასუხი მზადაა
responseText – აბრუნებს პასუხს სტრიქონული სახით
responseXML – აბრუნებს პასუხს XML ფორმატში
status – აბრუნებს მოთხოვნის სტატუსის ნომერს:
200 – “OK” (ყველაფერი კარფადაა)
403 – “Forbidden” (აკრძალული მოთხოვნა)
404 – “Not Found” (ვერ მოხერხდა პოვნა)
statusText -აბრუნებს სტატუს-ტექსტს (მაგ: “OK” ან “Not Found”)
როდესაც readyState არის 4 და სტატუსი არის 200, ე.ი პასუხი მზად არის.
==== მოთხოვნის გაგზავნა სერვერზე ====
სერვერზე მოთხოვნის გასაგზავნად გამოიყენება XMLHttpRequest ობიექტის open() და send() მეთოდები
xhttp.open(“GET”, “ajax_info.txt”, true);
xhttp.send();
open(method, url, async) – განსაზღვრავს მოთხოვნის ტიპს
method – მოთხოვნის ტიპი GET ან POST
url – სერვერის (ან ფაილის) მდებარეობა
async – true (ასინქრონული) ან false (სინქრონული)
send() – მოთხოვნის გაგზავნა GET მეთოდით
send(string) – მოთხოვნის გაგზავნა POST მეთოდით
==== GET მოთხოვნა ====
<button type=”button” onclick=”loadDoc()”>Request data</button>
<p id=”demo”></p>
<script>
function loadDoc() {
var xhttp = new XMLHttpRequest();
xhttp.onreadystatechange = function() {
if (this.readyState == 4 && this.status == 200) {
document.getElementById(“demo”).innerHTML = this.responseText;
}
};
xhttp.open(“GET”, “demo_get2.asp?fname=Henry&lname=Ford”, true);
xhttp.send(); }
</script>
==== POST მოთხოვნა ====
<button type=”button” onclick=”loadDoc()”>Request data</button>
<p id=”demo”></p>
<script>
function loadDoc() {
var xhttp = new XMLHttpRequest();
xhttp.onreadystatechange = function() {
if (this.readyState == 4 && this.status == 200) {
document.getElementById(“demo”).innerHTML = this.responseText;
}
};
xhttp.open(“POST”, “demo_post2.asp”, true);
xhttp.send(“fname=Henry&lname=Ford”); }
</script>
– open() მეთოდის url პარამეტრი, არის სერვერზე არსებული ფაილის მისამართი:
xhttp.open(“GET”, “ajax_test.asp”, true);
– ასინქრონულად მოთხოვნის გასაგზავნად, open() მეთოდის async პარამეტრი უნდა იყოს true:
xhttp.open(“GET”, “ajax_test.asp”, true);
– როდესაც ვიყენებთ async = true, ფუნქციის შესრულება ხდება როდესაც onreadystatechange მოვლენაში პასუხი მზად არის:
xhttp.onreadystatechange = function() {
if (this.readyState == 4 && this.status == 200) {
document.getElementById(“demo”).innerHTML = this.responseText;
}
};
xhttp.open(“GET”, “ajax_info.txt”, true);
xhttp.send();
==== jQuery & AJAX ====
– ajax() მეთოდი გამოიყენება AJAX ასინქრონული მოთხოვნის შესასრულებლად. მეთოდის სინტაქსი ასეთია:
$.ajax({name:value, name:value, … })
– $.ajax მეთოდის პარამეტრი და მათი აღწერები
url – მიუთითებს იმ მისამართს სადაც იგზავნება მოთხოვნა, გაჩუმების პრინციპით ეს მისამართი არის მიმდინარე გვერდი.
async – Boolean მნიშვნელობა, რომელიც მიუთითებს ასინქრონულია თუ არა მოთხოვნა. გაჩუმების პრინციპით არის true.
data – მიუთითებს გასაგზავნ მონაცემებს
type – მიუთითებს მოთხოვნის ტიპს (GET ან POST)
contentType – გასაგზავნი ინფორმაციის ტიპი, დეფაულტად არის “application/x-www-form-urlencoded; charset=UTF-8”
dataType – სერვერიდან მოსული პასუხის ტიპი (xml, json, script, html)
timeout – მოთხოვნის შესრულების დროის ლიმიტი მილიწამებში.
beforeSend() – ფუნქცია, რომელიც უნდა შესრულდეს მოთხოვნის გაგზავნის წინ.
success – ფუნქცია, რომელიც უნდა შესრულდეს თუ მოთხოვნა წარმატებით შესრულდება
error – ფუნქცია, რომელიც უნდა შესრულდეს თუ მოთხოვნა ვერ შესრულდება
complete – ფუნქცია, რომელიც უნდა შესრულდეს მოთხოვნის დამთავრდებისას (error და success ფუნქციების შემდეგ)
==== load() მეთოდი ====
load() მეთოდი ტვირთავს მონაცემებს სერვერიდან და ათავსებს მათ ამორჩეულ ელემენტში.
$(selector).load(url,data,function(response,status,xhr)) – load მეთოდის სინტაქსი
– url – განსაზღვრავს URL-ს რომლიც ჩატვირთვაც გვინდა (აუცილებელია მითითება)
– data – განსაზღვრავს მონაცემებს რომელიც მოთხოვნასთან ერთად გაიგზავნება სერვერზე (არააუცილებელი).
– function(response,status,xhr) – საპასუხო ფუნქცია რომელიც შესრულდება load() დასრულებისას
– response – მოთხოვნის შედეგად მიღებული ინფორმაცია
– status – მოთხოვნის სტატუსი (“success”, “notmodified”, “error”, “timeout”, ან “parsererror”)
– xhr – შეიცავს XMLHttpRequest ობიექტს
==== get() და post() მეთოდი ====
get() მეთოდი ტვირთავს მონაცემებს სერვერიდან HTTP GET ტიპის მოთხოვნით.
$.get(URL,data,function(data,status,xhr),dataType) – get მეთოდის სინტაქსი
– url – განსაზღვრავს URL-ს რომელსაც გვინდა რომ მივმართოთ მოთხოვნით (აუცილებელია მითითება)
– data – განსაზღვრავს მონაცემებს რომელიც მოთხოვნასთან ერთად გაიგზავნება სერვერზე (არააუცილებელი).
– function(response,status,xhr) – ფუნქცია რომელიც შესრულდება მოთხოვნა წარმატებით შესრულებისას
– response – მოთხოვნის შედეგად მიღებული ინფორმაცია
– status – შეიცავს მოთხოვნის სტატუსს (“success”, “notmodified”, “error”, “timeout”, ან “parsererror”)
– xhr – შეიცავს XMLHttpRequest ობიექტს
– dataType – განსაზღვრავს სერვერიდან მოსული მონაცემების ტიპს, შესაძლო მნიშვნელობებია:
– xml – XML დოკუმენტი
– html -HTML დოკუმენტი
– text – ტექსტური სტრიქონი
– script – პასუხი გაეშვება როგორც JavaScript და დაბრუნდება სტრიქონული სახით
– json – პასუხი გაეშვება როგორც JSON და დაბრუნდება როგორც JavaScript ობიექტი
– jsonp – პასუხი გაეშვება როგორც JSON, URL-ში დაემატება “?callback=?” და საპასუხო ფუნქცია შესრულდება ისე.
==== serialize() მეთოდი ====
serialize() მეთოდი ფორმის ელემენტების მნიშვნელობებისაგან ქმნის ტექსტურ სტრიქონს.
$(selector).serialize()
<script>
$(document).ready(function(){
$(“button”).click(function(){
$(“div”).text($(“form”).serialize()); }); });
</script>
==== serializeArray() მეთოდი ====
serializeArray() მეთოდი, ფორმის ელელემენტების მნიშვნელობებისაგან ქმნის ობიექტების მასივს (დასახელება: მნიშვნელობა)
$(selector).serializeArray()
<script>
$(document).ready(function(){
$(“button”).click(function(){var x = $(“form”).serializeArray();
$.each(x, function(i, field){
$(“#results”).append(field.name + “:” + field.value + ” “); }); }); });
</script>
WORDPRESS ოპტიმიზაციის საკითხები
საიტის ჩატვირთვის სიჩქარე არის მნიშვნელოვანი ფაქტორი SEO ოპტიმიზაციისათვის. საშუალოდ 1-3 წამი ჭირდება საიტებს ჩასატვირთად, მეტი დრო უკვე ნეგატიური მაჩვენებელია. ვორდპრესის სისტემა ზოგადად ძალიან ნელი სისტემაა და ამიტომ ჩატვირთვის სიჩქარის მომატება კრიტიკულად მნიშვნელოვანია ვორდპრესზე აწყობილი საიტისათვის.
სიჩქარის შემოწმება:
– https://pagespeed.web.dev
– https://tools.pingdom.com
– https://gtmetrix.com
– https://sitespeed.ru
შემოწმებისას ჯობია გავასუფთავოთ ქეში, რომელიც ჩატვირთვას ხელოვნურად აჩქარებს.
მისაღები მონაცემები: კარგი სიჩქარეა 1-2 წამი, ნორმალური 2-3 წამი, არაუშავს 3-4 წამი, ცუდი 4-6 წამი
HTTP მოთხოვნები 50-მდე უნდა იყოს, საიტის ზომა 500kb – 1mb-მდე
==== რჩევები ====
– სერვერი: უმჯობესია VPS სერვერი, სადაც შესაძლებელია ყველა პარამეტრის მართვა და სერვერული აჩქარება. კარგ შედეგს იძლევა სერვერული ქეშირება, ასევე ბოლო ვერსიები PHP და SQL
– საიტს უნდა ქონდეს მაქსიმალურად მსუბუქი თემა, ცოტა პლაგინები და ნაკლები ფუნქციები(ანიმაციები ან მსგავსი).
– განახლებები ყოველთვის კარგად მოქმედებს ოპტიმიზაციაზე.
– საიტის კეშირება უმჯობესია მოხდეს სერვერზე, რომელიც უფრო ეფექტურია, ვიდრე ბრაუზერული კეშირება.
– საიტზე შეიძლება მოხდეს როგორც სურათების ზომების, ასევე html, css, და js კოდის შემცირებაც კომპრესიით.
– ბაზებში ინახება რედაქტირებისა და ცვლილებების რევიზიები(ვერსიები), რომლებიც ტვირთავენ ბაზას და საჭიროა მათი ოპტიმიზაცია, ასევე შესაძლოა წაშლილი პლაგინების ფაილებიც იყოს შენახული. ბაზის გასუფთავებისთვის არის პლაგინები: WP Optimize, WP-Sweep, Optimize Database after Deleting Revisions, WP-DB Manager.
– CDN სერვერები ამცირებენ სერვერიდან მომხმარებლამდე ჩატვირთვის დროს.
– CSS და JS ფაილების ერთ ფაილად გარდაქმნა ამცირებს ჩატვირთვის დროს.
– ფაილებისა და სურათების ნელი(თანდათან) ჩატვირთვა ახდენს საიტის მალე გამოტანას.
– სურათების კომპრესიისთვის კარგი პლაგინია Smush რომელიც საიტის ყველა სურათს უკეთებს ოპტიმიზაციას.
– ზოგიერთ პლაგინს აქვს გარკვეული ფუნქციების გამორთვის საშუალება, რაც ამცირებს საიტის დატვირთვას.
– ავტოკეშირების გამართვა საუკეთესო გამოსავალია კეშირების საკითხში.
– დიდი რაოდენობით ფონტების ჩატვირთვა მკვეთრად ანელებს საიტს.
==== ოპტიმიზაციის ძირითადი ფაქტორები მნიშვნელობის მიხედვით ====
1. სწრაფი ჰოსტინგი
2. კეშირება
3. სურათების კომპრესია, WEBP ფორმატის გამოყენება
4. სურათების ნელი ჩატვირთვა
5. ფაილების მინიმიზაცია
6. ფაილების გაერთიანება
7. საიტის დამატება CDN ქსელში
8. სწრაფი თემა
9. JS ჩატვირთვის მოწესრიგება
10. ემოციების მხარდაჭერის გათიშვა
11. PHP, WP, პლაგინების ბოლო ვერსიებამდე განახლება
12. ზედმეტი პლაგინებისა და ვიჯეტების მოშორება
13. ნაკლები ფონტები, Google ფონტების ოპტიმიზაცია
14. Gravatar მოთხოვნების ოპტიმიზაცია
15. გადამისამართებების შემცირებს
16. პინგბექებისა და ტრეკბექების გათიშვა
17. ჰოტლინკების გათიშვა
18. ბაზების გაწმენდა, ოპტიმიზაცია
19. პოსტების რედაქტირების გათიშვა
==== WordPress ფაილოვანი სტრუქტურა ====
WordPress შედგება 3 ფოლდერისგან wp-content, wp-includes, და wp-admin
მთავარი ფაილებია: wp-config.php, wp-settings.php
– ფოლდერი wp-admin
შედგება სხვადასხვა ფაილებისგან CSS, JavaScript, PHP განკუთვნილია ადმინისტრირებისა და ფუნქციონალისათვის
– ფოლდერი wp-content
შედგება languages(აქ ითარგმნება), plugins(პლაგინები), themes(თემები), uploads(ბაზები სურათების და სხვა მედია-ფაილების)
– ფოლდერი wp-includes
შედგება ინტერფეისისა და ვორდპრესის ფუნქციებისაგან
– ვორდპრესის განახლებისას ფოლდერები wp-includes და wp-admin ახლიდან გადაიწერება
– ვორდპრესს აქვს MySQL ბაზები და PHP პროგრამირების ენა
– ვორდპრესის საიტის ადმინ-პანელი გაიხსნება საიტის სახელს დამატებული wp-admin
–
==== Themes სტრუქტურა ====
– თემა შედგება შაბლონებისგან, თითოეული შაბლონი გამოსახავს ცალკეულ ელემენტს. შაბლონებისგან იწყობა მთლიანი თემა.
– ახალი გვერდის შაბლონის შექმნა: ვაკოპირებთ page.php და ფაილის დასაწყისში ვწერთ:
<?php
/*Template Name: НазваниеФайла*/
?>
– შედგება CSS, JS, images, language ფაილებისაგან
– header.php — გლობალური ფაილი, გამოსახავს meta-მონაცემებს <head> განყოფილებაში და ზედა მენიუსათვიუს
– sidebar.php – გვერდითი სვეტის გენერაციის ფაილი, ძირითადად კატეგორიებისათვის, ტეგებისათვის, ბანერებისათვის, ბოლო ჩანაწერებისათვის.
– footer.php – ფუტერის შაბლონი, ქვედა მენიუ.
– index.php – საწყისი გვერდის შაბლონი, გამოსახავს ბოლო პოსტებს, ჩატვირთავს გვერდითი სვეტიდან მონაცემებს, კონტენტს.
– single.php – გამოსახავს ცალკეულ პოსტებს, ფაილი შეიცავს ციკლს, რომელსაც გამოყავს ერთი პოსტი.
– page.php – ადგენს ცალკეულ გვერდებს, მაგალითად “კონტაქტები”, “ჩვენს შესახებ” და ა.შ.
– archive.php – გამოყავს საარქივო ჩანაწერების გვერდი.
– category.php – ადგენს რომელიმე კატეგორიის მიხედვით ჩამოწერილ პოსტების გვერდს.
– tag.php – გვერდის შაბლონი, სადაც ტეგების მიხედვით ჩამოიწერება პოსტები.
– comments.php – მართავს კომენტარების გამოტანას.
– functions.php – მომხმარებლის ფუნქციონალის დასამატებლად PHP კოდით, აფართოებს საიტის შესაძლებლობებს. მუშაობს როგორც ვორდპრესის პლაგინი.
– style.css – მთავარი ფაილი CSS სტილების.
– images – სურათების ფილდერი
==== შაბლონების დამატება ====
– get_header() – ჰეადერის დამატება
– get_sidebar() – გვერდითი პანელის დამატება
– get_footer() – ფუტერის დამატება
<?php get_sidebar(); ?>
<?php get_footer(); ?>
==== ფაილები ====
– language – ენების ლოკალიზაციის ფაილი
– upgrade – ფაილი პლაგინების განახლებისათვის
– uploads – მედიით ატვირთული ფაილები(მიმაგრებული ფაილები)
– plugins – ძრავისთვის საჭირო პლაგინები
– გვერდების გასახსნელად ხდება ფაილების იერარქიის მიმდევრობით გადამოწმება და შესაფერისი შაბლონით გახსნა. თუ შესაფერისი კონკრეტული შაბლონი არ არსებობს, მაშინ ზოგადი შაბლონი იხსნება, ან საწყისი გვერდი.
1. category-plugins.php
2. category-25.php
3. category.php
4. archive.php
5. index.php
– ზოგიერთი გვერდი იერარქიის გარეშე იხსნება, ხელით მიმაგრებით, მაგალითად გვერდითი პანელი get_sidebar(), get_header(), get_footer(), get_search_form().
==== ბაზები ====
ვორდპრესის ბაზაში ინახება მომხმარებლების სახელები და პაროლები, პოსტებისა და გვერდების კონტენტი, მაღაზიის პროდუქტების მონაცემები, კომენტარები და სხვა კონტენტი.
– MySQL – ბაზის სოფტი
– SQL – ბაზის მართვის ბრძანებები
– phpMyAdmin – ვებ-ინტერფეისი MySQL სამართავად
– wp_commentmeta – метаданные всех комментариев на Постах и Страницах и в кастомных видах записей.
– wp_comments – все комментарии на сайте, включая Опубликованные, Ожидающие проверки, Одобренные и Спам.
– wp_links – информация о ссылках в менеджере ссылок; эта функция сейчас редко используется, после версии 3.5 скрыта по умолчанию.
– wp_options – самая большая таблица Вордпресс, в которой хранится множество настроек, от адреса сайта до настроек Чтения и Обсуждения. В этой таблице хранят свои записи темы и плагины.
– wp_postsmeta – в этой таблице хранятся метаданные постов и страниц.
– wp_posts – хранит контент постов и страниц и данные меню и навигации.
– wp_terms – эта таблица хранит категории постов, ссылок и тегов.
– wp_term_relationships – сообщения связаны с категориями и тегами в таблице wp_terms, эти ассоциации хранятся в таблице wp_term_relationships.
– wp_term_taxonomy – хранит таксономию категорий, ссылок и тегов для записей в таблице wp_terms.
– wp_usermeta – хранит метаданные всех пользователей из таблицы wp_users.
– wp_users – в этой таблице хранятся данные о всех пользователях сайта.
– wp_blogs – каждый сайт Мультисайт сети хранится здесь.
– wp_blog_versions – хранит текущую версию базы данных каждого сайта в сети, и используется в основном для обновления Мультисайт сети. Обновляется когда обновляется каждый сайт.
– wp_registration_log – хранит информацию о пользователях на каждом сайте.
– wp_site – содержит адрес сайта.
– wp_sitemeta – эта таблица хранит разные настройки сайтов.
– wp_users – содержит данные о всех пользователях. Такая же таблица есть в одиночной установке Вордпресс, но в этой таблице есть 2 дополнительные строки: Спам и Удаленные.
– wp_usermeta – содержит метаданные каждого пользователя каждого сайта.
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Ut elit tellus, luctus nec ullamcorper mattis, pulvinar dapibus leo.