გამოიწერე YouTube-ის არხიyoutube white icon svg გამოწერა

Val Do-ს ბლოგი

მოცემულ გვერდზე შეგიძლიათ გაეცნოთ ჩემს მიერ დაწერილ ბლოგებს, რომელიც ძირითად შემთხვევაში შეეხება ვებ-პროგრამირებას ან ინფორმაციულ ტექნოლოგიებს

როგორ ვისწავლო პროგრამირება?
როგორ ვისწავლო პროგრამირება?

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

ჩემი კარიერის მანძილზე ძალიან ბევრჯერ ვცადე სხვადასხვა მიდგომა ახალი პროგრამირების ენის შესასწავლად და მხოლოდ რამდენიმე მეთოდმა თუ გაამართლა. დღევანდელ ბლოგში ვაპირებ სწორედ ამ მიდგომებზე ვისაუბრო, რომელიც რა თქმა უნდა ჩემს შემთხვევაში ამართლებდა.

როგორ დავაღწიოთ თავი Tutorial hell-ს?

როდესაც პროგრამირების შესავლას YouTube-ის ვიდეოებით იწყებთ ძალიან მარტივია მოხვდეთ ე.წ. Tutorial hell-ში რაც გულისხმობს იმას, რომ თქვენ უყურებთ უამრავ ვიდეოს სადაც სხვადასხვა მეთოდით გასწავლიან გამოცდილი დეველოპერები და საბოლოო ჯამში იმდენად ბევრ ინფორმაციას იღებთ, რომ იკარგებით და ვეღარც თავს, ვეღარც ბოლოს ვერ უგებთ თუ რას სწავლობთ.

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

მოცემული კურსები შესაძლოა ავარჩიოთ მომხმარებლის შეფასებებიდან გამოდინარე ან მეგობრის რეკომენდაციით.

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

როგორ ვსწავლობ პროგრამირების ენას (ჩემი მეთოდი)

ახლა კი მოგიყვებით ჩემს მიდგომაზე, თუ როგორ ვსწავლობ პროგრამირების ახალ ენას ვიდეო გაკვეთილების დახმარებით.

მას შემდეგ რაც ავარჩევ კურსს რომელიც უნდა შევისწავლო ვიწყებ მის ყურებას და უბრალოდ მოსმენას, მაქსიმალურად ვცდილობ ვიყო ყურადღებით და თუ რაიმე არ მესმის ან მიჭირს გაგება, არ ვაიგნორებ, არამედ გარკვეულ მონაკვეთს მანამ ვუკირკიტები, სანამ 100%-ით არ ვიქნები დარწმუნებული, რომ ყველაფერი კარგად გავიგე.

ასევე, თუ თქვენი კურსი არის ინგლისურ ენაზე და არ მესმის კარგად რასაც საუბრობს ლექტორი, ვრთავ ე.წ. ტიტრებს და ისე ვაგრძელებ მოსმენას და თუ მაინც ისეთი სიტყვა ვიპოვე, რომელიც აქამდე არ ვიცოდი ვიყენებ გადათარგმნის ონლიან სერვისებს ისეთებს, როგორებიცაა: translate.google.com ან translate.ge

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

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

პროგრამირების შესწავლის მეორე საფეხური

მას შემდეგ რაც გაკვეთილს ბოლომდე მოვისმენ, უკვე მექმნება წარმოდგენა თუ როგორ მუშაობს მთლიანად ენა, როგორ ხდება ცვლადების აღწერა, მონაცემების გაცვლა და ა.შ.

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

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

პროგრამირების შესწავლის ფინალური ფაზა.

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

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

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

გახსოვდეთ როდესაც რაიმეს ვერ გაიგებთ, აუცილებელია გადახედოთ განვლილ მასალას ან ჩაიხედოთ პროგრამირების ენის დოკუმენტაციაში.

პროგრამირების უფასო კურსები ქართულად

 

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

თუ ჩემი გამომწერი ხართ ალბათ გეცოდინებათ, რომ შევიძინე მეორადი პერსონალური კომპიუტერი პროგრამირებისთვის და ზოგადად არხის მეტად განვითარებისთვის.

ასევე გეცოდინებათ ჩემი დამოკიდებულება ლინუქსის ოპერაციულ სისტემაზე და რა თქმა უნდა ახალი კომპიუტერის მთავარ ოპერაციულ სისტემადაც ლინუქსი ავირჩიე, კერძოდ დებიან დისტრიბუცია Ubuntu.

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

