CodeHub
226 subscribers
141 photos
14 videos
2 files
162 links
آیا علاقه‌مند به خلق دنیایی بهتر هستی؟

برنامه نویسی کلید خلاقیت بی‌حد و حصر است🚀⚡️

🧑‍💻 @farzinhamzehi
Download Telegram
🔸 یکی از مشکلاتی که اکثر برنامه نویس های تازه کار فرانت اند برای نمونه کار باهاش مواجه ان اینه که نمی تونن یه API رایگان و خوب پیدا کنن که بتونن نمونه کار های خودشون رو راه بندازن.

🔸 این وبسایت API های رایگان و فارسی با دسته بندی های مختلفی در اختیارتون میذاره که پیشنهاد میشه حتما ازش استفاده کنید.

🔸 همچنین این ابزار رو هم داره که می تونن api هارو باهاش تست بکنید یه چیزی شبیه POSTMAN

🔗 iransweb.com

🔴<CodeHub/>
👍5🔥1
This media is not supported in your browser
VIEW IN TELEGRAM
تلگرام مثل شرکت‌های بزرگ دیگه نیست که همه روش‌های مدیریتش رو تبلیغ کنه و از خودش داستان‌های زیبا بسازه. اما یه تیم کوچک و کاردرست پشتشه! فقط ۳۰ نفر کل تلگرام رو مدیریت می‌کنن! باور نکردنیه.
پاول دورف واقعاً فوق‌العاده است.

🔴<CodeHub/>
🔥61🤯1
با اختلاف سخت ترین بخش کار: وقتی میخوای کامیت مسیج خفن بزنی😂

🔴<CodeHub/>
😁4🤣3🆒1
#جاوا_اسکریپت

🔸شکی نیست که console.log یکی از بهترین روش های دیباگ کردن هستش ولی در برخی موارد میتونیم از روش های دیگه هم استفاده کنیم تا فرایند دیباگ کردن رو بهبود ببخشه.

🔸 توی این مقاله با جزئیات بیشتر به این مورد پرداخته که میتونه مفید باشه.

📄برای دیدن مقاله کلیک کنید

🔴 <CodeHub/>
👍1
🔸 در برنامه‌نویسی مفاهیم Truthy , Falsy، به ارزیابی صحیح و غلط مقادیر اشاره دارند. به عبارتی، آیا مقدار داده شده به عنوان true یا false در نظر گرفته می‌شود.

✔️Truthy

در اکثر زبان‌های برنامه‌نویسی، بیشتر مقادیر truthy هستند مگر اینکه به صراحت "falsy" تعریف شده باشند.
🔺 عدد غیر صغر
🔺رشته های غیر خالی
🔺لیست‌ها، دیکشنری‌ها و مجموعه‌های غیر خالی
🔺اشیاء

✔️ Falsy

مقدارهایی که در یک زمینه بولی به عنوان false ارزیابی می‌شوند، "falsy" نامیده می‌شوند. این مقادیر شامل موارد خاصی هستند که به طور پیش‌فرض به عنوان false در نظر گرفته می‌شوند.

🔺عدد صفر
🔺رشته خالی ""
🔺لیست خالی ([])، دیکشنری خالی ({})، مجموعه خالی (set())
🔺مقدار False
🔺مقدار NaN

🔸 در کل این مفاهیم در زبان های مختلف می تواند با هم فرق داشته باشد پس understanding truthy and falsy values در زبان‌های مختلف برنامه‌نویسی مهم است.

🔴 <CodeHub/>
👍3🔥1
تا حالا اسم Shadc/UI رو شنیدین :
یک کتابخونه‌ی رابط کاربری برای برنامه‌نویسی وبه که توسط فردی به نام "Shadcn" توسعه داده شده و این کتابخونه مجموعه ای از کامپوننت ها و ابزارهای آماده را فراهم می‌کنه که به توسعه‌دهندگان وب کمک می کنه تا سریع‌تر و با کیفیت بالاتر رابط‌های کاربری مدرن و واکنش‌گرا ایجاد کنند.

ویژگی‌های اصلی shadcn/UI عبارتند از:

کامپوننت‌های آماده , سفارشی‌سازی , مستندات کامل , یکپارچگی با فریم‌ورک‌های مختلف , واکنش‌گرا بودن

استفاده از چنین کتابخانه‌ای می‌تونه فرایند توسعه‌ی رابط کاربری وب را سریع‌تر و کارآمدتر کنه، چون که بسیاری از عناصر پرکاربرد و رایج از قبل طراحی شده و آماده استفاده هستند.

🔴 <CodeHub/>
3🔥1
شورتکات های نماد ها و سمبل های رایج که میتونید ازشون استفاده کنید.

🔴 <CodeHub/>
💯2🔥1
برنامه‌نویسی: کپی-پیست یا خلاقیت؟

یه نفر می‌گه: «برنامه‌نویسی که همش کپی پیسته!»
برنامه‌نویس باهوش: «آره، اگه هنوز فانکشنا رو نخونده باشی!» 😎

