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

پست پین رو بخونید
https://news.1rj.ru/str/dev_perfects/455


ارتباط:
https://news.1rj.ru/str/HidenChat_Bot?start=936082426
Download Telegram
ما توی CoreUtils یک دستوری داریم به اسم ] که احتمالاً خیلی‌ها دیده باشیدش و نمیدونید چیه.


دستور ] که به عنوان test نیز شناخته میشه، یکی از دستورات پایه‌ای در GNU Coreutils هستش که برای ارزیابی عبارات شرطی استفاده می‌شه. این دستور به شما امکان این رو میده تا شرایط مختلفی را بررسی کنید، مثل وجود فایل‌ها، مقایسه رشته‌ها و مقایسه اعداد.

چرا نوشته شده همچین چیزی؟

دستور ] به منظور ساده‌سازی و تسهیل نوشتن اسکریپت‌های پوستهٔ (Shell Scripts) طراحی شده. با استفاده از این دستور، کاربر میتونه به راحتی شرایط مختلف را بررسی کنه و بر اساس نتایجشون، جریان اجرای برنامه را کنترل بکنه. این موضوع به ویژه توی اسکریپت‌های خودکارسازی و مدیریت سیستم بسیار مفید هستش.

چطور میشه ازش استفاده کرد؟

من یک مثال ساده از عملکردش رو براتون توی این شل‌اسکریپت زیر میارم:
num1=10
num2=5
[ "$num1" -gt "$num2" ] && echo "$num1 is greater than $num2"
[ "$num2" -gt "$num1" ] && echo "$num2 is greater than $num1"

پ.ن: gt یعنی greater than

اگر این چیزی که من نوشتم رو اجرا کنید، می‌بینید که اولین شرط اجرا میشه چون منطقاً عدد ۱۰ از عدد ۵ بزرگتره، بنابراین شرط دوم که
[ "$num2" -gt "$num1" ] && echo "$num2 is greater than $num1"


نادیده گرفته میشه و اجرا نمیشه :)

از اینجا می‌تونید کدمنبع (سورس‌کد) این دستور رو در زبان C و از اینجا هم در Rust بخونید.

@SohrabContents
Forwarded from 🎄 یک برنامه نویس تنبل (The Lazy 🌱 Raymond)
🔶 یه مشکلی که گیت هاب دارد که اگر از خود مخزن مستقیم فایل ها ویرایش کنید و کامیت کنید و بعد از مدتی کامیت دوم با دستورات گیت در ترمینال بزنید با خطا مواجه میشید.

خطای زیر:

To https://github.com/Rayiumir/TaskLaravel.git
! [rejected] main -> main (fetch first)
error: failed to push some refs to 'https://github.com/Rayiumir/TaskLaravel.git'
hint: Updates were rejected because the remote contains work that you do
hint: not have locally. This is usually caused by another repository pushing
hint: to the same ref. You may want to first integrate the remote changes
hint: (e.g., 'git pull ...') before pushing again.
hint: See the 'Note about fast-forwards' in 'git push --help' for details.


با دستور git push -f origin main فلگ -f مجبورید کامیت قبلی رو پاک کنید تا بتوانید کامیت جدید ثبت کنید.

@TheRaymondDev
Forwarded from Saeed
📶⭕️ شهرام وی پی ان، پرسرعت ترین و با کیفیت ترین فیلترشکن حال حاضر فقط انتخاب حرفه ای ها

⭐️ جز سه VPN برتر ایران

🛜🛜🛜🛜🛜🛜🛜🛜🛜

🛡 برخی از قابلیت ها:
😄. نیم‌بها کردن بسته اینترنت
😄. بلاک کردن تبلیغات یوتیوب
😄. لوکیشنهای متنوع 🇦🇪 🇦🇲 🇬🇧 🇺🇸 🇩🇪 🇳🇱
😄. افزایش سرعت اینترنت
😄. دارای سرورهای مخصوص گیم و ترید

🛒خرید و تحویل آنی از طریق پشتیبانی:

💖@Shari_M888

💖@Fati_M888

کانال ما:

🔵@Shahram_VPN
🔵@Shahram_VPN
🔵@Shahram_VPN
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from Linuxor ?
خلاصه امروز توییتر کامیونیتی برنامه نویسی و کامپیوتر :

