امروز داشتم روی پروژه ای کار می کردم که باید خیلی زود به مرحله لانچ برسه به همین دلیل از کامپوننت های آماده استفاده کردم و خلاصه بگم این هرچی از کارایی و خوب بودن و headless UI و مچ بودنش با tailwind بگم کم گفتم 🔥
🔴 <CodeHub/>
🔴 <CodeHub/>
🔥1
پنج ویژگی مهم که کد حرفهای شما باید داشته باشد :
۱. استقلال از فریمورک 🏗
- معماری کد شما نباید به یک فریمورک خاص وابسته باشد.
- از فریمورکها به عنوان ابزار استفاده کنید، نه به عنوان محدودیت.
۲. قابلیت تست 🧪
- امکان تست business logic ها بدون نیاز به UI، دیتابیس، وب سرور یا هر وابستگی خارجی دیگر.یعنی اینکه سرور یا هر چی وابستگی خارجی که هست رو بتونید به راحتی تست کنید.
۳. عدم وابستگی به رابط کاربری (UI) 🖥
- قابلیت جایگزینی آسان بخش UI.
- امکان تغییر از رابط کاربری وب به کنسول یا CLI بدون تغییر در سایر بخشهای کد.
۴. استقلال از دیتابیس 💾
- قابلیت تغییر آسان نوع دیتابیس (مثلاً از MySQL به MongoDB) بدون نیاز به تغییرات اساسی در کد.
۵. عدم وابستگی به سرویسهای خارجی 🌐
- امکان جایگزینی آسان سرویسهای خارجی (مثلاً تغییر سرویس پیامک از یک ارائهدهنده به دیگری) بدون تأثیر بر کل سیستم.
🔴 <CodeHub/>
۱. استقلال از فریمورک 🏗
- معماری کد شما نباید به یک فریمورک خاص وابسته باشد.
- از فریمورکها به عنوان ابزار استفاده کنید، نه به عنوان محدودیت.
۲. قابلیت تست 🧪
- امکان تست business logic ها بدون نیاز به UI، دیتابیس، وب سرور یا هر وابستگی خارجی دیگر.یعنی اینکه سرور یا هر چی وابستگی خارجی که هست رو بتونید به راحتی تست کنید.
۳. عدم وابستگی به رابط کاربری (UI) 🖥
- قابلیت جایگزینی آسان بخش UI.
- امکان تغییر از رابط کاربری وب به کنسول یا CLI بدون تغییر در سایر بخشهای کد.
۴. استقلال از دیتابیس 💾
- قابلیت تغییر آسان نوع دیتابیس (مثلاً از MySQL به MongoDB) بدون نیاز به تغییرات اساسی در کد.
۵. عدم وابستگی به سرویسهای خارجی 🌐
- امکان جایگزینی آسان سرویسهای خارجی (مثلاً تغییر سرویس پیامک از یک ارائهدهنده به دیگری) بدون تأثیر بر کل سیستم.
برگرفته از (Clean Architecture)
🔴 <CodeHub/>
👍7
10 کاری که باعث میشه شما به یک برنامه نویس بهتر تبدیل بشید :
1- کدی بنویس که راحت خونده بشه 📝
با استفاده از اسمهای واضح برای متغیرها، توضیحات (کامنتها) و فرمتبندی یکنواخت، مطمئن شو کدت قابل فهم باشه.
2 - اصل DRY (خودت رو تکرار نکن) رو رعایت کن 🚫🔁
از کپی کردن کد اجتناب کن و کارهای مشابه رو توی توابع یا کلاسهای قابل استفاده مجدد قرار بده.
3 - از نامگذاری توصیفی استفاده کن 🏷
برای متغیرها، توابع و کلاسها اسمهای واضح و معنادار انتخاب کن تا خوندن و نگهداری کد راحتتر بشه.
4 - خطاها و باگ ها رو درست مدیریت کن ⚒
مکانیزمهای مناسب برای مدیریت خطاها پیادهسازی کن تا خطاها رو پیشبینی و به خوبی مدیریت کنی و مقاومت کد رو بالا ببری.
5 - کدهای ماژولار بنویس 🧩
کدت رو به بخشهای کوچکتر و قابل مدیریت تقسیم کن که هر کدوم روی وظیفه یا کار خاصی تمرکز داشته باشن.
6 - به استانداردهای کدنویسی پایبند باش 📏
از استانداردها و راهنماهای سبک خاص زبان یا فریم ورکی که باهاش کار میکنی پیروی کن تا کدت یکدست و منسجم بمونه.
7 - بهطور منظم کد رو بازسازی (ریفکتر) کن 🔄
بهطور مداوم کدت رو بازسازی کن تا ساختار، خوانایی و عملکردش بهتر بشه و بدهی فنی کاهش پیدا کنه.
8 - یادگیری و بهبود مداوم 🚀📚
با جدیدترین فناوریها، ابزارها و بهترین روشهای صنعت برنامهنویسی بهروز باش تا مهارتهات رو تقویت کنی و رقابتی بمونی.
9 - از کنترل ورژن ها استفاده کن 📂
از سیستمهای کنترل ورژن مثل Git برای پیگیری تغییرات، همکاری با اعضای تیم و برگشت به نسخههای قبلی در صورت نیاز استفاده کن.
10 - کدی بنویس که تست کردنش راحت باشه 🧪
کدی بنویس که با اصولی مثل تفکیک مسئولیتها و تزریق وابستگیها (dependency injection) تست کردنش ساده باشه.
🔴<CodeHub/>
1- کدی بنویس که راحت خونده بشه 📝
با استفاده از اسمهای واضح برای متغیرها، توضیحات (کامنتها) و فرمتبندی یکنواخت، مطمئن شو کدت قابل فهم باشه.
2 - اصل DRY (خودت رو تکرار نکن) رو رعایت کن 🚫🔁
از کپی کردن کد اجتناب کن و کارهای مشابه رو توی توابع یا کلاسهای قابل استفاده مجدد قرار بده.
3 - از نامگذاری توصیفی استفاده کن 🏷
برای متغیرها، توابع و کلاسها اسمهای واضح و معنادار انتخاب کن تا خوندن و نگهداری کد راحتتر بشه.
4 - خطاها و باگ ها رو درست مدیریت کن ⚒
مکانیزمهای مناسب برای مدیریت خطاها پیادهسازی کن تا خطاها رو پیشبینی و به خوبی مدیریت کنی و مقاومت کد رو بالا ببری.
5 - کدهای ماژولار بنویس 🧩
کدت رو به بخشهای کوچکتر و قابل مدیریت تقسیم کن که هر کدوم روی وظیفه یا کار خاصی تمرکز داشته باشن.
6 - به استانداردهای کدنویسی پایبند باش 📏
از استانداردها و راهنماهای سبک خاص زبان یا فریم ورکی که باهاش کار میکنی پیروی کن تا کدت یکدست و منسجم بمونه.
7 - بهطور منظم کد رو بازسازی (ریفکتر) کن 🔄
بهطور مداوم کدت رو بازسازی کن تا ساختار، خوانایی و عملکردش بهتر بشه و بدهی فنی کاهش پیدا کنه.
8 - یادگیری و بهبود مداوم 🚀📚
با جدیدترین فناوریها، ابزارها و بهترین روشهای صنعت برنامهنویسی بهروز باش تا مهارتهات رو تقویت کنی و رقابتی بمونی.
9 - از کنترل ورژن ها استفاده کن 📂
از سیستمهای کنترل ورژن مثل Git برای پیگیری تغییرات، همکاری با اعضای تیم و برگشت به نسخههای قبلی در صورت نیاز استفاده کن.
10 - کدی بنویس که تست کردنش راحت باشه 🧪
کدی بنویس که با اصولی مثل تفکیک مسئولیتها و تزریق وابستگیها (dependency injection) تست کردنش ساده باشه.
🔴<CodeHub/>
👍5
Audio
#Music
🔵 <CodeHub/>
برنامه نویسی به شما این امکان را میدهد که به "فکر کردن" فکر کنید و در حین اشکال زدایی (Debug)، "یاد گرفتن" را یاد بگیرید.
نیکلاس نگروپونته
🔵 <CodeHub/>
❤4
پایگاه داده indexedDB چیه ؟
🔸ایندکسد دیبی (IndexedDB) یه API سطح پایین برای ذخیرهسازی دادههای ساختاریافته و حجیم سمت کاربره، که شامل فایلها و بلابها هم میشه. این API از ایندکسها استفاده میکنه تا بتونه دادهها رو با سرعت بالا جستجو کنه. در حالی که Web Storage ها برای ذخیرهسازی مقادیر کم دادهها مفیده، اما برای ذخیرهسازی دادههای حجیم و ساختاریافته چندان کارایی نداره. اینجاست که IndexedDB به کمک میاد.
🔸پایگاه داده IndexedDB یه پایگاه داده شیءگرا و مبتنی بر جاوااسکریپته. IndexedDB بهت اجازه میده اشیائی رو ذخیره و بازیابی کنی که با کلید ایندکس شدن؛ هر شیئی که توسط الگوریتم تکثیر ساختار یافته پشتیبانی بشه رو میتونی ذخیره کنی.
🔸ویژگی ها و مزایاIndexedDB
1 - ذخیرهسازی آفلاین💾🚫
به کاربران امکان میدهد بدون اتصال به اینترنت به دادههای خود دسترسی داشته باشند.
2 - ذخیرهسازی دادههای بزرگ💾📡
برخلاف LocalStorage و SessionStorage که ظرفیت محدودی دارند، IndexedDB میتواند حجم بزرگی از دادهها را مدیریت کند.
3 - ذخیرهسازی دادههای پیچیده💾💪
قادر است اشیاء جاوااسکریپت، آرایهها، رشتهها، اعداد و دیگر انواع دادهها را ذخیره کند.
4 - پایگاه داده NoSQL
این بدان معناست که از سیستم جداول رابطهای استفاده نمیکند و بیشتر شبیه به پایگاه دادههای NoSQL است.
🔸مثال ساده از کار با IndexedDB در جاوااسکریپت :
🔸برای استفاده از indexedDB کتابخونه های زیادی وجود داره که میتونه پیچیدگی استفاده از این پایگاه داده رو برای کاربرد های کوچک برطرف کنه مثل Dexie.org , PouchDB , JsStore
🔴</CodeHub>
🔸ایندکسد دیبی (IndexedDB) یه API سطح پایین برای ذخیرهسازی دادههای ساختاریافته و حجیم سمت کاربره، که شامل فایلها و بلابها هم میشه. این API از ایندکسها استفاده میکنه تا بتونه دادهها رو با سرعت بالا جستجو کنه. در حالی که Web Storage ها برای ذخیرهسازی مقادیر کم دادهها مفیده، اما برای ذخیرهسازی دادههای حجیم و ساختاریافته چندان کارایی نداره. اینجاست که IndexedDB به کمک میاد.
🔸پایگاه داده IndexedDB یه پایگاه داده شیءگرا و مبتنی بر جاوااسکریپته. IndexedDB بهت اجازه میده اشیائی رو ذخیره و بازیابی کنی که با کلید ایندکس شدن؛ هر شیئی که توسط الگوریتم تکثیر ساختار یافته پشتیبانی بشه رو میتونی ذخیره کنی.
🔸ویژگی ها و مزایاIndexedDB
1 - ذخیرهسازی آفلاین💾🚫
به کاربران امکان میدهد بدون اتصال به اینترنت به دادههای خود دسترسی داشته باشند.
2 - ذخیرهسازی دادههای بزرگ💾📡
برخلاف LocalStorage و SessionStorage که ظرفیت محدودی دارند، IndexedDB میتواند حجم بزرگی از دادهها را مدیریت کند.
3 - ذخیرهسازی دادههای پیچیده💾💪
قادر است اشیاء جاوااسکریپت، آرایهها، رشتهها، اعداد و دیگر انواع دادهها را ذخیره کند.
4 - پایگاه داده NoSQL
این بدان معناست که از سیستم جداول رابطهای استفاده نمیکند و بیشتر شبیه به پایگاه دادههای NoSQL است.
🔸مثال ساده از کار با IndexedDB در جاوااسکریپت :
// باز کردن یا ایجاد یک پایگاه داده به نام "myDatabase" با نسخه 1
let request = indexedDB.open("myDatabase", 1);
// رویداد onupgradeneeded برای زمانی که نیاز به ایجاد یا بهروزرسانی پایگاه داده داریم
request.onupgradeneeded = function(event) {
let db = event.target.result;
// ایجاد یک Object Store جدید به نام "myObjectStore" با کلید اصلی "id"
let objectStore = db.createObjectStore("myObjectStore", { keyPath: "id" });
// ایجاد ایندکس بر اساس فیلد "name" که منحصر به فرد نیست
objectStore.createIndex("name", "name", { unique: false });
// ایجاد ایندکس بر اساس فیلد "email" که منحصر به فرد است
objectStore.createIndex("email", "email", { unique: true });
};
// رویداد onsuccess برای زمانی که ارتباط با پایگاه داده با موفقیت برقرار شد
request.onsuccess = function(event) {
let db = event.target.result;
// شروع یک تراکنش برای خواندن و نوشتن روی "myObjectStore"
let transaction = db.transaction(["myObjectStore"], "readwrite");
// دریافت Object Store
let objectStore = transaction.objectStore("myObjectStore");
// اضافه کردن دادهها به Object Store
let addRequest = objectStore.add({ id: 1, name: "John Doe", email: "john@example.com" });
// رویداد onsuccess برای زمانی که داده با موفقیت اضافه شد
addRequest.onsuccess = function(event) {
console.log("دادهها با موفقیت به پایگاه داده اضافه شدند!");
};
// رویداد onerror برای زمانی که اضافه کردن دادهها با خطا مواجه شد
addRequest.onerror = function(event) {
console.log("خطا در اضافه کردن داده: ", event.target.error);
};
};
// رویداد onerror برای زمانی که ارتباط با پایگاه داده با خطا مواجه شد
request.onerror = function(event) {
console.log("خطا در باز کردن پایگاه داده: ", event.target.error);
};
🔸برای استفاده از indexedDB کتابخونه های زیادی وجود داره که میتونه پیچیدگی استفاده از این پایگاه داده رو برای کاربرد های کوچک برطرف کنه مثل Dexie.org , PouchDB , JsStore
🔴</CodeHub>
👾3👍1🆒1
بهترین متد ها برای توسعه دهندگان Node.js>
نود جیاس (Node.js) یک ابزار قدرتمند برای ساخت برنامههای وب مقیاسپذیر و سریع است. با این حال، برای استفاده حداکثری از Node.js، پیروی از بهترین شیوهها مهم است. در این مطلب، برخی از بهترین شیوههای کلیدی برای توسعه نرم افزارهای Node.js بصورت خلاصه بررسی شده است:
لینک مطلب
🔴<CodeHub/>
نود جیاس (Node.js) یک ابزار قدرتمند برای ساخت برنامههای وب مقیاسپذیر و سریع است. با این حال، برای استفاده حداکثری از Node.js، پیروی از بهترین شیوهها مهم است. در این مطلب، برخی از بهترین شیوههای کلیدی برای توسعه نرم افزارهای Node.js بصورت خلاصه بررسی شده است:
لینک مطلب
🔴<CodeHub/>
💯5
#HTML
🔸قابلیت Dialog داخل html که میتونه خیلی به کارایی و پرفورمنس سایت کمک کنه و میتونه باعث کم شدن کد های زیاد جاوا اسکریپت برای درست کردن همچین بخشی بشه.
🔸 تو این مقاله میتونن بیشتر راجب بهش بدونید.
🔗 https://developer.mozilla.org
🔴 <CodeHub/>
🔸قابلیت Dialog داخل html که میتونه خیلی به کارایی و پرفورمنس سایت کمک کنه و میتونه باعث کم شدن کد های زیاد جاوا اسکریپت برای درست کردن همچین بخشی بشه.
🔸 تو این مقاله میتونن بیشتر راجب بهش بدونید.
🔗 https://developer.mozilla.org
🔴 <CodeHub/>
⚡3🤓1👾1
CodeHub
🚨 بحران جهانی: از کار افتادن کامپیوترهای ویندوزی دیروز یک مشکل گسترده باعث شده تا کامپیوترهای ویندوزی در سراسر جهان دچار اختلال شوند. نکته مهم این است که این مشکل ناشی از نقص در ویندوز یا مایکروسافت نیست، بلکه به دلیل یک اشکال در محصول Falcon شرکت Crowdstrike…
شرکت CrowdStrike بالاخره درباره اتفاق 19 جولای و از کار افتادن 8.5 میلیون کامپیوتر و سرور ویندوزی توضیحات منتشر کرد. جالب اینجاست که مشکل به طرز عجیبی ساده بوده!
فکر کنید که Falcon برای شناسایی تهدیدات 20 سنسور داشت. ولی هنگام افزودن یک سنسور جدید و بهروزرسانی تمپلیت، هسته دادهها همچنان روی همان 20 سنسور قبلی کار میکرد! یعنی بخشی از کد سعی میکرد به المان 21ام که اصلاً وجود نداشت، دسترسی پیدا کند و این باعث شد که سیستم دچار خطای out-of-bounds بشود. از آنجا که این خطا در سطح کرنل ویندوز پیش آمده بود، سیستم کرش کرده و بلو اسکرین نمایش داد. به نظر میرسد که تست کافی برای تعداد سنسورها انجام نشده بود.
درنتیجه، یک آرایه کوچک که یک المان کمتر داشت، باعث بروز مشکلی بزرگ در سطح جهانی شد! این نشان میدهد که همان جزئیات ریز و به ظاهر بیاهمیت در اصول کدنویسی چگونه میتوانند تأثیر عظیمی داشته باشند.
🔗لینک فایل RCA
با تحلیل این مشکل میتوان دریافت که موارد ظاهراً جزئی در عملکرد سیستمهای پیچیده چقدر میتوانند حیاتی باشند. این نمونه خوبی از اهمیت دقت و تست کامل در فرآیند توسعه نرمافزار است.
🔴</CodeHub>
فکر کنید که Falcon برای شناسایی تهدیدات 20 سنسور داشت. ولی هنگام افزودن یک سنسور جدید و بهروزرسانی تمپلیت، هسته دادهها همچنان روی همان 20 سنسور قبلی کار میکرد! یعنی بخشی از کد سعی میکرد به المان 21ام که اصلاً وجود نداشت، دسترسی پیدا کند و این باعث شد که سیستم دچار خطای out-of-bounds بشود. از آنجا که این خطا در سطح کرنل ویندوز پیش آمده بود، سیستم کرش کرده و بلو اسکرین نمایش داد. به نظر میرسد که تست کافی برای تعداد سنسورها انجام نشده بود.
درنتیجه، یک آرایه کوچک که یک المان کمتر داشت، باعث بروز مشکلی بزرگ در سطح جهانی شد! این نشان میدهد که همان جزئیات ریز و به ظاهر بیاهمیت در اصول کدنویسی چگونه میتوانند تأثیر عظیمی داشته باشند.
🔗لینک فایل RCA
با تحلیل این مشکل میتوان دریافت که موارد ظاهراً جزئی در عملکرد سیستمهای پیچیده چقدر میتوانند حیاتی باشند. این نمونه خوبی از اهمیت دقت و تست کامل در فرآیند توسعه نرمافزار است.
🔴</CodeHub>
💯3🤣2👀1
This media is not supported in your browser
VIEW IN TELEGRAM
#جاوا_اسکریپت
این ویدیو رو دیدم و بنظر ابزار جالبیه برای دیباگ کردن کد ها به خصوص برای Event ها که بعضا دیباگ کردنشون میتونه مشکل و سخت باشه.
🔴<CodeHub/>
این ویدیو رو دیدم و بنظر ابزار جالبیه برای دیباگ کردن کد ها به خصوص برای Event ها که بعضا دیباگ کردنشون میتونه مشکل و سخت باشه.
🔴<CodeHub/>
🔥3⚡2
𝗖𝗢𝗢𝗟𝗬 𝗖𝗢𝗗𝗘 | کولی کد
#fun موقعیت : هر بار که میرم ببینم کی این باگو ساخته Channel | YouTube | Instagram
دقیقا خود منم وقتی شنبه برای اولین دوباره میرم پای کد هایی که هفته قبل زده بودم😂💔
💔3
این پکیج واقعا محشره , بیشتر مشکلاتی که سایت های ایرانی باهاشون درگیرند رو پوشش داده و داکیومنت ساده و خوبی هم داره.
🔗https://www.npmjs.com
🔴 <CodeHub/>
🔗https://www.npmjs.com
🔴 <CodeHub/>
❤3
Forwarded from 𝗖𝗢𝗢𝗟𝗬 𝗖𝗢𝗗𝗘 | کولی کد (Mohammad hossein)
#javascript #object #reference_values #primitive #article
هیچ چیزی بهتر از این عکس نمیتونست فرق بین Primitive و Reference Values رو بهم نشون بده 😂
البته اینا شوخیه، اگر خواستید تفاوت این دوتا رو بهتر بدونید پیشنهاد میکنم این مقاله رو مطالعه کنید، چون هم فارسیه و هم مختصر و مفید توضیح داده ⚡
پ.ن : اگر با زبان برنامه نویسی جاوااسکریپت کار میکنید یکی از مباحث مهمی که حتما باید بدونید primitive و refrence value هستش 👌
𝗖𝗢𝗢𝗟𝗬 𝗖𝗢𝗗𝗘 | کولی کد
#javascript #object #reference_values #primitive #article هیچ چیزی بهتر از این عکس نمیتونست فرق بین Primitive و Reference Values رو بهم نشون بده 😂 البته اینا شوخیه، اگر خواستید تفاوت این دوتا رو بهتر بدونید پیشنهاد میکنم این مقاله رو مطالعه کنید، چون هم…
حتی از زبان های برنامه نویسی هم میشه درس زندگی رو آموخت.
هر کسی در جای خودش ارزشمند و مهمه ❤️
هر کسی در جای خودش ارزشمند و مهمه ❤️