ღილაკის კომბინაცია რა ფუნქციას ასრულებს
Alt+Tab აქტიურ ფანჯრებს შორის ნავიგაცია
Super+H აქტიური ფანჯრის ჩაკეცვა
Ctrl+W აქტირუ ფანჯრის გათიშვა
Super+Shift+left arrow აქტიური ფანჯრის მარცხნივ ეკრანზე გადატანა
Super+Shift+right arrow აქტიური ფანჯრის მარჯვნივ ეკრანზე გადატანა
Alt+Esc აქტიურ ფანჯრებს შორის გადართვა პირდაპირი მეთოდით
Ctrl+Super+D ყველა აქტიური ფანჯრის დამალვა
Super+up arrow აქტიური ფანჯრის მთელ ეკრანზე გადიდება
Super+left arrow მარცხნივ გახსნა სპლიტ ფანჯრის
Super+right arrow მარჯვნივ გახსნა სპლიტ ფანჯრის
Super+L ეკრანის დაბლოკვა
Super+A ყველა აპლიკაციის ნახვა
Ctrl+Alt+T ტერმინალის გახსნა
Super+V შეტყობინებების პანელის გახსნა

Super ღილაკი წარმოადგენს კლავიატურაზე ე.წ. Win (Windows) ღილაკს

Firefox-ის ღილაკების კომბინაციები
Firefox-ის ღილაკების კომბინაციები

დღევანელ  ბლოგში განვიხილავთ mozilla firefox-ის ღილაკების კომბინაციებს, რომლებიც გაგვიმარტივებენ ვებ-დეველოპმენტს და პროცესს მინიმუმ 10-ჯერ უფრო სწრაფს გახდიან.

🔴 მნიშვნელოვანი ინფორმაცია ‼️

ქვემოთ მოცემულ ბრძანებებში command ღილაკი Windows და Linux სისტემებზე ნიშნავს ctrl ღილაკს

დეველოპერის ხელსაწყოები

ბრძანება ღილაკის კომბინაცია
დეველოპერის პანელი (inspect element) command + alt + I
ვებ კონსოლი (web console) command + alt + K
ინსპექტორი (inspector) command + alt + C
სქრინშოტის გადაღება command + shift + S
ქსელის პანელი (network) command + alt + E

სხვა და სხვა

ბრძანება ღილაკის კომბინაცია
ფოკუსირება ULR-ის ბარზე command + L
მთელ ეკრანზე გადიდება/დაპატარავება command + shift + F
ძიება გვერდზე command + F
საძიებო სისტემის ფოკუსი და ძიება command + K

ფანჯრები და ტაბები

ბრძანება ღილაკის კომბინაცია
ჩანართის დახუვა (tab) დახურვა command + W
ფანჯრის დახურვა command + shift + W
ბრაუზერის დახურვა command + Q
ახალი ჩანართის გახსნა command + T
ახალი ფანჯრის გახსნა command + N
ახალი პივატული ფანჯრის გახსნა command + shift + P
ბოლი გათიშული ჩანართის აღდგენა command + shift + T
ბოლო გათიშული ფანჯრის აღდგენა command + shift + N
აქტიური ჩანართის გადართვა მარჯვნივ 1-ით command + shift + [
აქტიური ჩანართის გადართვა მარცხნივ 1-ით command + shift + ]
რა არის web safe ფონტები HTML, CSS-ში
რა არის web safe ფონტები HTML, CSS-ში

თუ ერთხელ მაინც მიგიბავთ გუგლის ფონტი თქვენს საიტზე ალბათ შემჩნეული გექნებათ ფონტის მთავარი სახელის შემდეგ sans-serif, serif ან სხვა ჩანაწერი.

დღევანდელ ბლოგში და ასევე ვიდეოში, რომელიც YouTube-ზე უკვე დევს ვისაბუბრებ web safe და browser safe-ფონტებზე.

არსებობენ სტანდარტული ფონტები, რომლებიც მოყვება ნებისმიერ ოპერაციულ სისტემას და არ აქვს მნიშვნელობა თუ რომელი სისიტემაა ის, იქნება ეს Windows, Mac os თუ Linux-ის ნებისმიერი დისტრიბუცია.

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

რაც შეეხება მეორე ვერსიას, web safe ფონტები ასევე გამოიყენება იმ შემთხვევისთვის თუ ჩვენი ე.წ. (custom) ფონტი სწორად არ ჩაიტვირთება, ამ შემთხვევაში მოერე ვერსიად ასევე შეიძლება გვქონდეს web safe ფონტი.

 

როგორი კომპიუტერი მჭირდება პროგრამირების დასაწყებად?
როგორი კომპიუტერი მჭირდება პროგრამირების დასაწყებად?

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

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

რა მოთხოვნებს უნდა აკმაყოფილებდეს კომპიუტერი?

სანამ უშუალოდ კომპიუტერის მონაცემებზე გადავალთ, მოდი ჩამოვთვალოთ იმ პროგრამების მიახლოვებითი სია, რომლებიც  სწავლისთვის დაგვჭირდება.

როგორც ზემოთ ჩამოთვლილში ხედავთ, ვებ პროგრამირების შესწავლის დასაწყებად ძალიან ცოტა პროგრამაა საჭირო, შესაბამისად ის წარმოდგენები, რომ ჩვენ აუცლებელია შევიძინოთ ე.წ. სუპერკომპიუტერი და შედარებით ბიუჯეტური კომპიუტერით არ გამოგვივა პროგრამირება, არის მცდარი.

რა მინიმალური მონაცემები უნდა ქონდეს კომპიუტერს?

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

