️ CodeNight | آموزش برنامه نویسی
867 subscribers
8 photos
1 file
66 links
🚀 کدنایت | آموزش برنامه‌نویسی از صفر تا صد
گولنگ، جاوااسکریپت، نودجی اس، وب، اپلیکیشن و الگوریتم
🧑🏻‍💻 آموزش پروژه‌محور و رایگان
🤖آموزش هوش مصنوعی و vibe coding و Ai engineering

💻 مناسب مبتدی تا پیشرفته
🌐 codenight.ir
Download Telegram
#انگیزشی

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
👍4🔥2
#نکته ‼️
هر روز یه نکته :

عملگرایی 📖
من یک برنامه‌نویسم.
برنامه‌نویسی رو دوست دارم و موثرترین راهی که برای بهتر کردن کد میشناسم اینه که خودم بنویسمش.

«Robert C. Martin, Clean Architecture»

کانال آموزشی کدنایت:

@codenight_ir
@codenight_ir
@codenight_ir
❤3👍2
#نکته ‼️
هر روز یه نکته :

عدم قطعیت 📖
علم با اثبات درستی گزاره ها کار نمی‌کند، بلکه با نادرستی آن ها سر و کار دارد.

«Robert C. Martin, Clean Architecture»


کانال آموزشی کدنایت:

@codenight_ir
@codenight_ir
@codenight_ir
👍3
#نکته ‼️
هر روز یه نکته :

دوراندیشی 📖
معمار توانا سیستم را قابل فهم، قابل نگهداری، توسعه پذیر و با قابلیت اجرا و راه-اندازیِ سریع، راحت و کم هزینه می‌سازد .
هدف نهایی کاهش هزینه ها در طول چرخه حیات و افزایش بازدهی توسعه دهندگان است.
«Robert C. Martin, Clean Architecture»


کانال آموزشی کدنایت:

@codenight_ir
@codenight_ir
@codenight_ir
👍1
#نکته ‼️
هر روز یه نکته :

چابکی 📖
کدام تصمیم نسنجیده است؟
تصمیماتی که نیازمندی های کسب و کار و کاربرد های سیستم را نادیده می‌گیرند.

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

یک معمار توانا به چنین تصمیماتی تکیه نمیکند.
او بدون این که رود توسعه نرم افزار را دچار اختلال کند، چنین تصمیماتی را در آخرین لحظه ممکن اتخاذ می کند.

«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
👍3❤1
وقتی داری با Node.js کار می‌کنی و می‌خوای پکیج‌هایی که پروژه‌ات بهشون نیاز داره رو نصب کنی، معمولاً از 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
👍1
#نکته ‼️
هر روز یه نکته :

بازدهی بیشتر 📖
هوشمندی یعنی توانایی کمتر کار کردن، ولی انجام دادن کار

«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
👍6❤1
تخفیف ۵۰٪ پاییزی🍂

بعد از ۳ ماه برای همه دوره ها😍

این جشنواره بخاطر ظرفیت پشتیبانی فقط ۵۰ نفر ظرفیت داره و ثبت نام از ساعت ۸ امشب شروع شده 🚀

برای ثبت نام میتونید از طریق لینک زیر اقدام کنید👇

لینک ثبت نام
👍1
سلام دوباره دوستان همیشگی، امیدوارم حال همگی خوب باشه😎

در تلاشیم کیفیت محتوای آموزشی مون رو روز به روز بهتر کنیم، برای همین به کمکتون نیاز داریم.

لطفا به نظرسنجی زیر پاسخ بدید و نظر صادقانه تون رو بیان کنید.🚀🔥

https://survey.porsline.ir/s/7FTOSWr7
️ CodeNight | آموزش برنامه نویسی pinned «سلام دوباره دوستان همیشگی، امیدوارم حال همگی خوب باشه😎 در تلاشیم کیفیت محتوای آموزشی مون رو روز به روز بهتر کنیم، برای همین به کمکتون نیاز داریم. لطفا به نظرسنجی زیر پاسخ بدید و نظر صادقانه تون رو بیان کنید.🚀🔥 https://survey.porsline.ir/s/7FTOSWr7»
🔍 عنوان شغلی مورد نیاز:
برنامه نویس Back-end (NestJS)

📌 شرکت:
فلوچت؛
پلتفرم ساخت چت‌بات بدون کدنویسی.

🛠️ مهارت‌های مورد نیاز:
1+ years of experience in backend development.
Proficiency in Nodejs development, with expertise in frameworks like NestJS , focused on designing and developing RESTful_APIs.
Practical experience in microservice architecture.
Proficiency in SQL and No-SQL databases for seamless data management, especially in MongoDB and Redis.

📍موقعیت مکانی:
کارخانه نوآوری آزادی، سوله دیجی‌نکست

💼 نوع همکاری:
تمام وقت

💰 حقوق:
توافقی

📧 ارتباط:
TG: @rajabi_sh
👍3
سلام دوستان روز بخیر 👋🏻

تصمیم گرفتم که یکسری از درسنامه های بوتکمپ بک اند رو طبق هر فصل در اختیار همه ی دانشجو ها بذارم که بهش دسترسی داشته باشید
❤13
از طریق لینک زیر هر درسنامه ی جدیدی که نوشته میشه میتونید بهش دسترسی داشته باشید و هر فصل جدید منتشر بشه در اینجا اطلاع رسانی میکنم:

https://github.com/erfanyousefi/codenight-textbook
❤9