Dev Perfects
40 subscribers
9.23K photos
1.26K videos
468 files
13K links
بخوام خیلی خلاصه بگم
این کانال میاد مطالب کانالای خفن تو حوزه تکنولوژی و برنامه نویسی رو جمع میکنه

پست پین رو بخونید
https://t.iss.one/dev_perfects/455


ارتباط:
https://t.iss.one/HidenChat_Bot?start=936082426
Download Telegram
💎معرفی دیتابیس MongoDB 💎

دیتابیس MongoDB یکی از محبوب‌ترین دیتابیس‌های NoSQL تو دنیای امروزه.

به‌ جای این‌که مثل دیتابیس‌های رابطه‌ای (مثل MySQL یا PostgreSQL) از جداول و ردیف‌ها استفاده کنه، اطلاعات رو به شکل Document ذخیره می‌کنه که ساختارش خیلی شبیه به JSON هست.

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

حالا چرا MongoDB انقدر محبوبه؟

1⃣  انعطاف‌پذیری بالا :
توی MongoDB، نیازی نیست برای همه رکوردها یک ساختار ثابت داشته باشی.
مثلاً توی یه دیتابیس سنتی اگه یک فیلد جدید اضافه کنی باید اون فیلد رو به همه رکوردها اضافه کنی.
اما توی Mongo، هر Document می‌تونه فیلدهای خاص خودش رو داشته باشه. یعنی اگه توی یک داکویمنت مثلاً فیلد "address" داشته باشی و توی داکیومنت دیگه نداشته باشی، هیچ مشکلی پیش نمیاد.

مثال:
{
  "name": "Ali",
  "age": 25,
  "email": "[email protected]"
}

{
  "name": "Sara",
  "age": 30
}

2⃣ مقیاس‌پذیری بالا
اگه یه پروژه خیلی بزرگ داشته باشی که نیاز به مقیاس‌پذیری بالا داره (مثلاً یه فروشگاه اینترنتی با میلیون‌ها کاربر)، MongoDB می‌تونه راحت با افزایش حجم داده‌ها سازگار بشه. Sharding توی Mongo بهت کمک می‌کنه که دیتابیس رو روی چندین سرور تقسیم کنی و عملکرد رو بالا ببری.

3⃣ سرعت بالا در خوندن و نوشتن داده‌ها
چون MongoDB داکیومنت ها رو به صورت ساده و با ساختار JSON-گونه ذخیره می‌کنه، خوندن و نوشتن داده‌ها خیلی سریع‌تر از بعضی دیتابیس‌های سنتی انجام می‌شه. این ویژگی به خصوص برای اپلیکیشن‌هایی که داده‌های زیاد و پویا دارن خیلی مفیده.

4⃣ مناسب برای داده‌های پیچیده و پویا
تو برنامه‌هایی که داده‌هاشون خیلی سریع تغییر می‌کنه و یا نوع داده‌ها ممکنه پیچیده باشه (مثل پروژه‌های اینترنت اشیا، شبکه‌های اجتماعی یا اپلیکیشن‌های موبایل)، MongoDB انتخاب بهتریه. چون لازم نیست هر دفعه که ساختار دادت عوض می‌شه، کل دیتابیس رو دوباره طراحی کنی.


حالا MongoDB چطور کار می‌کنه؟🤔

داده‌ها توی MongoDB به شکل مجموعه‌ای از اسناد ذخیره می‌شن. هر سند مثل یک فایل JSON عمل می‌کنه. برای کار با Mongo، نیازی نیست اول دیتابیس و جداول رو مثل سیستم‌های رابطه‌ای تعریف کنی. هر وقت داکیومنتی رو به Mongo اضافه کنی، خودش به صورت خودکار دیتابیس و کالکشن‌ها (معادل جدول توی دیتابیس‌های رابطه‌ای) رو ایجاد می‌کنه.

مثال از یک داکویمنت در MongoDB:

{
  "_id": "60c72b2f9b1e8e0015cfd31a",
  "name": "Product1",
  "price": 100,
  "catego_idlectronics"
}

این داکیومنت شامل یه _id یکتا است که MongoDB خودش به طور خودکار تولید می‌کنه

چرا MongoDB؟

1⃣ انعطاف‌پذیری توی ساختار داده (Schema less)

2⃣ مقیاس پذیری:
مناسب برای پروژه‌های بزرگ

3⃣ سرعت بالا:
سادگی استفاده و خواندن داده‌های حجیم

4⃣ سادگی استفاده:
راحت و بدون درد