მაგალითისთვის, რომ გავუშვათ chrome-ის ბრაუზერი, როგორც მათ საიტზე ვკითხულობთ, აუცილებელია მინიმუმ კომპიუტერის პროცესორს ქონდეს 2GHz-ზე მეტი სიხშირე, ხოლო რაც შეეხება ოპერატიულ მეხსიერებას, სასურველია იყოს მინიმუმ 4GB და მყარი დისკის მოცულობა იყოს მინიმუმ 256GB

ასევე, აღსანიშნავია რომ თუ გამოვიყენებთ კოდის წერისთვის თანამედროვე IDE-ებს როგორიცაა მაგალითად Web Storm, მათ საკმაოდ უყვართ დიდი რაოდენობის ოპერატიული მეხსიერების გამოყენება, ისევე როგორც ჩვენს ბრაუზერებს, ამიტომ გაითვალისწინეთ, რომ თუ თქვენ მინიმალური მონაცემების კომპიუტერს იყიდით დეველოპმენტის დრო შესაძლოა გაგიგრძელდეთ, კომპიუტერის სისწრაფიდან გამომდინარე.

რომელი ოპერაციული სისტემა უნდა მქონდეს?

ვებ პროგრამირების სწავლის დაწყებისას ამას არ აქვს მნიშვნელობა, მთავარია თქვენ სად გრძნობთ თავს კომფორტულად იქნება ეს Windows, Mac OS თუ Linux, მაგრამ, მე, ჩემი გამოცდილებით, Linux-ს და Mac OS-ს მივანიჭებდი უპირატესობას, რადგანაც ისინი დაშენებულია UNIX-ზე

საიდან დავიწყოთ ვებ პროგრამირების შესწავლა?

ვებ პროგრამირების შესასწავლად უამრავი ინგლისურენოვანი ინტერნეტ რესურსი არსებობს, მაგრამ თუ თქვენთვის ინგლისური ბარიერს წარმოადგენს, შეგიძლიათ val-do.com-ზე ან Val Do-ს YouTube არხზე შეისწავლოთ 0-დან, საიტზე მოცემულია შემდეგი უფასო კურსები:

რა რჩევებს მივცემდი ჩემს თავს პროგრამირების სწავლის დაწყებამდე?
რა რჩევებს მივცემდი ჩემს თავს პროგრამირების სწავლის დაწყებამდე?

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

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

გამოყავი სწავლისთვის სპეციალური საათები

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

პროგრამირების შესწავლას ვიწყებდი მაშინ როდესაც მინდოდა ხან დილის 11 საათზე ხან საღამოს 5 საათზე, ხან 2 დღე ჩავაგდებდი და ბოლოს თავში ძალიან დიდი არეულობა მქონდა.

თუ თქვენ მიზნად დაისახავთ პროგრამირების შესწავლას აუცილებლად გამოყავით სწავლისთვის მკაცრად განკუთვნილი დრო, მაგალითად დღეში 6 საათი დილის 10-დან 4-მდე და მაქსიმალურად ფოკუსირდით სწავლაზე.

პროგრამირების შესწავლის ყველაზე რთული ნაწილი არის თანმიმდევრულობა და სწავლაზე დიდი ხნის განმავლობაში ფოკუსირება.

გაიცანი შენი კოდის ედითორი

სანამ კოდის წერაზე გადავალთ აუცილებელია ჩვენი ფავორიტი ედითორის ძირითადი მახასიათებლები და სწრაფი ღილაკების კომბინაციების შესწავლა.

შესაძლოა ეს რჩევა არა საჭიროდ მოგეჩვენოთ, მაგრამ დამიჯერეთ დეველოპმენტს მინიმუმ 10-ჯერ ააჩქარებთ თუ კლავიატურის ღილაკების კომბინაციებით შეასრულებთ ისეთ რუტინულ საქმეებს როგორიცაა, მაგალითად დაკოპირება ხაზების წაშლა და ა.შ.

აუცილებელია იცოდეთ თქვენი ფავორიტი ედითორის ის მხარეები, რომლებიც რუტნიული ოპერაციების დროს მაქსიმალურად დაგიზოგავთ და ნაკლებად დამოკიდებული იქნებით "მაუსზე"

დაიწყეთ საფუძვლებით

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

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

შეისწავლე უცხო ენა (ინგლისური)

მაშინ როდესაც კოდთან პირველი შეხება მქონდა ძალიან მიჭირდა და დოკუმენტაციის შესწავლა ინგლისურიდან და ვინაიდან მაშინ კარგად არ ვიცოდი ინგლისური ძალიან ვწვალობდი თარგმნაში.

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

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

ისწავლე დოკუმენტაციასთან მუშაობა

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

დოკუმენტაცია არის ის ერთადერთი წყარო ინფორმაციის რომელიც არის 100%-ით ზუსტი და გაძლევთ საშუალებას უშუალოდ ენის შემქმნელებისგან ისწავლოთ ამა თუ იმ ენის საფუძვლები, ხოლო "თუთორიალები" არის უბრალოდ ამ ენით რაიმე პატარა პროგრამის აწყობის გაკვეთილები, რომლებიც მიუხედავად იმისა, რომ კარგი სანახავია და მარტივი ენით წერია არ მოგცემთ პროგრამირების ენაზე სრულ სურათს.

