DevGuide – Telegram
11.2K subscribers
2.92K photos
19 videos
133 files
3.61K links
Level up daily with insider dev hacks, smart career tips, and real talk! 🚀

⚡️ Stay connected with me: linktr.ee/AliSamir

📍 To advertise on the channel: https://telega.io/c/the_developer_guide
Download Telegram
تعال ندردش شوية عن الـ JSDoc 💯
.
.
لو أنت شغال بـ JavaScript أو TypeScript ممكن تبقى سمعت مصطلح الـ JSDoc

خليني أقولك إن شغلك ممكن يكون جامد جدًا، لكن لو الكود بتاعك مش موثق كويس (Well Documented)، هتبقى بتعذب الشخص اللي هيشتغل عليه بعدك، وممكن حتى "أنت" نفسك تتعذب لو رجعتله بعد فترة. وهنا بقى بييجي دور JSDoc. 💡

———

📌 إيه هو الـ JSDoc؟


الـ JSDoc ببساطة هو tool أو مكتبة بتسمحلك تكتب documentation داخل الكود نفسه باستخدام comments. الفكرة إنه يخليك تشرح الكود بتاعك بشكل structured ومفهوم لأي حد يقرأه.

والأجمل إنه كمان بيساعدك لو بتشتغل بـ TypeScript أو حتى JavaScript عشان يحسن تجربة الكتابة بـ IDE زي VSCode.

———

📌 ليه تستخدم الـ JSDoc؟


الـ Documentation هتكون واضحة وسهلة:
الكود بتاعك ممكن يكون معقد أو فيه لوجيك معقد شوية. باستخدام JSDoc، تقدر توضح إيه اللي الكود بيعمله، إيه الـ inputs اللي بياخدها، وإيه الـ output اللي بيرجعه.


هتلاقي Autocomplete محترم:
لو بتكتب الكود في IDE زي WebStorm أو VSCode، الـ JSDoc comments بتساعدك بـ Autocomplete رهيب. يعني لو كودك معقد شوية، هيبقى سهل جدًا تعرف إيه الـ properties أو الـ methods المتاحة وأنت بتكتب.


تحسين الـ Type Checking:
لو بتشتغل بـ JavaScript ومش TypeScript، الـ JSDoc ممكن يديك تقريبًا نفس الفائدة اللي TypeScript بتقدمها من ناحية الـ types (مش بنفس القوة طبعًا، بس حاجة محترمة).


لو شغال في تيم، الـ documentation اللي بتكتبها بـ JSDoc بتوفر على زمايلك وقت كبير في فهم الكود، وده بيقلل الـ technical debt بشكل كبير.

———

💡 إزاي تبدأ مع الـ JSDoc؟


الموضوع بسيط جدًا هتدخل على الموقع ده وتبدأ تشوف الأجزاء اللي عاوز تعملها توثيق (Documentation) سواء كانت Function أو Object Types أو Classes
https://jsdoc.app

وده مقال لذيذ فيه شوية معلومات حلوة:
https://dev.to/alisamir/a-comprehensive-guide-to-jsdoc-3meb

———

💯 نصائح وإرشادات:


- بلاش توثق حاجات بديهية، يعني لو عندك function اسمها add، مش محتاج تكتب "دي بتجمع حاجتين" لو اسمها واضح. استخدم الـ JSDoc للحاجات اللي فعلًا محتاجة توضيح.
- خلي التعليقات (Comments) بتاعتك قصيرة ومباشرة.

———

وفقكم الله لكل خير 🌿
6
مجموعة مدونات تقنية مميزة في مجال هندسة البرمجيات 🔻

الريبو ده فيه مجموعة من أفضل المدونات اللي هتعلمك كل حاجة عن البرمجة والتقنيات المختلفة. 🌐


Software Engineering Blogs ✍️

A curated list of engineering blogs

https://github.com/kilimchoi/engineering-blogs
2
كلام في البرمجة (49) | كيف تبني مسارك المهني في الكلاود داخل الشركات الكبرى؟ | محمود عطا الله

https://youtu.be/5EHu4Ux_x3I
1👍1
Your React Roadmap 🚀
2
Learn About Operating Systems In-Depth 💯

For many types of software engineers it is important to understand the fundamentals of operating systems.

———

