αž€αžΆαžšαžŸαžšαžŸαŸαžšαž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž’αžŸαž˜αž€αžΆαž› (αžœαž‚αŸ’αž‚αžŸαž·αž€αŸ’αžŸαžΆαž–αŸαž‰)

αž€αžΆαžšαžŸαžšαžŸαŸαžšαž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž’αžŸαž˜αž€αžΆαž› (αžœαž‚αŸ’αž‚αžŸαž·αž€αŸ’αžŸαžΆαž–αŸαž‰)

αž€αžΆαžšαžŸαžšαžŸαŸαžšαž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž’αžŸαž˜αž€αžΆαž›αžαŸ’αž˜αžΈαŸ—αž“αŸαŸ‡αž”αžΆαž“αž€αŸ’αž›αžΆαž™αž‘αŸ…αž‡αžΆαž˜αž·αž“αžαž·αž…αž‡αžΆαž„αž€αžΆαžšαžŸαžšαžŸαŸαžšαž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž”αŸ‰αžΆαžšαŸ‰αžΆαž‘αŸ‚αž›αž”αž»αžšαžΆαžŽαž‘αŸ αž αžΎαž™αž“αŸ…αž€αŸ’αž“αž»αž„αž–αž·αž—αž–αž“αŸƒ JavaSript αž‘αžΆαŸ†αž„αž“αŸ…αž€αŸ’αž“αž»αž„αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαžšαž»αž€αžšαž€ αž“αž·αž„αž“αŸ…αž€αŸ’αž“αž»αž„ Node.js αž€αžΆαžšαž™αž›αŸ‹αžŠαžΉαž„αž–αžΈαž”αž…αŸ’αž…αŸαž€αž‘αŸαžŸαžšαž”αžŸαŸ‹αžœαžΆαž”αžΆαž“αž™αž€αž…αŸ†αžŽαž»αž…αž€αžŽαŸ’αžαžΆαž›αž˜αž½αž™αž€αŸ’αž“αž»αž„αž€αžΆαžšαžšαŸ€αž”αž…αŸ†αž‘αžŸαŸ’αžŸαž“αŸˆαž–αž·αž—αž–αž›αŸ„αž€αžšαž”αžŸαŸ‹αž’αŸ’αž“αž€αž’αž—αž·αžœαžŒαŸ’αžαž“αŸαŸ” αžαŸ’αž‰αž»αŸ†αžŸαžΌαž˜αž“αžΆαŸ†αž˜αž€αž‡αžΌαž“αž›αŸ„αž€αž’αŸ’αž“αž€αž“αžΌαžœαžœαž‚αŸ’αž‚αžŸαž·αž€αŸ’αžŸαžΆαžŠαŸαž‘αžΌαž›αŸ†αž‘αžΌαž›αžΆαž™ αž“αž·αž„αž–αŸαž‰αž›αŸαž‰αž”αŸ†αž•αž»αžαž‡αžΆαž˜αž½αž™αž“αžΉαž„αž€αžΆαžšαž–αž“αŸ’αž™αž›αŸ‹αž’αŸ†αž–αžΈαžœαž·αž’αžΈαžŸαžΆαžŸαŸ’αžšαŸ’αžαžšαžΈαž€αžšαžΆαž›αžŠαžΆαž›αž‘αžΆαŸ†αž„αž’αžŸαŸ‹αž“αŸƒαž€αžΆαžšαžŸαžšαžŸαŸαžšαž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž’αžŸαž˜αž€αžΆαž› αž’αžΆαžŠαžΆαž”αŸ‹αž‘αŸαžšαžšαžœαžΆαž„αž–αž½αž€αžœαžΆ αž“αž·αž„αž€αžΆαžšαž”αžΎαž€αž‡αŸ†αž“αž½αž™αŸ” αž”αž…αŸ’αž…αž»αž”αŸ’αž”αž“αŸ’αž“αž“αŸαŸ‡αžœαžΆαž˜αžΆαž“ 23 αž€αžΆαžšαž”αž„αŸ’αžšαŸ€αž“ 3 αžšαž”αžΆαž™αž€αžΆαžšαžŽαŸ αž“αž·αž„ 28 αžƒαŸ’αž›αžΆαŸ†αž„αžŠαŸ‚αž›αž˜αžΆαž“αž§αž‘αžΆαž αžšαžŽαŸαž€αžΌαžŠαž‡αžΆαž…αŸ’αžšαžΎαž“αž“αŸ…αž›αžΎ github αŸ” αžŸαžšαž»αž”αž”αŸ’αžšαž αŸ‚αž› 17 αž˜αŸ‰αŸ„αž„αž“αŸƒαžœαžΈαžŠαŸαž’αžΌαŸ– αž—αŸ’αž‡αžΆαž”αŸ‹αž‘αŸ…αž”αž‰αŸ’αž‡αžΈαž…αžΆαž€αŸ‹.