დაიწყეთ ყველაზე მარტივი პროექტებით

მას შემდეგ რაც საფუძვლების თეორიულ ნაწილს შეისწავლით გეგონებათ, რომ ამ ენაზე უკვე ყველაფერი იცით და CV-შიც ამაყად ჩაწერთ, რომ ჯავასკრიპტის დეველოპერი ხართ.

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

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

ისწავლე google-თან მუშაობა

პროგრამისტის და არა მარტო პროგრამისტის ერთერთი მთავარი უნარი არის საჭირო ინფორმაციის მოძიება.

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

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

შეურეთდი პროგრამისტების საზოგადოებებს

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

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

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

tmux ძირითადი ღილაკის კონფიგურაციები
tmux ძირითადი ღილაკის კონფიგურაციები

მოცემულ ბლოგში განვიხილავთ tmux-ის ღილაკების კომბინაციებს, რომელიც საჭიროა ყოველდღიური გამოყენებისთვის

tmux-ის რეპოზიტორი გითზე

tmux-ის სესიების კომბინაციები (sessions)

ღილაკის კობმინაცია რას აკეთებს?
tmux ხსნის ახალ tmux-ის სესიას
ctrl+b s აქტიური სესიების ჩამონათვალი
ctrl+b $ სესიის სახელის შეცვლა
ctrl+b d სესსიდან გამოსვლა (detach)
ctrl+b ( წინა სესიაზე გადასვლა
ctrl+b ) შემდეგ სესიაზე გადასვლა

tmux-ის ფანჯრების კომბინაციები (windows)

ღილაკის კობმინაცია რას აკეთებს?
ctrl+b c ახალი ფანჯრის შექმნა
ctrl+b , ფანჯრის სახელის გადარქმევა
ctrl+b & ფანჯრის დახურვა
ctrl+b w აქტიური ფანჯრების სია
ctrl+b p წინა ფანჯრის აქტივაცია
ctrl+b n შემდეგი ფანჯრის აქტივაცია
ctrl+b 0...9 ფანჯრის აქტივაცია ინდექსის მიხედვით
ctrl+b l ბოლო აქტიური ფანჯრის გადართვა გადმოვრთვა ე.წ. (toggle)

tmux-ის Pane-ების კომბინაციები (split screen)

ღილაკის კომბინაცია რას აკეთებს?
ctrl+b % ეკრანის ჰორიზონტალურად გაყოფა
ctrl+b " ეკრანის ვერტიკალურად გაყოფა
ctrl+b { კურსორის გადართვა მარცნივ
ctrl+b } კურსორის გადართვა მარჯვნივ
ctrl+b up-arrow კურსორის გადართვა მაღლა (ისრით)
ctrl+b down-arrow კურსორის გადართვა დაბლა (ისრით)
ctrl+b right-arrow კურსორის გადართვა მარჯვნივ (ისრით)
ctrl+b left-arrow კურსორის გადართვა მარცხნივ (ისრით)
ctrl+b q pane-ების რაოდენობის გამოსახვა
ctrl+b x pane-ის გათიშვა

 

vim-ის insert რეჟიმის ღილაკების კომბინაციები
vim-ის insert რეჟიმის ღილაკების კომბინაციები

მოცემულ ბლოგში განვიხილავ ჩემს მიერ ყველაზე ხშირად გამოყენებულ ღილაკების კომბინაცეიბს vim-ში

ძიების კომბინაციები

კომბინაცია აღწერა
/ ძიების დაწყება
%s/მოსაძებნი_სიტყვა/ჩასანაცვლებელი_სიტყვა/gc

სიტყვის მოძებნა ფაილში და ჩანაცვლება დადასტურებით. დასადასტურებლად აუცილებელია y ან n

კოპირება ჩაკოპირება

კომბინაცია აღწერა
"+p clipboard-იდან ჩასმა (paste)
"+y clipboard-ზე დაკოპირება (copy to clipboard)

insert mode-ის ბრძანებები

კომბნაცია აღწერა
i აქტივაცია კურსორამდე
I

აქტივაცია ხაზის დასაწყისში

a

აქტივაცია კურსორის შემდეგ

A

აქტივაცია ხაზის ბოლოში

O

აქტივაცია ხაზის ზემოთ

o

აქტივაცია ხაზის ქვემოთ

ea

აქტივაცია სიტყვის ბოლოში

ctrl+h

სიმბოლოს წაშლა კურსორამდე, როდესაც უკვე აქტიურია insert რეჟიმი

ctrl+w

სიტყვის წაშლა კურსორამდე, როდესაც უკვე აქტიურია insert რეჟიმი

ctrl+j

ახალი ხაზის დაწყება, როდესაც უკვე აქტიურია insert რეჟიმი

ctrl+t