جمع بندی 🎯
فهمیدیمMongoDB انتخاب خوبیه برای وقتی که پروژه‌ت نیاز به تغییرات سریع داره، داده‌ها ساختار پیچیده‌ای دارن، یا حجم بالایی از داده‌ها رو باید ذخیره کنی. به همین خاطر کمپانی های بزرگ مثل Uber ،Lyft، eBay از MongoDB استفاده می‌کنن.

امیدوارم مفید بود باشه :)

#mongodb #db #nosql


@ninja_learn_ir
📌 استفاده از MongoDB توی جنگو

چون جنگو به‌صورت پیش‌فرض با دیتابیس‌های رابطه‌ای (مثل SQLite، PostgreSQL و MySQL) کار می‌کنه، باید از پکیج‌هایی استفاده کنیم که جنگو رو با MongoDB هماهنگ کنن. یکی از بهترین راه‌ها استفاده از djongo یا Django MongoDB Engine هست.

استفاده از MongoDB توی Django:

1⃣ نصب MongoDB و Djongo

اول از همه باید MongoDB روی سیستمت نصب باشه. اگه هنوز نصب نکردی، می‌تونی از سایت رسمی
استفاده کنی.

بعد از اون، باید پکیج djongo رو نصب کنی تا جنگو بتونه با MongoDB کار کنه. برای نصبش این دستور رو توی ترمینال اجرا کن:
pip install djongo

2⃣ تنظیمات جنگو برای استفاده از MongoDB

حالا باید تنظیمات پایگاه داده رو توی فایل settings.py پروژه جنگو تغییر بدی. توی بخش DATABASES، بجای تنظیمات دیتابیس پیش‌فرض، این رو وارد کن:
DATABASES = {
    'default': {
        'ENGINE': 'djongo',
        'NAME': 'mydatabase',  # نام دیتابیس مورد نظر
    }
}

به همین راحتی جنگو رو با MongoDB هماهنگ کردیم. دقت کن که اگه اسم دیتابیس رو وارد نکنیم، MongoDB خودش به‌صورت خودکار یه دیتابیس با همون اسم پروژه می‌سازه.

3⃣ استفاده از مدل‌ها (Models)
بعد از تنظیمات دیتابیس، دیگه مثل همیشه می‌تونی از مدل‌های جنگو استفاده کنی. جنگو با استفاده از ORM خودش مستقیماً به MongoDB متصل می‌شه. مثلاً فرض کن می‌خوای یه مدل ساده برای محصولات تعریف کنی:
from django.db import models

class Product(models.Model):
    name = models.CharField(max_length=100)
    price = models.FloatField()
    description = models.TextField()

    def str(self):
        return self.name

این مدل رو مثل هر مدل دیگه‌ای می‌تونی با دستورات معمول migrate و makemigrations به دیتابیس MongoDB بفرستی:

python manage.py makemigrations
python manage.py migrate

4⃣ مدیریت داده‌ها

بعد از این‌که مدل‌ها رو ساختی و دیتابیس آماده شد، مثل همیشه می‌تونی از ادمین پنل جنگو، یا خود کد برای ایجاد و مدیریت داده‌ها استفاده کنی. برای ایجاد داده:
from .models import Product

product = Product(name="Phone", price=500, description="Smartphone with 4GB RAM")
product.save()

5⃣ استفاده از Robo 3T برای مدیریت MongoDB

برای مدیریت بهتر دیتابیس MongoDB، می‌تونی از ابزارهایی مثل Robo 3T استفاده کنی که یه رابط گرافیکی داره و کار با MongoDB رو راحت‌تر می‌کنه.
📌  استفاده از MongoDB در Node.js

بهترین و رایج‌ترین راه استفاده از کتابخونه Mongoose هست که به عنوان یک ORM (Object-Relational Mapping) برای MongoDB عمل می‌کنه و کار با داده‌ها رو خیلی ساده‌تر می‌کنه.

استفاده از MongoDB توی Node.js:

1⃣ نصب MongoDB و Mongoose

اول از همه باید MongoDB روی سیستمت نصب باشه. اگه نصب نیست، می‌تونی از سایت رسمی
استفاده کنی. یا از نسخه ابری MongoDB Atlas هم می‌تونی استفاده کنی.

بعد از اون باید Mongoose رو توی پروژه‌ات نصب کنی. برای این کار، این دستور رو توی ترمینال پروژه‌ت اجرا کن:
npm install mongoose

2⃣ اتصال به MongoDB

حالا که Mongoose نصب شد، می‌تونی ازش استفاده کنی تا به دیتابیس MongoDB متصل بشی. یه فایل app.js ایجاد کن و کد زیر رو توش بنویس:
const mongoose = require('mongoose');