یه نفر یه توییت زده بود که "من از ۱۰ سالگی دارم کد نویسی میکنم تا ۲۵ سالگیم نتونستم با برنامه نویسی ماشین بخرم.
دوستم یه بوتیک تو ۱۸ سالگی زد الان ۲۷ سالشه هم خونه و چندتا ماشین داره."

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

پس هیچ وقت از تکنیکالی خفن تر کردن خودتون و بالا بردن پتانسیلتون پشیمون نشین، اگه پول هم بخواین بعدا با چند تا جابجایی جای درست خودتونو پیدا می‌کنین و اون کاغذم بدست میارین و باهاش خودتونو باد می‌زنین.

@Linuxor
‏اگه خیلی لبه تکنولوژی زندگی می‌کنید و معماری مایکروسرویس و سرورلس براتون جالب بوده حتما یه نگاه به مفهوم تازه functionless بندازید. حذف برنامه نویسی جایی که واقعا کد زدن لازم نیست از اهداف این روشه

@DevTwitter | <مر آرام/>
Forwarded from Gopher Academy
🔵 عنوان مقاله
Master the Fullstack

🟢 خلاصه مقاله:
این مقاله به بررسی مسیر یادگیری جامعی پرداخته که به شما کمک می‌کند تا توانایی‌های خود را در زمینه سرورها گسترش دهید. در این مسیر، شما با نحوه ساخت API‌ها، بنای ظروف (کانتینرها)، استقرار کد، راه‌اندازی سرورها و موارد دیگر آشنا خواهید شد. از مراحل ابتدایی شامل طراحی و پیاده‌سازی API‌هایی که به عنوان پل ارتباطی بین کاربر نهایی و پایگاه‌داده عمل می‌کنند، گرفته تا پیشرفته‌ترین موضوعات مانند ساخت و مدیریت کانتینرها برای بهبود دپلومانسی موثر و کاربردی، همه و همه در این مقاله به تفصیل شرح داده شده‌اند. همچنین، شامل اطلاعاتی درخصوص انتخاب صحیح سخت‌افزار و نرم‌افزار لازم برای بهینه‌سازی عملکرد سرور نیز می‌شود و با تکیه بر آخرین فناوری‌ها و ابزارهای موجود، راه‌هایی برای تسهیل مدیریت و نگهداری سرورها ارائه می‌دهد.

🟣لینک مقاله:
https://golangweekly.com/link/163963/web


👑 @gopher_academy
خب توی این قسمت یک نیم‌نگاهی انداختیم به این که چطور می‌تونیم پوستهٔ بش رو شخصی‌سازی کنیم.


تماشا از یوتوب


تماشا از پیرتوب


@SohrabContents
لایه ۴: لایه انتقال (Transport Layer) 🚛

لایه Transport یکی از مهم‌ترین بخش‌های مدل OSI هست که وظیفه مدیریت انتقال داده بین دستگاه‌ها و اطمینان از ارتباط پایدار و مؤثر رو بر عهده داره. این لایه تضمین می‌کنه که داده‌ها به درستی به مقصد برسن، ترتیبشون حفظ بشه، و در صورت وجود خطا، اصلاح بشن.

وظایف اصلی لایه انتقال

📦 تقسیم‌بندی داده‌ها (Segmentation):
وقتی اپلیکیشنی قصد ارسال داده داره، این داده‌ها به قطعات کوچکتری به نام سگمنت تقسیم می‌شن. هر سگمنت یک هدر مخصوص داره که شامل اطلاعاتی مثل شماره ترتیبی و آدرس پورت می‌شه.

🧩 بازسازی داده‌ها (Reassembly):
در مقصد، لایه انتقال سگمنت‌ها رو با استفاده از شماره ترتیبی که در هدرشون ذخیره شده، به ترتیب کنار هم قرار می‌ده و داده اصلی رو بازسازی می‌کنه.

⚠️ کنترل خطا (Error Control):
لایه انتقال با استفاده از تکنیک‌هایی مثل Checksum صحت داده‌ها رو بررسی می‌کنه. اگه خطایی در داده‌ها تشخیص داده بشه، درخواست ارسال مجدد سگمنت انجام می‌شه.