ხაზის მარჯვნივ წანაცვლება, როდესაც უკვე აქტიურია insert რეჟიმი

ctrl+d

ხაზის მარცხნივ წანაცვლება, როდესაც უკვე აქტიურია insert რეჟიმი

Esc

insert რეჟიმიდან გამოსვლა

მეტა სერვისი Angular აპლიკაციისთვის
მეტა სერვისი Angular აპლიკაციისთვის

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

index.html-ის მომზადება

<!doctype html>
<html lang="ka">

<head>
  <meta charset="utf-8">
  <title>თქვენი საიტის სათაური</title>
  <base href="/">
  <meta name="viewport" content="width=device-width, initial-scale=1">
  <!-- fav icon -->
  <link rel="icon" type="image/png" href="./assets/icons/logo.png">
  <!-- open graph meta tags -->
  <meta name="og:type" content="website" />
  <meta name="og:title" content="" />
  <meta name="og:description" content="" />
  <meta name="og:url" content="" />
  <meta name="og:image" content="" />
  <meta name="image" content="" />
  <!-- twitter meta tags -->
  <meta name="twitter:card" content="" />
  <meta name="twitter:site" content="" />
  <meta name="twitter:creator" content="" />
  <meta name="twitter:description" content="" />
  <meta name="twitter:url" content="" />
  <meta name="twitter:image" content="" />
</head>
...

როგორც ნახეთ index.html-ში წინასწარ გავამზადეთ ყველა მეტა თეგი content="" ცარიელი ატრიბუტით, რათა მომავალში აღარ დაგვჭირდეს ანგულარის აპლიკაციიდან ამ თეგების გენერაცია.

გენერაციის მაგივრად ჩვენ უბრალოდ განვაახლებთ მათ შიგთავსს კონკრეტული გვერდებიდან გამომდინარე.

შემდეგ ეტაპზე ვაგენერირებთ meta სერვისს

ng g s meta

სერვისის გენერაციის შემდეგ უკვე შეგიძლიათ გამოიყენოთ ჩემი კოდის ნიმუში

meta.service.ts

import { Injectable } from '@angular/core';
import { Meta, Title } from '@angular/platform-browser';
import { Router } from '@angular/router';
import { environment } from 'src/environments/environment';

@Injectable({
  providedIn: 'root'
})
export class MetaService {

  constructor(
    private _title: Title,
    private _meta: Meta,
    private _router: Router
  ) {
  }

  update(
    title: string,
    description: any,
    img?: string
  ) {
    /* page title */
    this._title.setTitle(title);
    /* meta tags */
    this._meta.updateTag({name: 'description', content: `${description.replace(/(<([^>]+)>)/gi, "").slice(0, 145)}...`});
    this._meta.updateTag({name: 'author', content: `Val Do`});
    /* open graph */
    this._meta.updateTag({ name: 'og:title', content: title });
    this._meta.updateTag({ name: 'og:description', content: `${description.replace(/(<([^>]+)>)/gi, "").slice(0, 145)}...` });
    this._meta.updateTag({ name: 'og:url', content:`${environment.baseUrl}/${this._router.url.slice(1)}` });
    this._meta.updateTag({ name: 'og:image', content: img || `${environment.baseUrl}/assets/social.jpg` });
    this._meta.updateTag({ name: 'image', property: 'og:image', content: img || `${environment.baseUrl}/assets/social.jpg` });
    /* twitter */
    this._meta.updateTag({ name: 'twitter:card', content: 'summary_large_image' });
    this._meta.updateTag({ name: 'twitter:site', content: '@va1_do' });
    this._meta.updateTag({ name: 'twitter:creator', content: '@va1_do' });
    this._meta.updateTag({ name: 'twitter:title', content: title });
    this._meta.updateTag({ name: 'twitter:description', content: `${description.replace(/(<([^>]+)>)/gi, "").slice(0, 145)}...` });
    this._meta.updateTag({ name: 'twitter:url', content:`${environment.baseUrl}/${this._router.url.slice(1)}` });
    this._meta.updateTag({ name: 'twitter:image', content: img ||`${environment.baseUrl}/assets/social.jpg` });
  }
}

meta.service.ts ფაილში გვაქვს 1 მეთოდი update(title: string, description: any, img?:string), მოცემულ მეთოდს გადმოეცემა 2 ძირითადი და 1 არა ძირითადი პარამეტრი ესენია:

  • title - გვერდის სათაური
  • description - გვერდის აღწერა
  • img? - გვერდის სურათი

როგორც ზემოთ ავღნიშნე img პარამეტრი არაა საჭირო პარამეტრი, იმ შემთხვევაში თუ პარამეტრი არ გადმოეცემა შეგიძლიათ მიუთითოთ რაიმე სტანდარტული სურათი თქვენი აპლიკაციისთვის, რომელიც იქნება პროექტის assets/ დირექტორიაში