به این فکر نکنید که با کپی پیست کردن یه تیکه کد تو 20 جا، کار تموم شده! نه‌تنها کدتون تمیز نمی‌شه، بلکه تو دام Code Duplication افتادید. حتی اگه کد رو 2 جا کپی کنید، همون مشکل رو دارید.

حقیقت اینه که در هر برنامه‌ای که می‌نویسید، بخش‌هایی وجود داره که منطق یا ساختار تکرار می‌شه. ممکنه جزئیات فرق کنه، ولی اگر کلی نگاه کنید، کد همونه.

برنامه‌نویس مبتدی ممکنه فکر کنه چون مقدارهای مختلف در جاهای مختلف فرق می‌کنن، نیازی به نوشتن فانکشن یا کامپوننت نداره. به قول معروف، می‌گه: «ولللشش!» 😅

اما یک برنامه‌نویس حرفه‌ای تمام تلاششو می‌کنه تا از دلِ کپی-پیست‌ها یه فانکشن یا کامپوننت بسازه. اینطوری هم خوانایی کد رو بالا می‌بره و هم اگر روزی بخواد منطق کد رو تغییر بده، مجبور نمی‌شه از 20 جا تغییرش بده!

این دیدگاه هم در فرانت و هم بک‌اند پروژه باید وجود داشته باشه، ولی در فرانت‌اند، کامپوننت‌ها بیشترین مسئولیت رو به عهده دارن. فریمورک‌هایی مثل React، Vue، Angular و… کار رو راحت‌تر کردن، ولی باز هم خطر Code Duplication زیاد هست!

پیشنهاد من به شما اینه که هر وقت به فکر کپی-پیست افتادید، ببینید می‌تونید اون رو به کامپوننت تبدیل کنید (تنبلی نکنید!) و اگر حتی 1% هم فکر می‌کنید امکان‌پذیره، این کارو انجام بدید. همچنین، اگر از نرم‌افزارهای JetBrains استفاده کنید، هر وقت کدی که کپی-پیست کردید وجود داشته باشه، بهتون هشدار می‌ده و تا وقتی که اون رو داخل یه فانکشن نذارید، وجدانتون به درد میاد! 😉

پ.ن. حتی اگر این کدهای کپی-پیست شده در بخش‌های مختلف پروژه متفاوت باشن (ولی به هر حال کپی شده‌ی همدیگن)، در 90% مواقع می‌تونید با استفاده از پارامترها و متغیرها و یا ویژگی به اسم Function Overloading مشکل رو حل کنید.

🔴 <CodeHub/>
👍4🔥2💯1
#جاوااسکریپت

سایت جالبی که ساعت رو روی سورس کد خودش نشون میده🤯!!

هرچی بیشتر به این نوع وبسایت ها نگاه میکنم بیشتر میفهمم که از جاوا اسکریپت هیچی نمفهمم.

🔗 https://aem1k.com/qlock/

🔴 <CodeHub/>
👍3🔥3
نکات مهم و کاربردی تایپ اسکریپت توی یک صفحه

🔴 <CodeHub\>
3👍1
ظاهرا که پلتفرم دیسکورد که چند ماه قبل فیلتر شده بود الان رفع فیلتر شده!!

🔴 <CodeHub/>
🤩3
نظرتون چیه که از این به بعد هر چند وقت یکبار یک سری فایل های فیگما بزاریم که بتونه کمکی به کسایی که تازه حوزه وب اومدن بکنه؟
Anonymous Poll
90%
اره
10%
نه
امروز داشتم روی پروژه ای کار می کردم که باید خیلی زود به مرحله لانچ برسه به همین دلیل از کامپوننت های آماده استفاده کردم و خلاصه بگم این هرچی از کارایی و خوب بودن و headless UI و مچ بودنش با tailwind بگم کم گفتم 🔥

🔴 <CodeHub/>
🔥1
نو کپشن.



🔴 <CodeHub/>
🤣5
پنج ویژگی مهم که کد حرفه‌ای شما باید داشته باشد :

۱. استقلال از فریم‌ورک 🏗
- معماری کد شما نباید به یک فریم‌ورک خاص وابسته باشد.
- از فریم‌ورک‌ها به عنوان ابزار استفاده کنید، نه به عنوان محدودیت.

۲. قابلیت تست 🧪
- امکان تست 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/>
👍5
Audio
#Music

برنامه نویسی به شما این امکان را می‌دهد که به "فکر کردن" فکر کنید و در حین اشکال زدایی (Debug)، "یاد گرفتن" را یاد بگیرید.

نیکلاس نگروپونته


🔵 <CodeHub/>
4
#Figma_Template

Figma Template: Restaurant

Difficulty : ⭐️⭐️

🔗Click for Get Link

🔴</CodeHub>
4
پایگاه داده indexedDB چیه ؟

🔸ایندکسد دی‌بی (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/>
💯5
#fun

بالاترین درجه مدرک: اونایی که می‌دونن چجوری div رو وسط صفحه بذارن!

🔴 <CodeHub/>
😁81