αž€αžΆαžšαž–αž“αŸ’αž™αž›αŸ‹αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αžŠαŸ’αž™αžΆαž€αŸ’αžšαžΆαž˜

αžŠαŸ’αž™αžΆαž€αŸ’αžšαžΆαž˜ (αžαžΆαž„αž›αžΎ) αž”αž„αŸ’αž αžΆαž‰αž–αžΈαž€αžΆαžšαžαž—αŸ’αž‡αžΆαž”αŸ‹αžšαžœαžΆαž„αžœαž·αž’αžΈαž•αŸ’αžŸαŸαž„αž‚αŸ’αž“αžΆαž“αŸƒαž€αžΆαžšαž’αŸ’αžœαžΎαž€αžΆαžšαž‡αžΆαž˜αž½αž™αž’αžŸαž˜αž€αžΆαž›αŸ” αž”αŸ’αž›αž»αž€αž–αžŽαŸŒαžŸαŸ†αžŠαŸ…αž‘αŸ…αž›αžΎαž€αžΆαžšαžŸαžšαžŸαŸαžšαž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž’αžŸαž˜αž€αžΆαž› αž αžΎαž™ b/w αž”αž„αŸ’αž αžΆαž‰αžœαž·αž’αžΈαžŸαžΆαžŸαŸ’αžαŸ’αžšαžŸαžšαžŸαŸαžšαž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž”αŸ‰αžΆαžšαŸ‰αžΆαž‘αŸ‚αž› (semaphores, mutexes, barriers αŸ” αž”αžΆαž“αž•αŸ’αžαž›αŸ‹αž±αŸ’αž™αž€αŸ’αž“αž»αž„αžŠαŸ’αž™αžΆαž€αŸ’αžšαžΆαž˜αžαŸ‚αž”αŸ‰αž»αžŽαŸ’αžŽαŸ„αŸ‡αžŠαžΎαž˜αŸ’αž”αžΈαž€αŸ†αžŽαžαŸ‹αž‘αžΈαž€αž“αŸ’αž›αŸ‚αž„αž“αŸƒαž€αžΆαžšαžŸαžšαžŸαŸαžšαž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž’αžŸαž˜αž€αžΆαž›αž”αžΆαž“αž€αžΆαž“αŸ‹αžαŸ‚αžαŸ’αžšαžΉαž˜αžαŸ’αžšαžΌαžœ)αŸ” αž‚αŸ†αžšαžΌαžαž½αžŸαž˜αŸ’αžαŸ‚αž„αž‚αžΊαž‘αžΆαž€αŸ‹αž‘αž„αž‘αŸ…αž“αžΉαž„αž€αžΆαžšαžŸαžšαžŸαŸαžšαž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž’αžŸαž˜αž€αžΆαž› αž–αžΈαž–αŸ’αžšαŸ„αŸ‡αž€αžΆαžšαž’αž“αž»αžœαžαŸ’αžαžαž½αžŸαž˜αŸ’αžαŸ‚αž„αžŠαŸ„αž™αž˜αž·αž“αž˜αžΆαž“ multithreading αž€αŸαž˜αžΆαž“αžŸαž·αž‘αŸ’αž’αž·αž€αŸ’αž“αž»αž„αž€αžΆαžšαž˜αžΆαž“ αž“αž·αž„αž”αž˜αŸ’αžšαžΎαžŠαž›αŸ‹αžšαž…αž“αžΆαžŸαž˜αŸ’αž–αŸαž“αŸ’αž’αž€αžΌαžŠαž’αžŸαž˜αž€αžΆαž›αž•αž„αžŠαŸ‚αžšαŸ” αž”αž“αŸ’αž‘αžΆαžαŸ‹αž…αŸ†αž“αž»αž…αž—αŸ’αž‡αžΆαž”αŸ‹αž–αŸ’αžšαžΉαžαŸ’αžαž·αž€αžΆαžšαžŽαŸ αž“αž·αž„αž‡αž½αžšαž€αŸ’αž“αž»αž„αž–αŸαž›αžŠαŸ†αžŽαžΆαž›αž‚αŸ’αž“αžΆαž‘αŸ…αž“αžΉαž„αž€αžΆαžšαž αŸ…αžαŸ’αžšαž‘αž”αŸ‹αž˜αž€αžœαž·αž‰ αž–αžΈαž–αŸ’αžšαŸ„αŸ‡αž’αžšαžΌαž”αžΈαž‘αžΆαŸ†αž„αž“αŸαŸ‡αž•αŸ’αž’αŸ‚αž€αž›αžΎαž€αžΆαžšαž αŸ…αžαŸ’αžšαž‘αž”αŸ‹αž˜αž€αžœαž·αž‰ αž”αŸ‰αž»αž“αŸ’αžαŸ‚αž“αŸ…αžαŸ‚αž”αž„αŸ’αž€αžΎαžαžœαž·αž’αžΈαžŸαžΆαžŸαŸ’αžšαŸ’αžαžαŸ’αž˜αžΈαž”αŸ’αžšαž€αž”αžŠαŸ„αž™αž‚αž»αžŽαž—αžΆαž–αŸ”

