Forwarded from RandRng
من یک توضیحی روی این پست قبلی درباره کانفیگ
دوستان فلسفه کانفیگهای
من به درخواست یکسری دوستان مجددا پروژه رو برای آخرین نسخه
پس چرا به اشتراک میذاریم ؟
معرفی و یک چیزی برای شروع؛ اگر تلاش کرده باشید یک مورد رو از اول برای خودتون کانفیگ کنید (بخصوص دفعات اول) خوندن و کانفیگ درست انجام دادن میتونه از ۱-۲ روز تا ۱-۲ هفته زمان ببره ولی اگر یکی قبلا یک بیس براتون توسعه داده باشه این زمان بخصوص با وجود
هیچکس هم علاقه نداره
اما چندتا نکته :
۱- اگر یک چیزی میخواید که دانلود کنید و کار کنه؛ بهترین گزینه برای شما
۲- اگر سنگینی
۳- اگر تایپ ۱۰ انگشتی بلد نیسیتید؛
۴- اگر فقط روی یک زبان برنامهنویسی کار میکنید و
۵- اگر فکر میکنید
قبل از توضیح بیشتر :
یادتون باشه
۶- قبل از اینکه با کانفیگ
۷- فلسفه کلیدها این هست که همه چیز روی home row باشه با استفاده زیاد از
۸- هیچ چیز خفنی هم روی استفاده از
۹- در نهایت از کاستومایز کردن لذت ببرید؛ این ادیتور مال شماست.
neovim خودم بدم.دوستان فلسفه کانفیگهای
neovim این نیست که دانلود کنید و تمام اونوقت همه چیز روی سیستم شما هم عالی کار کنه و همه چیزش رو شما هم دوست داشته باشید.من به درخواست یکسری دوستان مجددا پروژه رو برای آخرین نسخه
neovim و کانفیگها آپدیت کردم البته الان.پس چرا به اشتراک میذاریم ؟
معرفی و یک چیزی برای شروع؛ اگر تلاش کرده باشید یک مورد رو از اول برای خودتون کانفیگ کنید (بخصوص دفعات اول) خوندن و کانفیگ درست انجام دادن میتونه از ۱-۲ روز تا ۱-۲ هفته زمان ببره ولی اگر یکی قبلا یک بیس براتون توسعه داده باشه این زمان بخصوص با وجود
LLM ها میتونه به ۱-۲ ساعت برسه.هیچکس هم علاقه نداره
Lua یادبگیره که فقط Neovim کانفیگ کنه.اما چندتا نکته :
۱- اگر یک چیزی میخواید که دانلود کنید و کار کنه؛ بهترین گزینه برای شما
vscode هست۲- اگر سنگینی
vscode اذیتتون میکنه چون روی چند زبان کار میکنید یا پروژه شما خیلی بزرگ هست گزینه بهتر Zed هست.۳- اگر تایپ ۱۰ انگشتی بلد نیسیتید؛
vim, neovim برای شما مناسب نیست۴- اگر فقط روی یک زبان برنامهنویسی کار میکنید و
vscode, zed کند نمیشه براتون یا اگر علاقهای به کانفیگ کردن جزئیات ندارید بازم neovim بدرد شما نمیخوره۵- اگر فکر میکنید
neovim کمک میکنه تندتر کد بزنید چون شرتکاتهای خوبی داره؛ بهتره برای ادیتوری که روش هستید وقت بذارید و شرتکاتهای همون رو یاد بگیرید.قبل از توضیح بیشتر :
یادتون باشه
neovim دائما درحال آپدیت شدن هست؛ کانفیگها هم همینطور و بسیاری از اونها بین ورژن و گیتکامیت تغییرات breaking هم داره شخصا ۶ ماه یا ۱ سال یکبار آپدیتش میکنم یا وقتی یک سیستم جدید رو کانفیگ میکنم و میبینم دیگه ورژنها نمیخونه.۶- قبل از اینکه با کانفیگ
neovim دیگران کار کنید سعی کنید کلیدهای اصلی vim یا neovim رو یاد بگیرید.۷- فلسفه کلیدها این هست که همه چیز روی home row باشه با استفاده زیاد از
Ctrl, Alt فقط مزایای شرتکاتها رو از دست میدید و نشون میده این ادیتور برای شما نیست.۸- هیچ چیز خفنی هم روی استفاده از
neovim, vim نیست آدما شمارو با کدی که زدید قضاوت میکنند نه با ادیتوری که استفاده کردید.۹- در نهایت از کاستومایز کردن لذت ببرید؛ این ادیتور مال شماست.
👍25
Forwarded from RandRng
95% of enterprise AI deployments fail to deliver value
در یک حرکتی چندتا از این شرکتهای
AI فروش داخلی (کاسبان تحریم) روی موجهای اخیر درحال تلاش برای خوروندن LLM به شرکتهای دیگر هستند. شرکتهایی که همینطوری بخاطر تحریم؛ جنگ؛ قطعی اینترنت و تعطیلی به زور سرپا موندند.برای همین خواستم دوتا مورد رو یادآوری کنم:
اولین مورد گزارش
MIT روی میزان سودآوری AI (که ۹۵٪ میزان بازگشت 0 داشتند) legal.io
مورد دوم؛
تجربه شخصی بنده توی کار با تیمی از مهندسها که مدتی قبل منتور اونها بودم.
( استفاده درست از LLM ها برای مهندسی کامپیوتر )
با نهایت احترام به شرکتهای
AI داخلی که واقعا innovation دارند و در تلاش برای پیشرفت جامعهی ایرانی هم هستند.Telegram
RandRng
#تجربه@per3onnel
این موضوع برداشت من براساس دادههای گروهی از افراد هست که منتور اونها هستم (قبلتر گفتم راجبش)
با این بحث شروع کنم که، من برای توسعه کدهام neovim, vscode رو دارم و اکثر وقتم توی neovim هست.
روی هیچکدوم ai, agent هم ندارم.
cursor, gravity…
این موضوع برداشت من براساس دادههای گروهی از افراد هست که منتور اونها هستم (قبلتر گفتم راجبش)
با این بحث شروع کنم که، من برای توسعه کدهام neovim, vscode رو دارم و اکثر وقتم توی neovim هست.
روی هیچکدوم ai, agent هم ندارم.
cursor, gravity…
👍14
class Engine():
_instance = None
_lock = threading.Lock()
def __new__(cls):
if cls._instance is None:
with cls._lock:
if cls._instance is None:
....
توی کد بالا بنظر شما چرا
if cls._instance دوبار استفاده شده ؟
اگر بلد نیستید اشکالی نداره (قراره یاد بگیرید)
قبل از دیدن راهنماییها با دقت بهش فکر کنید ببینید متوجه دلیلش میشید ؟
راهنمایی:
به حالت async اجرای این Singleton فکر کنید
اسم این پترن : double check locking هست
یک سری موارد رو چندوقت پیش توی مصاحبههام با شرکتهای بزرگ دیدم؛ الان دارم روی یک پروژه کار میکنم این مورد رو نیاز داشتم پیادهسازی کنم گفتم همینارو سوال جواب کنم برای یادگیری دوستان.
👍71
یکبار برای همیشه؛ زرتی نرید استک بکند رو عوض کنید تا تعداد درخواستهاتون به ۵۰ تا در ثانیه رسید.
اگر سرویس بکند شما نمیتونه این تعداد درخواست رو جواب بده مشکل شما پایتون نیست؛ مشکل شما سواد هست.
واقعا خسته شدم طرف تعداد درخواست در ثانیهاش به ۳۰ تا هم نمیرسه میگه ما باید به Go مهاجرت کنیم.
حتما روی ۱۰۰ تا هم باید به Rust مهاجرت کنی ؟
من دوتا تصویر میذارم؛ تصویر اول بر اساس این بنچمارک مستقل با
برای هر کدوم تعداد درخواست بر ثانیه رو مینویسم:
1) Django + Postgresql:
2) Fastapi:
مثلا توی همون بنچمارک کانفیگهای مختلف
بدون تغییر فریمورک اصلی و کد
3) Gin:
و در نهایت فریمورک مورد علاقه خودم :
4) Axum + Postgres:
بله میلیون
با اینکه من خیلی به Axum علاقه دارم و بسیار هم توی کد زدن روش راحت هستم ولی تا الان نشده مشاور یا مدیر فنی تیمی باشم و Axum رو پیشنهاد بدم حتی روی بکندهای با تعداد درخواست بسیار بالا گزینه اول همیشه FastAPI هست.
ادامه پست بعدی
اگر سرویس بکند شما نمیتونه این تعداد درخواست رو جواب بده مشکل شما پایتون نیست؛ مشکل شما سواد هست.
واقعا خسته شدم طرف تعداد درخواست در ثانیهاش به ۳۰ تا هم نمیرسه میگه ما باید به Go مهاجرت کنیم.
حتما روی ۱۰۰ تا هم باید به Rust مهاجرت کنی ؟
من دوتا تصویر میذارم؛ تصویر اول بر اساس این بنچمارک مستقل با
chatgpt جدول شدهبرای هر کدوم تعداد درخواست بر ثانیه رو مینویسم:
1) Django + Postgresql:
31,000 - 33,000 2) Fastapi:
11,000 - 109,000مثلا توی همون بنچمارک کانفیگهای مختلف
Fastapi رو ببینید چقدر تفاوت داره از ۱۱ هزار درخواست برای یک مورد تا ۱۰۹۰۰۰ درخواست.بدون تغییر فریمورک اصلی و کد
3) Gin:
110,000و در نهایت فریمورک مورد علاقه خودم :
4) Axum + Postgres:
1,115,000بله میلیون
با اینکه من خیلی به Axum علاقه دارم و بسیار هم توی کد زدن روش راحت هستم ولی تا الان نشده مشاور یا مدیر فنی تیمی باشم و Axum رو پیشنهاد بدم حتی روی بکندهای با تعداد درخواست بسیار بالا گزینه اول همیشه FastAPI هست.
ادامه پست بعدی
👍56
Python Hints
یکبار برای همیشه؛ زرتی نرید استک بکند رو عوض کنید تا تعداد درخواستهاتون به ۵۰ تا در ثانیه رسید. اگر سرویس بکند شما نمیتونه این تعداد درخواست رو جواب بده مشکل شما پایتون نیست؛ مشکل شما سواد هست. واقعا خسته شدم طرف تعداد درخواست در ثانیهاش به ۳۰ تا هم نمیرسه…
تا ۱۰۹ هزار درخواست در ثانیه رو میتونه جواب بده روی این بنچمارک؛ من اگر سرویسم به ۶۰۰۰ درخواست در ثانیه هم برسه یک چیزی در حد
برای تعجب بیشتر شما؛ توی مصاحبه به
اگر کار نیاز به صفحه ادمین و استانداردهای خارج از مایکروسرویس داشته باشه و تیم کوچیک باشه ۱۰۰٪ میرم سراغ جنگو.
عکس دوم هم از اینجا اومده و برای
۱۰ هزار کانکشن با حجم دیتای ۱ کیلوبایت تعداد درخواست حداقل ۲۰ هزارتا (تازه روی
چیزایی که زیاد میبینم :
آدما هیچ درکی از معماری مونولوتیک و میکروسرویس ندارند و یکی رو میزنند؛ اینم بگم رندر صفحات استک اورفلو توی ۱۲ میلی ثانیه هست.
برید مصاحبه رو ببینید واقعا
آدما هیچ درکی از تعداد درخواست در ثانیه ندارند و زرتی عدد ۱ میلیون درخواست در ثانیه رو تو مصاحبه و ... اینور و اونور پرت میکنند
آدما هیچ درکی از هیچکدوم ندارند و حتی توانایی فهمیدن کد رو هم ندارند و فقط فریمورک پروژه رو میخوان عوض کنند 🤬🤬
Stackoverflow هستم (بر اساس مصاحبه Roberta Arcoverde میگم)برای تعجب بیشتر شما؛ توی مصاحبه به
monolithic بودن معماری سیستم اشاره میشه و البته به اینکه on-permise هم هست.اگر کار نیاز به صفحه ادمین و استانداردهای خارج از مایکروسرویس داشته باشه و تیم کوچیک باشه ۱۰۰٪ میرم سراغ جنگو.
عکس دوم هم از اینجا اومده و برای
websocket هست ۱۰ هزار کانکشن با حجم دیتای ۱ کیلوبایت تعداد درخواست حداقل ۲۰ هزارتا (تازه روی
fastapi که میگن برای وبساکت با حجم بایت بالا خوب نیست)چیزایی که زیاد میبینم :
آدما هیچ درکی از معماری مونولوتیک و میکروسرویس ندارند و یکی رو میزنند؛ اینم بگم رندر صفحات استک اورفلو توی ۱۲ میلی ثانیه هست.
برید مصاحبه رو ببینید واقعا
آدما هیچ درکی از تعداد درخواست در ثانیه ندارند و زرتی عدد ۱ میلیون درخواست در ثانیه رو تو مصاحبه و ... اینور و اونور پرت میکنند
آدما هیچ درکی از هیچکدوم ندارند و حتی توانایی فهمیدن کد رو هم ندارند و فقط فریمورک پروژه رو میخوان عوض کنند 🤬🤬
👍55
Python Hints
تا ۱۰۹ هزار درخواست در ثانیه رو میتونه جواب بده روی این بنچمارک؛ من اگر سرویسم به ۶۰۰۰ درخواست در ثانیه هم برسه یک چیزی در حد Stackoverflow هستم (بر اساس مصاحبه Roberta Arcoverde میگم) برای تعجب بیشتر شما؛ توی مصاحبه به monolithic بودن معماری سیستم اشاره…
گزارش تیم مهندسی یکی دیگه از شرکتها برای سالی بین ۲۰۲۳-۲۰۲۵ توی اون رنج بود که شرکت خیلی خیلی بزرگی هم هست و تعداد درخواستهاش تازه به ۵۰۰۰ رسیده
توی دوران جنگ اخیر توی گروه گذاشتم ولی متاسفانه الان پیداش نکردم؛ حتما اگر پیدا کردم اون مورد رو هم اضافه میکنم.
ولی بنظرم همین مورد
خلاصه مشکل سواد و معماری هست؛ نه فریمورک و زبان برنامهنویسی
توی دوران جنگ اخیر توی گروه گذاشتم ولی متاسفانه الان پیداش نکردم؛ حتما اگر پیدا کردم اون مورد رو هم اضافه میکنم.
ولی بنظرم همین مورد
Stackoverflow هم مورد به اندازه ملموسی هست برای درک این موضوع.خلاصه مشکل سواد و معماری هست؛ نه فریمورک و زبان برنامهنویسی
👍46
Forwarded from RandRng
LLM قراره جای برنامه نویسهارو بگیره ؟
من که کدم رو + دستورالعمل ریفکتور دادم تا برام تمیز کنه و خروجی که توی تصویر هست
نصف باگهای مدلهای
LLM رو من درآوردم باید بهم هزینه پرداخت کنند واقعاپینوشت:
تازه ۳۵ دقیقه هم طول کشید. خودم میزدم ۲۰ دقیقهای تموم میشد.
👍29
Forwarded from RandRng
#Quick
لطفا ازین مورد استفاده کنید؛ نشستم لاگ سرور یک پروژه رو میخونم تمام اطلاعات سرور و اطلاعات کاربراش خیلی زیبا و خوانا توی لاگ هست.
قبلا هم یک موردی رو توی
@pyhints
یاد دادم برای لاگ نویسی موارد مهم.
لطفا از هر دو استفاده کنید؛ هیچ چیز مهمی نباید توی لاگ نوشته بشه.
بخصوص ایمیل و شمارهتماس کاربر.
from pydantic import SecretStr
لطفا ازین مورد استفاده کنید؛ نشستم لاگ سرور یک پروژه رو میخونم تمام اطلاعات سرور و اطلاعات کاربراش خیلی زیبا و خوانا توی لاگ هست.
قبلا هم یک موردی رو توی
@pyhints
یاد دادم برای لاگ نویسی موارد مهم.
لطفا از هر دو استفاده کنید؛ هیچ چیز مهمی نباید توی لاگ نوشته بشه.
بخصوص ایمیل و شمارهتماس کاربر.
👍23
RandRng
#Quick from pydantic import SecretStr لطفا ازین مورد استفاده کنید؛ نشستم لاگ سرور یک پروژه رو میخونم تمام اطلاعات سرور و اطلاعات کاربراش خیلی زیبا و خوانا توی لاگ هست. قبلا هم یک موردی رو توی @pyhints یاد دادم برای لاگ نویسی موارد مهم. لطفا از هر دو استفاده…
Telegram
Python Hints
با یک مثال خیلی ساده شروع کنیم تا مطلب جا بیوفته قشنگ؛ توجه کنید من توقع دارم کار با logging رو مقدماتش رو بلد باشید.
اصلی ترین عنصر logger هست؛ اگر بخوام خیلی خلاصه بگم:
وظیفهاش اینه که یک پیام از شما دریافت کنه و بر اساس level اون رو به handler درستش…
اصلی ترین عنصر logger هست؛ اگر بخوام خیلی خلاصه بگم:
وظیفهاش اینه که یک پیام از شما دریافت کنه و بر اساس level اون رو به handler درستش…
👍11
Python Hints
#Backend_RoadMap_2025 قبل از اینکه بخواید این roadmap رو دنبال کنید باید پست قبلی رو بخونید. یک نکتهای که اضافه کنم؛ توی جلسات و ... که بحث شد من اصلا قرار نیست هیچ چیزی رو آموزش بدم (اشتباهات رو کمک میکنم حل بشه و ...) اما اینکه آموزش بدم FastAPI چیست و…
16-week-fastapi.md
33.6 KB
#Backend_RoadMap
#Sample_Project
زحمت این فایل رو شایان عزیز کشیده (با استفاده درست از AI) و توی گروه گذاشت من چندتا نکته رو اضافه کردم و با اجازهاش گفتم بعنوان نمونه اینجا منتشر کنم
پست بعدی نکاتی هست که من اضافه کردم.
#Sample_Project
زحمت این فایل رو شایان عزیز کشیده (با استفاده درست از AI) و توی گروه گذاشت من چندتا نکته رو اضافه کردم و با اجازهاش گفتم بعنوان نمونه اینجا منتشر کنم
پست بعدی نکاتی هست که من اضافه کردم.
👍16
Python Hints
16-week-fastapi.md
Background jobs
رو توی دو مرحله پیادهسازی کن
مرحله اول رو با خود
Fastapi
پیاده سازی کن ببرش زیر لود تست بعد ببین چه اتفاقی میوفته
ADR-0015
رو نمیدونم چی هست ولی اینکه بدونی تا چه زمانی از خود
Fastapi
میتونی استفاده کنی خیلی مهمه بعدش برو روی Dramatiq
——————
Auth
رو با
Argon2
هم چک کن (خیلی واجب نیست فقط برای اینکه بهش آشنا باشی)
————————
برای متریک
prometheus_client
استاندارد اصلی هست
————————
چندتا چیز دیگه که بهتره اضافه کنی :
۱- لاگ رو وقتی با structlog زدی بعدش باید قابل خوندن و تحلیل هم باشه اما لزوما این کار رو روی سروری که اپ لانچ هست ممکنه انجام ندی :
پس یک چیزی برای جمع کردن لاگ همه اپها لازم میشه (توی پروداکشن معمولا) یک نسخه خیلی خوب و سبک و عالی :
https://vector.dev/
هست
۲- نمایش همه اینها؛ خیلی وقتا لاگ - تریس - متریک جمع میکنیم ولی تا وقتی آنالیزش نکنیم نمیدونیم درست هست یا نه
https://grafana.com/
گرافانا برای این وقتا خیلی خوبه (البته نیازی نیست ساخت داشبورد و ... توش رو یاد بگیری اون کار تیمهای دیگهاس)
ولی همین که ببینی دیتات توی این داشبورد چطوری نشون داده میشه نکته خوبی هست
پینوشت:
اگر از نظرت مشکلی نداره plan رو بذارم تو کانال به اسم خودت.
بعنوان نمونه اگر کسی خواست انجام بده
رو توی دو مرحله پیادهسازی کن
مرحله اول رو با خود
Fastapi
پیاده سازی کن ببرش زیر لود تست بعد ببین چه اتفاقی میوفته
ADR-0015
رو نمیدونم چی هست ولی اینکه بدونی تا چه زمانی از خود
Fastapi
میتونی استفاده کنی خیلی مهمه بعدش برو روی Dramatiq
——————
Auth
رو با
Argon2
هم چک کن (خیلی واجب نیست فقط برای اینکه بهش آشنا باشی)
————————
برای متریک
prometheus_client
استاندارد اصلی هست
————————
چندتا چیز دیگه که بهتره اضافه کنی :
۱- لاگ رو وقتی با structlog زدی بعدش باید قابل خوندن و تحلیل هم باشه اما لزوما این کار رو روی سروری که اپ لانچ هست ممکنه انجام ندی :
پس یک چیزی برای جمع کردن لاگ همه اپها لازم میشه (توی پروداکشن معمولا) یک نسخه خیلی خوب و سبک و عالی :
https://vector.dev/
هست
۲- نمایش همه اینها؛ خیلی وقتا لاگ - تریس - متریک جمع میکنیم ولی تا وقتی آنالیزش نکنیم نمیدونیم درست هست یا نه
https://grafana.com/
گرافانا برای این وقتا خیلی خوبه (البته نیازی نیست ساخت داشبورد و ... توش رو یاد بگیری اون کار تیمهای دیگهاس)
ولی همین که ببینی دیتات توی این داشبورد چطوری نشون داده میشه نکته خوبی هست
پینوشت:
اگر از نظرت مشکلی نداره plan رو بذارم تو کانال به اسم خودت.
بعنوان نمونه اگر کسی خواست انجام بده
vector.dev
A lightweight, ultra-fast tool for building observability pipelines
👍13
اینو یادداشت کرده بودم که بذارم:
تقریبا ۱.۵ سال پیش روی یک پروژهای کار میکردم (فکر کنم گفتم جزو معدود پروژههایی بود که از اول توی پروژه بودم)
امشب با مدیرعامل شرکت و صاحب پروژه صحبت میکردم (شاید پروژه دوم) میگفت علاوه بر دولوپرهای بعدی ادمین دیتابیس هر چندوقت یکبار که روی دیتابیس کار میکنه ی دمش گرم هم به ما میگه.
من استانداردهای زیادی رو رعایت کردم روی اون پروژه ولی این ۵ خط بنظر میاد خیلی بچههایی که روی دیتابیس کار میکنند رو راضی نگهداشته
من همیشه اینکار رو برای خودم میکنم که توی همه پروژههام یک استاندارد رعایت شده باشه و راحت بتونم دیباگ کنم و بخونم؛ خلاصه برای راحتی خودم هست.
این حرفا رو که امشب شنیدم گفتم بذارم شما هم توی پروژههاتون رعایت کنید.
امیدوارم مفید باشه
تقریبا ۱.۵ سال پیش روی یک پروژهای کار میکردم (فکر کنم گفتم جزو معدود پروژههایی بود که از اول توی پروژه بودم)
امشب با مدیرعامل شرکت و صاحب پروژه صحبت میکردم (شاید پروژه دوم) میگفت علاوه بر دولوپرهای بعدی ادمین دیتابیس هر چندوقت یکبار که روی دیتابیس کار میکنه ی دمش گرم هم به ما میگه.
من استانداردهای زیادی رو رعایت کردم روی اون پروژه ولی این ۵ خط بنظر میاد خیلی بچههایی که روی دیتابیس کار میکنند رو راضی نگهداشته
class Base(AsyncAttrs, DeclarativeBase):
metadata = sa.MetaData(
naming_convention={
"ix": "ix_%(column_0_label)s",
"uq": "uq_%(table_name)s_%(column_0_name)s",
"ck": "ck_%(table_name)s_%(column_0_name)s",
"fk": "fk_%(table_name)s_%(column_0_name)s_%(referred_table_name)s",
"pk": "pk_%(table_name)s",
}
)
من همیشه اینکار رو برای خودم میکنم که توی همه پروژههام یک استاندارد رعایت شده باشه و راحت بتونم دیباگ کنم و بخونم؛ خلاصه برای راحتی خودم هست.
این حرفا رو که امشب شنیدم گفتم بذارم شما هم توی پروژههاتون رعایت کنید.
امیدوارم مفید باشه
👍66
این ترکیب به راحتی میتونه خیلی از پروژهها رو از
توی خیلی پروژهها برای خودم پیش اومده که یک دیتابیس نیاز داشتم؛ شاید ۵-۱۰ تا جدول ولی اینکه فقط روی یک سرور نباشه هم برام مهم بوده که خب سرویسهای کلاد رو استفاده میکردم.
همزمان هم
الان داشتم دنبال یک راهکار برای یک پروژه دیگه میگشتم و واقعا دلم نمیخواد
به چندتا راهکار رسیدم که بنظرم این ترکیب برای کار من برنده هست بخصوص اینکه
بعد از پروژه یادم باشه نتایجش رو هم میذارم.
پینوشت: اگر خواستید بیشتر بررسی کنید
Turso
Litestream
Rustfs
Postgres به Sqlite منتقل کنه؛ Sqlite + Litestreamتوی خیلی پروژهها برای خودم پیش اومده که یک دیتابیس نیاز داشتم؛ شاید ۵-۱۰ تا جدول ولی اینکه فقط روی یک سرور نباشه هم برام مهم بوده که خب سرویسهای کلاد رو استفاده میکردم.
همزمان هم
Latency میرفت بالا هم کلی هزینه پرفورمنس واسه سربارهایی کار کردن با Postgres میدادم درحالی که به ۹۰٪ اون ویژگیها نیازی نداشتم.الان داشتم دنبال یک راهکار برای یک پروژه دیگه میگشتم و واقعا دلم نمیخواد
Latency و Throughput ام بخاطر استفاده از Postgres کم بشه و بعد بشینم اپتیمایز کنم. بخصوص اینکه این دیتابیس هیچ دیتای حساسی نداره و فقط همین که دیتاها از بین نره برام مهم هست.به چندتا راهکار رسیدم که بنظرم این ترکیب برای کار من برنده هست بخصوص اینکه
RustFS رو همین الان داریم :Turso + Litestream + Rustfsبعد از پروژه یادم باشه نتایجش رو هم میذارم.
پینوشت: اگر خواستید بیشتر بررسی کنید
Turso
Litestream
Rustfs
GitHub
GitHub - tursodatabase/turso: Turso is an in-process SQL database, compatible with SQLite.
Turso is an in-process SQL database, compatible with SQLite. - tursodatabase/turso
👍15