دوستانی که میخوان کوبر یاد بگیرن دوتا لینک رو براتون میزارم اول کتاب و دومی یک سایت آموزشی:
(خیلی از دوستان جهت شروع یادگیری کتاب in action رو معرفی میکنن،مورد دوم اینکه سایت مدنظر با سادهترین زبان ممکن تمامی اجزا و امکانات کوبرنتیز رو توضیح داده)
📖 The kubernetes book
https://download.bibis.ir/Books/Programming/Devops/Kubernetes/2022/The-Kubernetes-Book-(2022-Edition)-(Nigel-Poulton)_bibis.ir.pdf
🌐 kubernetes vmware.com
https://www.vmware.com/topics/glossary/content/kubernetes.html
#k8s
@code_crafters
(خیلی از دوستان جهت شروع یادگیری کتاب in action رو معرفی میکنن،مورد دوم اینکه سایت مدنظر با سادهترین زبان ممکن تمامی اجزا و امکانات کوبرنتیز رو توضیح داده)
📖 The kubernetes book
https://download.bibis.ir/Books/Programming/Devops/Kubernetes/2022/The-Kubernetes-Book-(2022-Edition)-(Nigel-Poulton)_bibis.ir.pdf
🌐 kubernetes vmware.com
https://www.vmware.com/topics/glossary/content/kubernetes.html
#k8s
@code_crafters
Vmware
What is Kubernetes? | VMware Glossary
Kubernetes is an open source container orchestration platform that enables the operation of an elastic web server framework for cloud applications.
👍2🔥1🥰1
یکی از مهم ترین بخش های زبان کوئری نویسی SQL قسمت WHERE JOIN هست از هر دو میتوان برای کوئری زدن روی دو و یا چند جدول استفاده کرد اما تفاوت هایی با هم خواهند داشت با ذکر یک مثال این مورد را بیشتر توضیح میدهیم.
دو جدول فرضی را در نظر بگیرید
۱. جدول User با مقادیر Id, user_name , phone_number
۲.جدول Book با مقادیر Id, name, price, phone_number
(در واقعیت جدول Book به جدول User با کلید خارجی متصل میشود ولی در این مثال از این مورد چشم پوشی شده است )
اگر بخواهیم با استفاده از WHERE اطلاعات این دو جدول را بر اساس شرط phone_number با هم ترکیب کنیم، میتوانیم از کوئری زیر استفاده کنیم:
SELECT *
FROM User, Book
WHERE User.phone_number = Book.phone_number;
این کوئری تمام رکوردهایی را انتخاب میکند که مقدار phone_number آنها در هر دو جدول یکسان است.
همچنین، میتوانیم با استفاده از JOIN اطلاعات این دو جدول را بر اساس شرط phone_number با هم ترکیب کنیم. این مثال را با استفاده از JOIN به صورت زیر توسعه میدهیم:
SELECT *
FROM User
JOIN Book ON User.phone_number = Book.phone_number;
این کوئری نیز تمام رکوردهایی را انتخاب میکند که مقدار phone_number آنها در هر دو جدول یکسان است. با استفاده از JOIN، ما رکوردهای مشابه را از دو جدول به هم متصل میکنیم تا نتایج را بدست آوریم.
تفاوت اصلی در استفاده از WHERE و JOIN در این مثال، در نحوه نوشتن کوئری است. استفاده از JOIN به صورت مستقیم تر و خواناتر است و به طور ضمنی بهینهترین روش اتصال دو جدول را انتخاب میکند. همچنین، استفاده از JOIN معمولاً در کوئریهای پیچیدهتر و وابستگیهای بیشتر بین جداول مفیدتر است، زیرا به شما امکان اتصال جدولها بر اساس شرایط مشترک را میدهد و نتایج را به صورت یکپارچهتر و منظمتر برگرداند.
#SQL
@code_crafters
دو جدول فرضی را در نظر بگیرید
۱. جدول User با مقادیر Id, user_name , phone_number
۲.جدول Book با مقادیر Id, name, price, phone_number
(در واقعیت جدول Book به جدول User با کلید خارجی متصل میشود ولی در این مثال از این مورد چشم پوشی شده است )
اگر بخواهیم با استفاده از WHERE اطلاعات این دو جدول را بر اساس شرط phone_number با هم ترکیب کنیم، میتوانیم از کوئری زیر استفاده کنیم:
SELECT *
FROM User, Book
WHERE User.phone_number = Book.phone_number;
این کوئری تمام رکوردهایی را انتخاب میکند که مقدار phone_number آنها در هر دو جدول یکسان است.
همچنین، میتوانیم با استفاده از JOIN اطلاعات این دو جدول را بر اساس شرط phone_number با هم ترکیب کنیم. این مثال را با استفاده از JOIN به صورت زیر توسعه میدهیم:
SELECT *
FROM User
JOIN Book ON User.phone_number = Book.phone_number;
این کوئری نیز تمام رکوردهایی را انتخاب میکند که مقدار phone_number آنها در هر دو جدول یکسان است. با استفاده از JOIN، ما رکوردهای مشابه را از دو جدول به هم متصل میکنیم تا نتایج را بدست آوریم.
تفاوت اصلی در استفاده از WHERE و JOIN در این مثال، در نحوه نوشتن کوئری است. استفاده از JOIN به صورت مستقیم تر و خواناتر است و به طور ضمنی بهینهترین روش اتصال دو جدول را انتخاب میکند. همچنین، استفاده از JOIN معمولاً در کوئریهای پیچیدهتر و وابستگیهای بیشتر بین جداول مفیدتر است، زیرا به شما امکان اتصال جدولها بر اساس شرایط مشترک را میدهد و نتایج را به صورت یکپارچهتر و منظمتر برگرداند.
#SQL
@code_crafters
👍4❤1🔥1
۱۰ دستور Git👩💻 که هر برنامه نویسی باید بداند :
گیت یک بخش مهم از برنامهنویسی امروزه است (به خصوص اگر با یک تیم کار میکنید) و در صنعت نرمافزاری به طور گسترده استفاده میشود.
از آنجایی که تعداد زیادی دستور مختلف در گیت وجود دارد، تسلط بر گیت زمان میبرد. اما برخی از دستورات به طور متداولتر استفاده میشوند. در این مقاله، ۱۰ دستور Git رایجتر که هر برنامهنویس باید بداند را به اشتراک میگذاریم و توضیح میدهیم.
⚠️ برای درک این مقاله، باید مفاهیم پایه Git را بدانید.
۱.Git clone
دستور Git clone برای دانلود کردن کد موجود از یک مخزن مانند Github👩💻 یا Gitlab👩💻 و... استفاده میشود. به عبارت دیگر، Git clone در واقع یک کپی از آخرین نسخه پروژه در مخزن را بر روی کامپیوتر شما ذخیره میکند.
چندین روش برای دانلود کد وجود دارد، اما راه اتصال با استفاده از پروتکل HTTPS را انتخاب در پایین آورده ایم.
۲.Git branch
شاخهها (Branches) در دنیای گیت بسیار مهم هستند. با استفاده از شاخهها، چندین توسعهدهنده قادر خواهند بود به طور همزمان و موازی بر روی یک پروژه کار کنند. ما میتوانیم از دستور git branch برای ایجاد، لیست کردن و حذف شاخهها استفاده کنیم.
ساخت یک branch جدید :
این نیز یکی از پراستفادهترین دستورات گیت است. برای کار در یک شاخه، ابتدا باید به آن تغییر شاخه دهید. ما بیشتر از دستور git checkout برای تغییر از یک شاخه به شاخه دیگر استفاده میکنیم. همچنین میتوانیم از آن برای چک کردن فایلها و کامیتها نیز استفاده کنیم.
- تغییرات در شاخه فعلی شما باید قبل از تغییر شاخه، commit یا stash شوند.
- شاخهای که میخواهید به آن switch کنید باید در local شما وجود داشته باشد.
همچنین یک دستور میانبر وجود دارد که به شما امکان ایجاد و تغییر به یک شاخه را در یک مرحله میدهد.
به عبارت دیگر، با استفاده از این دستور، شاخه جدید ایجاد میشود و شما به طور خودکار بلافاصله به آن تغییر میدهید.
4.Git status
دستور Git status به ما تمام اطلاعات لازم درباره شاخه فعلی را ارائه میدهد.
آیا شاخه فعلی بروز است یا خیر
آیا چیزی برای commit، push یا pull وجود دارد یا خیر
آیا فایلها staged، unstaged یا untracked هستند یا خیر
آیا فایلها ایجاد شده، تغییر کرده یا حذف شدهاند
۵.Git add
وقتی یک فایل را ایجاد، تغییر یا حذف میکنیم، این تغییرات در local اتفاق میافتد و commit بعدی ما شامل نمیشوند (مگر اینکه تنظیمات را تغییر دهیم).
برای اضافه کردن تغییرات یک یا چند فایل به commit بعدی، باید از دستور git add استفاده کنیم.
برای اضافه کردن تنها یک فایل:
#Git
@Code_Crafters
گیت یک بخش مهم از برنامهنویسی امروزه است (به خصوص اگر با یک تیم کار میکنید) و در صنعت نرمافزاری به طور گسترده استفاده میشود.
از آنجایی که تعداد زیادی دستور مختلف در گیت وجود دارد، تسلط بر گیت زمان میبرد. اما برخی از دستورات به طور متداولتر استفاده میشوند. در این مقاله، ۱۰ دستور Git رایجتر که هر برنامهنویس باید بداند را به اشتراک میگذاریم و توضیح میدهیم.
۱.Git clone
دستور Git clone برای دانلود کردن کد موجود از یک مخزن مانند Github
چندین روش برای دانلود کد وجود دارد، اما راه اتصال با استفاده از پروتکل HTTPS را انتخاب در پایین آورده ایم.
git clone <https://name-of-the-repository-link>این کار باعث ایجاد یک کپی از پروژه در فضای کاری محلی شما میشود، به طوری که شما میتوانید با آن کار کنید و تغییرات لازم را اعمال کنید.
۲.Git branch
شاخهها (Branches) در دنیای گیت بسیار مهم هستند. با استفاده از شاخهها، چندین توسعهدهنده قادر خواهند بود به طور همزمان و موازی بر روی یک پروژه کار کنند. ما میتوانیم از دستور git branch برای ایجاد، لیست کردن و حذف شاخهها استفاده کنیم.
ساخت یک branch جدید :
git branch <branch-name>این دستور یک شاخه را به صورت local ایجاد میکند. برای ارسال شاخه جدید به مخزن (repository)، باید از دستور زیر استفاده کنید:
git push -u <remote> <branch-name>مشاهده لیست شاخه ها
git branch or git branch --listحذف یک شاخه
git branch -d <branch-name>۳. Git checkout
این نیز یکی از پراستفادهترین دستورات گیت است. برای کار در یک شاخه، ابتدا باید به آن تغییر شاخه دهید. ما بیشتر از دستور git checkout برای تغییر از یک شاخه به شاخه دیگر استفاده میکنیم. همچنین میتوانیم از آن برای چک کردن فایلها و کامیتها نیز استفاده کنیم.
git checkout <name-of-your-branch>برای تغییر موفقیتآمیز بین شاخهها، باید مراحل زیر را دنبال کنید:
- تغییرات در شاخه فعلی شما باید قبل از تغییر شاخه، commit یا stash شوند.
- شاخهای که میخواهید به آن switch کنید باید در local شما وجود داشته باشد.
همچنین یک دستور میانبر وجود دارد که به شما امکان ایجاد و تغییر به یک شاخه را در یک مرحله میدهد.
git checkout -b <name-of-your-branch>این دستور یک شاخه جدید را در local ایجاد میکند (-b به معنای branch است) و به طور مستقیم پس از ایجاد، به شاخه جدید تغییر میدهد.
به عبارت دیگر، با استفاده از این دستور، شاخه جدید ایجاد میشود و شما به طور خودکار بلافاصله به آن تغییر میدهید.
4.Git status
دستور Git status به ما تمام اطلاعات لازم درباره شاخه فعلی را ارائه میدهد.
git statusما میتوانیم اطلاعاتی مانند موارد زیر را جمعآوری کنیم:
آیا شاخه فعلی بروز است یا خیر
آیا چیزی برای commit، push یا pull وجود دارد یا خیر
آیا فایلها staged، unstaged یا untracked هستند یا خیر
آیا فایلها ایجاد شده، تغییر کرده یا حذف شدهاند
۵.Git add
وقتی یک فایل را ایجاد، تغییر یا حذف میکنیم، این تغییرات در local اتفاق میافتد و commit بعدی ما شامل نمیشوند (مگر اینکه تنظیمات را تغییر دهیم).
برای اضافه کردن تغییرات یک یا چند فایل به commit بعدی، باید از دستور git add استفاده کنیم.
برای اضافه کردن تنها یک فایل:
git add <file>برای اضافه کردن همه تغییرات و فایلهای جدید به یکباره، میتوانید از دستور زیر استفاده کنید:
git add -Aمهم: دستور git add تغییری در مخزن ایجاد نمیکند و تغییرات ذخیره نمیشوند تا زمانی که از دستور git commit استفاده کنیم.
#Git
@Code_Crafters
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5❤1🔥1
۶.Git commit
این شاید پراستفادهترین دستور Git باشد. هنگامی که به یک نقطه خاص در توسعه رسیدیم، میخواهیم تغییرات خود را ذخیره کنیم (ممکن است پس از انجام یک وظیفه یا رفع یک مشکل خاص).
دستور Git commit مانند قرار دادن یک نقطه کنترل در فرآیند توسعه است که در صورت نیاز میتوانید در آینده به آن بازگردید.
همچنین باید یک پیام کوتاه بنویسیم تا توضیح دهیم که چه چیزی را در کد توسعه داده یا تغییر دادهایم.
۷.Git push
بعد از commit کردن تغییرات خود، چیزی که باید بعد از آن انجام دهید، ارسال تغییرات به سرور است. دستور git push، commit های شما را به مخزن میفرستد.
۸.Git pull
دستور git pull برای دریافت بهروزرسانیها از مخزن استفاده میشود. این دستور ترکیبی از دستورات git fetch و git merge است، یعنی وقتی از git pull استفاده میکنیم، بهروزرسانیها را از مخزن دریافت میکند (git fetch) و بهصورت فوری تغییرات جدید را در local شما اعمال میکند (git merge).
۹.Git revert
گاهی اوقات نیاز داریم تغییراتی که اعمال کردهایم را لغو کنیم. روشهای مختلفی برای لغو تغییرات به صورت local یا remote (بسته به نیازمندیهای ما) وجود دارد، اما باید با دقت از این دستورات استفاده کرد تا از حذف ناخواسته جلوگیری کنیم.
یک روش ایمن برای لغو کامیتهای ما استفاده از دستور git revert است. برای مشاهده تاریخچه کامیتهای ما، ابتدا باید از دستور
سپس فقط باید کد هش را در کنار کامیتی که میخواهیم لغو کنیم مشخص کنیم.
مزیت استفاده از git revert این است که تاریخچه کامیتها را تغییر نمیدهد. این بدان معنی است که هنوز میتوانید تمامی کامیتها را در تاریخچه خود مشاهده کنید، حتی کامیتهایی که لغو شدهاند.
یک اقدام ایمن دیگر این است که همه چیز در سیستم local ما اتفاق میافتد مگر اینکه آنها را به مخزن remote آپلود کنیم. به همین دلیل استفاده از git revert ایمنتر است و روش ترجیحی برای لغو کامیتهاست.
۱۰. Git merge
وقتی توسعه در شاخهی خود را کامل کردهاید و همه چیز به خوبی کار میکند، مرحلهی نهایی ادغام شاخه با شاخهی اصلی (dev یا master) است. این کار با استفاده از دستور git merge انجام میشود.
در اصل، git merge شاخه شما را همراه با تمام کامیتهایش به شاخهی dev (یا master) ادغام میکند. مهم است که به یاد داشته باشید که ابتدا باید در شاخهی مورد نظر که میخواهید با شاخهی ویژگی خود ادغام کنید، حضور داشته باشید.
به عنوان مثال، وقتی میخواهید شاخهی ویژگی خود را با شاخهی dev ادغام کنید:
ابتدا باید به شاخهی dev تغییر شاخه دهید.
این ده دستور Git رایجترین دستورهایی هستند که در برنامهنویسی روزانه با آنها روبرو میشویم. هنوز بسیاری از موارد دیگر درباره Git وجود دارد که در مقالات جداگانه بعدی توضیح خواهیم داد.
#Git
@Code_Crafters
این شاید پراستفادهترین دستور Git باشد. هنگامی که به یک نقطه خاص در توسعه رسیدیم، میخواهیم تغییرات خود را ذخیره کنیم (ممکن است پس از انجام یک وظیفه یا رفع یک مشکل خاص).
دستور Git commit مانند قرار دادن یک نقطه کنترل در فرآیند توسعه است که در صورت نیاز میتوانید در آینده به آن بازگردید.
همچنین باید یک پیام کوتاه بنویسیم تا توضیح دهیم که چه چیزی را در کد توسعه داده یا تغییر دادهایم.
git commit -m "commit message"مهم: دستور git commit تغییرات شما را فقط به صورت local ذخیره میکند.
۷.Git push
بعد از commit کردن تغییرات خود، چیزی که باید بعد از آن انجام دهید، ارسال تغییرات به سرور است. دستور git push، commit های شما را به مخزن میفرستد.
git push <remote> <branch-name>با این حال، اگر شاخه شما به تازگی ایجاد شده است، شما همچنین باید شاخه را با دستور زیر آپلود کنید:
git push --set-upstream <remote> <name-of-your-branch>یا
git push -u origin <branch_name>مهم: دستور git push فقط تغییراتی را که commit شدهاند، آپلود میکند.
۸.Git pull
دستور git pull برای دریافت بهروزرسانیها از مخزن استفاده میشود. این دستور ترکیبی از دستورات git fetch و git merge است، یعنی وقتی از git pull استفاده میکنیم، بهروزرسانیها را از مخزن دریافت میکند (git fetch) و بهصورت فوری تغییرات جدید را در local شما اعمال میکند (git merge).
git pull <remote>این عملیات ممکن است باعث ایجاد تداخلها شود که باید به صورت دستی حل شوند.
۹.Git revert
گاهی اوقات نیاز داریم تغییراتی که اعمال کردهایم را لغو کنیم. روشهای مختلفی برای لغو تغییرات به صورت local یا remote (بسته به نیازمندیهای ما) وجود دارد، اما باید با دقت از این دستورات استفاده کرد تا از حذف ناخواسته جلوگیری کنیم.
یک روش ایمن برای لغو کامیتهای ما استفاده از دستور git revert است. برای مشاهده تاریخچه کامیتهای ما، ابتدا باید از دستور
git log --oneline
استفاده کنیم.سپس فقط باید کد هش را در کنار کامیتی که میخواهیم لغو کنیم مشخص کنیم.
git revert <hash-code>دستور git revert تغییرات کامیت مورد نظر را لغو میکند، اما یک کامیت جدید بدون حذف کامیت قبلی ایجاد میکند.
مزیت استفاده از git revert این است که تاریخچه کامیتها را تغییر نمیدهد. این بدان معنی است که هنوز میتوانید تمامی کامیتها را در تاریخچه خود مشاهده کنید، حتی کامیتهایی که لغو شدهاند.
یک اقدام ایمن دیگر این است که همه چیز در سیستم local ما اتفاق میافتد مگر اینکه آنها را به مخزن remote آپلود کنیم. به همین دلیل استفاده از git revert ایمنتر است و روش ترجیحی برای لغو کامیتهاست.
۱۰. Git merge
وقتی توسعه در شاخهی خود را کامل کردهاید و همه چیز به خوبی کار میکند، مرحلهی نهایی ادغام شاخه با شاخهی اصلی (dev یا master) است. این کار با استفاده از دستور git merge انجام میشود.
در اصل، git merge شاخه شما را همراه با تمام کامیتهایش به شاخهی dev (یا master) ادغام میکند. مهم است که به یاد داشته باشید که ابتدا باید در شاخهی مورد نظر که میخواهید با شاخهی ویژگی خود ادغام کنید، حضور داشته باشید.
به عنوان مثال، وقتی میخواهید شاخهی ویژگی خود را با شاخهی dev ادغام کنید:
ابتدا باید به شاخهی dev تغییر شاخه دهید.
git checkout devقبل از ادغام، باید شاخه dev خود را بهروز کنید.
git fetchدر نهایت، میتوانید شاخهی خود را به شاخهی dev ادغام کنید.
git merge <branch-name>راهنمایی: مطمئن شوید که شاخه dev شما دارای آخرین نسخه است قبل از ادغام شاخههایتان، در غیر این صورت ممکن است با تداخلها یا مشکلات دیگری روبهرو شوید.
این ده دستور Git رایجترین دستورهایی هستند که در برنامهنویسی روزانه با آنها روبرو میشویم. هنوز بسیاری از موارد دیگر درباره Git وجود دارد که در مقالات جداگانه بعدی توضیح خواهیم داد.
#Git
@Code_Crafters
👍5🔥1👏1
یکی از موضوعات قابل اهمیت امروز بچههای بکند و تا حدودی دواپس کارها بحث مانیتورینگ سرور و زیر ساخت می باشد
امروز اکثر شرکتها این موضوع رو الزام میدونن و بسیار قابل توجه نیز میباشد
یکی از ابزارهای معروف و رایگان این حوزه هم grafana هست که نه تنها در زیر ساخت و سرور که حتی در حوزه مالی و بازارهای تحلیلی هم جایگاه ویژه خود را دارد در لینک زیر یک آموزش براتون قرار میدم که در تایم کوتاهی و به زبان ساده سریعا شمارو با راه اندازی و کانفیگ این ابزار آشنا میکنه
بدون فیلترشکن وارد وب سایت بشید
https://git.ir/udemy-grafana-beginners-to-advance-crash-course-2021/
@code_crafters
امروز اکثر شرکتها این موضوع رو الزام میدونن و بسیار قابل توجه نیز میباشد
یکی از ابزارهای معروف و رایگان این حوزه هم grafana هست که نه تنها در زیر ساخت و سرور که حتی در حوزه مالی و بازارهای تحلیلی هم جایگاه ویژه خود را دارد در لینک زیر یک آموزش براتون قرار میدم که در تایم کوتاهی و به زبان ساده سریعا شمارو با راه اندازی و کانفیگ این ابزار آشنا میکنه
بدون فیلترشکن وارد وب سایت بشید
https://git.ir/udemy-grafana-beginners-to-advance-crash-course-2021/
@code_crafters
👍6❤1🔥1
Coding Clean, Reliable, and Safe REST APIs with ASP.NET Core 8: Develop Robust Minimal APIs with .NET 8
🔥4❤🔥1👏1💩1👾1
CodeCrafters
یکی از مهم ترین بخش های زبان کوئری نویسی SQL قسمت WHERE JOIN هست از هر دو میتوان برای کوئری زدن روی دو و یا چند جدول استفاده کرد اما تفاوت هایی با هم خواهند داشت با ذکر یک مثال این مورد را بیشتر توضیح میدهیم. دو جدول فرضی را در نظر بگیرید ۱. جدول User با…
Telegraph
Postgresql-join-where
پیش از این JOIN و WHERE را با هم مقایسه کردیم و گفتیم که JOIN از لحاظ قدرت و عملکرد بهتری دارد و استفاده از آن توصیه میشود .(در مورد ترکیب دو جدول !) در این مقاله با کمی جزيیات بیشتر به JOIN میپردازیم در SQL، چهار نوع اصلی از JOIN وجود دارند. INNER JOIN LEFT…
❤2👍1🔥1
پروتکل SMTP (Simple Mail Transfer Protocol) یک پروتکل استاندارد برای ارسال ایمیل بین سرورها است. این پروتکل به عنوان یکی از اصلیترین پروتکلها در ارسال و تحویل ایمیل در اینترنت استفاده میشود.
عملکرد SMTP به صورت زیر است:
1. برقراری ارتباط: ارتباط بین کلاینت ایمیل (نرمافزار ایمیل شما) و سرور SMTP ارائه دهنده خدمات ایمیل شما برقرار میشود.
2. هماهنگی: کلاینت ایمیل شروع به ارسال دستورات SMTP میکند و سرور SMTP پاسخهای مناسب را ارسال میکند.
3. تبادل اطلاعات ایمیل: پس از برقراری ارتباط و هماهنگی، کلاینت ایمیل شروع به ارسال اطلاعات ایمیل میکند. این اطلاعات شامل آدرس فرستنده، آدرس گیرنده، عنوان، متن و هر پیوستی است.
4. تحویل ایمیل: سرور SMTP مقصد پس از دریافت اطلاعات ایمیل، آن را بررسی میکند و سپس در صندوق پستی مقصد ذخیره میکند. در صورت وجود مشکلی مانند آدرس ایمیل گیرنده نادرست، سرور SMTP مقصد پیام خطا را به سرور SMTP فرستنده میفرستد.
5. پایان ارتباط: پس از انجام تحویل ایمیل، ارتباط بین کلاینت ایمیل و سرور SMTP قطع میشود و عملیات ارسال ایمیل به پایان میرسد.
پروتکل SMTP یک پروتکل ساده و متن باز است که به صورت متمرکز بر روی ارسال و تحویل ایمیل تمرکز دارد. اما برای امنیت و مدیریت ایمیل، پروتکلهایی مانند POP (Post Office Protocol) و IMAP (Internet Message Access Protocol) نیز استفاده میشوند.
@Code_Crafters
عملکرد SMTP به صورت زیر است:
1. برقراری ارتباط: ارتباط بین کلاینت ایمیل (نرمافزار ایمیل شما) و سرور SMTP ارائه دهنده خدمات ایمیل شما برقرار میشود.
2. هماهنگی: کلاینت ایمیل شروع به ارسال دستورات SMTP میکند و سرور SMTP پاسخهای مناسب را ارسال میکند.
3. تبادل اطلاعات ایمیل: پس از برقراری ارتباط و هماهنگی، کلاینت ایمیل شروع به ارسال اطلاعات ایمیل میکند. این اطلاعات شامل آدرس فرستنده، آدرس گیرنده، عنوان، متن و هر پیوستی است.
4. تحویل ایمیل: سرور SMTP مقصد پس از دریافت اطلاعات ایمیل، آن را بررسی میکند و سپس در صندوق پستی مقصد ذخیره میکند. در صورت وجود مشکلی مانند آدرس ایمیل گیرنده نادرست، سرور SMTP مقصد پیام خطا را به سرور SMTP فرستنده میفرستد.
5. پایان ارتباط: پس از انجام تحویل ایمیل، ارتباط بین کلاینت ایمیل و سرور SMTP قطع میشود و عملیات ارسال ایمیل به پایان میرسد.
پروتکل SMTP یک پروتکل ساده و متن باز است که به صورت متمرکز بر روی ارسال و تحویل ایمیل تمرکز دارد. اما برای امنیت و مدیریت ایمیل، پروتکلهایی مانند POP (Post Office Protocol) و IMAP (Internet Message Access Protocol) نیز استفاده میشوند.
@Code_Crafters
❤2👍2👎1💋1😘1
در خصوص بایدها و نبایدهای اجرا کردن دیتابیسها توسط k8s توضیحات جالب و البته کوتاه این لینک مفید می باشد
ذکر این موضوع قابل مطرح می باشد که لینک زیر فقط و فقط مختص به دواپس و کوبر نیست دوستان دیگه با خوندن اون متوجه برخی حالتهای پیشرفته و ابزارهای پیشرفتهای برای پایگاه دادهها میشن که در لینکهای انتزاعی درون متن جای داده شده
https://cloud.google.com/blog/products/databases/to-run-or-not-to-run-a-database-on-kubernetes-what-to-consider
#k8s
#postgresql
@code_crafters
ذکر این موضوع قابل مطرح می باشد که لینک زیر فقط و فقط مختص به دواپس و کوبر نیست دوستان دیگه با خوندن اون متوجه برخی حالتهای پیشرفته و ابزارهای پیشرفتهای برای پایگاه دادهها میشن که در لینکهای انتزاعی درون متن جای داده شده
https://cloud.google.com/blog/products/databases/to-run-or-not-to-run-a-database-on-kubernetes-what-to-consider
#k8s
#postgresql
@code_crafters
Google Cloud Blog
To run or not to run a database on Kubernetes: What to consider | Google Cloud Blog
It can be a challenge to run a database in a distributed container environment like Kubernetes. Try these tips and best practices.
👍3
وب سایت کانال https://codecrafters.ir
لیست هشتکها در کانال رو در زیر براتون خواهم گذاشت و آپدیت خواهد شد
#design_patterns الگوهای طراحی
#postgresql پستگرس
#k8s کوبرنتیز
#agile اجایل
#scrum
#algorithm الگوریتم
#video
#meeting متینگ
#principles اصول کدنویسی
#project_managment_system مدیریت تیم
#free خارج از مبحث کامپیوتر
#app برنامههای کاربردی
#Git #actions مباحث مربوط به گیت و گیتلب
#conda #env کار با
#Docker مباحث مربوط به داکر
#AI #ML مباحث هوش مصنوعی
#book معرفی کتاب
#monitoring بررسی وضعیت سیستم و کد
#concurrency همزمانی کتاب grokking concurrency
#blovkchain #web3
#DDD #domain_driven_design
#BDD #behavior_driven_development
#soa #sso #microservice
@Code_Crafters
Git Hub:
https://github.com/CodeCrafters-ir/
لیست هشتکها در کانال رو در زیر براتون خواهم گذاشت و آپدیت خواهد شد
#design_patterns الگوهای طراحی
#postgresql پستگرس
#k8s کوبرنتیز
#agile اجایل
#scrum
#algorithm الگوریتم
#video
#meeting متینگ
#principles اصول کدنویسی
#project_managment_system مدیریت تیم
#free خارج از مبحث کامپیوتر
#app برنامههای کاربردی
#Git #actions مباحث مربوط به گیت و گیتلب
#conda #env کار با
#Docker مباحث مربوط به داکر
#AI #ML مباحث هوش مصنوعی
#book معرفی کتاب
#monitoring بررسی وضعیت سیستم و کد
#concurrency همزمانی کتاب grokking concurrency
#blovkchain #web3
#DDD #domain_driven_design
#BDD #behavior_driven_development
#soa #sso #microservice
@Code_Crafters
Git Hub:
https://github.com/CodeCrafters-ir/
👍1
CodeCrafters
یکی از موضوعات قابل اهمیت امروز بچههای بکند و تا حدودی دواپس کارها بحث مانیتورینگ سرور و زیر ساخت می باشد امروز اکثر شرکتها این موضوع رو الزام میدونن و بسیار قابل توجه نیز میباشد یکی از ابزارهای معروف و رایگان این حوزه هم grafana هست که نه تنها در زیر…
پیکربندی و اجرا کردن توسط داکر برای سه پلتفرم
grafana,telegraf,influxdb
که با اجرا کردن اون میتونید راحت هر سه تا پلتفرم و اپلیکیشن رو راحت و یکجا بالا بیارید
تنظیمات وتوضیحات مربوط به nginx رو هم براتون گذاشتم
https://github.com/CodeCrafters-ir/sysadmin_monitoring
#devops
#monitoring
@code_crafters
grafana,telegraf,influxdb
که با اجرا کردن اون میتونید راحت هر سه تا پلتفرم و اپلیکیشن رو راحت و یکجا بالا بیارید
تنظیمات وتوضیحات مربوط به nginx رو هم براتون گذاشتم
https://github.com/CodeCrafters-ir/sysadmin_monitoring
#devops
#monitoring
@code_crafters
GitHub
GitHub - CodeCrafters-ir/sysadmin_monitoring
Contribute to CodeCrafters-ir/sysadmin_monitoring development by creating an account on GitHub.
👍4👎1🔥1👏1
Media is too big
VIEW IN TELEGRAM
❤4🔥3👎1🥰1
بچههایی که با سرورهای زیاد و مختلف کار میکنند و نیاز دارن که در هر شرایط و محیطی بتونن راحت و سریع به سروراشون دسترسی داشته باشند برنامه زیر رو بهتون توصیه میکنم جهت نصب روی اندروید
https://play.google.com/store/apps/details?id=com.server.auditor.ssh.client
#app
@code_crafters
https://play.google.com/store/apps/details?id=com.server.auditor.ssh.client
#app
@code_crafters
Google Play
Termius - Modern SSH Client - Apps on Google Play
Beautifully designed terminal with built-in SSH, SFTP, Telnet and Mosh
👍4👎1
CodeCrafters pinned «وب سایت کانال https://codecrafters.ir لیست هشتکها در کانال رو در زیر براتون خواهم گذاشت و آپدیت خواهد شد #design_patterns الگوهای طراحی #postgresql پستگرس #k8s کوبرنتیز #agile اجایل #scrum #algorithm الگوریتم #video #meeting متینگ #principles…»
آوا قهرمانی
طفل معصوم چهار ساله ارومیهای دیشب بخواب ابدی رفت
آوای عزیز ایران چندماه تحت شکنجه نامادری بود و یک عمر سنگدلی و نامهربانی مادر خود
عدم امضای قانون حمایت از حقوق کودکان در مجلس ،منجر میشود تا روز به روز شاهد اینگونه خشونتها باشیم
آوای عزیز اعضای بدن خود را اهدا کرد تا نماد زندگی و شاد زیستن کودکان ایران باشد، هرچند که خود کودکیش را اتمام نکرد
آوای مظلوم ایران نام و یادت جاودانه باشد 💔💔💔🥀🥀🥀
طفل معصوم چهار ساله ارومیهای دیشب بخواب ابدی رفت
آوای عزیز ایران چندماه تحت شکنجه نامادری بود و یک عمر سنگدلی و نامهربانی مادر خود
عدم امضای قانون حمایت از حقوق کودکان در مجلس ،منجر میشود تا روز به روز شاهد اینگونه خشونتها باشیم
آوای عزیز اعضای بدن خود را اهدا کرد تا نماد زندگی و شاد زیستن کودکان ایران باشد، هرچند که خود کودکیش را اتمام نکرد
آوای مظلوم ایران نام و یادت جاودانه باشد 💔💔💔🥀🥀🥀
💔10😢3🕊3
دو ویژگی کاربردی در گیتلب برای توسعه دهندگان
Merge request
زمانی که در یک پروژه بصورت تیمی کار میکنید و یک باگ رو شناسایی میکنید و شروع میکنید به کار کردن روی ان لازم است اعضای تیم توسعه رو در جریان قرار بدهید که در این خصوص آگاه باشند و نظرات خود را در صورت لزوم مطرح کنند ،برای اینکار از ویژگی merge request استفاده میکنیم که اعضای تیم بهش دسترسی دارن ،راجبش صحبت میکنند و ...
Issuess
این ویژگی هم مانند ویژگی بالاست با چند تفاوت بیشتر ، اول اینکه مختص تیم توسعه نیست و افراد بیرون از تیم هم بهش دسترسی دارند و یا حتی میتونند خودشون یک مبحث رو شروع کنند، مختص به باگ نیست بلکه میتواند موضوعات مختلفی رو شامل بشه مانند: پیشنهاد ویژگی جدید در پروژه، پرسش راجب به پروژه، پیشنهاد در بهبود بخشی از کد، یا حتی گزارش یک مشکل یا باگ
در لینک زیر میتونید راجب این موضوعات بیشتر بخوانید
https://pvlearn.com/product/merge-requests-gitlab/
#Git
@code_crafters
Merge request
زمانی که در یک پروژه بصورت تیمی کار میکنید و یک باگ رو شناسایی میکنید و شروع میکنید به کار کردن روی ان لازم است اعضای تیم توسعه رو در جریان قرار بدهید که در این خصوص آگاه باشند و نظرات خود را در صورت لزوم مطرح کنند ،برای اینکار از ویژگی merge request استفاده میکنیم که اعضای تیم بهش دسترسی دارن ،راجبش صحبت میکنند و ...
Issuess
این ویژگی هم مانند ویژگی بالاست با چند تفاوت بیشتر ، اول اینکه مختص تیم توسعه نیست و افراد بیرون از تیم هم بهش دسترسی دارند و یا حتی میتونند خودشون یک مبحث رو شروع کنند، مختص به باگ نیست بلکه میتواند موضوعات مختلفی رو شامل بشه مانند: پیشنهاد ویژگی جدید در پروژه، پرسش راجب به پروژه، پیشنهاد در بهبود بخشی از کد، یا حتی گزارش یک مشکل یا باگ
در لینک زیر میتونید راجب این موضوعات بیشتر بخوانید
https://pvlearn.com/product/merge-requests-gitlab/
#Git
@code_crafters
پی وی لرن - آموزش برنامه نویسی و طراحی وب سایت
آموزش ادغام درخواست ها در گیت لب GitLab - آموزش Merge Requests در گیت لب
آموزش ادغام درخواست ها در گیت لب GitLab - درخواست ادغام یا Merge Requests می تواند برای تبادل کد بین افراد دیگری که در یک پروژه عضو کرده اید و نیز گفتگو و بحث میان آن ها مورد استفاده قرار گیرد.
👍5❤1🔥1