Course Link👇🏻
https://youtu.be/yK1uBHPdp30
3
𝗡𝗼𝗱𝗲.𝗷𝘀 𝗜𝗻𝘁𝗲𝗿𝘃𝗶𝗲𝘄 𝗤𝘂𝗲𝘀𝘁𝗶𝗼𝗻𝘀 – 𝗕𝗲𝗴𝗶𝗻𝗻𝗲𝗿 𝘁𝗼 𝗘𝘅𝗽𝗲𝗿𝘁 🚀

🟢 𝗕𝗲𝗴𝗶𝗻𝗻𝗲𝗿 / 𝗝𝘂𝗻𝗶𝗼𝗿 𝗟𝗲𝘃𝗲𝗹


1. What is Node.js?
2. Why is Node.js single-threaded?
3. What is the V8 engine?
4. What is the Event Loop?
5. Difference between Node.js and JavaScript in the browser.
6. What are global objects in Node.js?
7. What is npm?
8. What is package.json?
9. What is module.exports?
10. Difference between require and import.
11. What is callback?
12. What is asynchronous programming?
13. What is Promise?
14. Difference between Promise and callback.
15. What is async/await?
16. What is REPL?
17. What is middleware?
18. What is Express.js?
19. What is REST API?
20. How do you handle errors in Node.js?

———

🟡 𝗠𝗶𝗱-𝗟𝗲𝘃𝗲𝗹 (𝟮–𝟱 𝗬𝗲𝗮𝗿𝘀 𝗘𝘅𝗽𝗲𝗿𝗶𝗲𝗻𝗰𝗲)


21. What is non-blocking I/O?
22. How does the Event Loop work internally?
23. Difference between process.nextTick and setImmediate.
24. What are streams in Node.js?
25. Types of streams.
26. What is Buffer?
27. What is clustering?
28. How do you handle multiple requests?
29. How do you manage environment variables?
30. What is CORS?
31. How do you secure Node.js APIs?
32. What is JWT authentication?
33. How do you connect Node.js with databases?
34. Difference between SQL and NoSQL in Node.js apps.
35. What is Mongoose?
36. How do you handle file uploads?
37. What is rate limiting?
38. How do you implement pagination?
39. How do you handle logging?
40. How do you test Node.js applications?

———

🔵 𝗦𝗲𝗻𝗶𝗼𝗿 / 𝗔𝗿𝗰𝗵𝗶𝘁𝗲𝗰𝘁 𝗟𝗲𝘃𝗲𝗹


41. Explain Node.js architecture.
42. How do you scale Node.js applications?
43. What is horizontal vs vertical scaling?
44. How do you handle CPU-intensive tasks?
45. How do you design microservices in Node.js?
46. How do you handle inter-service communication?
47. What is message queue usage in Node.js?
48. How do you implement caching?
49. What is Redis used for?
50. How do you handle memory leaks?
51. How do you monitor Node.js applications?
52. How do you implement CI/CD for Node.js?
53. How do you secure APIs at enterprise level?
54. How do you handle API versioning?
55. How do you manage secrets?
56. What are Node.js performance bottlenecks?
57. How do you implement graceful shutdown?
58. What are common Node.js anti-patterns?
59. How do you design fault-tolerant systems?
60. When should you NOT use Node.js?
6
React Hooks: Beyond useState 💯
3
سؤال انترڤيو محنك شويتين بس فكرته سهلة جدًا...
.
.
الناتج هيكون 8 .. وتعال أقولك ليه؟

خلينا نقسم السؤال إلى جزئين:

📌 الجزء الأول .. الـ Array الصغيرة، وهي دي حل السؤال، الـ comma هنا هتعمل Evaluation للـ Array وهترجع تاني رقم وهو 3، دايمًا بترجع الرقم اللي على اليمين أو الرقم الأخير.

[1, 3] => 3


📌 الجزء الثاني .. الـ Array الكبيرة، ودي Array عادية جدًا بيتعمل عليها Access من قبل القيمة اللي طلعت من الـ Array الصغيرة اللي هي 3، يعني الموضوع هيوصل وهيبقى بالشكل ده:

[2, 4, 6, 8, 10][3] => 8


لو الدنيا لسه موضحتش ممكن تقرأ أكتر عن الـComma Operator من هنا:

🔰 https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Comma_operator
🔰 https://www.javanoscripttutorial.net/javanoscript-comma-operator
3