Forwarded from GPT YAR | جیپیتی یار
با GPT YAR، بدون دردسر به نسخه ChatGPT Plus دسترسی پیدا کن و با کمترین هزینه، از نهایت قدرت GPT Plus بهرهمند شو
اشتراک ماهانه فقط با ۲۰۰ هزار تومان
امکانات اشتراکی :
پشتیبانی از موبایل و دسکتاپ
دسترسی بدون قطعی
پاسخدهی سریعتر و دقیقتر
بهزودی، حریم خصوصی دیگه دغدغه نیست!
همچنین میتونی نسخه اختصاصی ChatGPT Plus را هم تهیه کنی.
ثبت سفارش و پشتیبانی :
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from DevTwitter | توییت برنامه نویسی
همیشه یه
json schema editor
لازم داشتم که باهاش بتونم پارامتر لازم برای
Structured Response
ایپیآی چتجیبیتی رو بسازم ولی هیچکدومشون اون چیزی نبودن که میخواستم
پس با هوشمصنوعی یکی ساختم
https://amir9480.github.io/json-schema-builder/
@DevTwitter | <Amir/>
json schema editor
لازم داشتم که باهاش بتونم پارامتر لازم برای
Structured Response
ایپیآی چتجیبیتی رو بسازم ولی هیچکدومشون اون چیزی نبودن که میخواستم
پس با هوشمصنوعی یکی ساختم
https://amir9480.github.io/json-schema-builder/
@DevTwitter | <Amir/>
Forwarded from Erfan
📌 لیست کامل بازیهای پشتیبانیشده رو از اینجا ببین!
@NovaDns
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from Linuxor ?
یکی از پروژه هایی که بهتون کمک میکنه یه پله توی سی بالا تر برید ساخت وب سروره امروز یکی رو به اسم مصطفی خان توی توییتر دیدم که این پروژه رو زده، داغه داغه برید کلونش کنید هم با Makefile ها درگیر میشین هم با کار های سطح پایین توی سی
github.com/mustafa-khann/http-server
@Linuxor
github.com/mustafa-khann/http-server
@Linuxor
Creep
Radiohead
But I'm a creep,
I'm a weirdo,
What the hell am I doin' here?
I don't belong here
I'm a weirdo,
What the hell am I doin' here?
I don't belong here
Forwarded from DevTwitter | توییت برنامه نویسی
نسخهی جدید PHP 8.5 تو راهه :)
چند قابلیت جدید و بهبود جالب توی این نسخه:
* توابع array_first() و array_last() برای دسترسی سریعتر به اولین و آخرین عنصر آرایهها (البته array_last تفاوت خاصی با end() نداره)
* امکان استفاده از Closure و Callable در const
* ویژگی [#[\NoDiscard]] برای مشخصکردن اینکه مقدار return باید استفاده بشه
* بهبود نمایش خطاها با Error Backtraces v2
* توابع جدید get_error_handler() و get_exception_handler()
* بهبود performance در cURL و کلاس Directory
نسخه 8.5 شاید تغییرات انقلابی نداشته باشه، ولی تجربهی برنامهنویسی رو بهتر و تمیزتر میکنه.
البته هنوز خبری از generic types درستوحسابی نیست و PHP کاملاً type-safe نشده
منبع:
https://wiki.php.net/rfc#php_85
@DevTwitter | <Milad Niroee/>
چند قابلیت جدید و بهبود جالب توی این نسخه:
* توابع array_first() و array_last() برای دسترسی سریعتر به اولین و آخرین عنصر آرایهها (البته array_last تفاوت خاصی با end() نداره)
* امکان استفاده از Closure و Callable در const
* ویژگی [#[\NoDiscard]] برای مشخصکردن اینکه مقدار return باید استفاده بشه
* بهبود نمایش خطاها با Error Backtraces v2
* توابع جدید get_error_handler() و get_exception_handler()
* بهبود performance در cURL و کلاس Directory
نسخه 8.5 شاید تغییرات انقلابی نداشته باشه، ولی تجربهی برنامهنویسی رو بهتر و تمیزتر میکنه.
البته هنوز خبری از generic types درستوحسابی نیست و PHP کاملاً type-safe نشده
منبع:
https://wiki.php.net/rfc#php_85
@DevTwitter | <Milad Niroee/>
Forwarded from SoniaCircuit (Sonia)
اینم چنل آرشیو کتاب، جزوه ، برگه تقلب، منابع و قراردادو... هست بدردتون میخوره
t.iss.one/ArchiveDevs
این گروه، هر تاپیک مربوط به یک شاخه برنامه نویسی هست، خیلی بدردتون میخوره
t.iss.one/TopicsDev
چنل اصلیشون
✍🏽 ¦ t.iss.one/DevYara
t.iss.one/ArchiveDevs
این گروه، هر تاپیک مربوط به یک شاخه برنامه نویسی هست، خیلی بدردتون میخوره
t.iss.one/TopicsDev
چنل اصلیشون
✍🏽 ¦ t.iss.one/DevYara
Telegram
Archive Developers
رسالت ما – ارائه محتوای کاربردی شامل کتاب، برگه تقلب، وبینار و پادکست برای توسعهدهندگان و علاقهمندان به برنامهنویسی و فناوریهای مرتبط، همراه با ذکر منابع!
👨🏻💻 | @Afsh6n
✍🏽 | @DevYara
🍓 | @TopicsDev
👨🏻💻 | @Afsh6n
✍🏽 | @DevYara
🍓 | @TopicsDev
Forwarded from IRCF | اینترنت آزاد برای همه
#گزارش
مشاهدات اخیر مهسانت روی شبکه اپراتور #ایرانسل، الگوی قابل توجهی را آشکار کرده: در حالی که درخواستهای استاندارد DNS (مبتنی بر UDP) برای دامنههای فیلتر شده طبق انتظار دستکاری میشوند، استفاده از پروتکلهای جایگزین مانند DoH، DoT و DoTCP وضعیت پیچیدهتری را ایجاد میکند.
تا پیش از این، تقریباً تمام سرورهای DoT، DoH، DoQ، DoTCP چه عمومی و چه شخصی، مسدود بودند. اما اکنون رویکرد #فیلترینگ تغییر کرده است؛ مسدودسازی پروتکلهای اصلی رمزنگاریشده (DoH, DoT, DoQ) روی سرورهای DNS عمومی و معروف (مثل کلاودفلر، گوگل، و ...) را در بر میگیرد، در حالی که پروتکل DoTCP روی همین سرورها فعال باقی مانده است. همزمان، سرورهای شخصی که آیپیهای تمیز و فیلتر نشده دارند، بدون محدودیت به کار خود ادامه میدهند. این موضوع عملاً دو راه برای دریافت آیپی واقعی دامنهها باز گذاشته است: استفاده از سرورهای شخصی، یا استفاده از DoTCP روی سرورهای عمومی و معروف.
نکته جالبتر اینکه این قضیه به لایه فیلترینگ SNI در هندشیک TLS نیز مربوط میشود. بررسیها نشان میدهند که در حال حاضر سیستم DPI مبتنی بر فیلترینگ SNI تقریباً ناکارآمد است؛ چرا که اتصالات مستقیم HTTPS به آدرسهای IP واقعی (که با روشهای بالا پیدا شدهاند)، حتی برای دامنههای کاملاً فیلتر شده، با موفقیت برقرار میشود. این یعنی سیستم DPI ایرانسل، یا این نوع ترافیک را شناسایی نمیکند، یا به کل آن را نادیده میگیرد.
رفتار مشاهده شده در شبکه ایرانسل ظهور یک الگوی دوگانه مشخص را نشان میدهد: پروتکلهای جایگزین DNS مانند DoTCP, DoT, DoH, DoQ، به طور مداوم فیلترینگ سطح DNS آن را دور میزنند و امکان resolve شدن آدرسهای آیپی واقعی برای دامنههای فیلتر شده را فراهم میکنند. نکته بسیار مهم این است که اتصالات مستقیم HTTPS/TLS به این آیپیها برای اکثر دامنههایی که معمولاً از طریق SNI/DNS مسدود میشوند (به عنوان مثال، سرویسهای مرتبط با
وجود یک شکاف مشهود و قابلتوجه در سیستم فیلترینگ ایرانسل، عملاً موانع دسترسی به طیف وسیعی از محتوای محدود شده را برای کاربران آن کاهش داده است. دلیل اصلی این پدیده هنوز مشخص نیست، اما میتواند ناشی از تصمیمات فنی در معماری شبکه، نقصی در فرآیند پیادهسازی سیاستها، و یا حتی یکی از ویژگیهای ذاتی ساختار فعلی آن باشد. از این رو، به منظور درک دقیق میزان پایداری این وضعیت و دلایل بنیادین آن، پایش مستمر شبکه و انجام تحقیقات تکمیلی، امری ضروری تلقی میگردد.
مشاهده متن کامل گزارش:
👉 mahsanet.com/fa/blog/10/irancell-impact-of-dns-on-blocked-domains
🔍 ircf.space
@ircfspace
مشاهدات اخیر مهسانت روی شبکه اپراتور #ایرانسل، الگوی قابل توجهی را آشکار کرده: در حالی که درخواستهای استاندارد DNS (مبتنی بر UDP) برای دامنههای فیلتر شده طبق انتظار دستکاری میشوند، استفاده از پروتکلهای جایگزین مانند DoH، DoT و DoTCP وضعیت پیچیدهتری را ایجاد میکند.
تا پیش از این، تقریباً تمام سرورهای DoT، DoH، DoQ، DoTCP چه عمومی و چه شخصی، مسدود بودند. اما اکنون رویکرد #فیلترینگ تغییر کرده است؛ مسدودسازی پروتکلهای اصلی رمزنگاریشده (DoH, DoT, DoQ) روی سرورهای DNS عمومی و معروف (مثل کلاودفلر، گوگل، و ...) را در بر میگیرد، در حالی که پروتکل DoTCP روی همین سرورها فعال باقی مانده است. همزمان، سرورهای شخصی که آیپیهای تمیز و فیلتر نشده دارند، بدون محدودیت به کار خود ادامه میدهند. این موضوع عملاً دو راه برای دریافت آیپی واقعی دامنهها باز گذاشته است: استفاده از سرورهای شخصی، یا استفاده از DoTCP روی سرورهای عمومی و معروف.
نکته جالبتر اینکه این قضیه به لایه فیلترینگ SNI در هندشیک TLS نیز مربوط میشود. بررسیها نشان میدهند که در حال حاضر سیستم DPI مبتنی بر فیلترینگ SNI تقریباً ناکارآمد است؛ چرا که اتصالات مستقیم HTTPS به آدرسهای IP واقعی (که با روشهای بالا پیدا شدهاند)، حتی برای دامنههای کاملاً فیلتر شده، با موفقیت برقرار میشود. این یعنی سیستم DPI ایرانسل، یا این نوع ترافیک را شناسایی نمیکند، یا به کل آن را نادیده میگیرد.
رفتار مشاهده شده در شبکه ایرانسل ظهور یک الگوی دوگانه مشخص را نشان میدهد: پروتکلهای جایگزین DNS مانند DoTCP, DoT, DoH, DoQ، به طور مداوم فیلترینگ سطح DNS آن را دور میزنند و امکان resolve شدن آدرسهای آیپی واقعی برای دامنههای فیلتر شده را فراهم میکنند. نکته بسیار مهم این است که اتصالات مستقیم HTTPS/TLS به این آیپیها برای اکثر دامنههایی که معمولاً از طریق SNI/DNS مسدود میشوند (به عنوان مثال، سرویسهای مرتبط با
www.youtube.com, instagram.com, و غیره) نیز با موفقیت انجام میشوند. این امر نشاندهنده ناکارآمدی گسترده فعلی یا عدم اعمال خاص مکانیزمهای مسدودسازی مبتنی بر SNI یا مشابه در لایه TLS توسط ایرانسل برای این مسیرهای ارتباطی خاص است.وجود یک شکاف مشهود و قابلتوجه در سیستم فیلترینگ ایرانسل، عملاً موانع دسترسی به طیف وسیعی از محتوای محدود شده را برای کاربران آن کاهش داده است. دلیل اصلی این پدیده هنوز مشخص نیست، اما میتواند ناشی از تصمیمات فنی در معماری شبکه، نقصی در فرآیند پیادهسازی سیاستها، و یا حتی یکی از ویژگیهای ذاتی ساختار فعلی آن باشد. از این رو، به منظور درک دقیق میزان پایداری این وضعیت و دلایل بنیادین آن، پایش مستمر شبکه و انجام تحقیقات تکمیلی، امری ضروری تلقی میگردد.
مشاهده متن کامل گزارش:
👉 mahsanet.com/fa/blog/10/irancell-impact-of-dns-on-blocked-domains
🔍 ircf.space
@ircfspace
Forwarded from DevTwitter | توییت برنامه نویسی
برای بار اول هست یه ابزار با TS میزنم و تو NPM پابلیش میکنم.
به کمک این میتونید مطمئن بشید ترتیب ستون های دیتابیس دقیقا طبق ترتیب Prisma Schema هستش.
چیز ریزی هست ولی به خوانایی دیتابیس خیلی کمک میکنه.
صفر تا صد لایبری Vibe Coding و با Agent بوده
https://github.com/SamadiPour/prisma-reorder
@DevTwitter | <ٔNobody/>
به کمک این میتونید مطمئن بشید ترتیب ستون های دیتابیس دقیقا طبق ترتیب Prisma Schema هستش.
چیز ریزی هست ولی به خوانایی دیتابیس خیلی کمک میکنه.
صفر تا صد لایبری Vibe Coding و با Agent بوده
https://github.com/SamadiPour/prisma-reorder
@DevTwitter | <ٔNobody/>
Iraj Mahdiyan Barg
Iraj Mahdiyan
وقتی که برگی رو زمین میوفته
حس میکنم گریه بیصداشو
حس میکنم چی میگذره تو قلبش
وقتی میبینه مرگ لحظههاشو ....
حس میکنم گریه بیصداشو
حس میکنم چی میگذره تو قلبش
وقتی میبینه مرگ لحظههاشو ....
Forwarded from Geek Alerts
ایلان ماسک پستهای جنجالیش در X (توییتر سابق) که توش ترامپ رو به داشتن اسمش تو پروندههای جفری اپستین متهم کرده بود، بیسروصدا پاک کرده و این حرکت، شایعات آشتی بین این دو نفر رو بیشتر کرده. بعد از جدا شدن ماسک از DOGE اختلافاتش با ترامپ خیلی بالا گرفت و دعوای سیاسی بینشون حتی باعث شد توییتر و شبکه اجتماعی truth ترامپ شاهد افزایش ترافیک کاربران باشن.
ترامپ قبلا تهدید کرده بود قراردادهای دولتی با SpaceX و بیزینسهای ایلان ماسک رو لغو میکنه، کارشناسها میگفتن شدنی نیست چون دولت آمریکا به خدماتی که این شرکت میده نیاز داره با این حال میتونه یک از دلایلی باشه که باعث شده ایلان ماسک توی جدال با ترامپ کوتاه بیاد. [h]
🤓 @geekalerts
ترامپ قبلا تهدید کرده بود قراردادهای دولتی با SpaceX و بیزینسهای ایلان ماسک رو لغو میکنه، کارشناسها میگفتن شدنی نیست چون دولت آمریکا به خدماتی که این شرکت میده نیاز داره با این حال میتونه یک از دلایلی باشه که باعث شده ایلان ماسک توی جدال با ترامپ کوتاه بیاد. [h]
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from Geek Alerts
شرکت Anthropic یه ابزار به اسم circuit tracing tool رو اوپنسورس کرده که به توسعهدهندهها کمک میکنه بفهمن مدلهای AI چطور کار میکنن و چرا اشتباه میکنن. این ابزار بر اساس «تفسیر مکانیکی» (mechanistic interpretability) کار میکنه و نمودارهایی از فعالیتهای داخلی مدل رو نشون میده. باهاش میشه خطاهای هوش مصنوعی رو رفع کرد و مدلها رو بهتر تنظیم کرد.
برای مدلهایی مثل Gemma و Llama هم قابل استفاده هست و به شفافیت و کنترل بیشتر روی هوش مصنوعی کمک میکنه. [h]
🤓 @geekalerts
برای مدلهایی مثل Gemma و Llama هم قابل استفاده هست و به شفافیت و کنترل بیشتر روی هوش مصنوعی کمک میکنه. [h]
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from Geek Alerts
محققین اپل تو مقاله جدیدی با عنوان «توهم فکر کردن»، گفتن مدلهای استدلالیای که امروزه ازشون استفاده میکنیم، درسته که در بنچمارکهای مخصوص عملکرد بهتری نسبت به مدلهای غیراستدلالی دارن، اما در عملکرد واقعی فرق آنچنانیای ندارن.
محققها برای رسیدن به همچین نتیجهای چند پازل رو به مدل دادن و به مرور پیچیدگی پازلها رو بیشتر کردن، در حالتی که پیچیدگی کم بوده مدل غیراستدلالی عملکرد بهتری نشون داده اما در پیچیدگی متوسط مدل استدلالی بوده که دست بالاتر رو داشته. در نهایت در حالت آخر و پیچیدگی زیاد عملکرد هر دو مدل به صفر رسیده و هیچ کدوم نتونستن پازل رو حل کنن. نکته اینه که مدلهای استدلالی تا یک حدی میتونن توکنهای تفکریشون رو بسته به پیچیدگی افزایش بدن و بعد از رسیدن به اون حد توکنها کاهش و درنتیجه عملکرد هم تضعیف میشه.
🔗 ml.apple
🤓 hadi @geekalerts
محققها برای رسیدن به همچین نتیجهای چند پازل رو به مدل دادن و به مرور پیچیدگی پازلها رو بیشتر کردن، در حالتی که پیچیدگی کم بوده مدل غیراستدلالی عملکرد بهتری نشون داده اما در پیچیدگی متوسط مدل استدلالی بوده که دست بالاتر رو داشته. در نهایت در حالت آخر و پیچیدگی زیاد عملکرد هر دو مدل به صفر رسیده و هیچ کدوم نتونستن پازل رو حل کنن. نکته اینه که مدلهای استدلالی تا یک حدی میتونن توکنهای تفکریشون رو بسته به پیچیدگی افزایش بدن و بعد از رسیدن به اون حد توکنها کاهش و درنتیجه عملکرد هم تضعیف میشه.
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from Geek Alerts
سازمان هوانوردی فدرال آمریکا (FAA) بعد از دههها داره سیستمهای کنترل ترافیک هوایی قدیمیشو که با فلاپی دیسک و ویندوز ۹۵ کار میکردن رو با تکنولوژیهای جدید جایگزین میکنه، یکی از دلایلش ارزیابی خود FAA تو سال ۲۰۲۳ هست که میگه بیش از یکسوم سیستمهای کنترل ترافیک هوایی در آمریکا «ناپایدار» هست.
دلیل اینکه هنوز از سیستمهای دهه ۱۹۹۰ استفاده میکنن تاییدهای ایمنی سختگیرانه هست، مثلا سیستمها حتی برای یک لحظه هم نباید خاموش بشن که این جایگزین کردن سیستمهای جدید رو سخت میکنه و البته ایده اینکه وقتی یه چیزی خوب کار میکنه نیاز نیست بهش دست بزنی که ظاهرا دیگه خوب کار نمیکنه. تخمین زدن این پروژه تکمیلش ۴ سال زمان میبره و احتمالا دهها میلیارد دلار هزینش هست. [h]
🤓 @geekalerts
دلیل اینکه هنوز از سیستمهای دهه ۱۹۹۰ استفاده میکنن تاییدهای ایمنی سختگیرانه هست، مثلا سیستمها حتی برای یک لحظه هم نباید خاموش بشن که این جایگزین کردن سیستمهای جدید رو سخت میکنه و البته ایده اینکه وقتی یه چیزی خوب کار میکنه نیاز نیست بهش دست بزنی که ظاهرا دیگه خوب کار نمیکنه. تخمین زدن این پروژه تکمیلش ۴ سال زمان میبره و احتمالا دهها میلیارد دلار هزینش هست. [h]
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from Geek Alerts
شرکت Anthropic مدتی پیش از یک پروتکل واسط به اسم MCP رونمایی کرده بود که به توسعهدهندهها اجازه میداد ابزارهای خودشون رو به مدلها متصل کنن. حالا این ابزار ترند شده و چیزای جالبی باهاش دارن میسازن. دوراقع یک رابط هست که به ما اجازه میده یک برنامه و اطلاعاتش رو در اختیار مدل قرار بدیم. فعلا در نسخه دسکتاپ Claude و به زودی در ChatGPT میشه استفاده کرد از این ویژگی. حالا به چه دردی میخوره؟ میتونه به فایل سیستم شما وصل بشه(کاملا لوکال و قاعدتاً دیتایی منتقل نمیشه)، یا یک کامند رو در ترمینال اجرا کنه یا مثلاً وصل بشه به برنامههای مکاواستون و یا مثلاً مستقیماً در ویاسکد وصل بشید به فیگما و طراحیهاتون رو تبدیل به کد کنید. حالا جدا از Claude، شرکتهای دیگری مثل OpenAI و GitHub هم پشتیبانی از این پروتکل رو اضافه کردن. این میشه یک رابط ثابت و دائمی بین مدلها و ابزارهای روزمره مثل تقویم و ... که استفاده میکنیم.
🔗 claude | mcp.so
🤓 hadi @geekalerts
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from Geek Alerts
This media is not supported in your browser
VIEW IN TELEGRAM
شرکت Anthropic از نسخه بهبود یافته Claude 3.5 Sonnet و مدل جدید Claude 3.5 Haiku رونمایی کرده. مدل جدیدتر عملکرد بهتری از سایرمدلهای همرده خودش یعنی GPT-4o و Gemini 1.5 Pro داشته و تونسته در بنچمارکهای مختلف عملکرد بهتری رو نشون بده. اما نکته مهمتر اینه که این شرکت api جدیدی رو به نام Computer Use عرضه کرده که به مدل اجازه تعامل با کامپیوتر کاربر رو میده. یعنی شما با دادن پرامپتهای مختلف به مدل اجازه میدید با کامپیوترتون کار کنه و تسکهای مختلف رو انجام بده. نکته جالب هم اینه که توی دوتا از تستهاشون مدل یک بار ویدیو رکورد طولانیای رو قطع کرده و بار دوم هم حین کد زدن مدتی متوقف شده و رفته عکسهای پارک ملی یلواستون رو سرچ کرده و دیده.
https://www.anthropic.com/news/3-5-models-and-computer-use
hadi @geekalerts
https://www.anthropic.com/news/3-5-models-and-computer-use
hadi @geekalerts
Forwarded from DevTwitter | توییت برنامه نویسی
همه ما توی لاراول با Closure کار میکنیم، ولی واقعا میتونیم توضیح بدیم چی هست؟
چه توی route تعریف کردن، چه داخل collection، چه middleware یا حتی queue، همیشه داریم از Closure استفاده میکنیم.
اما بیاید خیلی ساده ببینیم Closure چیه؟
یه تابع بینام (anonymous function) هست که میتونی:
توی متغیر ذخیرهاش کنی
به یه تابع دیگه پاس بدی
ولی واقعا چه فایدهای داره؟
اینو با یه مثال ساده نشونت میدم:
فرض کن میخوای یه آرایه از عددها رو فیلتر کنی. مثلا فقط عددهای زوج رو نگه داری.
بدون Closure مجبور بودیم برای هر منطق یه تابع جداگانه بنویسیم ، مثلا برای فیلتر اعداد زوج یه تابع ، برای فیلتر اعداد فرد یه تابع دیگه و ...
اما با Closure ما یک تابع عمومی مینویسیم و فقط منطق هامون رو بهش تزریق می کنیم.
زمانی که از Closure استفاده می کنیم ، تابع filter دیگه کاری به نوع فیلتر نداره، فقط میپرسه:
«میخوای این آیتم رو نگه دارم یا نه؟ تو بگو!»
و این قدرت Closure هست:
تعریف منطق دلخواه،
تزریق رفتار به تابع عمومی،
ساده، تمیز، قابلتست
@DevTwitter | <Babak Mirhosseini/>
چه توی route تعریف کردن، چه داخل collection، چه middleware یا حتی queue، همیشه داریم از Closure استفاده میکنیم.
اما بیاید خیلی ساده ببینیم Closure چیه؟
یه تابع بینام (anonymous function) هست که میتونی:
توی متغیر ذخیرهاش کنی
به یه تابع دیگه پاس بدی
ولی واقعا چه فایدهای داره؟
اینو با یه مثال ساده نشونت میدم:
فرض کن میخوای یه آرایه از عددها رو فیلتر کنی. مثلا فقط عددهای زوج رو نگه داری.
بدون Closure مجبور بودیم برای هر منطق یه تابع جداگانه بنویسیم ، مثلا برای فیلتر اعداد زوج یه تابع ، برای فیلتر اعداد فرد یه تابع دیگه و ...
اما با Closure ما یک تابع عمومی مینویسیم و فقط منطق هامون رو بهش تزریق می کنیم.
زمانی که از Closure استفاده می کنیم ، تابع filter دیگه کاری به نوع فیلتر نداره، فقط میپرسه:
«میخوای این آیتم رو نگه دارم یا نه؟ تو بگو!»
و این قدرت Closure هست:
تعریف منطق دلخواه،
تزریق رفتار به تابع عمومی،
ساده، تمیز، قابلتست
@DevTwitter | <Babak Mirhosseini/>