اگر قصد ثبت نام در بوتکمپ رو داشتید هزینه دوره هایی که قبلا تهیه کردید از هزینه بوت کمپ کم خواهد✅
و برای این کار هم فردا ساعت ۸ شب به بعد از طریق اینستاگرام یا واتسپ میتونید پیام بدید.
و برای این کار هم فردا ساعت ۸ شب به بعد از طریق اینستاگرام یا واتسپ میتونید پیام بدید.
👍1
مقایسه سرعت بین SQL، NoSQL، و Key-Value Storage میتونه خیلی مهم باشه، چون هر کدوم برای سناریوهای خاصی بهینهسازی شدن. بیایید این رو به طور جزئیتر بررسی کنیم:
1️⃣. SQL Databases
▪︎ سرعت خواندن/نوشتن:
خواندن: سرعت خواندن دادهها در دیتابیسهای SQL بستگی به پیچیدگی پرسوجو (query)، تعداد جداول مرتبط، و ایندکسهایی که روی دادهها قرار دادی داره.
وقتی دادهها ایندکس بشن، سرعت خواندن میتونه خیلی خوب باشه. اما پرسوجوهای پیچیده و جداول بزرگ ممکنه سرعت رو کاهش بدن.
نوشتن: دیتابیس SQLی به دلیل پیروی از اصول ACID، ممکنه تو عملیات نوشتن کمی کندتر باشه، چون باید از یکپارچگی دادهها مطمئن بشه. همچنین، وقتی تعداد نوشتنها زیاد باشه یا نیاز به قفل کردن جداول باشه، سرعت نوشتن ممکنه پایین بیاد.
▪︎ عملکرد بهینه: وقتی نیاز به تراکنشهای پیچیده و یکپارچگی دادهها داری، SQL میتونه بهترین انتخاب باشه، حتی اگر کمی از سرعت کم کنه.
2️⃣. NoSQL Databases
سرعت خواندن/نوشتن:
خواندن: بسته به نوع دیتابیس NoSQLی، سرعت خواندن میتونه بسیار سریع باشه. به عنوان مثال، در دیتابیسهای Document-based مثل MongoDB، دسترسی به دادهها سریعتره چون معمولاً ساختار دادهها به صورت مسطح و سندی ذخیره میشه و نیاز به جداول مرتبط نیست.
نوشتن: به دلیل ساختار انعطافپذیر و عدم نیاز به رعایت دقیق اصول ACID، سرعت نوشتن در NoSQL بالاست. این پایگاه دادهها به گونهای طراحی شدن که بتونن حجم بزرگی از دادهها رو به سرعت پردازش کنن.
▪︎ عملکرد بهینه: وقتی حجم دادهها زیاده و نیاز داری که عملیات نوشتن و خواندن سریع انجام بشه (مثلاً در برنامههای real-time)، NoSQL بهترین انتخابه.
3️⃣. Key-Value Storage
▪︎ سرعت خواندن/نوشتن:
خواندن: دسترسی به دادهها در Key-Value Storage فوقالعاده سریعه چون دادهها بر اساس کلید ذخیره میشن و به سادگی میتونی مقدار مورد نظرت رو با استفاده از کلید پیدا کنی. این پایگاه دادهها برای دسترسیهای مکرر و فوری بهینهسازی شدن.
نوشتن: عملیات نوشتن هم به دلیل سادگی ساختار دادهها و عدم نیاز به پیچیدگیهای رابطهای خیلی سریع انجام میشه.
▪︎ عملکرد بهینه: وقتی نیاز به دسترسی بسیار سریع به دادهها داری (مثل کشینگ یا مدیریت session)، یه Key-Value Storage انتخابی عالیه.
جمعبندی در مورد سرعت:
• دیتابیس SQLی: سرعت خوبی داره ولی در پرسوجوهای پیچیده یا با نوشتن های زیاد ممکنه کند بشه.
• دیتابیس NoSQLی: سرعت بالاست و برای مقیاسپذیری و مدیریت دادههای بزرگ بهینه شده.
• دیتابیس Key-Valueی: سریعترین انتخاب برای عملیات ساده و دسترسی فوری به دادهها.
⚠️⚠️⚠️توجه⚠️⚠️⚠️
هر کدوم از این دیتابیسها بر اساس نیاز پروژه و نوع دادههایی که داری، میتونن بهترین عملکرد رو ارائه بدن.
اگر به عملکرد بسیار سریع نیاز داری و ساختار دادهها ساده است، Key-Value عالیه. ولی برای تراکنشهای پیچیده و یکپارچگی دادهها، SQL ممکنه کمی کندتر باشه اما قابل اطمینانتره.
کانال کدنایت :
https://t.me/codenight_ir
1️⃣. SQL Databases
▪︎ سرعت خواندن/نوشتن:
خواندن: سرعت خواندن دادهها در دیتابیسهای SQL بستگی به پیچیدگی پرسوجو (query)، تعداد جداول مرتبط، و ایندکسهایی که روی دادهها قرار دادی داره.
وقتی دادهها ایندکس بشن، سرعت خواندن میتونه خیلی خوب باشه. اما پرسوجوهای پیچیده و جداول بزرگ ممکنه سرعت رو کاهش بدن.
نوشتن: دیتابیس SQLی به دلیل پیروی از اصول ACID، ممکنه تو عملیات نوشتن کمی کندتر باشه، چون باید از یکپارچگی دادهها مطمئن بشه. همچنین، وقتی تعداد نوشتنها زیاد باشه یا نیاز به قفل کردن جداول باشه، سرعت نوشتن ممکنه پایین بیاد.
▪︎ عملکرد بهینه: وقتی نیاز به تراکنشهای پیچیده و یکپارچگی دادهها داری، SQL میتونه بهترین انتخاب باشه، حتی اگر کمی از سرعت کم کنه.
2️⃣. NoSQL Databases
سرعت خواندن/نوشتن:
خواندن: بسته به نوع دیتابیس NoSQLی، سرعت خواندن میتونه بسیار سریع باشه. به عنوان مثال، در دیتابیسهای Document-based مثل MongoDB، دسترسی به دادهها سریعتره چون معمولاً ساختار دادهها به صورت مسطح و سندی ذخیره میشه و نیاز به جداول مرتبط نیست.
نوشتن: به دلیل ساختار انعطافپذیر و عدم نیاز به رعایت دقیق اصول ACID، سرعت نوشتن در NoSQL بالاست. این پایگاه دادهها به گونهای طراحی شدن که بتونن حجم بزرگی از دادهها رو به سرعت پردازش کنن.
▪︎ عملکرد بهینه: وقتی حجم دادهها زیاده و نیاز داری که عملیات نوشتن و خواندن سریع انجام بشه (مثلاً در برنامههای real-time)، NoSQL بهترین انتخابه.
3️⃣. Key-Value Storage
▪︎ سرعت خواندن/نوشتن:
خواندن: دسترسی به دادهها در Key-Value Storage فوقالعاده سریعه چون دادهها بر اساس کلید ذخیره میشن و به سادگی میتونی مقدار مورد نظرت رو با استفاده از کلید پیدا کنی. این پایگاه دادهها برای دسترسیهای مکرر و فوری بهینهسازی شدن.
نوشتن: عملیات نوشتن هم به دلیل سادگی ساختار دادهها و عدم نیاز به پیچیدگیهای رابطهای خیلی سریع انجام میشه.
▪︎ عملکرد بهینه: وقتی نیاز به دسترسی بسیار سریع به دادهها داری (مثل کشینگ یا مدیریت session)، یه Key-Value Storage انتخابی عالیه.
جمعبندی در مورد سرعت:
• دیتابیس SQLی: سرعت خوبی داره ولی در پرسوجوهای پیچیده یا با نوشتن های زیاد ممکنه کند بشه.
• دیتابیس NoSQLی: سرعت بالاست و برای مقیاسپذیری و مدیریت دادههای بزرگ بهینه شده.
• دیتابیس Key-Valueی: سریعترین انتخاب برای عملیات ساده و دسترسی فوری به دادهها.
⚠️⚠️⚠️توجه⚠️⚠️⚠️
هر کدوم از این دیتابیسها بر اساس نیاز پروژه و نوع دادههایی که داری، میتونن بهترین عملکرد رو ارائه بدن.
اگر به عملکرد بسیار سریع نیاز داری و ساختار دادهها ساده است، Key-Value عالیه. ولی برای تراکنشهای پیچیده و یکپارچگی دادهها، SQL ممکنه کمی کندتر باشه اما قابل اطمینانتره.
کانال کدنایت :
https://t.me/codenight_ir
Telegram
️ CodeNight | آموزش برنامه نویسی
🚀 کدنایت | آموزش برنامهنویسی از صفر تا صد
گولنگ، جاوااسکریپت، نودجی اس، وب، اپلیکیشن و الگوریتم
🧑🏻💻 آموزش پروژهمحور و رایگان
🤖آموزش هوش مصنوعی و vibe coding و Ai engineering
💻 مناسب مبتدی تا پیشرفته
🌐 codenight.ir
گولنگ، جاوااسکریپت، نودجی اس، وب، اپلیکیشن و الگوریتم
🧑🏻💻 آموزش پروژهمحور و رایگان
🤖آموزش هوش مصنوعی و vibe coding و Ai engineering
💻 مناسب مبتدی تا پیشرفته
🌐 codenight.ir
❤4👍4🔥1
گرف کیوال یا GraphQL چیست ؟
@codenight_ir
@codenight_ir
@codenight_ir
👇👇👇
GraphQL یه زبان کوئری برای APIهاست که توسط فیسبوک توسعه داده شده. ⚒
برخلاف REST که در اون هر endpoint یک منبع مشخص رو برمیگردونه، توی GraphQL تو میتونی دقیقاً مشخص کنی چه دادهای رو نیاز داری و سرور فقط همون داده رو برمیگردونه. ♻️
به زبون ساده تر توی REST API، هر endpoint معمولاً به یک منبع خاص اشاره میکنه و وقتی به اون آدرس درخواست میفرستی، یک ساختار دادهٔ ثابت برمیگرده. به عبارت دیگه، تو به عنوان فرانت دولوپر✌🏻 کنترل زیادی روی شکل و محتوای دادهای که دریافت میکنی نداری اگه به دادههای بیشتری یا کمتری نیاز داشته باشی، باید به endpointهای مختلفی درخواست بفرستی یا کل داده رو دریافت کنی و بخشهای اضافه رو نادیده بگیری.🤷🏻♀️🤷🏻
اما در GraphQL، تو میتونی دقیقاً مشخص کنی که چه فیلدها و دادههایی رو نیاز داری. به جای داشتن چندین endpoint، فقط یک endpoint مشترک وجود داره و تو با نوشتن یک کوئری مشخص میکنی که کدوم بخشهای داده رو میخوای.
برای مثال فرض کن یه سرویس کاربری داری:👇🏻👇🏻👇🏻👇🏻
در REST:
برای دریافت اطلاعات کاربر باید به /users/1 درخواست بزنی و ممکنه همه اطلاعات کاربر برگرده، مثل نام، ایمیل، آدرس، شماره تلفن و غیره، حتی اگه فقط به نام و ایمیل نیاز داشته باشی.
اگه بخوای پستهای کاربر رو هم بگیری، باید یک درخواست جدا به /users/1/posts بفرستی.
در GraphQL:
میتونی یک کوئری بنویسی که فقط نام و ایمیل کاربر رو برگردونه.🔥
همچنین میتونی در همون کوئری درخواست کنی که لیست پستهای کاربر رو هم برات بیاره.
نتیجه: سرور دقیقاً همون دادههایی رو برمیگردونه که درخواست کردی، نه بیشتر و نه کمتر.😎
👍🏻 مزایا graphql
1. دریافت داده دقیق
2. کاهش over-fetching و under-fetching
3. Documentation بهتر: اسکیمای GraphQL به طور اتوماتیک داکیومنت ایجاد میکنه که نشون میده چه دادههایی در API موجوده و کلاینت چطور میتونه بهشون دسترسی پیدا کنه.
4. یک endpoint برای همه درخواستها
👎🏻معایب:
1. پیچیدگی: اگه تازهکاری، ممکنه یادگیری GraphQL در ابتدا یه کم گیجکننده باشه، مخصوصا اگه به REST عادت کرده باشی.
2. کاهش سرعت در درخواستهای بزرگ: گاهی اوقات درخواستهای پیچیدهای که کلی داده از سرور میگیرن، میتونن بار سنگینی روی سرور بذارن و سرعت رو کاهش بدن.
3. عدم پشتیبانی از Caching بهصورت پیشفرض: بر خلاف REST که میتونی بهراحتی نتایج رو کش کنی، تو GraphQL باید بیشتر حواست باشه که چطور نتایج رو کش کنی تا درخواستها تکراری نشه و سرور زیر بار نره.
4. نیاز به تنظیمات و امنیت بیشتر: به دلیل اینکه GraphQL خیلی انعطافپذیره، باید حواست به مسائل امنیتی باشه و مطمئن بشی که کاربران به دادههایی که نباید دسترسی داشته باشن، دسترسی پیدا نمیکنن.
به طور کلی، انتخاب بین GraphQL و REST بستگی به نیازهای پروژهات داره. اگه انعطافپذیری و امکان تعریف دقیق دادهها مهمه، GraphQL میتونه انتخاب خوبی باشه، اما اگه سادگی و کارایی بیشتر مد نظرته، REST ممکنه مناسبتر باشه.
کانال آموزشی کدنایت :
@codenight_ir
@codenight_ir
@codenight_ir
@codenight_ir
👇👇👇
GraphQL یه زبان کوئری برای APIهاست که توسط فیسبوک توسعه داده شده. ⚒
برخلاف REST که در اون هر endpoint یک منبع مشخص رو برمیگردونه، توی GraphQL تو میتونی دقیقاً مشخص کنی چه دادهای رو نیاز داری و سرور فقط همون داده رو برمیگردونه. ♻️
به زبون ساده تر توی REST API، هر endpoint معمولاً به یک منبع خاص اشاره میکنه و وقتی به اون آدرس درخواست میفرستی، یک ساختار دادهٔ ثابت برمیگرده. به عبارت دیگه، تو به عنوان فرانت دولوپر✌🏻 کنترل زیادی روی شکل و محتوای دادهای که دریافت میکنی نداری اگه به دادههای بیشتری یا کمتری نیاز داشته باشی، باید به endpointهای مختلفی درخواست بفرستی یا کل داده رو دریافت کنی و بخشهای اضافه رو نادیده بگیری.🤷🏻♀️🤷🏻
اما در GraphQL، تو میتونی دقیقاً مشخص کنی که چه فیلدها و دادههایی رو نیاز داری. به جای داشتن چندین endpoint، فقط یک endpoint مشترک وجود داره و تو با نوشتن یک کوئری مشخص میکنی که کدوم بخشهای داده رو میخوای.
برای مثال فرض کن یه سرویس کاربری داری:👇🏻👇🏻👇🏻👇🏻
در REST:
برای دریافت اطلاعات کاربر باید به /users/1 درخواست بزنی و ممکنه همه اطلاعات کاربر برگرده، مثل نام، ایمیل، آدرس، شماره تلفن و غیره، حتی اگه فقط به نام و ایمیل نیاز داشته باشی.
اگه بخوای پستهای کاربر رو هم بگیری، باید یک درخواست جدا به /users/1/posts بفرستی.
در GraphQL:
میتونی یک کوئری بنویسی که فقط نام و ایمیل کاربر رو برگردونه.🔥
همچنین میتونی در همون کوئری درخواست کنی که لیست پستهای کاربر رو هم برات بیاره.
{
user(id: 1) {
name
email
posts {
title
content
}
}
}نتیجه: سرور دقیقاً همون دادههایی رو برمیگردونه که درخواست کردی، نه بیشتر و نه کمتر.😎
👍🏻 مزایا graphql
1. دریافت داده دقیق
2. کاهش over-fetching و under-fetching
3. Documentation بهتر: اسکیمای GraphQL به طور اتوماتیک داکیومنت ایجاد میکنه که نشون میده چه دادههایی در API موجوده و کلاینت چطور میتونه بهشون دسترسی پیدا کنه.
4. یک endpoint برای همه درخواستها
👎🏻معایب:
1. پیچیدگی: اگه تازهکاری، ممکنه یادگیری GraphQL در ابتدا یه کم گیجکننده باشه، مخصوصا اگه به REST عادت کرده باشی.
2. کاهش سرعت در درخواستهای بزرگ: گاهی اوقات درخواستهای پیچیدهای که کلی داده از سرور میگیرن، میتونن بار سنگینی روی سرور بذارن و سرعت رو کاهش بدن.
3. عدم پشتیبانی از Caching بهصورت پیشفرض: بر خلاف REST که میتونی بهراحتی نتایج رو کش کنی، تو GraphQL باید بیشتر حواست باشه که چطور نتایج رو کش کنی تا درخواستها تکراری نشه و سرور زیر بار نره.
4. نیاز به تنظیمات و امنیت بیشتر: به دلیل اینکه GraphQL خیلی انعطافپذیره، باید حواست به مسائل امنیتی باشه و مطمئن بشی که کاربران به دادههایی که نباید دسترسی داشته باشن، دسترسی پیدا نمیکنن.
به طور کلی، انتخاب بین GraphQL و REST بستگی به نیازهای پروژهات داره. اگه انعطافپذیری و امکان تعریف دقیق دادهها مهمه، GraphQL میتونه انتخاب خوبی باشه، اما اگه سادگی و کارایی بیشتر مد نظرته، REST ممکنه مناسبتر باشه.
کانال آموزشی کدنایت :
@codenight_ir
❤2👍1
🔺با چند Utility Type پرکاربرد تایپاسکریپت آشنا بشیم
ـ Utility Type ها چند تایپ درونی تایپاسکریپت هستن که کمک میکنن راحتتر و سریعتر تایپهای خاص و پیچیدهتری بسازیم
- برای مثال، یک Utility Type داریم به اسم
- تایپاسکریپت بیشتر از ۲۰ تا Utility Type درونی داره که توی این مقاله میخوایم با اونها آشنا بشیم. قسمت اول:
https://codenight.ir/blogs/7-typescript-tricks
پ.ن: از سوالهای پرتکرار مصاحبههاست 💯
ـ Utility Type ها چند تایپ درونی تایپاسکریپت هستن که کمک میکنن راحتتر و سریعتر تایپهای خاص و پیچیدهتری بسازیم
- برای مثال، یک Utility Type داریم به اسم
ReturnType که کمک میکنه یک تایپ جدید از نوع خروجی یک تابع داشته باشیم- تایپاسکریپت بیشتر از ۲۰ تا Utility Type درونی داره که توی این مقاله میخوایم با اونها آشنا بشیم. قسمت اول:
https://codenight.ir/blogs/7-typescript-tricks
پ.ن: از سوالهای پرتکرار مصاحبههاست 💯
کدنایت
7 ترفند مهم تایپ اسکریپتی
تایپ اسکریپت یک ابزار خیلی خفن برای توسعه دهنده های جاوا اسکریپت چه فرانت اند و چه بک اند می باشد، همچنین برنامه نویسی را برای توسعه دهنده ها راحتر و باعث میشود خوانایی کدها بطور چشمگیری بالا برود اما با این حال استفاده از تایپ اسکریپت گاهی اوقات میتواند…
👍1
استخدام توسعه دهنده نودجی اس در مجموعه یکتا هوش ایرسا:
محل کار اصفهان، اصفهان
امکان دورکاری
مهارت های مورد نیاز:
موارد زیر امتیاز محسوب میشود:
حقوق پیشنهادی :
14 - 20 میلیون تومان
👇👇👇
لینک آگهی
https://jobvision.ir/jobs/job-detail/851060?ReferrerJobPosition=8&row=1&pageSize=30&keyword=برنامه%20نویس%20node.js&searchId=386088953763464938
محل کار اصفهان، اصفهان
امکان دورکاری
مهارت های مورد نیاز:
تسلط به JavaScript، TypeScript و Node.js
تسلط به مفاهیم مبتنی بر Rest Api
آشنایی با کتابخانه ها و فریم ورک های محبوب مانند Express & Nest.js
دارای تجربه در استفاده از MongoDB و PostgreSQL و سیستم Caching
موارد زیر امتیاز محسوب میشود:
کار با Docker & K8S
آشنایی با سیستم عامل های لینوکس یا یونیکس
توانایی کار با Git
آشنایی با حوزه DevOps و CI/CD
تسلط به زبان انگلیسی
حقوق پیشنهادی :
14 - 20 میلیون تومان
👇👇👇
لینک آگهی
https://jobvision.ir/jobs/job-detail/851060?ReferrerJobPosition=8&row=1&pageSize=30&keyword=برنامه%20نویس%20node.js&searchId=386088953763464938
#انگیزشی
کانال آموزشی کدنایت 👇👇
@codenight_ir
@codenight_ir
@codenight_ir
hard work beats talent when talent doesn't work hard
پشت کار و سخت کار کردن میتونه خیلی بهتر از استعداد باشه 😉
کانال آموزشی کدنایت 👇👇
@codenight_ir
@codenight_ir
@codenight_ir
👍6👎2
#نکته ‼️
هر روز یه نکته :
مطالعه کدهای دیگران 📖
هر روز یه نکته :
مطالعه کدهای دیگران 📖
کدهای نوشته شده توسط دیگر برنامه نویس ها را مطالعه کنید تا با انواع روشهای مختلف حل مسئله و ساختار و ابزار ها آشنا بشید
❤5👍1
HTTP چیه؟🌐
HTTP، که مخفف HyperText Transfer Protocol هست، یه پروتکل ارتباطی بین مرورگر و سروره.
این پروتکل به مرورگر اجازه میده تا درخواستهایی مثل دریافت اطلاعات یه صفحه وب رو به سرور بفرسته و سرور هم جوابش رو با برگردوندن اون اطلاعات (مثل کد HTML، CSS، جاوااسکریپت و ...) میده. به عبارت دیگه، HTTP شبیه به یه نامهرسانه که پیامهای شما رو بین مرورگر و سرور جا به جا میکنه📨
اما یه مشکل بزرگ توی HTTP وجود داره؛ همه اطلاعاتی که رد و بدل میشه، به صورت متن ساده (plain text) هست. یعنی اگر کسی توی مسیر این نامهها رو ببینه، میتونه راحت پیامهای شما رو بخونه. مثلاً اگر یه کاربر در حال ورود به حساب کاربری خودش باشه و از HTTP استفاده کنه، اگه یه هکر🥷 اون وسط باشه، میتونه رمز عبور و اطلاعات شخصی رو ببینه.
HTTPS چیه؟
اینجاست که HTTPS وارد میشه! HTTPS مخفف HyperText Transfer Protocol Secure هست و تفاوت اصلیش با HTTP اینه که اطلاعاتی که رد و بدل میشن، رمزنگاری شده🔐 (encrypted) هستن. این یعنی حتی اگر یه هکر توی مسیر باشه و پیامها رو ببینه، نمیتونه اونها رو بخونه چون همه چیز به صورت رمزنگاری شده هست.
برای اینکه HTTPS رو برای اپلیکیشن خودمون فعال کنیم، باید یه سری کارا انجام بدیم:
- گواهینامه SSL/TLS تهیه کنیم📄: این یه فایل دیجیتال هست که به سرور اجازه میده تا اطلاعات رو رمزنگاری کنه. میتونید گواهینامه SSL رو از مراکز معتبری مثل Let's Encrypt به رایگان بگیرید.
- گواهینامه رو روی سرور نصب کنیم🖥: بعد از اینکه گواهینامه رو گرفتید، باید اونو روی سرورتون نصب کنید. این کار بسته به نوع سرور و وبسرور (مثل Apache، Nginx، و...) ممکنه یه کم فرق کنه.
- پیکربندی سرور برای استفاده از HTTPS🔧: باید سرور رو تنظیم کنیم که فقط از HTTPS استفاده کنه و درخواستهای HTTP رو به HTTPS منتقل کنه. این کار هم به نوع وبسرور بستگی داره.
وقتی این مراحل رو انجام دادید، سایت یا اپلیکیشن شما امنتر میشه و کاربران میتونن با خیال راحت ازش استفاده کنن.
کانال آموزشی کدنایت :👇👇
@codenight_ir
@codenight_ir
@codenight_ir
HTTP، که مخفف HyperText Transfer Protocol هست، یه پروتکل ارتباطی بین مرورگر و سروره.
این پروتکل به مرورگر اجازه میده تا درخواستهایی مثل دریافت اطلاعات یه صفحه وب رو به سرور بفرسته و سرور هم جوابش رو با برگردوندن اون اطلاعات (مثل کد HTML، CSS، جاوااسکریپت و ...) میده. به عبارت دیگه، HTTP شبیه به یه نامهرسانه که پیامهای شما رو بین مرورگر و سرور جا به جا میکنه📨
اما یه مشکل بزرگ توی HTTP وجود داره؛ همه اطلاعاتی که رد و بدل میشه، به صورت متن ساده (plain text) هست. یعنی اگر کسی توی مسیر این نامهها رو ببینه، میتونه راحت پیامهای شما رو بخونه. مثلاً اگر یه کاربر در حال ورود به حساب کاربری خودش باشه و از HTTP استفاده کنه، اگه یه هکر🥷 اون وسط باشه، میتونه رمز عبور و اطلاعات شخصی رو ببینه.
HTTPS چیه؟
اینجاست که HTTPS وارد میشه! HTTPS مخفف HyperText Transfer Protocol Secure هست و تفاوت اصلیش با HTTP اینه که اطلاعاتی که رد و بدل میشن، رمزنگاری شده🔐 (encrypted) هستن. این یعنی حتی اگر یه هکر توی مسیر باشه و پیامها رو ببینه، نمیتونه اونها رو بخونه چون همه چیز به صورت رمزنگاری شده هست.
برای اینکه HTTPS رو برای اپلیکیشن خودمون فعال کنیم، باید یه سری کارا انجام بدیم:
- گواهینامه SSL/TLS تهیه کنیم📄: این یه فایل دیجیتال هست که به سرور اجازه میده تا اطلاعات رو رمزنگاری کنه. میتونید گواهینامه SSL رو از مراکز معتبری مثل Let's Encrypt به رایگان بگیرید.
- گواهینامه رو روی سرور نصب کنیم🖥: بعد از اینکه گواهینامه رو گرفتید، باید اونو روی سرورتون نصب کنید. این کار بسته به نوع سرور و وبسرور (مثل Apache، Nginx، و...) ممکنه یه کم فرق کنه.
- پیکربندی سرور برای استفاده از HTTPS🔧: باید سرور رو تنظیم کنیم که فقط از HTTPS استفاده کنه و درخواستهای HTTP رو به HTTPS منتقل کنه. این کار هم به نوع وبسرور بستگی داره.
وقتی این مراحل رو انجام دادید، سایت یا اپلیکیشن شما امنتر میشه و کاربران میتونن با خیال راحت ازش استفاده کنن.
کانال آموزشی کدنایت :👇👇
@codenight_ir
@codenight_ir
@codenight_ir
👍4🔥2
#نکته ‼️
هر روز یه نکته :
عملگرایی 📖
«Robert C. Martin, Clean Architecture»
کانال آموزشی کدنایت:
@codenight_ir
@codenight_ir
@codenight_ir
هر روز یه نکته :
عملگرایی 📖
من یک برنامهنویسم.
برنامهنویسی رو دوست دارم و موثرترین راهی که برای بهتر کردن کد میشناسم اینه که خودم بنویسمش.
«Robert C. Martin, Clean Architecture»
کانال آموزشی کدنایت:
@codenight_ir
@codenight_ir
@codenight_ir
❤3👍2
#نکته ‼️
هر روز یه نکته :
عدم قطعیت 📖
«Robert C. Martin, Clean Architecture»
کانال آموزشی کدنایت:
@codenight_ir
@codenight_ir
@codenight_ir
هر روز یه نکته :
عدم قطعیت 📖
علم با اثبات درستی گزاره ها کار نمیکند، بلکه با نادرستی آن ها سر و کار دارد.
«Robert C. Martin, Clean Architecture»
کانال آموزشی کدنایت:
@codenight_ir
@codenight_ir
@codenight_ir
👍3
#نکته ‼️
هر روز یه نکته :
دوراندیشی 📖
کانال آموزشی کدنایت:
@codenight_ir
@codenight_ir
@codenight_ir
هر روز یه نکته :
دوراندیشی 📖
معمار توانا سیستم را قابل فهم، قابل نگهداری، توسعه پذیر و با قابلیت اجرا و راه-اندازیِ سریع، راحت و کم هزینه میسازد .
هدف نهایی کاهش هزینه ها در طول چرخه حیات و افزایش بازدهی توسعه دهندگان است.
«Robert C. Martin, Clean Architecture»
کانال آموزشی کدنایت:
@codenight_ir
@codenight_ir
@codenight_ir
👍1
#نکته ‼️
هر روز یه نکته :
چابکی 📖
«Robert C. Martin, Clean Architecture»
کانال آموزشی کدنایت:
@codenight_ir
@codenight_ir
@codenight_ir
هر روز یه نکته :
چابکی 📖
کدام تصمیم نسنجیده است؟
تصمیماتی که نیازمندی های کسب و کار و کاربرد های سیستم را نادیده میگیرند.
از جمله انتخاب فریمورک، دیتابیس، وب سرور، کتابخانه های کاربردی، تزریق وابستگی ها و ...
یک معمار توانا به چنین تصمیماتی تکیه نمیکند.
او بدون این که رود توسعه نرم افزار را دچار اختلال کند، چنین تصمیماتی را در آخرین لحظه ممکن اتخاذ می کند.
«Robert C. Martin, Clean Architecture»
کانال آموزشی کدنایت:
@codenight_ir
@codenight_ir
@codenight_ir
👍1
#نکته ‼️
هر روز یه نکته :
تمرکز و کار عمیق 📖
«Cal Newport, Deep Work: Rules for Focused Success in a Distracted World»
کانال آموزشی کدنایت:
@codenight_ir
@codenight_ir
@codenight_ir
هر روز یه نکته :
تمرکز و کار عمیق 📖
برخلاف آنچه انتظار میرود، مشغول انجام کاری بودن لذت بخش تر از فراغت از آن است.
چرا که هدف مندی، بازخورد محور بودن، چالش ها و موارد مشابه ما را مشتاق می کنند تا درگیر کار شویم، بیشتر تمرکز کنیم و خود را تمام و کمال وقف آن کنیم.
این درحالیست که وقت های آزاد ساختار مشخصی ندارند و برای لذت بردن از آن ها به تلاش و برنامه ریزی بیشتری نیاز است.
«Cal Newport, Deep Work: Rules for Focused Success in a Distracted World»
کانال آموزشی کدنایت:
@codenight_ir
@codenight_ir
@codenight_ir
👍3❤1
وقتی داری با Node.js کار میکنی و میخوای پکیجهایی که پروژهات بهشون نیاز داره رو نصب کنی، معمولاً از
اما تفاوت
`npm i` (یا `npm install`)
این دستور برای نصب پکیجها استفاده میشه. وقتی شما این دستور رو اجرا میکنید، npm به فایل
`npm ci`
حالا
خلاصه:
- `npm i`: نصب و بهروزرسانی بستهها.
-
کانال آموزشی کدنایت:
@codenight_ir
@codenight_ir
@codenight_ir
npm i یا npm install استفاده میکنی. ولی یه روش دیگه هم برای این کار وجود داره: npm ci. اما تفاوت
npm i و npm ci چیه؟`npm i` (یا `npm install`)
این دستور برای نصب پکیجها استفاده میشه. وقتی شما این دستور رو اجرا میکنید، npm به فایل
package.json نگاه میکنه و تمام پکیجهای مورد نیاز رو نصب میکنه. اگر شما یک پکیج جدید اضافه کرده باشید یا نسخه جدیدی از یک پکیج موجود باشه، اینجا همه چیز بهروز میشه. به عبارت دیگه، npm i برای نصب و بهروزرسانی بستههاست.`npm ci`
حالا
npm ci یک کمی متفاوت عمل میکنه. این دستور برای مواقعی استفاده میشه که شما میخواهید یک محیط دقیقاً مشابه با محیطی که قبلاً ساخته شده رو داشته باشید. این دستور به فایل package-lock.json نگاه میکنه و فقط پکیجهایی رو نصب میکنه که دقیقاً در این فایل مشخص شدن. بنابراین اگر شما در حال کار روی یک پروژه تیمی هستید و میخواهید مطمئن بشید که همه اعضای تیم دقیقاً از نسخههای شما استفاده میکنن، npm ci انتخاب بهتریه.خلاصه:
- `npm i`: نصب و بهروزرسانی بستهها.
-
npm ci: نصب بستهها بر اساس فایل package-lock.json برای اطمینان از همسانی نسخهها.کانال آموزشی کدنایت:
@codenight_ir
@codenight_ir
@codenight_ir
👌8👍1👏1
#نکته ‼️
هر روز یه نکته :
قاطعیت📖
«Linus Torvalds»
کانال آموزشی کدنایت:
@codenight_ir
@codenight_ir
@codenight_ir
هر روز یه نکته :
قاطعیت📖
من عاشق دلخور کردن مردمم، چون به نظرم افرادی که به راحتی به دل میگیرن رو باید دلخور کرد!
«Linus Torvalds»
کانال آموزشی کدنایت:
@codenight_ir
@codenight_ir
@codenight_ir
#نکته ‼️
هر روز یه نکته :
واقع گرایی 📖
«Linus Torvalds»
کانال آموزشی کدنایت:
@codenight_ir
@codenight_ir
@codenight_ir
هر روز یه نکته :
واقع گرایی 📖
من یک آرمان گرا نیستم، من تنها یک مهندسم.
من از وجود افرادی که به اطراف مینگرند و به ستارگان خیره میشوند خوشحالم، اما من به زمین نگاه می کنم و در اندیشه پر کردن چاله جلوی پایم هستم.
«Linus Torvalds»
کانال آموزشی کدنایت:
@codenight_ir
@codenight_ir
@codenight_ir
👍1
#نکته ‼️
هر روز یه نکته :
بازدهی بیشتر 📖
«Linus Torvalds»
کانال آموزشی کدنایت:
@codenight_ir
@codenight_ir
@codenight_ir
هر روز یه نکته :
بازدهی بیشتر 📖
هوشمندی یعنی توانایی کمتر کار کردن، ولی انجام دادن کار
«Linus Torvalds»
کانال آموزشی کدنایت:
@codenight_ir
@codenight_ir
@codenight_ir
#نکته ‼️
هر روز یه نکته :
عملگرایی 📖
«Linus Torvalds»
کانال آموزشی کدنایت:
@codenight_ir
@codenight_ir
@codenight_ir
هر روز یه نکته :
عملگرایی 📖
حرف زدن کافیه، کدت رو نشونم بده!
«Linus Torvalds»
کانال آموزشی کدنایت:
@codenight_ir
@codenight_ir
@codenight_ir
❤4🤡1
وقتی به تفاوتهای MySQL و PostgreSQL نگاه میکنیم، در واقع داریم دو پایگاه دادهی SQL محبوب رو مقایسه میکنیم که هر کدوم ویژگیهای خاص خودشون رو دارن و توی پروژههای مختلف بسته به نیازهای خاص، عملکرد متفاوتی دارن. بیا نگاهی بندازیم به مهمترین تفاوتهاشون:
1️⃣. معماری و پایبندی به استانداردهای SQL🎯
- PostgreSQL: یک دیتابیس کاملاً مطابق با استاندارد SQL هست و به همین دلیل ویژگیهای پیچیدهتر و قویتری داره.
بهش میگن "پایگاه داده شیگرا" چون میتونی انواع دادههای پیچیده و روابط پیچیدهتری رو توی اون مدیریت کنی.
- MySQL: به صورت کلی عملکرد بهتری در خواندن اطلاعات داره و برای خواندن سریع دادهها بهینه شده. در عین حال، کمتر به استانداردهای SQL پایبنده و در بعضی موارد برای راحتی توسعهدهندهها از استاندارد SQL عدول میکنه.
2️⃣. پشتیبانی از تراکنشها و ACID🦸♂️
- PostgreSQL: کاملاً به اصول ACID پایبنده و تراکنشهای پیچیده و موازی رو با دقت بالایی مدیریت میکنه. برای پروژههای بانکی یا هر پروژهای که نیاز به تراکنشهای کاملاً قابل اطمینان داره، عالیه.
- MySQL: بسته به نوع موتور ذخیرهسازی که استفاده میکنی (مثل InnoDB)، میتونه از اصول ACID پشتیبانی کنه، اما توی بعضی موتورهای دیگه مثل MyISAM**، این ویژگیها خیلی محدودتر هستن.
3️⃣. پشتیبانی از انواع دادهها💥
- PostgreSQL: پشتیبانی خیلی قوی از انواع دادههای پیچیده مثل JSONB و XML داره. میتونی دادههای ساختارمند و غیرساختارمند رو به خوبی مدیریت کنی.
همینطور GIS (سیستم اطلاعات جغرافیایی) قویای داره، که اگه بخوای پروژههایی مرتبط با نقشه و مکانیابی بنویسی، PostgreSQL گزینه بهتریه.
- MySQL: نسبت به PostgreSQL محدودیت بیشتری در پشتیبانی از انواع دادهها داره. در نسخههای جدیدتر، پشتیبانی از JSON اضافه شده ولی هنوز به اندازه PostgreSQL قوی نیست.
4️⃣. مقیاسپذیری و عملکرد🎭
- MySQL: معمولاً برای اپلیکیشنهای وب که تعداد خواندنها زیاد هست، بهتر عمل میکنه. وقتی که ترافیک خواندن زیاد باشه بهینهتر هست، مثل بلاگها، سیستمهای مدیریت محتوا، و وبسایتهای فروشگاهی.
- PostgreSQL: برای پروژههای پیچیدهتر که نیاز به محاسبات سنگین، تراکنشهای زیاد و کار با دادههای پیچیده دارن، انتخاب بهتریه.
البته مقیاسپذیریش هم خوبه ولی ممکنه نسبت به MySQL کمی کندتر باشه توی عملیاتهای ساده.
5️⃣. قفلگذاری و همزمانی🔐
- PostgreSQL: از MVCC (کنترل همزمانی چند نسخهای) استفاده میکنه، به این معنی که خواندن و نوشتن میتونن بدون مسدود شدن انجام بشن. این ویژگی باعث میشه که توی پروژههایی که نیاز به عملیات موازی زیادی دارن، بهتر عمل کنه.
- MySQL: در موتور InnoDB از MVCC پشتیبانی میکنه، اما توی MyISAM چنین قابلیتی وجود نداره و خواندن و نوشتن ممکنه باعث ایجاد قفلگذاری و کند شدن عملیاتها بشه.
6️⃣. اکوسیستم و جامعه کاربری👥
- MySQL: به عنوان یکی از قدیمیترین دیتابیسهای متنباز، جامعه کاربری خیلی بزرگتری داره و مستندات فراوانی براش موجوده. همین موضوع باعث میشه که در پروژههای سادهتر و برای توسعهدهندههای تازهکار، راحتتر باشه.
- PostgreSQL: جامعه کاربری اون به اندازه MySQL گسترده نیست، ولی متخصصینی که باهاش کار میکنن معمولاً در پروژههای پیچیدهتر، به خاطر قدرتش ازش استفاده میکنن.
⬇️ ⬇️ ⬇️ ⬇️ ⬇️ ⬇️ ⬇️ ⬇️ ⬇️
🧐
- MySQL: برای وبسایتها، وب اپلیکیشنها، سیستمهای مدیریت محتوا که بیشتر عملیاتهای خواندن و نوشتن ساده دارن و نیاز به مدیریت تراکنشهای پیچیده ندارن، MySQL انتخاب مناسبیه.
- PostgreSQL: برای پروژههایی مثل اپلیکیشنهای مالی، تحلیل دادهها، پروژههای علمی، سیستمهای GIS، سیستمهای بانکی و هر جایی که به مدیریت دادههای پیچیده یا تراکنشهای سنگین نیاز داری، PostgreSQL به مراتب بهتر عمل میکنه.
Tags:
#database
کانال آموزشی کدنایت:
@codenight_ir
@codenight_ir
@codenight_ir
1️⃣. معماری و پایبندی به استانداردهای SQL🎯
- PostgreSQL: یک دیتابیس کاملاً مطابق با استاندارد SQL هست و به همین دلیل ویژگیهای پیچیدهتر و قویتری داره.
بهش میگن "پایگاه داده شیگرا" چون میتونی انواع دادههای پیچیده و روابط پیچیدهتری رو توی اون مدیریت کنی.
- MySQL: به صورت کلی عملکرد بهتری در خواندن اطلاعات داره و برای خواندن سریع دادهها بهینه شده. در عین حال، کمتر به استانداردهای SQL پایبنده و در بعضی موارد برای راحتی توسعهدهندهها از استاندارد SQL عدول میکنه.
2️⃣. پشتیبانی از تراکنشها و ACID🦸♂️
- PostgreSQL: کاملاً به اصول ACID پایبنده و تراکنشهای پیچیده و موازی رو با دقت بالایی مدیریت میکنه. برای پروژههای بانکی یا هر پروژهای که نیاز به تراکنشهای کاملاً قابل اطمینان داره، عالیه.
- MySQL: بسته به نوع موتور ذخیرهسازی که استفاده میکنی (مثل InnoDB)، میتونه از اصول ACID پشتیبانی کنه، اما توی بعضی موتورهای دیگه مثل MyISAM**، این ویژگیها خیلی محدودتر هستن.
3️⃣. پشتیبانی از انواع دادهها💥
- PostgreSQL: پشتیبانی خیلی قوی از انواع دادههای پیچیده مثل JSONB و XML داره. میتونی دادههای ساختارمند و غیرساختارمند رو به خوبی مدیریت کنی.
همینطور GIS (سیستم اطلاعات جغرافیایی) قویای داره، که اگه بخوای پروژههایی مرتبط با نقشه و مکانیابی بنویسی، PostgreSQL گزینه بهتریه.
- MySQL: نسبت به PostgreSQL محدودیت بیشتری در پشتیبانی از انواع دادهها داره. در نسخههای جدیدتر، پشتیبانی از JSON اضافه شده ولی هنوز به اندازه PostgreSQL قوی نیست.
4️⃣. مقیاسپذیری و عملکرد🎭
- MySQL: معمولاً برای اپلیکیشنهای وب که تعداد خواندنها زیاد هست، بهتر عمل میکنه. وقتی که ترافیک خواندن زیاد باشه بهینهتر هست، مثل بلاگها، سیستمهای مدیریت محتوا، و وبسایتهای فروشگاهی.
- PostgreSQL: برای پروژههای پیچیدهتر که نیاز به محاسبات سنگین، تراکنشهای زیاد و کار با دادههای پیچیده دارن، انتخاب بهتریه.
البته مقیاسپذیریش هم خوبه ولی ممکنه نسبت به MySQL کمی کندتر باشه توی عملیاتهای ساده.
5️⃣. قفلگذاری و همزمانی🔐
- PostgreSQL: از MVCC (کنترل همزمانی چند نسخهای) استفاده میکنه، به این معنی که خواندن و نوشتن میتونن بدون مسدود شدن انجام بشن. این ویژگی باعث میشه که توی پروژههایی که نیاز به عملیات موازی زیادی دارن، بهتر عمل کنه.
- MySQL: در موتور InnoDB از MVCC پشتیبانی میکنه، اما توی MyISAM چنین قابلیتی وجود نداره و خواندن و نوشتن ممکنه باعث ایجاد قفلگذاری و کند شدن عملیاتها بشه.
6️⃣. اکوسیستم و جامعه کاربری👥
- MySQL: به عنوان یکی از قدیمیترین دیتابیسهای متنباز، جامعه کاربری خیلی بزرگتری داره و مستندات فراوانی براش موجوده. همین موضوع باعث میشه که در پروژههای سادهتر و برای توسعهدهندههای تازهکار، راحتتر باشه.
- PostgreSQL: جامعه کاربری اون به اندازه MySQL گسترده نیست، ولی متخصصینی که باهاش کار میکنن معمولاً در پروژههای پیچیدهتر، به خاطر قدرتش ازش استفاده میکنن.
⬇️ ⬇️ ⬇️ ⬇️ ⬇️ ⬇️ ⬇️ ⬇️ ⬇️
🧐
کجا استفاده کنیم؟🧐- MySQL: برای وبسایتها، وب اپلیکیشنها، سیستمهای مدیریت محتوا که بیشتر عملیاتهای خواندن و نوشتن ساده دارن و نیاز به مدیریت تراکنشهای پیچیده ندارن، MySQL انتخاب مناسبیه.
- PostgreSQL: برای پروژههایی مثل اپلیکیشنهای مالی، تحلیل دادهها، پروژههای علمی، سیستمهای GIS، سیستمهای بانکی و هر جایی که به مدیریت دادههای پیچیده یا تراکنشهای سنگین نیاز داری، PostgreSQL به مراتب بهتر عمل میکنه.
Tags:
#database
کانال آموزشی کدنایت:
@codenight_ir
@codenight_ir
@codenight_ir
👍6❤1