// اتصال به MongoDB
mongoose.connect('mongodb://localhost:27017/mydatabase', {
  useNewUrlParser: true,
  useUnifiedTopology: true
}).then(() => {
  console.log('Connected to MongoDB');
}).catch((err) => {
  console.error('Error connecting to MongoDB:', err);
});

این کد به دیتابیس محلی MongoDB وصل می‌شه (البته به جای mydatabase اسم دیتابیسی که می‌خوای رو بزار).

3⃣ تعریف مدل‌ها (Schemas)

بعد از اتصال، می‌تونی از Mongoose برای تعریف مدل‌ها استفاده کنی. مثلاً فرض کن می‌خوای یه مدل برای محصولات داشته باشی. اول یه فایل جدید به اسم models/product.js بساز و کد زیر رو توش بنویس:
const mongoose = require('mongoose');

// تعریف اسکیمای محصول
const productSchema = new mongoose.Schema({
  name: { type: String, required: true },
  price: { type: Number, required: true },
  description: String,
  stock: { type: Number, default: 0 }
});

// ساخت مدل محصول از روی اسکیمای تعریف‌شده
const Product = mongoose.model('Product', productSchema);

module.exports = Product;

توی اینجا یک Schema تعریف کردیم که شامل نام، قیمت، توضیحات و موجودی محصول هست.

4⃣ اضافه کردن داده به MongoDB

حالا که مدل محصول رو تعریف کردی، می‌تونی داده‌هایی رو به دیتابیس اضافه کنی. توی فایل app.js کدی مثل این رو اضافه کن:

const Product = require('./models/product');

// ایجاد و ذخیره یک محصول جدید
const newProduct = new Product({
  name: 'Phone',
  price: 500,
  description: 'Smartphone with 4GB RAM',
  stock: 10
});

newProduct.save().then(() => {
  console.log('Product saved successfully');
}).catch((err) => {
  console.error('Error saving product:', err);
});

با اجرای این کد، یه محصول جدید به دیتابیس MongoDB اضافه می‌شه.

5⃣ خواندن داده‌ها از MongoDB

برای خواندن داده‌ها از دیتابیس هم می‌تونی از این کد استفاده کنی:
Product.find().then((products) => {
  console.log(products);
}).catch((err) => {
  console.error('Error fetching products:', err);
});

این کد همه محصولات موجود توی دیتابیس رو برمی‌گردونه و نمایش می‌ده.

🆕 آپدیت و حذف داده‌ها

برای آپدیت یک محصول:
Product.findByIdAndUpdate(productId, { price: 600 }).then(() => {
  console.log('Product updated successfully');
}).catch((err) => {
  console.error('Error updating product:', err);
});

و برای حذف یک محصول:
Product.findByIdAndDelete(productId).then(() => {
console.log('Product deleted successfully');
}).catch((err) => {
console.error('Error deleting product:', err);
});
Forwarded from code2 - تکنولوژی و فناوری (Mahdi Taleghani)
شبکه عصبی در مقابل شبکه غیر عصبی


😁

کانال کد۲

@code2_ir
Forwarded from Yasha
If you are interested in this feature, you can upvote me.

🔗 github.com/vuejs/rfcs/discussions/710

@Yasha
Forwarded from CleverDevs (CleverDevs Ads)
🌐 یک زبان برنامه‌نویسی همه‌کاره و پردرآمد:

💻 از ساخت اپلیکشن تا برنامه‌نویسی بک-اند وب‌سایت‌ها، از اینترنت اشیاء تا وب اپ‌ها همه با Asp.Net ممکنه!

🟣 در دومین بوت‌کمپ Asp.Net دانشکار اصولی این زبان رو یادبگیر و استخدام شو.

ثبت‌نام
👇👇
🔗 https://dnkr.ir/kKzxN
Forwarded from 🎄 یک برنامه نویس تنبل (The Lazy Raymond)
🔶 پیش نمایش قالب پاندا

#وردپرس

@TheRaymondDev
Forwarded from 🎄 یک برنامه نویس تنبل (The Lazy Raymond)
Forwarded from 🎄 یک برنامه نویس تنبل (The Lazy Raymond)
Forwarded from 🎄 یک برنامه نویس تنبل (The Lazy Raymond)
Forwarded from ASafaeirad
They've already added stage 2.7 to the TC39 Process.

https://tc39.es/process-document/

#news #ecmascript
Forwarded from Yasha
تامنیل عاااالیه =)))

@Yasha
یه بار دیگه جا داره پروژه Kickstart رو معرفی کنم.
اگه میخواید کانفیگ های neovimتون رو مرتب کنید یا از پلاگین منیجر lazy استفاده کنید یا حتی از vim به neovim سوییچ کنید، این پروژه که maintainerش آدم مطرحیه در حوزه neovim، نقطه شروع خیلی خوبیه.