🚦 کنترل جریان (Flow Control):
وقتی فرستنده سریع‌تر از گیرنده داده ارسال می‌کنه، ممکنه گیرنده دچار مشکل بشه. لایه انتقال سرعت ارسال رو با استفاده از Sliding Window تنظیم می‌کنه.

🔗 مدیریت ارتباط (Connection Management):
لایه انتقال می‌تونه ارتباط رو به دو صورت Connection-Oriented (مانند TCP) یا Connectionless (مانند UDP) مدیریت کنه. در ارتباطات Connection-Oriented، قبل از ارسال داده‌ها یک ارتباط پایدار برقرار می‌شه.

پروتکل‌های کلیدی در لایه انتقال

TCP (Transmission Control Protocol):
💡 TCP یک پروتکل Connection-Oriented و Reliable هست که برای ارتباطات حساس به دقت استفاده می‌شه.

ویژگی‌های کلیدی:

ارتباط مبتنی بر اتصال:

فرآیند Three-Way Handshake شامل مراحل زیره:


SYN: درخواست اتصال از فرستنده.
SYN-ACK: پاسخ گیرنده.
ACK: تأیید فرستنده.

شماره‌گذاری سگمنت‌ها:
🔢 ‏TCP به هر سگمنت یک شماره منحصر‌به‌فرد اختصاص می‌ده تا داده‌ها در مقصد به درستی بازسازی بشن.

کنترل جریان:
با استفاده از Sliding Window، TCP حجم داده‌ای که می‌تونه ارسال بشه رو تنظیم می‌کنه.

کنترل خطا:
با استفاده از Checksum و Acknowledgment صحت داده‌ها بررسی و تضمین می‌شه.


UDP (User Datagram Protocol):
‏ UDP یک پروتکل Connectionless و Unreliable هست که برای ارتباطات سریع طراحی شده.
ویژگی‌های کلیدی:

بدون اتصال:
‏UDP داده‌ها رو بدون ایجاد ارتباط پایدار ارسال می‌کنه.

بدون تضمین تحویل:
اگه داده‌ای گم بشه یا خراب بشه، UDP هیچ تضمینی برای ارسال مجدد نداره.

سرعت بالا:
چون کنترل جریان یا تصحیح خطا نداره، سرعت انتقال بالاتره.

🎛 پورت‌ها و شماره‌گذاری در لایه انتقال
پورت‌ها اعدادی ۱۶بیتی هستن که ارتباط بین اپلیکیشن‌ها و دستگاه‌ها رو مدیریت می‌کنن.

پورت‌های شناخته‌شده (Well-Known Ports):
📌 این پورت‌ها اعداد بین ۰ تا ۱۰۲۳ هستن و به پروتکل‌های معروف اختصاص داده شدن.
‏HTTP: پورت 80
‏HTTPS: پورت 443
‏FTP: پورت 21

پورت‌های رجیسترشده (Registered Ports):
🔒 اعداد بین ۱۰۲۴ تا ۴۹۱۵۱ که برای اپلیکیشن‌های خاص رزرو می‌شن.

پورت‌های داینامیک (Dynamic Ports):
🔄 اعداد بین ۴۹۱۵۲ تا ۶۵۵۳۵ که برای ارتباطات موقت استفاده می‌شن.

جمع‌بندی
لایه Transport نقش حیاتی در تضمین انتقال داده‌ها بین دستگاه‌ها داره. انتخاب پروتکل مناسب به نیازهای اپلیکیشن شما بستگی داره:
TCP برای ارتباطات حساس به دقت.
UDP برای ارتباطات حساس به سرعت.

#⃣ #network



🥷 CHANNEL | GROUP
Forwarded from  (Amir Hossein 'Amiria' Maher)
دنبال یادگیری دیزاین پترن هستی؟ اونم فارسی؟ اونم اکثر زبان ها مثل پایتون، پی اچ پی و..؟

بیا بگیر برو جوان ایرانی:

https://github.com/3lf/design-patterns-for-humans

@DevTwiiter | <Milwad Khosravi/>
Forwarded from mnr tech
در خیلی مواقع ممکنه شما به عنوان برنامه نویس پروژه ها و ریپو های زیادی روی سیستمتون داشته باشین. حالا فرض کنید میخواین سیستم عاملتون رو عوض کنید و خوب قطعا این ریپو ها رو توی گیت دارین ولی چیزی که توی گیت نیست فایل های env هست. اگر تعداد پروژه ها زیاد باشه (مثلا در مورد خودم شاید حدود ۵۰ تا پروژه داشته باشم) کپی و انتقال فایل های env سخت میشه.