როგორც მეტა სერვისიდან ჩანს ვიყენებ javascript-ის .replace() მეთოდს, რომელსაც გადავცემ regex-ს რომელიც უზრუნველყოფს თეგების სინტაქსის ამოღებას კონკრეტული ტექსტიდან, იმ შემთხვევაში თუ თქვენ description-პარამეტრში გადმოეცით ტექსტი, რომელიც შეიცავს html თეგებს, ასევე ვიყენებ .slice(0, 145) მეთოდს რომელიც გადმოცემული ტექსტიდან ამოიღებს მხოლოდ მაქსიმუმ 145 სიმბოლოს, რაც ზოგადად description ტექსტის მაქსიმალური სიმბოლოების რაოდენობაა.

app.component.ts

გამოყენების მაგალითი

import { Component, OnInit } from '@angular/core';
import { MetaService } from './meta.service';

@Component({
  selector: 'app-root',
  templateUrl: './app.component.html',
  styleUrls: ['./app.component.css']
})

export class AppComponent implements OnInit{
  constructor(
    private _metaService: MetaService
  ) {}

  ngOnInit(): void {
    this._metaService.update(
      'თქვენი გვერდის სათაური',
      'თქვენი გვერდის აღწერა',
      'თქვენი გვერდის ფოტოს მისამართი path/img'
    )
  }

}

პ.ს.

იმისთვის, რომ meta სერვისმა იმუშაოს სოციალურ ქსელებში აუცილებელია თქვენი პალიკაცია იყენებდეს Angular universal-ს ანუ server side rendering-ს

Google rich result-ის კომპონენტი Angular აპლიკაციისთვის
Google rich result-ის კომპონენტი Angular აპლიკაციისთვის

როგორც იცით, იმისთვის, რომ გუგლის საძიებო სისტემაში ჩვენი გვერდი ლამაზად მეტად ინფორმირებულად გამოჩნდეს საჭიროა schema.org-ის json-ld-ის გამოყენება.

სტრუქტურის ნიმუშების სანახავად შეგიძლიათ გადახვიდეთ მოცემულ ბმულზე

ანგულარ აპლიკაცას არ აქვს პირდაპირი მხარდაჭერა და სწორედ ამიტომ ავაწყე კომპონენტი, რომელიც უზრუნველყოფს დოკუმენტში json-ld-ის ინტეგრაციას.

პირველ რიგში დავაგენერიროთ კომპონენტი

ng g c json-ld

კომპონენტის გენერაციის შემდეგ, ჩვენი კომპონენტი უნდა გამოიყურებოდეს შემდეგნაირად

json-ld.component.ts

import { DOCUMENT } from '@angular/common';
import { AfterViewInit, Component, Inject, Input, Renderer2 } from '@angular/core';

@Component({
  selector: 'app-json-ld',
  templateUrl: './json-ld.component.html',
  styleUrls: ['./json-ld.component.scss']
})
export class JsonLdComponent implements AfterViewInit {

  @Input() data!: any;

  constructor(
    @Inject(DOCUMENT) private _document: Document,
    private _renderer2: Renderer2
  ) { }

  ngAfterViewInit(): void {
    const jsonLdElement: HTMLElement = this._document.querySelector('[type="application/ld+json"]') as HTMLElement;

    if (!jsonLdElement) {
      const script = this._renderer2.createElement('script');
      script.type = `application/ld+json`;
      script.text = JSON.stringify(this.data);
      this._renderer2.appendChild(this._document.head, script);
      return;
    }

    jsonLdElement.innerText = JSON.stringify(this.data);
  }

}

მას შემდეგ რაც კომპონენტს ავაწყობთ ჩვენ უკვე შეგვიძლია მას @Input() დეკორატორის დახმარებით სასურველი კომპონენტიდან გადმოვაწოდოთ ჩვენთვის სასურველი სტრუქტურის json.

მაგალითად წარმოვიდგინოთ, რომ გვაქვს ონლაინ მაღაზია და გვინდა json-ld-ის ინიციალიზაცია მაღაზიის პროდუქტებზე

product.component.ts

import { Component, OnInit } from '@angular/core';
import { Observable, tap } from 'rxjs';
import { ProductService } from '../services/product.service';

interface Product {
  title: string;
  description: string;
  images: string[];
  price: string;
}

@Component({
  selector: 'app-product',
  templateUrl: './product.component.html',
  styleUrls: ['./product.component.scss']
})
export class ProductComponent implements OnInit {

  product$!: Observable<Product>;
  schema!: any;

  constructor(
    private _productService: ProductService
  ) { }

  ngOnInit(): void {
    this.product$ = this._productService.getProduct().pipe(
      tap(product => {
        this.schema = {
          "@context": "https://schema.org/",
          "@type": "Product",
          "name": product.title,
          "img": product.images,
          "description": product.descr.replace(/(<([^>]+)>)/gi, "").slice(0, 145),
          "sku": product.product_id,
          "offers": {
            "@type": "AggregateOffer",
            "offerCount": product.quantity,
            "lowPrice": product.price,
            "highPrice": product.price,
            "priceCurrency": "GEL",
          }
        }
      })
    );
  }

}

product.component.html