αž”αŸ’αžšαž’αžΆαž“αž”αž‘αž€αžΆαžšαž”αž„αŸ’αžšαŸ€αž“

1. αž€αžΆαžšαžŸαžšαžŸαŸαžšαž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž’αžŸαž˜αž€αžΆαž› (αž‘αž·αžŠαŸ’αž‹αž—αžΆαž–αž‘αžΌαž‘αŸ…)
2. αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž€αŸ†αžŽαžαŸ‹αž˜αŸ‰αŸ„αž„ αž€αžΆαžšαž’αžŸαŸ‹αž–αŸαž› αž“αž·αž„ EventEmitter
3. αž€αžΆαžšαžŸαžšαžŸαŸαžšαž€αž˜αŸ’αž˜αžœαž·αž’αžΈ Asynchronous αžŠαŸ„αž™αž”αŸ’αžšαžΎ callbacks
4. αž€αžΆαžšαž’αŸ’αžœαžΎαž’αžŸαž˜αž€αžΆαž›αžŠαŸ‚αž›αž˜αž·αž“αžšαžΆαžšαžΆαŸ†αž„
5. Asynchrony αž‡αžΆαž˜αž½αž™αž”αžŽαŸ’αžŽαžΆαž›αŸαž™ async.js
6. αž’αžŸαž˜αž€αžΆαž›αž›αžΎαž€αžΆαžšαžŸαž“αŸ’αž™αžΆ
7. αž˜αž»αžαž„αžΆαžšαž’αžŸαž˜αž€αžΆαž› αž“αž·αž„αž€αžΆαžšαžŠαŸ„αŸ‡αžŸαŸ’αžšαžΆαž™αž€αŸ†αž αž»αžŸ
8. αž’αžΆαžŠαžΆαž”αŸ‹αž‘αŸαžšαž’αžŸαž˜αž€αžΆαž›αŸˆ αžŸαž“αŸ’αž™αžΆ αž αŸ…αž˜αž€αžœαž·αž‰ αž’αŸ’αžœαžΎαžŸαž˜αž€αžΆαž›αž€αž˜αŸ’αž˜
9. αž’αŸ’αž“αž€αž”αŸ’αžšαž˜αžΌαž›αž‘αž·αž“αŸ’αž“αž“αŸαž™αž’αžŸαž˜αž€αžΆαž›
10. αž€αŸ†αž αž»αžŸαžŠαŸ‚αž›αž˜αž·αž“αž’αžΆαž…αžŠαŸ„αŸ‡αžŸαŸ’αžšαžΆαž™αž”αžΆαž“αž“αŸ…αž€αŸ’αž“αž»αž„αž€αžΆαžšαžŸαž“αŸ’αž™αžΆ
11. αž”αž‰αŸ’αž αžΆαž“αŸƒ stacktrace αž’αžŸαž˜αž€αžΆαž›
12. αž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž—αŸ’αž›αžΎαž„αž“αž·αž„αž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž—αŸ’αž›αžΎαž„αž’αžŸαž˜αž€αžΆαž›
13. Iterators αž“αž·αž„ asynchronous iterators
14. αž€αžΆαžšαž›αž»αž”αž…αŸ„αž›αž”αŸ’αžšαžαž·αž”αžαŸ’αžαž·αž€αžΆαžšαž’αžŸαž˜αž€αžΆαž›
15. αžŸαž˜αžΆαžŸαž—αžΆαž–αž˜αž»αžαž„αžΆαžšαž’αžŸαž˜αž€αžΆαž›
16. αž„αžΆαž™αžŸαŸ’αžšαž½αž› αž“αž·αž„αžŸαŸ’αžšαžΆαž›αž€αŸ†αž–αž»αž„αžšαž„αŸ‹αž…αžΆαŸ†
17. αž‡αž½αžšαž’αžŸαž˜αž€αžΆαž›αžŸαŸ’αžšαž”αž‚αŸ’αž“αžΆαŸ”
18. Pattern open constructor (Revealing Constructor)
19. αž’αž“αžΆαž‚αžαŸ– αž’αžŸαž˜αž€αžΆαž›αž›αžΎαž’αž“αžΆαž‚αžαž‚αŸ’αž˜αžΆαž“αžšαžŠαŸ’αž‹
20. αž–αž“αŸ’αž™αžΆαž–αŸαž›αŸ– αž’αžŸαž˜αž€αžΆαž›αž›αžΎαžŒαžΈαž•αŸαžšαŸ‰αž„αŸ‹αžŸαŸ’αž™αŸ‚αž›αžŠαŸ‚αž›αž˜αžΆαž“αž›αž€αŸ’αžαžŽαŸˆαžšαžŠαŸ’αž‹
21. αžαžΆαžšαžΆαž˜αŸ‰αžΌαžŠαŸ‚αž›
22. Pattern Observer (Observer + Observable)
23. Asynchrony αž€αŸ’αž“αž»αž„ RxJS αž“αž·αž„αžŸαŸ’αž‘αŸ’αžšαžΈαž˜αž–αŸ’αžšαžΉαžαŸ’αžαž·αž€αžΆαžšαžŽαŸ