با کمک اسکریپت زیر میتونید دایرکتوری پروژه هاتون رو به صورت تو در تو بررسی کنید و هر فایل env رو با توجه به ساختار دایرکتوری والد کپی کنید.

#!/bin/bash

# دایرکتوری پروژه‌ها
SOURCE_DIR="$HOME/prj" # مسیر دایرکتوری اصلی را اینجا تغییر دهید
# دایرکتوری مقصد
DEST_DIR="$HOME/env_backups"

# بررسی وجود دایرکتوری مقصد
mkdir -p "$DEST_DIR"

# جستجوی فایل‌های .env و کپی با حفظ ساختار دایرکتوری
find "$SOURCE_DIR" -type f -name ".env" | while read -r env_file; do
# مسیر نسبی فایل .env نسبت به دایرکتوری اصلی
relative_path="${env_file#$SOURCE_DIR/}"
# مسیر مقصد با ساختار دایرکتوری
dest_path="$DEST_DIR/$relative_path"
# ایجاد دایرکتوری‌های والد
mkdir -p "$(dirname "$dest_path")"
# کپی فایل به مقصد
cp "$env_file" "$dest_path"
echo "Copied: $env_file -> $dest_path"
done

echo "Backup completed. All .env files are copied to $DEST_DIR."


کافیه یک فایل بش بسازین کدهای بالا رو توش بنویسید، آدرس های مورد نظر رو تنظیم کنید و فایل بش رو اجرا کنید.
Forwarded from 🎄 یک برنامه نویس تنبل (The Lazy 🌱 Raymond)
۱۲۰۰ تایی شدیم 🎉🥂🥳

از حمایت هاتون مچکرم و همگی‌تون خیلی خوش آومدید 🥂🍾

@TheRaymondDev
Forwarded from Gopher Academy
🔵 عنوان مقاله
betteralign 0.6: Make Your Programs Use Less Memory.. Maybe

🟢 خلاصه مقاله:
این مقاله به ابزاری جدید می‌پردازد که با هدف کاهش مصرف حافظه در زبان برنامه‌نویسی Go طراحی شده است. این ابزار، که یک شاخه از ابزار fieldalignment موجود در Go است، از طریق بازآرایی فیلدهای موجود در ساختارها (structs) کار می‌کند. تفاوت‌های اصلی این ابزار با نسخه اصلی شامل عدم بررسی فایل‌های تولیدی یا تست، پرش از ساختارهایی که به صورت خاص مشخص شده‌اند یا دارای فیلدهای ناشناس هستند، و نگهداشتن کامنت‌ها در کد است. این بهبودها به منظور افزایش تجربه توسعه‌دهندگان (DX) ارائه شده است. استفاده از این ابزار می‌تواند به توسعه‌دهندگان کمک کند تا با بازسازی ساختارها، بهینه‌سازی مصرف حافظه را در برنامه‌های خود اعمال کنند.

🟣لینک مقاله:
https://golangweekly.com/link/163987/web


👑 @gopher_academy
Forwarded from Milad Nouri(ツ) میلاد نوری
75836 Document.pdf
3.7 MB
شرکت ارتباطات زیرساخت، یک گزارش از حمله‌های DDos به زیرساخت‌های ایران در پاییز ۱۴۰۳ را منتشر کرده است.

🔗 فایل پی‌دی‌اف این گزارش پیوست شده است.

📈 خلاصه این گزارش (حمله‌های DDoS از یک مهر تا سی آذر ۱۴۰۳):

- تعداد حمله‌ها: به صورت میانگین روزانه ۶۳۵ حمله، مجموعا ۵۷,۲۱۸ حمله

- حجم حمله‌ها: میانگین ۳۶.۴۳ گیگابایت بر ثانیه و مجموعا ۱۲.۵۸ پتابایت در کل پاییز

- میانگین مدت زمان حمله‌ها: ۴دقیقه و ۳۷ ثانیه

- طولانی‌ترین حمله: ۴ روز و ۹ ساعت و ۵۰ دقیقه

