قعدة مبرمجين
2.16K subscribers
44 photos
3 videos
3 files
57 links
الجروب

👉 @mobarmegeen
Download Telegram
Channel name was changed to «Code hits | Arabic»
Channel name was changed to «قعدة مبرمجين»
تعالوا نتكلم شوية عنن مميزات جديدة في #Angular

- the new control flow

- deffered loading



اشترك في قناة التليجرام عشان تتعلم كل حاجة ببلاش

@its_dibo



عارف ال structural directives في Angular?

لو مش فاكرها افكرك, اللي هي *ngIf و *ngFor وكدة

دي بنسميها control flow لانها بتتحكم في ال flow بتاع ال DOM بتاعك التيمبليت dynamically



فملا لو عاوزين نظهر element معين في حالة معينة ممكن نعمل كدة

<div *ngIf="user.role==='admin'">I'm Admin</div>



الحوار دة بأة اتغير وبأة كدة

{#if user.role === 'Admin'} I'm Admin {/if}



بيفكرني ب Svelte

الطريقة القديمة كان فيها شوية مشاكل كدة منها

- بتضظر تعمل import ل CommonModule عشان تقدر تستخدمها

- ساعات بتضطر تستخدم ng-container لو مش عاوز تضيف element مالوش لازمة

- بتضطر تستخدم directive بدون اي داعي



بس الاهم من دة انه مش متوافق مع ال Signal components الجديدة



الصيغة العامة لل control flow الجديد كالتالي

{#xyz} {:abc} {/xyz}

{#xyz} -> start a new scope block group

{:abc} -> start a new scope block within the current block group

{/xyz} -> end the block group



example:

{#if} ... {:else} .... {/if}



بالمرة بأة تعالوا نتكلم عن ميزة جديدة اللي هي Deffered loading

{#defer on viewport}

<calendar-cmp />

{/defer}



ودة معناه باختصار اننا نقدر نأجل نحميل جزء من الصفحة

ودة مثال تاني

{#defer when sheduleLoaded}

<calendar-cmp />

{/defer}
👍3
Forwarded from Dibo
يلا نتكلم شوية عن ال modern build tools في #javascript و  #Nodejs

علي مر سنين طويلة كنت بعتمد علي #webpack بس قررت استتغني عنها واستخدم #esbuild و #vitejs وتعالوا احكيلكم عن تجربتي مع ال tools الجديدة

في الاول خلينا نفهم webpack بتشتغل ازاي خلف الكواليس ولية اصلا بنستخدمه!

ويباك عبارة عن bundling tool بتجمع ال resources من مصادر مختلفة وبتحولها عن طريق loaders

مثلا لو قابله ملف typescript بيحوله لكود javascript عن طريق ts-loader وبيحط الكود دة في ال output النهائي

في الاول webpack بيدخل ال entry point وهو الملف الرئيسي لل app وليكن مثلا src/index.ts
وكل اما يقابله import statement بيروح للملف المطلوب ويشتغل عليه ويجيب الكود النهائي بعد مايحوله لكود javascript يحطه في ال output


طب لية اصلا بنحتاج ن bundle الملفات بتاعتنا بالطريقة دي؟
من غير webpack نقدر نشغل الابليكيشن بتاعنا عادي جدا، ونقدر نحول ملفات #typescript لاكواد javsscript قابلة للتنفيذ من غير اي loaders بس هنا هيقابلنا مشكلة ...

مع كل import في كل ملف هنحتاج نعمل round trip عشان نجيب الملف المطلوب، واللي هنلاقيه هو كمان جواه imports كتير وكل ملف منهم هيطلب ملفات تانية وهكذا

في الاخر هنلاقي نفسنا بنعمل round trips كتير ودة بيبطأ الابليكيشن بتاعنا كتير
فبنجمع الاكواد دي كلها في ملف واحد بحيث يتطلب مرة واحدة عن طريق network trip واحدة

ويباك مش بس بيبندل الابليكيشن بتاعك، انما بيعمل عمليات كتير ورا الكواليس بتظبطلك ال performance بتاع الابليكيشن بتاعك كويس جدا زي مثلا عمل tree shaking لل dead ends وللاكواد غير المستخدمة
وكمان بيعمل optimization و minifying للكود عشان يكون تنفيذه اسرع

و esbuild بيقوم بنفس المهمة بالظبط بس بطريقة مختلفة شوية وبيتفوق علي webpack في شوية نقط

- اسرع من webpack ١٠ مرات، والسبب في كدة انه native code
لو ماتعرفش يعني اية native code هتلاقيني عامل بوست بيشرح الموضوع بالتفصيل، بس الخلاصة انه بيبأة كود مكتوب بلغة برمجة تانية ممكن تنفذ الجزء دة من الكود بطريقة افضل وبيشتغل جوة nodejs عادي جدا

بس مش دة السبب الاساسي اللي خلاني اسيب webpack وانقل ل esbuild

- كنا بنحتاج نسطب loaders ونظبط ال configurations بتاعة webpack اما esbuild فاهم انك بت build بيه node application من غير ماتسطب اي loaders او تعمل اي configurations
وبرضو مش دة السبب اللي خلاني انقل ل esbuild

السبب التالت والرئيسي اللي خلاني اسيب webpack وانقل ل esbuild و vitejs هتكلم عنه بالتفصيل البوست القادم
👍1
Forwarded from Dibo
مشكلة webpack الاساسية معايا انها static bundling tool، يعني اية الكلام دة

لو بصينا علي function زي دي مثلا
function loadFile(file: string){
  return import(file)
}

الكود دة هيضرب في webpack .. عشان نعرف السبب لازم نتعمق اكتر في شغل ويب باك خلف الكواليس

ويب باك هيجيب كل الملفات المحتملة ويحطها جوة static import
والكود اللي احنا عملناه دة معناه انك تقدر تطلب اي فايل من اي مكان في الابليكيشن كله، بمعني اخر ويب باك هيضطر يعمل static import للابليكيشن كله بما في ذلك ال entry point ودة هيعملنا مشاكل كتير وهيدخلنا في cyclic dependencies

عشان نحل المشكلة دي هنحتاج نحددله فولدر معين فيه الملفات اللي ممكن ن import منه فهنعمل تعديل بسيط علي ال function بتاعتنا

function loadFile(file){
return import(`./dynamic/${file})
}

حلينا المشكلة، بس عملنا مشكلة تانية جديدة 😂

مع اننا استخدمنا ES dynamic import بس ويب باك نفسها static tool زي ما قولنا من شوية، فبتحتاج تجهز لستة محددة من الملفات والاسوأ ان الملفات لازم تكون موجودة وقت ال compile time حتي لو كنت ناوي تخلي الملفات دي تتوجد وقت ال runtime

خلف الكواليس لو ويب باك مالقاش الملف المطلوب وقت ال compile time هيرمي error
الطريقة دي بتقيدك كتير

اما esbuild حلت المشكلة دي وبتتعامل مع الموضوع علي انه dynamic import حقيقي بعكس ويب باك اللي بتحولها ل static import

ب esbuild تقدر تعمل حاجة زي كدة
function loadDynamicFile(path: string){
if(!existsSync(path)
download(path)

return import(path)
}

البوست الجاي هنتكلم فيه عن vitejs
4
Forwarded from Dibo
نكمل موضوع modern build tools ونتكلم عن vitejs  ولا كفاية كدة؟
Anonymous Poll
80%
نكمل
20%
كفاية كدة
2👍2
Forwarded from Dibo
مطلوب 𝗡𝗼𝗱𝗲.𝗷𝘀 + 𝗥𝗲𝗮𝗰𝘁.𝗷𝘀 developers خبرة 3 سنوات

للترشيح اكتب ملخص خبراتك وابعتلي CV بتاعك خاص للمراجعة

قنوات تليجرام مهمة لازم تكون مشترك فيها وتتابعها يوميا
https://t.me/addlist/-O694-Mmrkw1ZjVk

direct apply:
info@alsatech.io
Forwarded from Dibo
فرصة تدريب في Eyego

التخصصات المتاحة:
-Backend(Nodejs,Express,Mongo,Docker,GCP)

للترشيح اكتب ملخص خبراتك وابعتلي CV بتاعك خاص للمراجعة

قنوات تليجرام مهمة لازم تكون مشترك فيها وتتابعها يوميا
https://t.me/addlist/-O694-Mmrkw1ZjVk

direct apply:
https://docs.google.com/forms/d/e/1FAIpQLSffbF6Y0GQmDJoYc11-sOPkkp2L9X3y55KZYSka34PjL_L94Q/viewform
Forwarded from Dibo
مطلوب React Native Developer خبرة سنتين

للترشيح اكتب ملخص خبراتك وابعتلي CV بتاعك خاص للمراجعة

قنوات تليجرام مهمة لازم تكون مشترك فيها وتتابعها يوميا
https://t.me/addlist/-O694-Mmrkw1ZjVk

direct apply:
functo7000@gmail.com
Forwarded from Dibo
مطلوب junior backend developer لشركة الهرم جروب

لترشيح اكتب ملخص خبراتك وابعتلي CV بتاعك خاص للمراجعة

قنوات تليجرام مهمة لازم تكون مشترك فيها وتتابعها يوميا
https://t.me/addlist/-O694-Mmrkw1ZjVk

📩 direct apply:
hr@alahramgroup-eg.net
Forwarded from Dibo
فرصة شغل اونلاين بـ 25 دولار للساعة + بونص
متاح full time او part time
مطلوب Administrative Assistant لمراجعة نتائج الذكاء الصناعي

ابعتلي CV وريكورد بالانجليش وريكورد بالعربية الفصحي وريكورد باللهجة العامة, مدة كل ريكورد لا تقل عن دقيقة واحدة
اتكلم عن نفسك, شغلك, تعليمك, كيف تعلمت اللغة الانجليزية

قنوات تليجرام مهمة لازم تكون مشترك فيها وتتابعها يوميا
https://t.me/addlist/-O694-Mmrkw1ZjVk
Forwarded from Dibo
مطلوب senior php/laravel developer لشغل ريموتلي مع عميل في السعودية

- خبرة في شركات E-commerce أو E-grocer
- 3+ سنين خبرة عملية في PHP & Laravel


ـــــــــــــــــــــــــــــــــــــــــ

قنوات تليجرام مهمة لازم تكون مشترك فيها وتتابعها يوميا
https://t.me/addlist/-O694-Mmrkw1ZjVk

📩 direct apply:
NHussien@migrationIT.com
Forwarded from Dibo
مطلوب senior php/laravel developer لشغل ريموتلي مع عميل في السعودية

- خبرة في شركات E-commerce أو E-grocer
- 3+ سنين خبرة عملية في PHP & Laravel
ـــــــــــــــــــــــــــــــــــــــــ

للترشيح اكتب ملخص خبراتك وابعتلي CV بتاعك خاص للمراجعة

قنوات تليجرام مهمة لازم تكون مشترك فيها وتتابعها يوميا
https://t.me/addlist/-O694-Mmrkw1ZjVk

ـــــــــــــــــــــــــــــــــــــــــ

📩 direct apply:
NHussien@migrationIT.com
فرصة عمل أو تدريب في ألمانيا تبع برنامج برنامج THAMM Plus
https://t.me/its_dibo/2270


فرصة شغل ريموتلي في شركة Elite Projects القطرية
- Frontend Developer
- Backend Developer
- Tele-Sales Team Leader
- Cost Accountant
https://t.me/its_dibo/2271


فرص شغل في Portoqaly
- Backend
- Frontend
- Flutter
- UI/UX
- testers
- DevOps
- project manager
https://t.me/its_dibo/2272


مطلوب Junior Odoo Developer لـ Royal Group
https://t.me/its_dibo/2273


مطلوب Junior React Native لـ ICN
https://t.me/its_dibo/2274


مطلوب Junior developers لـ JEDRA والشغل ريموتلي
https://t.me/its_dibo/2275
1
Forwarded from Dibo
مطلوب junior React developer لشغل hybrid
خبرة سنة
ـــــــــــــــــــــــــــــــــــــــــ

للترشيح اكتب ملخص خبراتك وابعتلي CV بتاعك خاص للمراجعة

قنوات تليجرام مهمة لازم تكون مشترك فيها وتتابعها يوميا
https://t.me/addlist/-O694-Mmrkw1ZjVk

ـــــــــــــــــــــــــــــــــــــــــ

📩 direct apply:
rahma.behairy@useprofolio.com
1
senior back-end #developer for Siemens
https://mobarmegeen.com/jobs/006c86ba-2aff-45b4-9c82-fc163c75744b

مطلوب full-stack developers للعمل ريموتلي في شركة قطرية
https://mobarmegeen.com/jobs/1125b9ec-4c41-4a96-86b6-e5173996cc65


more jobs: https://t.me/addlist/-O694-Mmrkw1ZjVk

للترشيح لاي فرصة اكتب تخصصك في كومنت وابعتلي CV بتاعك
Please open Telegram to view this post
VIEW IN TELEGRAM
We're Hiring a fresh Full Stack Developer (React.js & Node.js) Remotely 💻

📌 Position:
Full Stack Developer (React.js & Node.js)

Requirements:

🔹 Fresh Graduate or 1 year experience.
🔹 Good knowledge of NodeJS and ReactJS.
🔹 Understanding of REST APIs & Git.

💼 Job Details:
💻 Work Type: Remote

📩 Please send your updated CV with the subject: Full Stack Developer
dtr.egypt@gmail.com
Please open Telegram to view this post
VIEW IN TELEGRAM