αž“αŸ…αž€αŸ’αžšαŸ„αž˜αžœαžΈαžŠαŸαž’αžΌαž“αžΈαž˜αž½αž™αŸ—αž˜αžΆαž“αžαŸ†αžŽαž—αŸ’αž‡αžΆαž”αŸ‹αž‘αŸ…αž€αžΆαž“αŸ‹αžƒαŸ’αž›αžΆαŸ†αž„αžŠαŸ‚αž›αž˜αžΆαž“αž§αž‘αžΆαž αžšαžŽαŸαž€αžΌαžŠαžŠαŸ‚αž›αžαŸ’αžšαžΌαžœαž”αžΆαž“αž–αž“αŸ’αž™αž›αŸ‹αž“αŸ…αž€αŸ’αž“αž»αž„αžœαžΈαžŠαŸαž’αžΌαŸ” αžαŸ’αž‰αž»αŸ†αž”αžΆαž“αž–αŸ’αž™αžΆαž™αžΆαž˜αž”αž„αŸ’αž αžΆαž‰αžαžΆ αž˜αž·αž“αž…αžΆαŸ†αž”αžΆαž…αŸ‹αž€αžΆαžαŸ‹αž”αž“αŸ’αžαž™αž’αŸ’αžœαžΈαž‚αŸ’αžšαž”αŸ‹αž™αŸ‰αžΆαž„αž‘αŸ…αž‡αžΆαž’αžšαžΌαž”αžΈαž“αŸƒαž’αžŸαž˜αž€αžΆαž›αžαŸ‚αž˜αž½αž™αž“αŸ„αŸ‡αž‘αŸαŸ” αž˜αž·αž“αž˜αžΆαž“αžœαž·αž’αžΈαžŸαžΆαžŸαŸ’αžšαŸ’αžαž‡αžΆαžŸαž€αž›αž…αŸ†αž–αŸ„αŸ‡αž’αžŸαž˜αž€αžΆαž›αž‘αŸ αž αžΎαž™αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž€αžšαžŽαžΈαž“αžΈαž˜αž½αž™αŸ— αž’αŸ’αž“αž€αž’αžΆαž…αž‡αŸ’αžšαžΎαžŸαžšαžΎαžŸαžœαž·αž’αžΈαžŸαžΆαžŸαŸ’αžαŸ’αžšαž‘αžΆαŸ†αž„αž“αŸ„αŸ‡αžŠαŸ‚αž›αž“αžΉαž„αž’αž“αž»αž‰αŸ’αž‰αžΆαžαž±αŸ’αž™αž’αŸ’αž“αž€αžŸαžšαžŸαŸαžšαž€αžΌαžŠαž€αžΆαž“αŸ‹αžαŸ‚αž’αž˜αŸ’αž˜αž‡αžΆαžαž·αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž€αž·αž…αŸ’αž…αž€αžΆαžšαž‡αžΆαž€αŸ‹αž›αžΆαž€αŸ‹αž“αŸαŸ‡αŸ” αž‡αžΆαž€αžΆαžšαž–αž·αžαžŽαžΆαžŸαŸ‹ αžœαž‚αŸ’αž‚αžŸαž·αž€αŸ’αžŸαžΆαž“αŸαŸ‡αž“αžΉαž„αžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αž“αŸ’αžαŸ‚αž˜ αž αžΎαž™αžαŸ’αž‰αž»αŸ†αžŸαŸ’αž“αžΎαž±αŸ’αž™αž’αŸ’αž“αž€αž‚αŸ’αžšαž”αŸ‹αž‚αŸ’αž“αžΆαžŽαŸ‚αž“αžΆαŸ†αž”αŸ’αžšαž’αžΆαž“αž”αž‘αžαŸ’αž˜αžΈ αž“αž·αž„αžšαž½αž˜αž…αŸ†αžŽαŸ‚αž€αž§αž‘αžΆαž αžšαžŽαŸαž€αžΌαžŠαŸ” αž‚αŸ„αž›αžŠαŸ…αž…αž˜αŸ’αž”αž„αž“αŸƒαžœαž‚αŸ’αž‚αžŸαž·αž€αŸ’αžŸαžΆαž‚αžΊαžŠαžΎαž˜αŸ’αž”αžΈαž”αž„αŸ’αž αžΆαž‰αž–αžΈαžšαž”αŸ€αž”αž”αž„αŸ’αž€αžΎαžαž’αžšαžΌαž”αžΈαž’αžŸαž˜αž€αžΆαž›αž–αžΈαžαžΆαž„αž€αŸ’αž“αž»αž„ αž αžΎαž™αž˜αž·αž“αžαŸ’αžšαžΉαž˜αžαŸ‚αž”αž„αŸ’αžšαŸ€αž“αž–αžΈαžšαž”αŸ€αž”αž”αŸ’αžšαžΎαžœαžΆαž”αŸ‰αž»αžŽαŸ’αžŽαŸ„αŸ‡αž‘αŸαŸ” αž’αžšαžΌαž”αžΈαžŸαŸ’αž‘αžΎαžšαžαŸ‚αž‘αžΆαŸ†αž„αž’αžŸαŸ‹αž˜αž·αž“αžαŸ’αžšαžΌαžœαž”αžΆαž“αž™αž€αž…αŸαž‰αž–αžΈαž”αžŽαŸ’αžŽαžΆαž›αŸαž™αž‘αŸ αž”αŸ‰αž»αž“αŸ’αžαŸ‚αžαŸ’αžšαžΌαžœαž”αžΆαž“αž•αŸ’αžαž›αŸ‹αž±αŸ’αž™αž€αŸ’αž“αž»αž„αž€αžΆαžšαž’αž“αž»αžœαžαŸ’αžαžŠαŸαžŸαžΆαž˜αž‰αŸ’αž‰αž”αŸ†αž•αž»αžαžšαž”αžŸαŸ‹αž–αž½αž€αž‚αŸ αž αžΎαž™αž€αžΆαžšαž„αžΆαžšαžšαž”αžŸαŸ‹αž–αž½αž€αž‚αŸαžαŸ’αžšαžΌαžœαž”αžΆαž“αžœαž·αž—αžΆαž‚αž‡αžΆαž‡αŸ†αž αžΆαž“αŸ—αŸ”

