NodeJS | AsyncLocalStorage and UnitOfWork Pattern – Context Management and Transaction Handling
NodeJS-ის ერთ-ერთი საინტერესო API არის AsyncLocalStorage
, რომელიც საშუალებას გვაძლევს, შევინახოთ და წავიკითხოთ მონაცემები კოდის შესრულების პროცესში.
Software Developer
NodeJS-ის ერთ-ერთი საინტერესო API არის AsyncLocalStorage
, რომელიც საშუალებას გვაძლევს, შევინახოთ და წავიკითხოთ მონაცემები კოდის შესრულების პროცესში.
ES6-ში დაემატა ახალი მონაცემთა სტრუქტურები Map და Set რომლებმაც მოგვცა ამოცანების გადაჭრის გზები Object და Array-ის გამოყენების გარეშე. Map არის მონაცემთა სტრუქტურა Key, Value მონაცემების შესანახად, Set კი მონაცემთა სტრუქტურაა სადაც ერთი და იგივე ტიპის, უნიკალური, მონაცემები ინახება თანმიმდევრულად. ამ სტატიაში განვიხილავთ Hashmap-ს, Map და Set მონაცემთა სტრუქტურებს, მოვიყვან პრაქტიკულ მაგალითებს და ასევე დავწერ WeakMap და WeakSet-ზე, რომლებსაც პრაქტიკაში ნაკლებად ვხვდებით, მაგრამ მათი მუშაობის პრინციპი უნდა ვიცოდეთ.
Dependency Injection (“დამოკიდებულების ინექცია”) ერთ-ერთი მთავარი კონცეპციაა ობიექტზე ორიენტირებულ პროგრამირებაში, რომელიც საშუალებას გვაძლევს კლასები ნაკლებად დამოკიდებულები და მარტივად ჩანაცვლებადი იყოს.
JavaScript-ში დამწყებებისთვის ერთ-ერთი ყველაზე დამაბნეველი თემა Scope (სეგმენტი) და Clouse-რე არის. ამ სტატიაში ვეცდები მარტივად ავხსნა თუ რას ნიშნავს ეს ტერმინები.
JavaScript-ი ერთ-ერთი ყველაზე პოპულარული პროგრამირების ენაა რომელიც როგორც Frontend-ში ასევე Backend-ში გამოიყენება, ხშირად პროგრამისტები წერენ JavaScript-ზე, მაგრამ არ იციან როგორ მუშაობს JS შიგნიდან. ამ პოსტების სერიაში დავწერ JavaScript-ის მუშაობის პრინციპებზე.
წინა პოსტში განვიხილეთ Event Loop-ის ფაზები და მათი შესრულების თანმიმდევრობა ამ პოსტში ცალ-ცალკე განვიხილავ ყველა ფაზას.
JavaScript-ის Event Loop-ში გვაქვს 2 Queue ესენი არის Callback (Task) Queue და MicroTask Queue (Promises), NodeJS-ში გვაქვს 6 Queue რომლის Event Callback–ები გარკვეულ ფაზაზე სრულდება, ყველა ფაზას თავის Queue აქვს. წინა პოსტში განვიხილე Event Loop-ის და Libuv-ის მუშაობის პრინციპი, ამ პოსტში დავწერ ფაზების თანმიმდევრობაზე.
NodeJS-ში ერთ-ერთი ყველაზე გაუგებარი ნაწილი Event Loop-ია ხშირად NodeJS Event Loop-ის განმარტების დროს საუბრობენ JavaScript-ის Event Loop-ზე, JavaScript-ის Event Loop რეალიზებულია ბრაუზერში და ის განსხვავდება NodeJS Event Loop-ისგან რომელიც რეალიზებულია Libuv-ში.
NodeJS არის გარემო სადაც JavaScript-ი სრულდება და გვაძლევს საშუალებას დავწეროთ ბექენდი JavaScript-ზე, სხვა ვებ-სერვერებისგან განსხვავებით NodeJS-ი ერთ thread-იანია რადგან JavaScript-ში ერთი thread-ი გვაქვს, მაგრამ რატომ არის NodeJS ასეთი სწრაფი თუ thread-ი მხოლოდ ერთია?
მოდულები NestJs-ში განსაზღვრავს კომპონენტებს როგორიც არის კონტროლერები და პროვაიდერები რაც აპლიკაციის მოდულარულ ნაწილებს ქმნის, ამ პოსტში დავწერ დინამიურ მოდულებზე AWS-ის მოდულის მაგალითზე.
TypeScript-ის სტანდარტულ ბიბლიოთეკაში არის უტილიტები რომლებიც გვეხმარება ტიპების გარდაქმნაში. ამ პოსტში დავწერ იმ უტილიტებზე რომლებსაც ყველაზე ხშირად ვიყენებთ პროექტებში ასევე გაჩვენებთ მათ იმპლემენტაციას.