- بیشترین تعداد حمله هم‌زمان: ۱۴۸ حمله

- منابع حمله‌ها: ۶۴ درصد حملات از ۱۰ کشور، بیش از ۱۵ درصد از روسیه، سپس اندونزی (۱۰٪) و اوکراین (۵٪)

‌- روش‌ها: از هر ۱۰۰ حمله ۳۵ حمله (۳۵٪) از طریق شبکه دستگاه‌های آلوده (Bot Pool)
‌‌
- هدف‌های با بیشترین حمله‌ها:
- ۱۸٪: شرکت‌های اینترنت سیار
- ۱۷٪: کسب‌وکارهای اینترنتی
- ۱۴٪: شرکت‌های اینترنت ثابت

- مقاصد پرحمله: ۵۰۰ مقصد بیش از ۲۵۰ بار مورد حمله قرار گرفتند.

- حمله‌های کوتاه و کم‌حجم: بیشترین حملات در محدوده زیر ۲ گیگابایت بر ثانیه و کمتر از ۵ دقیقه

- سرویس‌های آسیب‌پذیر: اپراتورهای همراه، کسب‌وکارهای اینترنتی، اپراتورهای ثابت و درگاه‌های خدمات آنلاین

*توضیح DDoS: حمله‌ای سایبری که با ارسال ترافیک کاذب، سرویس‌ها و وب‌سایت‌ها را مختل می‌کند و مانع ارایه خدمات به کاربرهای واقعی می‌شود.

⚠️ نقش دستگاه‌های آلوده: بسیاری از این حملات با استفاده از دستگاه‌های آلوده کاربران و بدون اطلاع آن‌ها انجام شده است.

اطلاعات و آمار کامل‌تر رو می‌توانید در نسخه پی‌دی‌اف پیوست شده بخوانید.

⚠️ نتیجه کلی: فیلترینگ گسترده و نصب اپلیکیشن‌های فیلترشکن مختلف توسط کاربرها (به ناچار)، نقش مهمی در در افزایش این حملات داشته است و دستگاه کاربرهای زیادی بدون اینکه بدانند، در این حمله‌ها مشارکت دارد!

🖥 @MiladNouriChannel
Please open Telegram to view this post
VIEW IN TELEGRAM
اگه دوست دارید یادبگیرید چطور agent های خودتون را درست کنید و دیپلوی کنید، کمپانی HuggingFace یک دوره رایگان گذاشته. این دوره از یادگیری مفاهیم اصلی شروع میشه و بعد کار با فریمورک های مختلف مثل langchain و llamaIndex و Smolagents را یاد میدن. و آخر هم که چندین مثال واقعی استفاده از agent ها را یاد میگیرید. به نظر میاد که certificate هم میدن (که البته به نظر من دادن یا ندادن اون اصلا مهم نیست!). یکی از بهترین دوره های کاربردی میتونه باشه!
تو این لینک برید و ثبت نام کنید.

https://huggingface.us17.list-manage.com/subscribe?u=7f57e683fa28b51bfc493d048&id=9ed45a3ef6

@DevTwiiter | <Mehdi Allahyari/>
Forwarded from Go Casts 🚀
آفر از هف هشتاد 🔥 (فیدبک در تصویر)

دوستمون از هف هشتاد آفر گرفته و در نهایت هم در یه شرکت دیگه استخدام شد (آفر یه شرکت دیگه رو بصورت دورکاری قبول کرد)

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


خرید از سایت با تخفیف ۵۰ درصد
https://gocasts.ir

همه چیز در مورد دوره و تیمسازی در این پست توضیح داده شده
https://news.1rj.ru/str/gocasts/434

تو این پست هم میتونید فیدبک های دوره و تیمسازی و استخدام بچه هارو بخونید
https://news.1rj.ru/str/gocasts/441

دوستانی که در خرید دوره تردید دارند میتونن برای مشاوره کوتاه تلفنی، فرم زیر رو پر کنند که باهاشون تماس بگیرم
https://survey.porsline.ir/s/ATeQL4b4

@gocasts
Forwarded from Go Casts 🚀
اینجا میتونید فیدبک های مختلفی نسبت به دوره و تجربه استخدام بچه ها رو بخونید.