αž˜αžΆαž“αžαŸ‚αž’αŸ’αž“αž€αž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹αžŠαŸ‚αž›αž”αžΆαž“αž…αž»αŸ‡αžˆαŸ’αž˜αŸ„αŸ‡αž”αŸ‰αž»αžŽαŸ’αžŽαŸ„αŸ‡αžŠαŸ‚αž›αž’αžΆαž…αž…αžΌαž›αžšαž½αž˜αž€αŸ’αž“αž»αž„αž€αžΆαžšαžŸαŸ’αž‘αž„αŸ‹αž˜αžαž·αž“αŸαŸ‡αŸ” αž…αžΌαž›αžŸαžΌαž˜αŸ”

αžαžΎαž”αŸ’αžšαž·αž™αž˜αž·αžαŸ’αžαž™αž›αŸ‹αž™αŸ‰αžΆαž„αžŽαžΆαžŠαŸ‚αžš αž…αŸ†αž–αŸ„αŸ‡αžœαž‚αŸ’αž‚αžŸαž·αž€αŸ’αžŸαžΆαž“αŸαŸ‡?

  • αžαŸ’αž‰αž»αŸ†αž“αžΉαž„αž˜αžΎαž›αžœαž‚αŸ’αž‚αžŸαž·αž€αŸ’αžŸαžΆαž‘αžΆαŸ†αž„αž˜αžΌαž›

  • αžαŸ’αž‰αž»αŸ†αž“αžΉαž„αž˜αžΎαž›αžŠαŸ„αž™αž‡αŸ’αžšαžΎαžŸαžšαžΎαžŸ

  • αžœαž·αž’αžΈαžŸαžΆαžŸαŸ’αžšαŸ’αžαž˜αž½αž™αž‚αžΊαž‚αŸ’αžšαž”αŸ‹αž‚αŸ’αžšαžΆαž“αŸ‹αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αžαŸ’αž‰αž»αŸ†

  • αžαŸ’αž‰αž»αŸ†αž“αžΉαž„αžšαž½αž˜αž…αŸ†αžŽαŸ‚αž€αžŠαž›αŸ‹αžœαž‚αŸ’αž‚αžŸαž·αž€αŸ’αžŸαžΆ

  • αžαŸ’αž‰αž»αŸ†αž˜αž·αž“αž…αžΆαž”αŸ‹αž’αžΆαžšαž˜αŸ’αž˜αžŽαŸαž“αžΉαž„αž’αžŸαž˜αž€αžΆαž›αž‘αŸαŸ”

αž’αŸ’αž“αž€αž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹ 8 αž“αžΆαž€αŸ‹αž”αžΆαž“αž”αŸ„αŸ‡αž†αŸ’αž“αŸ„αžαŸ” αž’αŸ’αž“αž€αž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹ 1 αž“αžΆαž€αŸ‹αžαŸ’αžšαžΌαžœαž”αžΆαž“αž αžΆαž˜αžƒαžΆαžαŸ‹αŸ”

αž”αŸ’αžšαž—αž–: www.habr.com

αž”αž“αŸ’αžαŸ‚αž˜αž˜αžαž·αž™αŸ„αž”αž›αŸ‹