TorhamDev | تورهام 😳
https://github.com/TorhamDev/Slow-Laggy بله داشتم میگفتم که من فاندر آهسته ترین زبان برنامهنویسی جهان هستم 🤝
تبریک میگم اولین PR به زبان slow laggy همینک مرج شد!
🎉5🤣3
Forwarded from Python BackendHub
یک سوال نسبتا راحت دارم ازتون, یک نکته ای که باید خیلی بهش دقت کنید موقع کار کردن با fastapi
از ما خواسته شده یک روتری بنویسیم که به ساده ترین شکل ممکن بدون اینکه مشکلی برای اپلیکیشنمون به وجود بیاره به یک اپلیکیشنی یک درخواست بزنه و دیتاشو برگردونه.
ایراد کد رو پیدا کنید.
راهنمایی: کاری با اینکه تو روتر بهتره مستقیم درخواست نزنیم ندارم یا مثلا ارور هندلینگ خود درخواست. هدف این سوال یک مشکل خیلی بزرگ تره که کل اپلیکیشن رو تحت شعاع قرار میده.
@ManiFoldsPython
از ما خواسته شده یک روتری بنویسیم که به ساده ترین شکل ممکن بدون اینکه مشکلی برای اپلیکیشنمون به وجود بیاره به یک اپلیکیشنی یک درخواست بزنه و دیتاشو برگردونه.
from fastapi import FastAPI
import requests
app = FastAPI()
@app.post("/crawl")
async def crawl_website(job_data: str):
return requests.get("https://mywebsite.com")
ایراد کد رو پیدا کنید.
راهنمایی: کاری با اینکه تو روتر بهتره مستقیم درخواست نزنیم ندارم یا مثلا ارور هندلینگ خود درخواست. هدف این سوال یک مشکل خیلی بزرگ تره که کل اپلیکیشن رو تحت شعاع قرار میده.
@ManiFoldsPython
👍3
Forwarded from Python BackendHub
تو کامنتا خیلی سریع به جواب اشاره کردن, وقتی دارین با فست یا هر asgi دیگه ای کار میکنید باید حواستون باشه, که به هیچ وجه هیچ جایی از اپلیکیشنتون تسک IO باند نداشته باشین که بلاک کنه main thread تون رو.
چرا؟چون بای دیفالت روتر async رو ترد اصلی process ران میشه, بنابراین اگه بلاک شه هم ترد اصلیتون بلاک میشه هم process یعنی تو اون پروسه و ورکر دیگه نمیتونید هیچ درخواستی رو return کنید.
راه حلش چیه؟
https://asgi.readthedocs.io/en/latest/introduction.html#wsgi-compatibility
تو fastapi شما میتونید همچنان کدتون رو با sync هم ران کنید. اگه روترتون io bound داره که sync عه و بلاک میکنه میتونید روترتون رو sync کنید. اتفاقی که اون پشت میفته اینه که fastapi میاد درخواست شما رو تو یک ترد جدا هندل میکنه. داخل asgiref هم نمونه مشابهش هست, که sync_to_async هست. خودتونم میتونید مشابهشو بنویسید و تو executor thread ران کنید کنار بقیه کد های async تون. میتونید از لایبری سباستین asyncer هم استفاده کنید که داخلش از AnyIO استفاده کرده که typingتون رو خراب نمیکنه و فیچر های خوبی داره:
https://github.com/tiangolo/asyncer
اما یادتون نره که پرفومنسی تو تسک های IO همیشه async بهتره از thread چون کم هزینه تره, کانتکس سوییچ نداره, استفاده کامل تری از ریسورستون میکنید و البته cpu bound هم بخاطر وجود GIL فعلا تو پایتون تفاوتی ایجاد نمیکنه. نکته ای که باید دقت کنید بهش لایبری که استفاده میکنید بهتره در درجه اول native async باشه یعنی واقعا async باشه و رو یک ترد non blocking کارشو انجام بده. اگه لایبری mature یا خوبی پیدا نکردین در درجه دوم میتونید از همین تکنیکی که گفتم استفاده کنید.
میتونید مقاله زیر رو بخونید که یکم بیشتر با ساختار و معماری asgi و wsgi آشنا شین:
https://medium.com/p/807158ed1d4c
@ManiFoldsPython
چرا؟چون بای دیفالت روتر async رو ترد اصلی process ران میشه, بنابراین اگه بلاک شه هم ترد اصلیتون بلاک میشه هم process یعنی تو اون پروسه و ورکر دیگه نمیتونید هیچ درخواستی رو return کنید.
راه حلش چیه؟
https://asgi.readthedocs.io/en/latest/introduction.html#wsgi-compatibility
تو fastapi شما میتونید همچنان کدتون رو با sync هم ران کنید. اگه روترتون io bound داره که sync عه و بلاک میکنه میتونید روترتون رو sync کنید. اتفاقی که اون پشت میفته اینه که fastapi میاد درخواست شما رو تو یک ترد جدا هندل میکنه. داخل asgiref هم نمونه مشابهش هست, که sync_to_async هست. خودتونم میتونید مشابهشو بنویسید و تو executor thread ران کنید کنار بقیه کد های async تون. میتونید از لایبری سباستین asyncer هم استفاده کنید که داخلش از AnyIO استفاده کرده که typingتون رو خراب نمیکنه و فیچر های خوبی داره:
https://github.com/tiangolo/asyncer
اما یادتون نره که پرفومنسی تو تسک های IO همیشه async بهتره از thread چون کم هزینه تره, کانتکس سوییچ نداره, استفاده کامل تری از ریسورستون میکنید و البته cpu bound هم بخاطر وجود GIL فعلا تو پایتون تفاوتی ایجاد نمیکنه. نکته ای که باید دقت کنید بهش لایبری که استفاده میکنید بهتره در درجه اول native async باشه یعنی واقعا async باشه و رو یک ترد non blocking کارشو انجام بده. اگه لایبری mature یا خوبی پیدا نکردین در درجه دوم میتونید از همین تکنیکی که گفتم استفاده کنید.
میتونید مقاله زیر رو بخونید که یکم بیشتر با ساختار و معماری asgi و wsgi آشنا شین:
https://medium.com/p/807158ed1d4c
@ManiFoldsPython
GitHub
GitHub - fastapi/asyncer: Asyncer, async and await, focused on developer experience.
Asyncer, async and await, focused on developer experience. - fastapi/asyncer
👍8
دیزاین پترن Factory یکی از الگوهای مهم برنامه نویسی است.
فکر کنید که شما باید آبجکتی با یک سری خصوصیات و عملکردهای خاص بسازید. حالت اولیه این است که شما یک کلاس را مستقیماً مینویسید و یک آبجکت از آن ایجاد میکنید.اما ممکن است به دلایل مختلف شما نخواهید کلاس را مستقیماً بسازید. به جای آن از factory استفاده میکنید.
در اینجا کلاسی به عنوان FactoryClass تعریف میکنیم که یک متد build را دارد. این متد یک instance از کلاس مورد نظر شما را برای شما ایجاد میکند و آن را برمیگرداند.
برای استفاده از این الگو، شما ابتدا یک instance از کلاس factory را ایجاد میکنید و سپس با فراخوانی متد build آن را با نوع مورد نظر شما، instance از کلاس مورد نظر بسازید.
این الگو بسیار پرکاربرد است و به راحتی میتوان با آن آبجکتهای مختلفی در زمان اجرا به سادگی ایجاد کرد.
امیدوارم که این مطلب برای شما مفید بوده باشد. برای کسب اطلاعات بیشتر در این مورد، میتوانید به منابع زیر مراجعه کنید:
- https://refactoring.guru/design-patterns/factory-method
- https://realpython.com/factory-method-python/
نوشته شده توسط هوش فیک 😆
👾 @TrohamDevCH
فکر کنید که شما باید آبجکتی با یک سری خصوصیات و عملکردهای خاص بسازید. حالت اولیه این است که شما یک کلاس را مستقیماً مینویسید و یک آبجکت از آن ایجاد میکنید.اما ممکن است به دلایل مختلف شما نخواهید کلاس را مستقیماً بسازید. به جای آن از factory استفاده میکنید.
در اینجا کلاسی به عنوان FactoryClass تعریف میکنیم که یک متد build را دارد. این متد یک instance از کلاس مورد نظر شما را برای شما ایجاد میکند و آن را برمیگرداند.
class FactoryClass:
def build(self, type):
if type == 'TypeA':
return TypeA()
elif type == 'TypeB':
return TypeB()
برای استفاده از این الگو، شما ابتدا یک instance از کلاس factory را ایجاد میکنید و سپس با فراخوانی متد build آن را با نوع مورد نظر شما، instance از کلاس مورد نظر بسازید.
factory = FactoryClass()
object_a = factory.build('TypeA')
این الگو بسیار پرکاربرد است و به راحتی میتوان با آن آبجکتهای مختلفی در زمان اجرا به سادگی ایجاد کرد.
امیدوارم که این مطلب برای شما مفید بوده باشد. برای کسب اطلاعات بیشتر در این مورد، میتوانید به منابع زیر مراجعه کنید:
- https://refactoring.guru/design-patterns/factory-method
- https://realpython.com/factory-method-python/
👾 @TrohamDevCH
refactoring.guru
Factory Method
Factory Method is a creational design pattern that provides an interface for creating objects in a superclass, but allows subclasses to alter the type of objects that will be created.
❤4👌2
asyncio.wait_for
این کد یک نمونه از استفادهی asyncio.wait_for در برنامهنویسی پایتون است. زمانی که برنامه اجرا میشود، ممکن است که یک عملیات تحت شبکه، مانند ایجاد یک اتصال TCP، زمان بیشتری از حالت معمول برای تکمیل نیاز داشته باشد. در این صورت، استفاده از تابع wait_for، به برنامه نویس این قابلیت را میدهد تا دیگر از حد مورد موردنیاز بیشتر منتظر اتمام عملیات نماند.
در کد ارائه بالا، به جای منتظر ماندن برای اتمام تسک، با استفاده از تابع
در مثال بالا،
مقاله خوب برای مطالعه بیشتر:
- https://superfastpython.com/asyncio-wait_for/
👾 @TrohamDevCH
...
# execute a task with a timeout
try:
# wait for a task to complete
await asyncio.wait_for(coro, timeout=1)
except asyncio.TimeoutError:
# ...
این کد یک نمونه از استفادهی asyncio.wait_for در برنامهنویسی پایتون است. زمانی که برنامه اجرا میشود، ممکن است که یک عملیات تحت شبکه، مانند ایجاد یک اتصال TCP، زمان بیشتری از حالت معمول برای تکمیل نیاز داشته باشد. در این صورت، استفاده از تابع wait_for، به برنامه نویس این قابلیت را میدهد تا دیگر از حد مورد موردنیاز بیشتر منتظر اتمام عملیات نماند.
در کد ارائه بالا، به جای منتظر ماندن برای اتمام تسک، با استفاده از تابع
asyncio.wait_for، حداکثر یک ثانیه منتظر تکمیل تسک میمانیم. اگر تسک در زمان مشخص شده تکمیل نشود، یک asyncio.TimeoutError رخ میدهد.در مثال بالا،
coro میتواند هر گونه coroutine باشد که بتواند در asyncio event loop اجرا شود. با استفاده از تابع asyncio.wait_for، عملیات مشخص شده در این coroutine زمان بیشتری از زمان مشخص شده برای تکمیل آن اجرا شود. به عنوان مثال، ممکن است این coroutine انتظار داشته باشد که اتصالی به یک سرور خاص برقرار شود، اما برای برقراری این اتصال، ممکن است زمان زیادی لازم باشد. با استفاده از asyncio.wait_for، میتوانیم فرآیند اتصال را به حداکثر یک ثانیه محدود کنیم تا از به هم ریختگی برنامه جلوگیری شود. در صورتی که در یک ثانیه اتصال برقرار نشود، یک asyncio.TimeoutError ایجاد میشود که میتواند به عنوان اعلام خطا به کار برود.مقاله خوب برای مطالعه بیشتر:
- https://superfastpython.com/asyncio-wait_for/
👾 @TrohamDevCH
Super Fast Python
Asyncio wait_for() to Wait With a Timeout - Super Fast Python
It is a good practice that any waiting performed in an asyncio program be limited to a timeout. Asyncio provides a way to wait on another task with a timeout via the asyncio.wait_for() function. If the timeout elapses before the task completes, the task is…
👏3
آمار گیری جهت هدف دادن به محتوا چنل.
کدوم مورد شما ترجیح میدید محتوا دربارش باشه؟
کدوم مورد شما ترجیح میدید محتوا دربارش باشه؟
Anonymous Poll
49%
مفاهیم پایتون و برنامهنویسی به زبان پایتون
58%
مفاهیم و ابزارها بکاند (مستقل از زبان)
33%
میکروسرویس
28%
دواپس
فیچر if به زبان slow laggy اضافه شد!. از این پس میتونید از شرط if و یک معادله در برابرش استفاده کنید. برای مثال 3 > 7 یا هر شکل معادلهای که نتیجه ای True یا False داشته باشه!.
https://github.com/TorhamDev/Slow-Laggy
یادتون نره به این زبان فوقالعاده استار بدید!
https://github.com/TorhamDev/Slow-Laggy
یادتون نره به این زبان فوقالعاده استار بدید!
❤66🎉57🥰56👍55👏51😁47🔥46🙏3
تفاوت Decimal و Float چیه؟
به نظرم حتما مقاله رو هم کامل بخونید که مثل من سوتی ندید :)))
https://medium.com/@mayuribudake999/difference-between-decimal-and-float-eede050f6c9a
@TorhamDevCH
https://medium.com/@mayuribudake999/difference-between-decimal-and-float-eede050f6c9a
@TorhamDevCH
بلاخره یکی حرف منو زد :). لازم نیست همتون متخصص هوش مصنوعی بشید!. شخصا من distributed systems برای جذاب تره.
@TorhamDevCH
@TorhamDevCH
👍13
الستیک سرچ ( Elasticsearch ) یکی از پرکاربردترین ابزارهای جستجوی متنباز و تحلیل داده است که برای نگهداری، جستجو، جمعآوری و تجزیه و تحلیل دادههایی در زمینههای مختلف مثل لاگها استفاده میشه.
کاربرد اصلی Elasticsearch در برنامه نویسی، امکان ایجاد و سازماندهی پایگاه دادههای جستجوپذیر و درک و جستجوی سریع در دادههای بزرگ. با استفاده از Elasticsearch میتونیم دیتای مورد نظر رو سریع جستوجو کنیم و نتیجه رو خیلی راحت پردازش کنیم.
الستیک سرچ یک سری API داره که میتونیم ازشون استفاده کنیم. تو قالب زبانهای برنامهنویس ساپورت میشه. داخل پایتون هم یک کتابخونه براش توسعه دادن که با اون میتونید از قابلیتهاش استفاده کنید.
برای استفاده ازش میتونید با دستور زیر کتابخانه مربوطش رو در پایتون نصب کنید:
الستیک خیلی جاها کاربرد داره برای مثال لاگها یک سرویس میشه داخلش ذخیره کرد و crash و ارورها داخلش جستجو کرد :).
بیشتر شرکتهای ایرانی و خارجی ازش استفاده میکنن و بلد بودنش به نظر میتونه یک پوینت مثبت باشه.
👾 @TorhamDevCH
کاربرد اصلی Elasticsearch در برنامه نویسی، امکان ایجاد و سازماندهی پایگاه دادههای جستجوپذیر و درک و جستجوی سریع در دادههای بزرگ. با استفاده از Elasticsearch میتونیم دیتای مورد نظر رو سریع جستوجو کنیم و نتیجه رو خیلی راحت پردازش کنیم.
الستیک سرچ یک سری API داره که میتونیم ازشون استفاده کنیم. تو قالب زبانهای برنامهنویس ساپورت میشه. داخل پایتون هم یک کتابخونه براش توسعه دادن که با اون میتونید از قابلیتهاش استفاده کنید.
برای استفاده ازش میتونید با دستور زیر کتابخانه مربوطش رو در پایتون نصب کنید:
pip install elasticsearchحال میتونیم از Elasticsearch در برنامههای پایتونی خودمون استفاده کنیم. به عنوان مثال، فرض کنید مواردی از یک فروشگاه اینترنتی رو داخل Elasticsearch ذخیره کردهایم و میخواییم برای جستجوی محصولات از Elasticsearch استفاده کنیم. با استفاده از کد زیر، میتونیم با Elasticsearch ارتباط بگیریم و سرچ رو برای محصولاتی با اسم "موبایل" انجام بدیم:
from elasticsearch import Elasticsearchتو کد، ما یک شیء از کلاس Elasticsearch ایجاد کردیم و یک query برای جستجو داخل Elasticsearch تعریف کردهایم. بعدش سرچ با استفاده از Elasticsearch انجام دادهایم و نتیجش رو به صورت یک لیست از JSON objects دریافت کردیم.
# ایجاد یک شیء از Elasticsearch
es = Elasticsearch()
# تعریف یک query جستجویی
query = {
"query": {
"match": {
"product_name": "موبایل"
}
}
}
# اجرای جستجو
results = es.search(index="my_index", body=query)
# چاپ نتیجه
for hit in results['hits']['hits']:
print(hit['_source']['product_name'])
الستیک خیلی جاها کاربرد داره برای مثال لاگها یک سرویس میشه داخلش ذخیره کرد و crash و ارورها داخلش جستجو کرد :).
بیشتر شرکتهای ایرانی و خارجی ازش استفاده میکنن و بلد بودنش به نظر میتونه یک پوینت مثبت باشه.
👾 @TorhamDevCH
👍9❤1
TorhamDev | تورهام 😳
الستیک سرچ ( Elasticsearch ) یکی از پرکاربردترین ابزارهای جستجوی متنباز و تحلیل داده است که برای نگهداری، جستجو، جمعآوری و تجزیه و تحلیل دادههایی در زمینههای مختلف مثل لاگها استفاده میشه. کاربرد اصلی Elasticsearch در برنامه نویسی، امکان ایجاد و سازماندهی…
این مقاله هم خالی از لطف نیست اگه خواستید بیشتر بدونید.
https://sunscrapers.com/blog/elasticsearch-python-7-tips-best-practices/
@TorhamDevCH
https://sunscrapers.com/blog/elasticsearch-python-7-tips-best-practices/
@TorhamDevCH
Sunscrapers
Elasticsearch with Python: 7 Tips and Best Practices | Sunscrapers
Elasticsearch - an open-source distributed search server that comes in handy for building applications. Read best practices & tips, how to use it with Python.
👍6
چیزهایی که خوبه یاد داشته باشیم اگه دنبال قدم بعدی در دنیا بکاند میگردید:
1. داکر ( دیگه باید همه بلد باشن :) )
2. لینوکس ( اگه بکاند کارید قطعا! )
3. ردیس ( اینم مثل داکر )
4. ربیت امکیو ( ردیس همین کار رو هم میکنه ولی اینو خیلی جاها میخان)
5. الستیکسرچ ( پست بالا )
6. میکروسرویس( تو لول ها بالاتر، و کلا distributed systems )
7. خود SQL (میتونه خیلی کمک کنه در آینده بهتون)
8. پستگرس اسکیول ( دیتابیس رایج خیلیهاست)
9. دیزاین پترن ( به عنوان یک دولوپر دونستاش خیلی کمک میکنه. البته تو ایران خیلیها میپرسن تو مصاحبه)
10. کوبرنتیز :)
در کنار اینا قطعا داشتن یک درک خوب از خود HTTP مهمه و خیلی چیزای دیگه که در این لحظه یادم نمیاد. از این لیست خیلیهاشو خود منم هنوز یاد ندارم، ولی یاد خواهم گرفت؟ قطعا.
بعدا برای همه اینایی که تو لیست گفتم دوره آموزش مناسب میزارم. احتمالا پست بعدی بشه این :)
👾 @TorhamDevCH
1. داکر ( دیگه باید همه بلد باشن :) )
2. لینوکس ( اگه بکاند کارید قطعا! )
3. ردیس ( اینم مثل داکر )
4. ربیت امکیو ( ردیس همین کار رو هم میکنه ولی اینو خیلی جاها میخان)
5. الستیکسرچ ( پست بالا )
6. میکروسرویس( تو لول ها بالاتر، و کلا distributed systems )
7. خود SQL (میتونه خیلی کمک کنه در آینده بهتون)
8. پستگرس اسکیول ( دیتابیس رایج خیلیهاست)
9. دیزاین پترن ( به عنوان یک دولوپر دونستاش خیلی کمک میکنه. البته تو ایران خیلیها میپرسن تو مصاحبه)
10. کوبرنتیز :)
در کنار اینا قطعا داشتن یک درک خوب از خود HTTP مهمه و خیلی چیزای دیگه که در این لحظه یادم نمیاد. از این لیست خیلیهاشو خود منم هنوز یاد ندارم، ولی یاد خواهم گرفت؟ قطعا.
بعدا برای همه اینایی که تو لیست گفتم دوره آموزش مناسب میزارم. احتمالا پست بعدی بشه این :)
👾 @TorhamDevCH
👍14❤1
TorhamDev | تورهام 😳
چیزهایی که خوبه یاد داشته باشیم اگه دنبال قدم بعدی در دنیا بکاند میگردید: 1. داکر ( دیگه باید همه بلد باشن :) ) 2. لینوکس ( اگه بکاند کارید قطعا! ) 3. ردیس ( اینم مثل داکر ) 4. ربیت امکیو ( ردیس همین کار رو هم میکنه ولی اینو خیلی جاها میخان) 5. الستیکسرچ…
نظر مانی هم خوب بود :)
rabbitmq همون کاره ردیسو نمیکنه ها. خیلی تفاوت داره یوزکیسشون.
الستیک بنظرم واقعا الزامی نیست بلد بودنش. خیلی جاها دیدم استفاده نمیکنن.
دونستن دیزاین پترن خوبه. ولی از نظر اهمیت شاید اخره این لیست باشه.
دونستن لینوکس هم خوبه ولی در حد بلد بودن کامنداش. بیشترش ممکنه به دردتون نخوره با توجه به اینکه اکثرا دیگه کلاد هستن.
۱۱. کلاد و AWS
۱۲. تست نویسی
۱۳. مانیتورینگ و instrument و telemetry خیلی مهم تره.
۱۴. architecture design (خیلی مهم تره تا دیزاین پترن)
https://roadmap.sh/backend
کلا نمیدونم مشکل همه چیه با این رودمپ... خیلی کامل و دقیق گفته. فقط کلاد توش جا مونده.
rabbitmq همون کاره ردیسو نمیکنه ها. خیلی تفاوت داره یوزکیسشون.
الستیک بنظرم واقعا الزامی نیست بلد بودنش. خیلی جاها دیدم استفاده نمیکنن.
دونستن دیزاین پترن خوبه. ولی از نظر اهمیت شاید اخره این لیست باشه.
دونستن لینوکس هم خوبه ولی در حد بلد بودن کامنداش. بیشترش ممکنه به دردتون نخوره با توجه به اینکه اکثرا دیگه کلاد هستن.
۱۱. کلاد و AWS
۱۲. تست نویسی
۱۳. مانیتورینگ و instrument و telemetry خیلی مهم تره.
۱۴. architecture design (خیلی مهم تره تا دیزاین پترن)
https://roadmap.sh/backend
کلا نمیدونم مشکل همه چیه با این رودمپ... خیلی کامل و دقیق گفته. فقط کلاد توش جا مونده.
roadmap.sh
Backend Developer Roadmap: What is Backend Development
Step by step guide to becoming a modern backend developer in 2025
👌8
Forwarded from CodeNaline | کدنالین
با مارک هماهنگ شد برای ۲ هفته دیگه :). اما چون تو این دو هفته بیکار نباشیم قراره یک اپیزود مشترک با مانی و بابی کلاود درباره مسیر رشد بکاند دولوپر داشته باشیم یک شنبه :). سوالاتتون در این مورد داخل کامنت ها همین پست لطفا بگید ❤️.
❤7⚡2👍1🔥1👌1
Forwarded from آموزش پایتون، دوآپس و مهندسی نرم افزار | BobyCloud (Boby Cloud)
✅ در ویدیو جدید بابی در نقش یک آتش نشان فداکار به سراغ مبحث تست نویسی در مهندسی نرم افزار میره و راجع به Smoke Test (تست دود) صحبت میکنه. همچنین یک نمونه Smoke Test با استفاده از سلنیوم در پایتون روی وبسایت LeetCode پیاده سازی میکنیم.
🔥 تست دود نوعی تست نرم افزار هست که پس از انجام تغییرات در نرم افزار انجام میشود تا اطمینان حاصل شود که ویژگی های اصلی نرم افزار به درستی عمل میکنند.
🖥 مشاهده در یوتوب
👉 Link: https://youtu.be/Mog3OaiSidE?si=Sgyo6udH4wQHWZNg
〰️〰️〰️〰️〰️〰️
@BobyDotCloud
🔥 تست دود نوعی تست نرم افزار هست که پس از انجام تغییرات در نرم افزار انجام میشود تا اطمینان حاصل شود که ویژگی های اصلی نرم افزار به درستی عمل میکنند.
🖥 مشاهده در یوتوب
👉 Link: https://youtu.be/Mog3OaiSidE?si=Sgyo6udH4wQHWZNg
〰️〰️〰️〰️〰️〰️
@BobyDotCloud
❤5
Forwarded from Nima Tech Talk 💻
پیاده سازی عجیب و زیبای درهم تنیدگی در وب به کمک لوکال استوریج
Entanglement implementation in web
https://x.com/_nonfigurativ_/status/1727322594570027343?s=46
Entanglement implementation in web
https://x.com/_nonfigurativ_/status/1727322594570027343?s=46