فیدبک از پروسه مصاحبه و استخدام در اسنپ ۳ نقطه🔥
https://news.1rj.ru/str/gocasts/392

فیدبک آقا سیاوش عزیز که چند سالی هست به آلمان مهاجرت کرده و golang developer هست
https://news.1rj.ru/str/gocasts/325

گزارش استخدام ۵ نفر از دوستان تیمسازی و دوره که بعضی شون از طرف gocasts معرفی شدند
https://news.1rj.ru/str/gocasts/383

فیدبک محمد جان با بیش از ۴ سال سابقه به عنوان software developer در سرویس «کارنامه» از زیرمجموعه های هزاردستان
https://news.1rj.ru/str/gocasts/344

فیدبک آقای فراهانی VP of Engineering از شرکت OzoneCard نسبت به استخدام یکی از بچه ها
https://news.1rj.ru/str/gocasts/431

فیدبک تیمسازی
https://news.1rj.ru/str/gocasts/562

آفر از هف هشتاد
https://news.1rj.ru/str/gocasts/611

استخدام ایمان جان
https://news.1rj.ru/str/gocasts/550

فیدبک نسبت به کیفیت ساختار کد دوره نسبت به کدهای واقعی شرکت
https://news.1rj.ru/str/gocasts/385

آیا کیفیت دوره ویدیویی با بوتکمپ متفاوته؟ (فیدبک مهدی جان که در بوتکمپ شرکت نکرده و دوره ویدیویی رو دیده)
https://news.1rj.ru/str/gocasts/296
مهدی جان و اولین کار گولنگی!
https://news.1rj.ru/str/gocasts/319

فیدبک آقای کاظمی و استخدام در ایرانیکارت
https://news.1rj.ru/str/gocasts/436

فیدبک مصاحبه mock طراحی سیستم
https://news.1rj.ru/str/gocasts/588

فیدبک خانم جباری که در اسنپ تاکسی مشغول به کار هستند
https://news.1rj.ru/str/gocasts/295

فیدبک عرفان جان با بیش از ۴ سال سابقه برنامه نویسی نسبت به دوره
https://news.1rj.ru/str/gocasts/362

فیدبک امیرحسین جان نسبت به دوره و تجربه پروسه استخدام
https://news.1rj.ru/str/gocasts/416

فیدبک یکی از دوستانی که در بوتکمپ شرکت کردند در مورد ویدیوهای معماری نرم افزار
https://news.1rj.ru/str/gocasts/286

فیدبک سینا جان پس از استخدام
https://news.1rj.ru/str/gocasts/447

فیدبک محمدمهدی جان پس از استخدام
https://news.1rj.ru/str/gocasts/448

فیدبک نسبت به کیفیت آموزش
https://news.1rj.ru/str/gocasts/491

با ما بپّر، یه جایی قُلابت گیر میکنه!
https://news.1rj.ru/str/gocasts/529

فیدبک یکی از دوستان نسبت به دوره
https://news.1rj.ru/str/gocasts/541

تعداد مشارکت کنندگاه دوره از ۵۰۰ نفر گذشت 🔥
https://news.1rj.ru/str/gocasts/572

@gocasts

#فیدبک
#feedback
#دوره
#استخدام
Forwarded from Linuxor ?
ایدِمپُتِنس Idempotence توی نرم‌افزار به عملیاتی گفته می‌شه که صرف‌نظر از تعداد دفعات اجراش، نتیجه یکسانی تولید می‌کنه.

مثلا دستور زیر رو ببینید
chmod 777 file

این یه دستور ایدِمپُتِنس هستش یعنی اگه یکبار اجرا بشه دفه های بعدی هم اجراش کنید خطا نمی‌ده که بگه این قبلا 777 بوده، توی API ها مثلا پرداخت هم می‌تونین بجای اینکه برگردونید این تراکنش نامعتبره برگردونید این تراکنش با فلان اطلاعات انجام شده؛ یا مثلا اگه چیزی خواستین توی دیتابیس آپدیت کنید و وجود نداشت می‌تونین اونو اینسرتش کنید و خطا بر نگردونید.


@Linuxor
Forwarded from Armon technical logs (armon Taheri)
من این کتاب رو میخوام مطالعه کنم و ویس هر میزانی که بخونم رو اینجا میذارم