<ng-container *ngIf="(product$|async) as product">
    ... თქვენი კოდი
    <app-json-ld [data]="schema"></app-json-ld>
</ng-container>
HTML CSS-ის ინტენსიური კურსი დამწყებთათვის
HTML CSS-ის ინტენსიური კურსი დამწყებთათვის

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

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

ლექციები ჩატარდება კვირაში 2 დღე და მათი ხანგრძლივობა შეადგენს 1,5 საათს. შევხვდებით ონლაინ, ტელეგრამის საშუალებით, ასევე ჩავიწერთ ყველა ლექციას Full HD ფორმატში და გამოგიგზავნით ლექციის დასრულების შემდგომ.

კურსის სრული ხანგრძლივობა შეადგენს 22 საათს, რომლის ფარგლებშიც შეისწავლით HTML, CSS ენებს და მათი დახმარებით სტატიკური ვებ-გვერდების აწყობას.

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

*კურსის დასაწყებად აუცილებელია დარეგისტრირდეს მინიმუმ 10 სტუდენტი.

👉🏻 რეგისტრაცია

🤔 გაქვს კითხვები? 👉🏻 მომწერე აქ

*იმ შემთხვევაში, თუ კურსი არ მოგეწონებათ გადახდილი თანხა მთლიანად აგინაზღაურდებათ

რა მოხდება კურსის დასრულების შემდეგ?

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

* დეველოპმენტის სწავლა მარტივი არ არის, თუმცა სურვილის და მონდომების შემთხვევაში აუცილებლად გამოგივა, ჩემი მიზანია დაგეხმარო.

* ყველა დეველოპერი ვერ გახდება, რადგან ისევე როგორც სხვა პროფესიები, გარკვეულ უნარებს მოითხოვს, თუმცა ცდად ნამდვილად ღირს.

* რამდენად სწრაფად დასაქმდები და რამდენ ნიშნიანი ხელფასი გექნება, შენს მონდომებაზეა დამოკიდებული, კურსის ფარგლებში მაქსიმალურად გაგიზიარებ ჩემს გამოცდილებას.

კურსის განმავლობაში შეისწავლით:

ლექცია 1 როგორ მუშაობს ვებსაიტი
რა არის HTML და CSS
სამუშაო გარემოს მომზადება
ბრაუზერის დეველოპერის ხელსაწყოები
რა არის HTML თეგი, პირველი საიტის აწყობა
დავალება
ლექცია 2 HTML-ის ატრიბუტები
class ატრიბუტი და მისი თავისებურებები
id ატრიბუტი და მისი თავისებურებები
style ატრიბუტი, CSS-ის შესავალი
ელემენტების საწყისი (default) მნიშვნელობები და box model (margin, padding, box-sizing, border)
დავალება
ლექცია 3 CSS-ის სელექტორები
CSS-ის იმპორტი, CSS-ის ცვლადები
ბლოკური, ინლაინ, და ბლოკურ-ინლაინი ელემენტები
HTML ფორმები და მისი ელემენტები
CSS-ის ფსევდო სელექტორები
დავალება
ლექცია 4 ტიპოგრაფია, ფონტებთან მუშაობა
ვებ ფონტების კონვერტაცია
CSS position თვისება
რელაციური(relative) პოზიციის გამოყენება
ფიქსირებული(fixed) პოზიციის გამოყენება
აბსოლუტ პოზიციის(absolute) გამოყენება
სტიკი პოზიციის(sticky) გამოყენება
დავალება
ლექცია 5 display: flex; თვისება
flex container-ის თვისებების გამოყენება
flex item-ების თვისებების გამოყენება
gap თვისების გამოყენება პრაქტიკაში
პრაქტიკული მაგალითები flexbox-ზე
დავალება
ლექცია 6 display: grid; თვისება
grid container-ის თვისებების გამოყენება
grid item-ების თვისებების გამოყენება
პრაქტიკული მაგალითები grid-ზე
დავალება
ლექცია 7 რა არის რესპონსივი და რაში გამოიყენება
@media query-ების განხილვა
რესპონსიული საიტის მაგალითები
რეპონსიული საიტის აწყობა
დავალება
ლექცია 8 CSS ანიმაციების შესავალი
keyframe ტიპის ანიმაციები
transition თვისება
transform თვისება
ანიმაციური ელემენტების პრაქტიკული გამოყენება
დავალება
ლექცია 9 ცხრილებთან მუშაობა
ლისტებთან მუშაობა
სურათებთან მუშაობა და მისი პრაქტიკული სავარჯიშოები
ფონებთან მუშაობა და მისი პრაქტიკული სავარჯიშოები
დავალება
ლექცია 10 რა არის ჯავასკრიპტი (შესავალი)
ფინალური პროექტის დავალება
ფინალური პროექტის დაგეგმვა
შემდგომი ნაბიჯები
დავალება
ლექცია 11 figma-სთან მუშაობა და დიზაინის წაკითხვა
figma-ში არსებული დიზაინის აწყობა კოდში

 

 