یه چیزی تو مایه های همین رو دیدم یه شرکتی به اسم bettervim به قیمت گزاف می‌فروخت! وقتی رایگان و آزادش هست حداقل آشنا باشیم باهاش.

https://github.com/nvim-lua/kickstart.nvim
Forwarded from  (Amir Hossein "Amiria" Maher)
Forwarded from  (Amir Hossein "Amiria" Maher)
Forwarded from Yasha
تلگرامم رسما شده لینکدین، امروز ۸۰-۱۰۰ تا پیام گرفته بودم از اینور و اونور همشم کاری. چمیدونم برنامه نویسی رو از کجا شروع کنیم، چرا اسکریپت ماجور کار نمی‌کنه، چرا نات‌پیکسل رو واسم وصل نمی‌کنی...
Forwarded from 🎄 یک برنامه نویس تنبل (The Lazy Raymond)
پارسال آذر ماه این سیستم دوم خریدیم.
🔶 با حدود 60 میلیون تومان چه سیستمی می توان خرید؟

MB GIGABYTE B760M GAMEING | 6.800,000 T

CPU INTEL I5 13400 TRY | 9,300,000 T

RAM CORSAIR 32 GB 5200 RGB DDR5 | 5,650,000 T

VGA GIGABYTE RTX 4060TI GAMEING OC 8G | 18,300,000 T

SSD AORUS 1TB GEN4 M.2 | 4,000,000 T

POWER THERMALTAKE 750W | 3,800,000 T

COOLING THERMALTAKE UX200 | 1,700,000 T

CASE DEEPCOOL MATREXX | 3,850,000 T

MONITOR ASUS VA27EHF | 8,500,000 T

جمع کل میشه 61,900,000 تومان است.
بدون مانیتور باشد, می توانید با همین هزینه 8,500,000 قطعه دیگر را ارتقا دهید.
قیمت این سیستم در 1 ام یا 2 ام آذر ماه 1402 است.
اگر قیمت دلار ثابت باشد, همین رنج می توانید سیستم قدرتمندی جمع کنید و غیر از این با همین رنج قیمت ممکن است سیستم اقتصادی جمع کنید.

@TheRaymondDev
Forwarded from Anophel | آنوفل
💠امروز میخوام یک ابزار جدید معرفی کنم به اسم Neu.js.

این یک کتابخانه جاوا اسکریپت سبک و اوپن سورس است که برای توسعه ساده فرانت اند طراحی شده است که بر سهولت استفاده و حداقل کد تأکید دارد.


🔹خب Nue.js به عنوان یک ابزار جدید در حوزه توسعه فرانت اند ظاهر شده است که رویکردی حداقلی برای ساخت اینترفیس های وب ارائه می دهد. البته این به دلیل ماهیت سبک خود متمایز است‌.

🔹زمانی که فشرده می شود تنها 2.3kb حجم دارد و نسبت به فریمورک های مثل Vue.js، React.js یا Svelte آبستکرشن با همون انتزاعات کمتری دارد. این کتابخانه بر طراحی وب بهبود معنایی و پیشرونده تمرکز دارد و برای توسعه دهندگان UI که طراحی تعامل، دسترسی و تجربه کاربر را در اولویت قرار می دهند، هدف قرار گرفته است.

🔹همچنین Nue.js بخشی از یک اکوسیستم پیش‌بینی‌شده است که شامل پروژه‌های آینده مانند Nue CSS، Nue MVC، Nue UI، Nuemark و Nuekit است که هدف آن ارائه یک جایگزین جامع برای راه‌حل‌های موجود مانند Vite، Next.js و Astro است.

🔹سادگی این فریمورک به توسعه دهندگان اجازه می دهد تا به میزان قابل توجهی کد کمتری بنویسند و شامل ویژگی هایی برای توسعه آسان و یک زنجیره ابزار ساده برای SSR و تولید کامپوننت بدون نیاز به ابزارهای باندلر پیچیده است.

آنوفل | Anophel

#nuejs #frontend #js #javascript #جاوااسکریپت
Please open Telegram to view this post
VIEW IN TELEGRAM
‏در همین زمان و مکان مقدس بهم ثابت شد که من هیچ سررشته‌ای تو Frontend ندارم و اصلا ماله این صوبتا نیستم
دلیلش رو هم از جاوااسکریپت بپرسید:(((

<میگن حمیدشونم/>

@DevTwitter
Forwarded from Woland's Linux Journal (Woland)
Media is too big
VIEW IN TELEGRAM
💠نقشه‌ی جهان در ترمینال💠

telnet mapscii.me

👉🔗 Mapscii

#معرفی