قعدة مبرمجين
رفتن به کانال در Telegram
2 379
مشترکین
اطلاعاتی وجود ندارد24 ساعت
اطلاعاتی وجود ندارد7 روز
اطلاعاتی وجود ندارد30 روز
آرشیو پست ها
2 379
Repost 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
2 379
Repost 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 هتكلم عنه بالتفصيل البوست القادم
2 379
تعالوا نتكلم شوية عنن مميزات جديدة في #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}
2 379
ادخلوا جروب @dibo_talks
هنعمل كورسات ببلاش ونساعدك تلاقي شغل حلو + توزيع جوائز للمشتركين النشطين
شيرررر 🔥🔥
2 379
ادخلوا جروب Talks
هنعمل كورسات ببلاش ونساعدك تلاقي شغل حلو
شيرررر 🔥🔥
https://t.me/+4edVkTXILu1lMzU8
2 379
استكمالا لخطة التبسيط وعدم التشتت سيتم ايقاف عمل هذه القناة والاكتفاء بجروب "قعدة مبرمجين"
👉 @developers_talks
2 379
تجميعة فرص #الشغل هتنزل في البوست دة
البوست هيتجدد كل شوية طول اليوم بالفرص الجديدة
https://t.me/dibo_talks/143
2 379
مطلوب developers خبرة سنتين لشركة في مدينة نصر
التخصصات المطلوبة:
1-Web designer
2-Front-End Developer (Angular)
3-Front-End Developer (Vue.js)
4-Full Stack Developer (Angular/Node)
5-Full Stack Developer (Laravel/Vue.js)
abdullah.a@storexweb.com
لو عاوز ارشحك لفرص مشابهة اكتب تخصصك في كومنت
هنعلمك ببلاش ونساعدك تلاقي #شغل
https://t.me/dibo_talks/140
2 379
مطلوب UI/UX لشركة في الاسكندرية
drmedia24@gmail.com
لو عاوز ارشحك لفرص مشابهة اكتب تخصصك في كومنت
كل فرص #شغل #البرمجة:
https://t.me/developers_talks/78
2 379
مطلوب Android Developer خبرة من سنة الي 3 سنوات لشركة white arrow information technology في الجيزة
5 ايام عمل \ 8 ساعات منها ساعة راحة
apply:
hr@waiteg.com
لو عاوز ارشحك لفرص مشابهة اكتب تخصصك في كومنت
كل فرص #شغل #البرمجة:
https://t.me/developers_talks/78
2 379
في فرصة #شغل جافا في فودافون
https://opportunities.vodafone.com/job/Cairo-Java-Architect-_VOIS/873793301
2 379
مطلوب Android developers سواء native او flutter لشركة في اكتوبر
خبرة من سنة الي 3 سنوات
apply:
o.rahman@arabcalibers.com (subject: AND_FLUT_DEV)
لو عاوز ارشحك لفرص مشابهة اكتب تخصصك في كومنت
كل فرص #شغل #البرمجة:
https://t.me/developers_talks/78
2 379
مطلوب dot net developer لـ Procoor
بدون خبرة او حتي سنتين خبرة
apply:
hiring@procoor.com (subject: Dot Net Full-stack Developer)
لو عاوز ارشحك لفرص مشابهة اكتب تخصصك في كومنت
كل فرص #شغل #البرمجة:
https://t.me/developers_talks/78
2 379
مطلوب React Developer خبرة سنوات او اكثر لشركة في الهند
prathvi.frantiger@gmail.com
لو عاوز ارشحك لفرص مشابهة اكتب تخصصك في كومنت
كل فرص #شغل #البرمجة:
https://t.me/developers_talks/78
