کتاب Clean Code رو هنوز نخوندی؟ 🫥
ریپازیتوری زیر این کتاب رو ترجمه کرده.
🔗 Link
#book
@CodeModule
ریپازیتوری زیر این کتاب رو ترجمه کرده.
دوستان دقت کنید فصلهایی از کتاب ترجمه نشده و بعضی از قسمتهای کتاب، خیلی ترجمهی درست و حسابیای نداره. در صورت تمایل، شما هم میتونید در ترجمه این کتاب مشارکت کنید.
🔗 Link
#book
@CodeModule
GitHub
GitHub - mojtaba-afraz/clean-code-persian: 📔 group translation and update of the Clean Code book
📔 group translation and update of the Clean Code book - mojtaba-afraz/clean-code-persian
🔥18👌2
در واقع Apache Cassandra یک سیستم مدیریت دیتابیس NoSQL توزیعشدست که برای مدیریت حجم زیادی از دیتا در مقیاس بزرگ طراحی شده.
این دیتابیس به دلیل قابلیتهای مقیاسپذیری، دسترسی بالا و تحمل خطا، بهویژه در محیطهای big data و برنامههای کاربردی نیازمند به پرفورمنس بالا، مورد استفاده قرار میگیره.
امتیازهای Cassandra نسبت به سایر دیتابیسهای NoSql
درکل Apache Cassandra یک دیتابیس NoSQL قدرتمنده که برای مدیریت حجم زیاد دادهها و ارائه دسترسی بالا طراحی شده و با قابلیتهای مقیاسپذیری، تحمل خطا و پرفورمنس بالا، این دیتابیس گزینهای عالی برای شرکتها یا پروداکت هایی هست که نیاز به پردازش دادهها به صورت real time و با سرعت بالا دارن. با توجه به مزایای گفته شده، Cassandra به عنوان یک راهکار موثر در زمینه مدیریت big data و برنامههای وب و موبایل شناخته میشه.
برای نحوه استفاده و مطالعه بیشتر درباره این دیتابیس کاربردی میتونید به داکیومنتش مراجعه کنید
Document
#nosql #database #cassandra
@CodeModule
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥11⚡3❤🔥2
مدیریت کارآمد حافظه در برنامه های بزرگ مقیاس جاوا اسکریپتی، برای اطمینان از عملکرد بهینه، جلوگیری از نشت حافظه و حفظ مقیاس پذیری ضروری هست. این مقاله استراتژیها و مثالهای کدی رو بررسی میکنه تا به شما در مدیریت کارآمد حافظه و بهینهسازی پروژههاتون کمک کنه.
🔗 Link Article
#javascript #memory
@CodeModule
🔗 Link Article
#javascript #memory
@CodeModule
DEV Community
JavaScript Memory Management and Optimization Techniques for Large-Scale Applications
Efficient memory management is essential for large-scale JavaScript applications to ensure optimal...
⚡11👌1
دورهمی های کدماژول، قسمت یازدهم
موضوع: چطور به برنامه نویس بهتری تبدیل بشیم؟ (پارت دوم) 🧑🏻💻
مهمان گفتگو: آقای علیرضا صفائیراد
زمان برگزاری: پنجشنبه (۸ آذر)، ساعت ۱۰
فردا شب ساعت ۱۰ این گفتگو و دورهمی رو از دست ندید(لینک میت رأس ساعت قرار میگیره)
@CodeModule
موضوع: چطور به برنامه نویس بهتری تبدیل بشیم؟ (پارت دوم) 🧑🏻💻
مهمان گفتگو: آقای علیرضا صفائیراد
زمان برگزاری: پنجشنبه (۸ آذر)، ساعت ۱۰
در این میتینگ قراره درباره مسیرهایی که میتونن به رشد و توسعه مهارتهای برنامهنویسی کمک کنن، صحبت کنیم. با هم بهترین روش ها برای آموزش و پیشرفت رو بررسی کنیم، و به این مسئله بپردازیم که چه زمان آماده ورود به بازار کار هستیم. همچنین درباره این که ...
فردا شب ساعت ۱۰ این گفتگو و دورهمی رو از دست ندید(لینک میت رأس ساعت قرار میگیره)
@CodeModule
🔥16👌3❤🔥2
اگه دوست دارید بیشتر در مورد Hight Order Function (HOF) در جاوا اسکریپت بدونید، این مقاله به صورت خلاصه و با مثال به همراه توضیحات خوب و قابل فهم، هر کدوم از فانکشن هارو توضیح داده.
🔗 Link Article
#javascript
@CodeModule
🔗 Link Article
#javascript
@CodeModule
DEV Community
🚀 Higher Order Functions in JavaScript: Let's Dive In!
JavaScript has a lot of tricks up its sleeve, and higher-order functions (HOFs) are one of the...
⚡11👌3🔥1
ورژن 4.0 بتا Tailwind css منتشر شد 👩💻
Adam Wathan(اعضای تیم توسعه تیلویند) : پس از صدها ساعت رفع اشکال، کار طاقتفرسا برای حفظ سازگاری با نسخههای قبلی و عیبیابی مشکلات CI در ویندوز، خوشحالم که بالاخره اولین نسخه بتای عمومی رو منتشر میکنم.
✅ تغییرات نسخه 4.0 beta :
🔵 پرفورمنس بالاتر : full build ها در انجین جدید تا ۵ برابر سریعتر شدن و incremental build ها، بیش از ۱۰۰ برابر سریعتر و زمانشون در میکروثانیه اندازهگیری میشه.
🔵 زنجیره ابزار یکپارچه: , built-in import vendor prefixing handling و syntax transforms ، بدون نیاز به ابزار اضافی.
🔵 کانفیگ مبتنی بر CSS : تجربه توسعهدهنده (DX) بازطراحیشده که در اون میتونید فریمورک رو مستقیماً داخل CSS کاستومایز و گسترش بدید، به جای استفاده از فایل کانفیگ جاوااسکریپتی.
🔵 دیزاین شده برای وب مدرن : ساخته شده بر پایه native cascade layers, wide-gamut colors, و including first-class support از ویژگیهای مدرن CSS مانند کوئریهای کانتینر، @starting-style، پاپاورها و موارد دیگه.
برای اطلاعات بیشتر و نحوه استفاده از ورژن 4.0 بتا میتونید به داکیومنتش مراجعه کنید.
new Version Document🌕
News Blog📰
@CodeModule
Adam Wathan(اعضای تیم توسعه تیلویند) : پس از صدها ساعت رفع اشکال، کار طاقتفرسا برای حفظ سازگاری با نسخههای قبلی و عیبیابی مشکلات CI در ویندوز، خوشحالم که بالاخره اولین نسخه بتای عمومی رو منتشر میکنم.
برای اطلاعات بیشتر و نحوه استفاده از ورژن 4.0 بتا میتونید به داکیومنتش مراجعه کنید.
new Version Document
News Blog
@CodeModule
Please open Telegram to view this post
VIEW IN TELEGRAM
👌18🔥5⚡4
منبعی پر از سوالات تخصصی Next.js 💥
در مقاله زیر میتونید مجموعه ای از سوالات کاربردی و مصاحبه ای فریمورک Next.js رو به همراه جواب مشاهده کنید. با استفاده از این مقاله، به راحتی میتونید خودتون رو به چالش بکشید و یا اطلاعاتتون رو افزایش بدید.
🔗 Link
#next #interview
@CodeModule
در مقاله زیر میتونید مجموعه ای از سوالات کاربردی و مصاحبه ای فریمورک Next.js رو به همراه جواب مشاهده کنید. با استفاده از این مقاله، به راحتی میتونید خودتون رو به چالش بکشید و یا اطلاعاتتون رو افزایش بدید.
🔗 Link
#next #interview
@CodeModule
🔥13⚡4👌1
میدونستی با Node.js میتونی انیمیشن های جذابی توی ترمینال بسازی؟ 🚀
یکی از کارهایی که میتونید به عنوان سرگرمی انجام بدید، ساخت انیمیشن های ترمینال هست. مقاله vladimirvovk یک راهنمای جامع در مورد چگونگی انجام این کار هست. این مقاله نحوه ساخت digital rain که شبیه به Matrix هست رو نشون میده که با استفاده از process.stdout، اون رو میسازه(البته به صورت کوچیک شده). همچنین یک مقدمه کوتاهی از ANSIS هم داره که کار رو برای ساخت رنگ ها ساده میکنه و میتونید از اون توی انیمیشن هاتون استفاده کنید.
برای اطلاعات بیشتر به این مقاله مراجعه کنید.
#nodejs
@CodeModule
یکی از کارهایی که میتونید به عنوان سرگرمی انجام بدید، ساخت انیمیشن های ترمینال هست. مقاله vladimirvovk یک راهنمای جامع در مورد چگونگی انجام این کار هست. این مقاله نحوه ساخت digital rain که شبیه به Matrix هست رو نشون میده که با استفاده از process.stdout، اون رو میسازه(البته به صورت کوچیک شده). همچنین یک مقدمه کوتاهی از ANSIS هم داره که کار رو برای ساخت رنگ ها ساده میکنه و میتونید از اون توی انیمیشن هاتون استفاده کنید.
برای اطلاعات بیشتر به این مقاله مراجعه کنید.
#nodejs
@CodeModule
DEV Community
Terminal Animations with Node.js
Node.js has the process object with stdout property which is a stream connected to stdout. Using the...
⚡12👌5
معماری Modular Monolith چیه و چه کاربردی داره؟ 🦦
اخیرا معماری modular monolith توجه خیلی از متخصصان رو به خودش جلب کرده، چرا که گوگل چارچوب «Service Weaver» رو پیشنهاد میکنه تا دولوپر ها رو قادر میسازه تا برنامهها رو به صورت modular monolith بنویسن و اونها رو به عنوان مجموعهای از ریزسرویسها به کار بگیرن. گوگل اون رو چارچوبی در نظر گرفت که بهترین های هر دو دنیا رو داره و به نظر میرسه یک روند در معماری نرم افزار باشه.
اما Modular Monolith چی هست؟
تو یک دهه اخیر شرکت های زیادی مثل آمازون، نتفلیکس و...، از میکروسرویس ها برای توسعه اپلیکیشن های خودشون استفاده کردن. اما با این حال، چندین شرکت مزایای مورد انتظار رو از مهاجرت به میکروسرویس ها به دست نیاوردن و به دلیل مسائلی مثل هزینه بالا و پیچیدگی میکروسرویس ها، با مشکل مواجه شدن. همین مشکلات باعث توجه متخصصان به مفهوم "Modular Monolith" شد. گوگل چارچوب "Service Weaver" رو پیشنهاد کرد تا دولوپر ها رو قادر بسازه برنامه ها رو به صورت یکپارچه مدولار بنویسن و اون ها رو به عنوان مجموعه ای از ریزسرویس ها به کار بگیرن.
گوگل در این رابطه به این شکل توضیح میده که این چارچوبی هست، که بهترین های هر دو جهان توسعه نرم افزار رو داره:
1 - سرعت توسعه یکپارچه، با مقیاسپذیری
2 - امنیت و fault-tolerance در میکروسرویس ها
monoliths های سنتی اغلب بر روی لایه ها تمرکز میکنن و اغلب شامل سه لایه هستن: UI، Business و Data.
اما تفاوت اون با monolithic system چیست؟ 🤔
تفاوت اون با یک monolithic system در این هست که سیستم رو به ماژول های جداگانه تقسیم میکنه و تیم ها، مستقل میتونن روی هر ماژول کار کنن تا زمان توسعه محصول رو کاهش بدن و انعطاف پذیری و درک بیشتری داشته باشن. پیشنهاد modular monolith از سمت گوگل هیجانانگیز هست و شباهتهایی با traditional monolith و modularization mechanism که در گذشته بود داره و بنظر ترکیبی از هر دو هست.
به صورت کلی نتایج نشان میده که Modular Monolith یک الگوی معماری نرمافزاری هست که مزایای monolith رو با معماری میکروسرویس ترکیب میکنه. در این معماری، سیستمها به صورت ماژولهای جفتشده آزاد سازماندهی میشن که هر کدام مرزهای کاملاً تعریف شده و وابستگیهای صریح به ماژولهای دیگر رو مشخص میکنن. به خصوص تفاوت اون با modularization که قبلا گفته شد، در اینه که در صورت تمایل اون رو میشه جابجا کرد یا بعداً به عنوان میکروسرویس مستقر کرد.
#architecture
@CodeModule
اخیرا معماری modular monolith توجه خیلی از متخصصان رو به خودش جلب کرده، چرا که گوگل چارچوب «Service Weaver» رو پیشنهاد میکنه تا دولوپر ها رو قادر میسازه تا برنامهها رو به صورت modular monolith بنویسن و اونها رو به عنوان مجموعهای از ریزسرویسها به کار بگیرن. گوگل اون رو چارچوبی در نظر گرفت که بهترین های هر دو دنیا رو داره و به نظر میرسه یک روند در معماری نرم افزار باشه.
اما Modular Monolith چی هست؟
تو یک دهه اخیر شرکت های زیادی مثل آمازون، نتفلیکس و...، از میکروسرویس ها برای توسعه اپلیکیشن های خودشون استفاده کردن. اما با این حال، چندین شرکت مزایای مورد انتظار رو از مهاجرت به میکروسرویس ها به دست نیاوردن و به دلیل مسائلی مثل هزینه بالا و پیچیدگی میکروسرویس ها، با مشکل مواجه شدن. همین مشکلات باعث توجه متخصصان به مفهوم "Modular Monolith" شد. گوگل چارچوب "Service Weaver" رو پیشنهاد کرد تا دولوپر ها رو قادر بسازه برنامه ها رو به صورت یکپارچه مدولار بنویسن و اون ها رو به عنوان مجموعه ای از ریزسرویس ها به کار بگیرن.
گوگل در این رابطه به این شکل توضیح میده که این چارچوبی هست، که بهترین های هر دو جهان توسعه نرم افزار رو داره:
1 - سرعت توسعه یکپارچه، با مقیاسپذیری
2 - امنیت و fault-tolerance در میکروسرویس ها
monoliths های سنتی اغلب بر روی لایه ها تمرکز میکنن و اغلب شامل سه لایه هستن: UI، Business و Data.
اما تفاوت اون با monolithic system چیست؟ 🤔
تفاوت اون با یک monolithic system در این هست که سیستم رو به ماژول های جداگانه تقسیم میکنه و تیم ها، مستقل میتونن روی هر ماژول کار کنن تا زمان توسعه محصول رو کاهش بدن و انعطاف پذیری و درک بیشتری داشته باشن. پیشنهاد modular monolith از سمت گوگل هیجانانگیز هست و شباهتهایی با traditional monolith و modularization mechanism که در گذشته بود داره و بنظر ترکیبی از هر دو هست.
به صورت کلی نتایج نشان میده که Modular Monolith یک الگوی معماری نرمافزاری هست که مزایای monolith رو با معماری میکروسرویس ترکیب میکنه. در این معماری، سیستمها به صورت ماژولهای جفتشده آزاد سازماندهی میشن که هر کدام مرزهای کاملاً تعریف شده و وابستگیهای صریح به ماژولهای دیگر رو مشخص میکنن. به خصوص تفاوت اون با modularization که قبلا گفته شد، در اینه که در صورت تمایل اون رو میشه جابجا کرد یا بعداً به عنوان میکروسرویس مستقر کرد.
#architecture
@CodeModule
⚡8🔥4
2024 شروع خوبی بود اما 2025 این آمار باید ۲ برابر بشه.
چند وقتیه فعالیت چنل به نسبت قبل کمتر شده، که دلیلش گرفتاری های روزمره هست که روز به روز داره بهشون اضافه میشه :))
تو سال جدید دوباره برمیگردیم به روال قبل و با پست ها و میتینگ های خاص مثل همیشه، به استقبال شما ماژولیتیای عزیز میایم💙
اگه هر گونه انتقادی، ایده ای برای میتینگ ها یا برنامه های دیگه، شکایتی خلاصه هر چیزی که فکرتون میرسه دارید، با من میتونید در ارتباط باشید.
@CodeModule
@CodeModuleGap
چند وقتیه فعالیت چنل به نسبت قبل کمتر شده، که دلیلش گرفتاری های روزمره هست که روز به روز داره بهشون اضافه میشه :))
تو سال جدید دوباره برمیگردیم به روال قبل و با پست ها و میتینگ های خاص مثل همیشه، به استقبال شما ماژولیتیای عزیز میایم💙
اگه هر گونه انتقادی، ایده ای برای میتینگ ها یا برنامه های دیگه، شکایتی خلاصه هر چیزی که فکرتون میرسه دارید، با من میتونید در ارتباط باشید.
@CodeModule
@CodeModuleGap
🔥14😁3👌1
۳۰ توصیه از یک برنامهنویس سنیور: نکاتی که ای کاش زودتر میدونستیم! 🦠
۱. کد تمیز مهمتر از کد سریعه. بعداً که برگردی سراغ کدت، از خودت تشکر میکنی!
۲. مهارت های نرم(ارتباط، حل مسئله و...) رو جدی بگیر.
۳. همیشه فکر کن یه نفر دیگه قراره کدت رو بخونه - حتی اگه تنها توی پروژه کار میکنی.
۴. هر روز حداقل نیم ساعت مطالعه کن، مهم نیست چقدر شلوغی!
۵. سراغ فریمورک جدید نرو تا وقتی پایهت قوی نشده. جاوااسکریپت وانیلا رو خوب یاد بگیر، بعد برو سراغ ریاکت.
۶. گیت رو جدی بگیر. روزی میرسه که نجاتت میده و مهم نیست کجای رودمپ هستی، یادش بگیر.
۷. وقتی یه چیزی رو نمیدونی، با افتخار بگو نمیدونم. هیچکس همه چیز رو نمیدونه.
۸. کد ریویو فقط برای پیدا کردن باگ نیست. ازش برای یادگیری استفاده کن.
۹. با تیمت خوب رفتار کن. مهم نیست چقدر باهوشی، اگه نتونی با بقیه کار کنی، به درد نمیخوری!
۱۰. قبل از شروع کدنویسی، نحوه پیاده سازی تسک هارو تو ذهنت طراحی کن.
۱۱. هر تغییری رو تست کن، حتی اگه مطمئنی درسته.
۱۲. دیباگ کردن رو یاد بگیر، console.log همیشه جواب نمیده!
۱۳. امنیت رو از روز اول جدی بگیر. بعداً خیلی دیره.
۱۴. پرفورمنس مهمه، ولی نه به قیمت امنیت.
۱۵. داکیومنت بنویس. نه برای بقیه، برای خودت!
۱۶. هر ۶ ماه یه تکنولوژی جدید یاد بگیر.
۱۷. توی کامیونیتیها فعال باش. یه روزی به دردت میخوره.
۱۸. فقط به حقوق فکر نکن، به چیزی که یاد میگیری هم فکر کن. خروجی ما از شرکت و تیم نباید فقط بحث مالی باشه.
۱۹. تخصص و انرژیت رو ارزون در اختیار بقیه قرار نده.
۲۰. استکاورفلو و Gpt خوبه، ولی اول سعی کن خودت فکر کنی.
۲۱. کامنت بذار، ولی نه برای توضیح کد بد.
۲۲. پشت سیستم ورزش کن. کمردرد شوخی نداره.
۲۳. به چشمهات استراحت بده و قانون ۲۰-۲۰-۲۰ رو رعایت کن.
۲۴. زندگی فقط کد نیست. تفریح هم مهمه.
۲۵. تخمین زمانی رو ضرب در ۲ کن، باز هم کمه!
۲۶. تکنیکال دبت رو جدی بگیر. یه روز میاد سراغت.
۲۷. کمالگرایی رو بزار کنار و MVP بساز.
۲۸. از شکستهات یاد بگیر، همه اشتباه میکنن.
۲۹. صبور باش، همه یه روزی جونیور بودن.
۳۰. لذت ببر! برنامهنویسی قشنگترین شغل دنیاست.
شما چه تجربه ای دارید؟ 🤔
لیست رو اگه میتونید تکمیل تر کنید.
#tips
@CodeModule
۱. کد تمیز مهمتر از کد سریعه. بعداً که برگردی سراغ کدت، از خودت تشکر میکنی!
۲. مهارت های نرم(ارتباط، حل مسئله و...) رو جدی بگیر.
۳. همیشه فکر کن یه نفر دیگه قراره کدت رو بخونه - حتی اگه تنها توی پروژه کار میکنی.
۴. هر روز حداقل نیم ساعت مطالعه کن، مهم نیست چقدر شلوغی!
۵. سراغ فریمورک جدید نرو تا وقتی پایهت قوی نشده. جاوااسکریپت وانیلا رو خوب یاد بگیر، بعد برو سراغ ریاکت.
۶. گیت رو جدی بگیر. روزی میرسه که نجاتت میده و مهم نیست کجای رودمپ هستی، یادش بگیر.
۷. وقتی یه چیزی رو نمیدونی، با افتخار بگو نمیدونم. هیچکس همه چیز رو نمیدونه.
۸. کد ریویو فقط برای پیدا کردن باگ نیست. ازش برای یادگیری استفاده کن.
۹. با تیمت خوب رفتار کن. مهم نیست چقدر باهوشی، اگه نتونی با بقیه کار کنی، به درد نمیخوری!
۱۰. قبل از شروع کدنویسی، نحوه پیاده سازی تسک هارو تو ذهنت طراحی کن.
۱۱. هر تغییری رو تست کن، حتی اگه مطمئنی درسته.
۱۲. دیباگ کردن رو یاد بگیر، console.log همیشه جواب نمیده!
۱۳. امنیت رو از روز اول جدی بگیر. بعداً خیلی دیره.
۱۴. پرفورمنس مهمه، ولی نه به قیمت امنیت.
۱۵. داکیومنت بنویس. نه برای بقیه، برای خودت!
۱۶. هر ۶ ماه یه تکنولوژی جدید یاد بگیر.
۱۷. توی کامیونیتیها فعال باش. یه روزی به دردت میخوره.
۱۸. فقط به حقوق فکر نکن، به چیزی که یاد میگیری هم فکر کن. خروجی ما از شرکت و تیم نباید فقط بحث مالی باشه.
۱۹. تخصص و انرژیت رو ارزون در اختیار بقیه قرار نده.
۲۰. استکاورفلو و Gpt خوبه، ولی اول سعی کن خودت فکر کنی.
۲۱. کامنت بذار، ولی نه برای توضیح کد بد.
۲۲. پشت سیستم ورزش کن. کمردرد شوخی نداره.
۲۳. به چشمهات استراحت بده و قانون ۲۰-۲۰-۲۰ رو رعایت کن.
۲۴. زندگی فقط کد نیست. تفریح هم مهمه.
۲۵. تخمین زمانی رو ضرب در ۲ کن، باز هم کمه!
۲۶. تکنیکال دبت رو جدی بگیر. یه روز میاد سراغت.
۲۷. کمالگرایی رو بزار کنار و MVP بساز.
۲۸. از شکستهات یاد بگیر، همه اشتباه میکنن.
۲۹. صبور باش، همه یه روزی جونیور بودن.
۳۰. لذت ببر! برنامهنویسی قشنگترین شغل دنیاست.
شما چه تجربه ای دارید؟ 🤔
لیست رو اگه میتونید تکمیل تر کنید.
#tips
@CodeModule
🔥35👌9❤🔥1
چقدر از Event Loop در جاوااسکریپت اطلاعات دارید؟ 🦦
Event Loop یه مکانیزم خیلی مهم توی جاوااسکریپته که باعث میشه این زبان با وجود Single-Threaded بودن، بتونه غیر بلاککننده و (Asynchronous) کار کنه.
به زبان ساده Event Loop مسئول اینه که کارهای مختلف جاوااسکریپت رو مدیریت کنه و مطمئن بشه، کدهای ما به ترتیب و به درستی اجرا میشن.
اجزای اصلی Event Loop شامل موارد زیر هست 🦠
1. Call Stack
یک لیست (ساختار دادهای LIFO) که جاوااسکریپت توش توابع در حال اجرا رو نگه میداره. هر تابعی که صدا زده میشه میره روی استک و بعد از اجرا، ازش حذف میشه. این قلب تپنده اجرای کدهای همزمان (synchronous) هست.
2. Web APIs
وقتی یه کار غیربلاککننده مثل تایمر (setTimeout) یا ریکوستی(fetch) اجرا میشه، به Web APIs سپرده میشه. Web APIs این کارها رو در محیط مرورگر یا Node.js مدیریت میکنه و بعد از تموم شدن، نتیجه رو به Callback Queue میفرسته.
3. Callback Queue
یه صف که توابع آماده اجرا مثل تایمرها و Event Listeners در اون نگهداری میشن. وقتی Call Stack خالی بشه، Event Loop این صف رو یکییکی اجرا میکنه.
4. Microtasks Queue
وظایفی مثل Promise.then و Mutation Observers در این صف قرار میگیرن. این صف همیشه قبل از Callback Queue پردازش میشه و اولویت بیشتری داره.
5. Macrotasks Queue
وظایفی مثل setTimeout و setInterval در این صف قرار میگیرن. این صف بعد از Microtasks پردازش میشه و شامل کارهایی با اولویت پایینتره.
به زبان ساده، Event Loop مسئول اینه که کارهای مختلف جاوااسکریپت رو به ترتیب و به درستی اجرا کنه. این مکانیزم به جاوااسکریپت قدرت انجام عملیات سنگین مثل درخواستهای شبکه و انیمیشنها رو بدون قفل کردن برنامه میده.
#eventloop
@CodeModule
Event Loop یه مکانیزم خیلی مهم توی جاوااسکریپته که باعث میشه این زبان با وجود Single-Threaded بودن، بتونه غیر بلاککننده و (Asynchronous) کار کنه.
به زبان ساده Event Loop مسئول اینه که کارهای مختلف جاوااسکریپت رو مدیریت کنه و مطمئن بشه، کدهای ما به ترتیب و به درستی اجرا میشن.
اجزای اصلی Event Loop شامل موارد زیر هست 🦠
1. Call Stack
یک لیست (ساختار دادهای LIFO) که جاوااسکریپت توش توابع در حال اجرا رو نگه میداره. هر تابعی که صدا زده میشه میره روی استک و بعد از اجرا، ازش حذف میشه. این قلب تپنده اجرای کدهای همزمان (synchronous) هست.
2. Web APIs
وقتی یه کار غیربلاککننده مثل تایمر (setTimeout) یا ریکوستی(fetch) اجرا میشه، به Web APIs سپرده میشه. Web APIs این کارها رو در محیط مرورگر یا Node.js مدیریت میکنه و بعد از تموم شدن، نتیجه رو به Callback Queue میفرسته.
3. Callback Queue
یه صف که توابع آماده اجرا مثل تایمرها و Event Listeners در اون نگهداری میشن. وقتی Call Stack خالی بشه، Event Loop این صف رو یکییکی اجرا میکنه.
4. Microtasks Queue
وظایفی مثل Promise.then و Mutation Observers در این صف قرار میگیرن. این صف همیشه قبل از Callback Queue پردازش میشه و اولویت بیشتری داره.
5. Macrotasks Queue
وظایفی مثل setTimeout و setInterval در این صف قرار میگیرن. این صف بعد از Microtasks پردازش میشه و شامل کارهایی با اولویت پایینتره.
به زبان ساده، Event Loop مسئول اینه که کارهای مختلف جاوااسکریپت رو به ترتیب و به درستی اجرا کنه. این مکانیزم به جاوااسکریپت قدرت انجام عملیات سنگین مثل درخواستهای شبکه و انیمیشنها رو بدون قفل کردن برنامه میده.
از بحث Event Loop در اکثر مصاحبه ها سوال میاد و یادگیریش، بهتون در درک جاوااسکریپت خیلی کمک میکنه.
#eventloop
@CodeModule
🔥15👌4❤🔥3
Clerk، ابزاری کارآمد و ساده برای احراز هویت 😎
Clerk یک پلتفرم فوقالعادهست که تمام پیچیدگیهای مربوط به احراز هویت و مدیریت کاربران رو براتون هندل میکنه و دیگه نیازی نیست درگیر ساخت فرمهای پیچیده، مدیریت توکنها، احراز هویت دو مرحلهای و... باشید.
⚡️ سادگی و با چند خط کد، یه سیستم احراز هویت امن و مدرن رو به اپلیکیشنتون اضافه کنید.
‼️ چرا Clerk برای برنامهنویسها عالیه؟
✅ سرعت و سهولت یکپارچهسازی: با کتابخانههای آماده برای فریمورکها و زبانهای برنامهنویسی محبوب، خیلی سریع میتونید Clerk رو به پروژتون اضافه کنید.
✅ امنیت بالا: دیگه نگران آسیبپذیریهای امنیتی مربوط به احراز هویت نباشید. با رعایت بهروزترین استانداردهای امنیتی، خیالتون رو راحت میکنه.
✅ رابط کاربری قابل کاستومایز : ظاهر صفحات ورود و ثبتنام رو مطابق با برند و طراحی اپلیکیشنتون شخصیسازی کنید.
✅ پشتیبانی از روشهای مختلف احراز هویت: ورود با ایمیل، شماره تلفن، حسابهای شبکههای اجتماعی و...
✅ مدیریت آسان کاربران: داشبورد کاربری ساده و قدرتمند برای مدیریت کاربران و تنظیمات مربوط به اونها.
✅ صرفهجویی در زمان و هزینه: با استفاده از Clerk دیگه نیازی به صرف زمان و منابع برای توسعه و نگهداری سیستم احراز هویت اختصاصی ندارید.
اگر به دنبال یک راهحل حرفهای و کارآمد برای مدیریت احراز هویت کاربران میگردید، Clerk قطعاً گزینه خوبی هست، برای یادگیری این ابزار میتونید به داکیومنتش مراجعه کنید.
Document🌕
#authentication #clerk
@CodeModule
Clerk یک پلتفرم فوقالعادهست که تمام پیچیدگیهای مربوط به احراز هویت و مدیریت کاربران رو براتون هندل میکنه و دیگه نیازی نیست درگیر ساخت فرمهای پیچیده، مدیریت توکنها، احراز هویت دو مرحلهای و... باشید.
اگر به دنبال یک راهحل حرفهای و کارآمد برای مدیریت احراز هویت کاربران میگردید، Clerk قطعاً گزینه خوبی هست، برای یادگیری این ابزار میتونید به داکیومنتش مراجعه کنید.
Document
#authentication #clerk
@CodeModule
Please open Telegram to view this post
VIEW IN TELEGRAM
1🔥6⚡2👌2💔1
چند تا کامند کاربردی و کمتر شناخته شده از گیت 🦦
میدونستی به جز push و pull گیت کامند های دیگه ای هم داره؟ در این پست من چند کامند کمتر شناخته شده و کاربردی رو بهتون معرفی میکنم.
💎 git stash
زمانی که شما در برنچ A هستید و یهویی مجبورید به برنچ B سوییچ کنید و نمیخواید این تغییرات نیمهکاره رو کامیت کنید، git stash به دادتون میرسه. تغییراتتون رو جمع میکنه و میتونید بدون کامیت کردن به یک برنچ دیگه برید.
💎 conditional config
اینجوری بگم که با این قابلیت میتونید تعیین کنید یه تنظیم خاص تو گیت فقط تحت شرایط خاصی اعمال بشه. مثلا اگه در یک پروژه خاص بودید، یا برای یه ایمیل خاص، تنظیمات متفاوتی داشته باشی.
💎 git blame
این کامند برای وقتی هست که در تیم، یک قسمت از کد خراب شده و میخواید بدونید کدوم دولوپر کامیت کرده و مقصر کیه. با این کامند به راحتی میتونید بفهمید چه کسی اون فایل رو تغییر داده.
💎 git reflog
این کامند برای زمانی خوبه که یک خرابکاری کردی، مثلا یک کامیت پاک کردی و این کامند بهت نشون میده چه تغییراتی صورت گرفته. این کامند به طور پیشفرض فعال هست و تغییرات محلی رو ثبت میکنه. (مثلا زمانی که ما از کامند git log استفاده میکنیم)
💎 git diff —word —diff
به جای اینکه کل تغییرات رو خطبهخط رو ببینی، این کامند تغییرات رو کلمهبهکلمه نشون میده. برای وقتایی که کد زیاد داری، خیلی کمک میکنه.
💎 git push —force-with-lease
این یه جور فورس پوش هست، ولی با احتیاط! به جای اینکه فورس بزنی و تغییرات دیگران رو overwrite کنی، این تضمین میکنه که اگه کسی دیگه چیزی تو ریپازیتوری تغییر داده، پوش تو انجام نشه.
به صورت خلاصه این کامند ها قطعا یه روز به کارتون میاد و به نوبه خودشون کاربردی هستن. دقت کنید تعداد کامند های گیت حدودا بیشتر از ۱۵۰ تا هست و اگه علاقه مند به کشف باقی موارد هستید، میتونید از YouTube اقای Scott Chacon اطلاعات خوبی به دست بیارید. ایشون نویسنده کتاب معروف Git Pro، و یکی از بنیانگذاران گیت هاب هستن.
#git
@CodeModule
میدونستی به جز push و pull گیت کامند های دیگه ای هم داره؟ در این پست من چند کامند کمتر شناخته شده و کاربردی رو بهتون معرفی میکنم.
💎 git stash
زمانی که شما در برنچ A هستید و یهویی مجبورید به برنچ B سوییچ کنید و نمیخواید این تغییرات نیمهکاره رو کامیت کنید، git stash به دادتون میرسه. تغییراتتون رو جمع میکنه و میتونید بدون کامیت کردن به یک برنچ دیگه برید.
💎 conditional config
اینجوری بگم که با این قابلیت میتونید تعیین کنید یه تنظیم خاص تو گیت فقط تحت شرایط خاصی اعمال بشه. مثلا اگه در یک پروژه خاص بودید، یا برای یه ایمیل خاص، تنظیمات متفاوتی داشته باشی.
💎 git blame
این کامند برای وقتی هست که در تیم، یک قسمت از کد خراب شده و میخواید بدونید کدوم دولوپر کامیت کرده و مقصر کیه. با این کامند به راحتی میتونید بفهمید چه کسی اون فایل رو تغییر داده.
💎 git reflog
این کامند برای زمانی خوبه که یک خرابکاری کردی، مثلا یک کامیت پاک کردی و این کامند بهت نشون میده چه تغییراتی صورت گرفته. این کامند به طور پیشفرض فعال هست و تغییرات محلی رو ثبت میکنه. (مثلا زمانی که ما از کامند git log استفاده میکنیم)
💎 git diff —word —diff
به جای اینکه کل تغییرات رو خطبهخط رو ببینی، این کامند تغییرات رو کلمهبهکلمه نشون میده. برای وقتایی که کد زیاد داری، خیلی کمک میکنه.
💎 git push —force-with-lease
این یه جور فورس پوش هست، ولی با احتیاط! به جای اینکه فورس بزنی و تغییرات دیگران رو overwrite کنی، این تضمین میکنه که اگه کسی دیگه چیزی تو ریپازیتوری تغییر داده، پوش تو انجام نشه.
به صورت خلاصه این کامند ها قطعا یه روز به کارتون میاد و به نوبه خودشون کاربردی هستن. دقت کنید تعداد کامند های گیت حدودا بیشتر از ۱۵۰ تا هست و اگه علاقه مند به کشف باقی موارد هستید، میتونید از YouTube اقای Scott Chacon اطلاعات خوبی به دست بیارید. ایشون نویسنده کتاب معروف Git Pro، و یکی از بنیانگذاران گیت هاب هستن.
#git
@CodeModule
🔥21⚡2
😁63
Swagger این ابزار رو ببینه جیغ میکشه!
پکیج swagger-typescript-api یک ابزار قدرتمند و کاربردیه که بهتون کمک میکنه بر اساس Swagger پروژتون، کدهایی رو که شامل اینترفیسها، تایپها، و فانکشنهای مورد نیاز برای تعامل با API هستن، بهطور خودکار تولید کنید. کافیه آدرس swagger پروژه رو تحویلش بدید تا شیک و مجلسی، کل کوئری های مورد نیاز رو جنریت کنه.
قابلیتها و کاربردهای اصلی 👇🏻
1.تولید تایپها و اینترفیسها:
این پکیج فایل TypeScript تولید میکنه که شامل تمام تایپهای مربوط به دادههایی هست که API شما دریافت یا ارسال میکنه. این کار باعث جلوگیری از خطاهای تایپی و افزایش سرعت توسعه میشه.
2.ایجاد ریکوست فانکشن ها:
فانکشنهایی برای فراخوانی هر یک از endpointهای API تولید میکنه که مستقیماً با تایپهای TypeScript همخوانی دارن.
3.پشتیبانی از OpenAPI:
بهطور کامل از نسخههای OpenAPI (مانند OpenAPI 3.0) پشتیبانی میکنه.
4.سفارشیسازی بالا:
میتونید قالب(template)های خودتون رو برای تولید کد سفارشی استفاده کنید. در کل گزینههای متنوعی برای تنظیم ساختار خروجی فراهم هست.
به طور خلاصه این پکیج به شدت سرعت توسعه رو بالا میبره و با مدل تایپ های تمیز و مرتب، از خطاهای احتمالی پروژتون جلوگیری میکنه.
(این ابزار خوراک ریکت کوئری دولوپر ها هست)
🔗 Link
#tools #swagger
@CodeModule
پکیج swagger-typescript-api یک ابزار قدرتمند و کاربردیه که بهتون کمک میکنه بر اساس Swagger پروژتون، کدهایی رو که شامل اینترفیسها، تایپها، و فانکشنهای مورد نیاز برای تعامل با API هستن، بهطور خودکار تولید کنید. کافیه آدرس swagger پروژه رو تحویلش بدید تا شیک و مجلسی، کل کوئری های مورد نیاز رو جنریت کنه.
قابلیتها و کاربردهای اصلی 👇🏻
1.تولید تایپها و اینترفیسها:
این پکیج فایل TypeScript تولید میکنه که شامل تمام تایپهای مربوط به دادههایی هست که API شما دریافت یا ارسال میکنه. این کار باعث جلوگیری از خطاهای تایپی و افزایش سرعت توسعه میشه.
2.ایجاد ریکوست فانکشن ها:
فانکشنهایی برای فراخوانی هر یک از endpointهای API تولید میکنه که مستقیماً با تایپهای TypeScript همخوانی دارن.
3.پشتیبانی از OpenAPI:
بهطور کامل از نسخههای OpenAPI (مانند OpenAPI 3.0) پشتیبانی میکنه.
4.سفارشیسازی بالا:
میتونید قالب(template)های خودتون رو برای تولید کد سفارشی استفاده کنید. در کل گزینههای متنوعی برای تنظیم ساختار خروجی فراهم هست.
به طور خلاصه این پکیج به شدت سرعت توسعه رو بالا میبره و با مدل تایپ های تمیز و مرتب، از خطاهای احتمالی پروژتون جلوگیری میکنه.
(این ابزار خوراک ریکت کوئری دولوپر ها هست)
🔗 Link
#tools #swagger
@CodeModule
GitHub
GitHub - acacode/swagger-typescript-api: Generate the API Client for Fetch or Axios from an OpenAPI Specification
Generate the API Client for Fetch or Axios from an OpenAPI Specification - acacode/swagger-typescript-api
🔥63⚡10❤🔥2
حباب هوش مصنوعی شکست! 🫧
اخیراً یک مدل هوش مصنوعی به نام DeepSeek از چین معرفی شد که توجه بسیاری به خودش جلب کرد. این مدل زبانی عملکردی شبیه به GPT داره و از طریق پرامت های کاربران، پاسخهای خودش رو تولید میکنه اما تفاوت اصلی اون در هزینه ها و روشهای توسعه اون هست. گفته میشه DeepSeek با بودجه حدود ۵ تا ۶ میلیون دلار ساخته شده و در برخی آزمون ها حتی از مدل های پیشرفته تری مثل GPT بهتر عمل کرده. این اتفاق تأثیر زیادی روی بازار گذاشته به طوری که ارزش سهام شرکت هایی مثل انویدیا و open ai کاهش پیدا کرده.
قبل از این، شرکتهایی مثل انویدیا و open ai ادعا میکردن توسعه هوش مصنوعی به منابع سخت افزاری عظیم و سرمایه گذاری کلان نیاز داره. انویدیا با فروش سخت افزارهای ویژه به غولهای فناوری مانند آمازون و مایکروسافت سود زیادی کسب میکرد و open ai هم بر پیچیدگی توسعه مدلهای زبانی تأکید داشت، تا این فناوری رو در انحصار خودش نگه داره. اما ظهور دیپ سیک این narrative رو زیر سوال برد. تیم توسعه دهنده دیپ سیک نشون داد با بهینه سازی روشهای قدیمی و کاهش مصرف منابع، میشه مدلی کارآمد حتی روی سیستمهای گیمینگ معمولی ساخت، بدون نیاز به ابررایانه ها یا بودجه های میلیاردی 💸
یکی از نقاط قوت DeepSeek بازنگری در الگوریتم های سنتی یادگیری ماشین بود، که باعث شد مصرف حافظه و انرژی تا حد چشمگیری کاهش پیدا کنه. این بهینه سازی هزینههای توسعه رو از صدها میلیون دلار به کمتر از ۱۰ میلیون دلار رسوند. چنین دستاوردی نه تنها انحصار شرکتهای بزرگ رو شکست، بلکه اثبات کرد دانش کافی و خلاقیت میتونه محدودیت های مالی و سخت افزاری رو جبران کنه.
این اتفاق رو سرآغاز تحولی در حوزه هوش مصنوعی میتونیم بدونیم. حالا دیگه هر تیم کوچیک یا حتی افراد مستقل با دانش فنی مناسب امکان ساخت مدلهای رقابتی رو دارن. موفقیت دیپ سیک همچنین نشون میده ادعاهای شرکتهای بزرگ درباره ضرورت منابع انحصاری همیشه واقعی نیست و تنها راهی برای حفظ سلطه بازار هست. حالا چالش جدیدی پیش روی صنعت قرار گرفته: آیا این روند بازتر شدن فناوری ادامه پیدا میکنه یا غول های تکنولوژی راهی برای بازپسگیری انحصار پیدا میکنن؟ 🤔
🔗 همین الان DeepSeek رو امتحان کن
#ai
@CodeModule
اخیراً یک مدل هوش مصنوعی به نام DeepSeek از چین معرفی شد که توجه بسیاری به خودش جلب کرد. این مدل زبانی عملکردی شبیه به GPT داره و از طریق پرامت های کاربران، پاسخهای خودش رو تولید میکنه اما تفاوت اصلی اون در هزینه ها و روشهای توسعه اون هست. گفته میشه DeepSeek با بودجه حدود ۵ تا ۶ میلیون دلار ساخته شده و در برخی آزمون ها حتی از مدل های پیشرفته تری مثل GPT بهتر عمل کرده. این اتفاق تأثیر زیادی روی بازار گذاشته به طوری که ارزش سهام شرکت هایی مثل انویدیا و open ai کاهش پیدا کرده.
قبل از این، شرکتهایی مثل انویدیا و open ai ادعا میکردن توسعه هوش مصنوعی به منابع سخت افزاری عظیم و سرمایه گذاری کلان نیاز داره. انویدیا با فروش سخت افزارهای ویژه به غولهای فناوری مانند آمازون و مایکروسافت سود زیادی کسب میکرد و open ai هم بر پیچیدگی توسعه مدلهای زبانی تأکید داشت، تا این فناوری رو در انحصار خودش نگه داره. اما ظهور دیپ سیک این narrative رو زیر سوال برد. تیم توسعه دهنده دیپ سیک نشون داد با بهینه سازی روشهای قدیمی و کاهش مصرف منابع، میشه مدلی کارآمد حتی روی سیستمهای گیمینگ معمولی ساخت، بدون نیاز به ابررایانه ها یا بودجه های میلیاردی 💸
یکی از نقاط قوت DeepSeek بازنگری در الگوریتم های سنتی یادگیری ماشین بود، که باعث شد مصرف حافظه و انرژی تا حد چشمگیری کاهش پیدا کنه. این بهینه سازی هزینههای توسعه رو از صدها میلیون دلار به کمتر از ۱۰ میلیون دلار رسوند. چنین دستاوردی نه تنها انحصار شرکتهای بزرگ رو شکست، بلکه اثبات کرد دانش کافی و خلاقیت میتونه محدودیت های مالی و سخت افزاری رو جبران کنه.
این اتفاق رو سرآغاز تحولی در حوزه هوش مصنوعی میتونیم بدونیم. حالا دیگه هر تیم کوچیک یا حتی افراد مستقل با دانش فنی مناسب امکان ساخت مدلهای رقابتی رو دارن. موفقیت دیپ سیک همچنین نشون میده ادعاهای شرکتهای بزرگ درباره ضرورت منابع انحصاری همیشه واقعی نیست و تنها راهی برای حفظ سلطه بازار هست. حالا چالش جدیدی پیش روی صنعت قرار گرفته: آیا این روند بازتر شدن فناوری ادامه پیدا میکنه یا غول های تکنولوژی راهی برای بازپسگیری انحصار پیدا میکنن؟ 🤔
🔗 همین الان DeepSeek رو امتحان کن
#ai
@CodeModule
⚡21❤🔥2👌2🔥1