Sublime Text 3 - კონფიგურაცია Angular-ისთვის
Sublime Text 3 - კონფიგურაცია Angular-ისთვის

გადავწყვიტე ცოტა ხნით შევეშვა VS Code-ს და დავუბრუნდე Sublime Text 3 ედითორს, ამ სტატიაში შესული იქნება Sublime Text 3-ის ჩემებური კონფიგურაცია

Package control-ის ინსტალაცია

პირველ რიგში საბლაიმის გახსნისთანავე საჭიროა დავაყენოთ Package control.

გავხსნათ საბლაიმი და დავაწვეთ command(ctrl)+shift+p, რის შემდეგაც გამოვა ჩასაწერი ველი, რომელშიც უნდა ჩავწეროთ Install Package Control, ამის შემდეგ საბლაიმი თავისით შემოგვთავაზებს ვარიანტს და ავირჩიოთ შესაბამისი Install Package Control

File Icon-ის დაყენება

საბლაიმის ფაილ აიქონები ნამდვილად არაა ლამაზი და არ წარმოაჩენს ერთი შეხედვით ფაილის ტეპებს, სწორედ ამიტომ დავაყენოთ A File Icon-ის თემა.

  1. ვაწვებით command(ctrl)+shift+p
  2. ვკრეფთ Package control
  3. ვირჩევთ Install Package
  4. ვკრეფთ A File Icon და ვაწვებით ენთერს
  5. გადავტვირთოთ საბლაიმი

Import Helper-ის დაყენება

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

ფლაგინის სახელია ImportHelper

  1. ვაწვებით command(ctrl)+shift+p
  2. ვკრეფთ Package control
  3. ვირჩევთ Install Package
  4. ვკრეფთ ImportHelper და ვაწვებით ენთერს

ფლაგინის გამოსაყენებელი ღილაკების კომბინაციაა ctrl+alt+i

Terminus-ის დაყენება

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

  1. ვაწვებით command(ctrl)+shift+p
  2. ვკრეფთ Package control
  3. ვირჩევთ Install Package
  4. ვკრეფთ Terminus და ვაწვებით ენთერს

ინსტალაციის შემდეგ გამოვიძახოთ ღილაკების კობმინაციით command(ctrl)+shift+p და მოვძებნოთ შემდეგი ტექსტი, Preferences: Terminus Key Bindings, მას შემდეგ რაც გაიხსნება პარამეტრები ცარიელ მხარეს ფაილის ჩავწეროთ შემდეგი კონფიგურაცია

[
	{ "keys": ["alt+`"], "command": "toggle_terminus_panel" },
	// Open a terminal tab at current file directory
    {
        "keys": ["ctrl+alt+t"], "command": "terminus_open", "args": {
            "cwd": "${file_path:${folder}}"
        }
    },
]

 

მოცემული კონფიგურაცია დაგვეხმარება მარტივად კლავიატურის დახმარებით გამოვიძახოთ Terminus-ი

alt+` გამოიძახებს ტერმინალს, ხოლო ctrl+alt+t გამოიძახებს ტერმინალს იმ დირექტორიაში რომელზეც ვდგავართ

კონფიგურაცია

როგორც იცით ერთ-ერთი ყველაზე გამოსადეგი ღილაკის კომბინაცია არის command(ctrl)+p, რომლის დახმარებითაც მარტივად შეგვიძლია გადავიდეთ სასურველ ფაილში, ფაილის დასახელების აკრეფით.

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

კოფიგურაციის დასამატებლად აუცილებელია გავხსნათ საბლაიმის კოფიგურაციის json ფაილი Preferences > settings და დავამატოთ შემდეგი კოფიგურაცია

"folder_exclude_patterns": [
    	"node_modules/**",
    	".angular/**",
    	"dist/**",
    	".git/**"
 ]

ხაზის წაშლის ფუნქციონალი მაკზე

ვიზუალ სტუდიო კოდიდან გადმოყოლილი ჩვევა ხაზის წაშლაზე როგორც აღმოვაჩინე საბლაიმზეც დამჭირდა, მაგრამ აქ სხვა ღილაკების კომბინაციითაა, ctrl+shift+k, მაგრამ მაკზე ჩემთვის მოსახერხებელი კომბინაცია დავაყენე Preferences > Key Bindings

{ "keys": ["super+shift+k"], "command": "run_macro_file", "args": {"file": "res://Packages/Default/Delete Line.sublime-macro"} },

უბრალოდ ctrl ღილაკი შევცვალე command ღილაკით, ვინდოუსზე და ლინუქსზე თუ თქვენთვის სტანდარტული კომბინაცია მისაღებია შეგიძლიათ დატოვოთ

დირექტირიის გახსნა საიდ ბარში

Preferences > Key Bindings

{ "keys": ["super+shift+e"], "command": "reveal_in_side_bar" }

Emmet-ის დაყენება

  1. ვაწვებით command(ctrl)+shift+p
  2. ვკრეფთ Package control
  3. ვირჩევთ Install Package
  4. ვკრეფთ Emmet და ვაწვებით ენთერს