چند وقت پیش وسط یه پروژه معمولی بودم. یه سایت ساده که فقط باید اطلاعات رو درست و تمیز نشون بده. همون موقع یه سؤال تو ذهنم چرخید:
اصلاً چرا وب هنوز اینقدر یکطرفهس؟
چرا سایت فقط نشون میده ولی نمیفهمه چی میخوای؟
از همین سؤال رسیدم به چیزی که این روزا داره یه لایه جدید به وب اضافه میکنه: NLWeb
چرا NLWeb اینقدر باحاله؟
ایدهاش خیلی سادهس ، اینکه هر سایت بتونه تبدیل بشه به یه رابط گفتگویی واقعی.
نه چتباتهای معمولی؛ یه چیزی شبیه یه دستیار که واقعاً محتوای سایت رو درک میکنه.
وقتی این قضیه رو با پایتون ترکیب میکنی، ماجرا جذابتر هم میشه:
اطلاعات سایت تبدیل میشن به بردارهای قابل جستجوی معنایی
پایتون میشه مغز تحلیل و اتصال به مدلهای زبانی
همهچی همزمان اتفاق میفته، بدون شلوغکاری
خروجی چی میشه؟
کاربر که وارد سایت میشه، دیگه مجبور نیست تو منوها یا PDFهای سنگین دنبال جواب بگرده.
فقط سؤالش رو مینویسه و پشتصحنه، NLWeb کل محتوای سایت رو میفهمه، تحلیل میکنه و یه جواب دقیق و تمیز میده.
https://github.com/nlweb-ai/NLWeb
یعنی در عمل:
سایتها از یه مشت صفحه ثابت، تبدیل میشن به یه موجود زنده که کاربر رو میفهمه
تجربه از «جستجو» میره سمت «گفتگو»
برندها یه لایه تعامل هوشمند و واقعی میگیرن
دنیای وب و برنامه نویسی هوشمندگرا ، کمکم داره از حالت نمایشی، میره سمت فهمیدن و این فقط شروعشه.
@DevTwitter | <amin diba/>
اصلاً چرا وب هنوز اینقدر یکطرفهس؟
چرا سایت فقط نشون میده ولی نمیفهمه چی میخوای؟
از همین سؤال رسیدم به چیزی که این روزا داره یه لایه جدید به وب اضافه میکنه: NLWeb
چرا NLWeb اینقدر باحاله؟
ایدهاش خیلی سادهس ، اینکه هر سایت بتونه تبدیل بشه به یه رابط گفتگویی واقعی.
نه چتباتهای معمولی؛ یه چیزی شبیه یه دستیار که واقعاً محتوای سایت رو درک میکنه.
وقتی این قضیه رو با پایتون ترکیب میکنی، ماجرا جذابتر هم میشه:
اطلاعات سایت تبدیل میشن به بردارهای قابل جستجوی معنایی
پایتون میشه مغز تحلیل و اتصال به مدلهای زبانی
همهچی همزمان اتفاق میفته، بدون شلوغکاری
خروجی چی میشه؟
کاربر که وارد سایت میشه، دیگه مجبور نیست تو منوها یا PDFهای سنگین دنبال جواب بگرده.
فقط سؤالش رو مینویسه و پشتصحنه، NLWeb کل محتوای سایت رو میفهمه، تحلیل میکنه و یه جواب دقیق و تمیز میده.
https://github.com/nlweb-ai/NLWeb
یعنی در عمل:
سایتها از یه مشت صفحه ثابت، تبدیل میشن به یه موجود زنده که کاربر رو میفهمه
تجربه از «جستجو» میره سمت «گفتگو»
برندها یه لایه تعامل هوشمند و واقعی میگیرن
دنیای وب و برنامه نویسی هوشمندگرا ، کمکم داره از حالت نمایشی، میره سمت فهمیدن و این فقط شروعشه.
@DevTwitter | <amin diba/>
🔥34❤9👍6🍌6
گاهی تو دنیای فرانتاند یه چیزهایی هست که همیشه فقط موقع مصاحبه سر و کلهشون پیدا میشه…
«خب بگو ببینم Closure چیه؟»
ولی واقعیت اینه که Closure یکی از بنیادیترین مفاهیمی هست که خیلی از طراحیها و معماریهای مدرن جاوااسکریپت، و حتی خود React، روی اون سوار شدهاند.
توی این مقاله، سعی کردم خیلی ساده و مرحلهبهمرحله نشون بدم:
کلوژر واقعاً چیه و چرا مهمه
کجاها تو طراحی نرمافزار ازش استفاده میکنیم
چه معضلاتی میتونه به همراه داشته باشه
و مهمتر از همه: چطور React با استفاده خلاقانه از Closure، هوکهایی مثل useState و useEffect رو ممکن میکنه
برای اینکه مفهوم واقعاً جا بیفته، خودمون هم یک نسخهی مینیمال و واقعی از useState و useEffect رو با Closure ساختیم تا ببینیم پشتپرده چه خبره!
اگه Closure همیشه برات یک چیز مبهم، ترسناک یا فقط یک سؤال مصاحبهای بوده، این مقاله نگاهت رو بهش کامل عوض میکنه.
لینک مقاله
https://medium.com/@ajblog7070/how-javanoscript-closures-power-react-re-creating-usestate-and-useeffect-from-scratch-16a7ee0a0757
@DevTwitter | <Ali Jafarian/>
«خب بگو ببینم Closure چیه؟»
ولی واقعیت اینه که Closure یکی از بنیادیترین مفاهیمی هست که خیلی از طراحیها و معماریهای مدرن جاوااسکریپت، و حتی خود React، روی اون سوار شدهاند.
توی این مقاله، سعی کردم خیلی ساده و مرحلهبهمرحله نشون بدم:
کلوژر واقعاً چیه و چرا مهمه
کجاها تو طراحی نرمافزار ازش استفاده میکنیم
چه معضلاتی میتونه به همراه داشته باشه
و مهمتر از همه: چطور React با استفاده خلاقانه از Closure، هوکهایی مثل useState و useEffect رو ممکن میکنه
برای اینکه مفهوم واقعاً جا بیفته، خودمون هم یک نسخهی مینیمال و واقعی از useState و useEffect رو با Closure ساختیم تا ببینیم پشتپرده چه خبره!
اگه Closure همیشه برات یک چیز مبهم، ترسناک یا فقط یک سؤال مصاحبهای بوده، این مقاله نگاهت رو بهش کامل عوض میکنه.
لینک مقاله
https://medium.com/@ajblog7070/how-javanoscript-closures-power-react-re-creating-usestate-and-useeffect-from-scratch-16a7ee0a0757
@DevTwitter | <Ali Jafarian/>
❤24👍4🔥2
آیا هوش مصنوعی جای همه شغل هارو میگیره؟
نه
آیا توسعه ی نرم افزار از همیشه سخت تر میشه؟
آره
تو دنیایی که همه از هوش مصنوعی صحبت می کنند و دارند ازش استفاده می کنند و شرکت های بزرگ سرمایه گذاری سنگین می کنند، توسعه دهنده نرم افزار شدن سخت تر شده.
اما اگه سیستم رو بفهمی، توانایی debug کردن داشته باشی و بتونی با دلیل مشکلی رو حل کنی همچنان برای تو جا هست.
و اگه به اندازه کافی عمیق شده باشی می تونی پول خوبی در بیاری.
چون هنوز صنعت به نیروی خوب نیاز داره.
به کسی که توانایی فکر کردن و فهمیدن داره.
تجربه ارزش داره، حل کردن مشکل ارزش داره، اینکه یک سیستم چگونه کار می کنه و نه چرا، ارزش داره.
در نهایت برنامه نویس های ضعیف حذف میشن، برنامه نویس های متوسط باید پیشرفت کنن و برنامه نویس های قوی جاشون امنه.
https://www.youtube.com/watch?v=JPuP7SLs44g
@DevTwitter | <Yusof Sadat Fakhr/>
نه
آیا توسعه ی نرم افزار از همیشه سخت تر میشه؟
آره
تو دنیایی که همه از هوش مصنوعی صحبت می کنند و دارند ازش استفاده می کنند و شرکت های بزرگ سرمایه گذاری سنگین می کنند، توسعه دهنده نرم افزار شدن سخت تر شده.
اما اگه سیستم رو بفهمی، توانایی debug کردن داشته باشی و بتونی با دلیل مشکلی رو حل کنی همچنان برای تو جا هست.
و اگه به اندازه کافی عمیق شده باشی می تونی پول خوبی در بیاری.
چون هنوز صنعت به نیروی خوب نیاز داره.
به کسی که توانایی فکر کردن و فهمیدن داره.
تجربه ارزش داره، حل کردن مشکل ارزش داره، اینکه یک سیستم چگونه کار می کنه و نه چرا، ارزش داره.
در نهایت برنامه نویس های ضعیف حذف میشن، برنامه نویس های متوسط باید پیشرفت کنن و برنامه نویس های قوی جاشون امنه.
https://www.youtube.com/watch?v=JPuP7SLs44g
@DevTwitter | <Yusof Sadat Fakhr/>
👍21👎9❤7🔥2
سلام رفقا
چند روزی درگیر طراحی یه اپلیکیشن Shop بودم که داخلش مدیریت نمایندهها هم بهصورت کامل هندل بشه. راستش تو مسیر کلی چالش داشتم و یهسری سؤال بیجواب ذهنمو درگیر کرده بود.
تا اینکه به یه داکیومنت خیلی خفن رسیدم که حتی چندتا از مدیرهای FAANG (Meta(Facebook), Amazon, Apple, Netflix, Google) هم نظر دادن و واقعاً محتوای کامل و کاربردیای داره.
اگه دوست دارید مطالعهاش کنید، از این لینک میتونید برید
https://www.systemdesignhandbook.com/guides/design-inventory-management-system/
@DevTwitter | <rasol kalantari/>
چند روزی درگیر طراحی یه اپلیکیشن Shop بودم که داخلش مدیریت نمایندهها هم بهصورت کامل هندل بشه. راستش تو مسیر کلی چالش داشتم و یهسری سؤال بیجواب ذهنمو درگیر کرده بود.
تا اینکه به یه داکیومنت خیلی خفن رسیدم که حتی چندتا از مدیرهای FAANG (Meta(Facebook), Amazon, Apple, Netflix, Google) هم نظر دادن و واقعاً محتوای کامل و کاربردیای داره.
اگه دوست دارید مطالعهاش کنید، از این لینک میتونید برید
https://www.systemdesignhandbook.com/guides/design-inventory-management-system/
@DevTwitter | <rasol kalantari/>
❤12🍌4🔥1
اگر میخواهید کاری با واتس اپ بکنید برای اتوماسیون
https://github.com/tulir/whatsmeow
متاسفانه این اپ منفور هرچی لینک داره رو demote میکنه
@DevTwitter | <Fred/>
https://github.com/tulir/whatsmeow
متاسفانه این اپ منفور هرچی لینک داره رو demote میکنه
@DevTwitter | <Fred/>
👍13❤6🔥1
This media is not supported in your browser
VIEW IN TELEGRAM
اگر قدرت AI در دستان همه است، مدیون تلاشهای بیوقفه پیشگامانی چون یان لکان هستیم.
این ویدئو سفری ست به سال 1989 (1368)؛روزگاری که جادهها آسفالت نبود و بسیاری از نفت برای گرم کردن استفاده میکردند، پژوهشگران در آمریکا در حال آموزش مدل های AI بینایی ماشین مبتنی بر شبکه عصبی بودند.
@DevTwitter | <Gratomic AI Bot/>
این ویدئو سفری ست به سال 1989 (1368)؛روزگاری که جادهها آسفالت نبود و بسیاری از نفت برای گرم کردن استفاده میکردند، پژوهشگران در آمریکا در حال آموزش مدل های AI بینایی ماشین مبتنی بر شبکه عصبی بودند.
@DevTwitter | <Gratomic AI Bot/>
🔥105❤21👍9👎4
#کوته_نیوز
دیجیاتو/ گوگل دسترسی رایگان به جمینای 3 پرو و Nano Banana Pro را محدود کرد و گفت باید پول بپاشید رو سر و صورتم.
@DevTwitter
دیجیاتو/ گوگل دسترسی رایگان به جمینای 3 پرو و Nano Banana Pro را محدود کرد و گفت باید پول بپاشید رو سر و صورتم.
@DevTwitter
🍌101👍3🔥2❤1
توی vibe coding مرحله planning رو جدی بگیرید تا خروجیتون چند برابر بهتر بهشه.
به صورت خلاصه باید سه مرحله رو طی کنید
۱. تهیه کردن کانتکست خلاصه و درست
از AI توقع نداشته باشید کل پروژه رو تو ذهنش داشته باشه برای هر تسک بهش بگید به کجاها باید توجه کنه و به کجاها توجه نکنه.
کانتکست هم باید کوچیک باشه و هم باید جامع باشه
۲. پلن
هیچقوت از AI نخواید مستقیم کد رو بزنه چون بعدش refine کردنش خیلی سخت میشه. اول بخواید plan کنه اگه plan اون طوری که شما میخواستید نبود ازش بخواید plan رو refine کنه
۳. اجرا و راستی آزمایی.
مرحله آخرم اجراست. اگه اجراش خیلی پرت بود بهتره کل کد رو پاک کنید و برگردید به مرحله ۲ یا حتی مرحله ۱ اینکه هی با پرامپت های بعدی سعی کنید مشکل رو فیکس کنید خیلی جواب نمیده
مثلا فرض کنید شما یه پروژه دارید که تست نداره و با vibe coding میخواید براش تست بنویسید. راه اول اینه که سعی کنید توی یه پرامپت بلند یا کوتاه از AI بخواید برای شما تست بنویسه.
ولی راه پیشنهادی من اینه:
۱. از AI بخواید ماژول های پروژه رو برای شما شناسایی کنه و همراه با جزئیات لازمه نوشته بشه بده و توی یه فایل به هر اسمی مثل TASK1_PLAN.md بریز حالا بررسی نهایی رو روی این فایل بکنید مطمئن بشید best practice هایی که میخواید رعایت بشه توی PLAN نوشته شده اینکه چیا باید ماک بشه چیا نباید بشه اونجا هست و ۳. در قدم نهایی بخواید PLAN رو اجرا کنه
@DevTwitter | <brdia/>
به صورت خلاصه باید سه مرحله رو طی کنید
۱. تهیه کردن کانتکست خلاصه و درست
از AI توقع نداشته باشید کل پروژه رو تو ذهنش داشته باشه برای هر تسک بهش بگید به کجاها باید توجه کنه و به کجاها توجه نکنه.
کانتکست هم باید کوچیک باشه و هم باید جامع باشه
۲. پلن
هیچقوت از AI نخواید مستقیم کد رو بزنه چون بعدش refine کردنش خیلی سخت میشه. اول بخواید plan کنه اگه plan اون طوری که شما میخواستید نبود ازش بخواید plan رو refine کنه
۳. اجرا و راستی آزمایی.
مرحله آخرم اجراست. اگه اجراش خیلی پرت بود بهتره کل کد رو پاک کنید و برگردید به مرحله ۲ یا حتی مرحله ۱ اینکه هی با پرامپت های بعدی سعی کنید مشکل رو فیکس کنید خیلی جواب نمیده
مثلا فرض کنید شما یه پروژه دارید که تست نداره و با vibe coding میخواید براش تست بنویسید. راه اول اینه که سعی کنید توی یه پرامپت بلند یا کوتاه از AI بخواید برای شما تست بنویسه.
ولی راه پیشنهادی من اینه:
۱. از AI بخواید ماژول های پروژه رو برای شما شناسایی کنه و همراه با جزئیات لازمه نوشته بشه بده و توی یه فایل به هر اسمی مثل TASK1_PLAN.md بریز حالا بررسی نهایی رو روی این فایل بکنید مطمئن بشید best practice هایی که میخواید رعایت بشه توی PLAN نوشته شده اینکه چیا باید ماک بشه چیا نباید بشه اونجا هست و ۳. در قدم نهایی بخواید PLAN رو اجرا کنه
@DevTwitter | <brdia/>
1👍54👎13❤9🍌5
مدلی که این روزها توی اخبار خوب دیده نشد مدل ۶ میلیارد پارامتری Z-Image چینی هستش که تصاویر با کیفیتی رو با سرعت بالا (۱ ثانیه!) روی VRAM 16 GB و به صورت لوکال تولید میکنه.
مثل بیشتر مدلهای اوپن سورس چینی، بدون سانسور و محدودیته.
https://github.com/Tongyi-MAI/Z-Image
@DevTwitter | <Diego Jr/>
مثل بیشتر مدلهای اوپن سورس چینی، بدون سانسور و محدودیته.
https://github.com/Tongyi-MAI/Z-Image
@DevTwitter | <Diego Jr/>
1❤30🔥13🍌6👍2
اگر توسعه دهندهی تازه کار php هستید، نرمافزار xampp و wamp بدترین برنامه برای توسعه هستند
اگر با لاراول کار میکنید من بهتون Laravel Herd رو پیشنهاد میکنم که هم نصب سادهای داره و هم سرعت عالی برای اجرای برنامههای لاراولی
در غیر اینصورت Laragon رو نصب کنید و از توسعه برنامههای php لذت ببرید
@DevTwitter | <sina khaghani/>
اگر با لاراول کار میکنید من بهتون Laravel Herd رو پیشنهاد میکنم که هم نصب سادهای داره و هم سرعت عالی برای اجرای برنامههای لاراولی
در غیر اینصورت Laragon رو نصب کنید و از توسعه برنامههای php لذت ببرید
@DevTwitter | <sina khaghani/>
1👍52👎9🍌5❤3
اگه میخوای برای کارت یا استفاده شخصی،
تو یه زمینه خاص از AI استفاده کنی
ولی نمیدونی دقیقاً کدوم مدل به دردت میخوره
میتونی از http://LMArena.ai کمک بگیری.
مدلها رو کنار هم میبینی،عملکردشون رو مقایسه میکنی،نقطات قوت وضعفشون رو میبینی
یاحتی رایگان و برای استفاده دم دستی هم میشه ازش استفاده کرد
@DevTwitter | <POURYA/>
تو یه زمینه خاص از AI استفاده کنی
ولی نمیدونی دقیقاً کدوم مدل به دردت میخوره
میتونی از http://LMArena.ai کمک بگیری.
مدلها رو کنار هم میبینی،عملکردشون رو مقایسه میکنی،نقطات قوت وضعفشون رو میبینی
یاحتی رایگان و برای استفاده دم دستی هم میشه ازش استفاده کرد
@DevTwitter | <POURYA/>
❤17👍4👎3🔥1
در طول هفته گذشته فرصتی شد تا یک دستی به سر و گوش پلاگین IconLab بکشم و یک ویژگی جدید هم بهش اضافه کنم. امیدوارم خوشتون بیاد و ازش تو پروژه هاتون استفاده کنید. اگر نظری در مورد بهبودش دارید حتما تو لینکدین یا ایمیل بهم پیام بدید تا در موردش گپ بزنیم.
لینک IconLab در کامیونیتی فیگما
https://www.figma.com/community/plugin/1470150361236399232/iconlab-tools-for-managing-icons
چیزهایی که بهش اضافه شده:
- با ویژگی Rename می تونید براحتی یک پیش نمایشی از ایکونهاتون ببینید و اسمشون رو عوض کنید.
ویژگی Flatten چی هست؟
در UI ساختمان ایکون بسیار مهمه و حتما باید ساختار درست و استانداردی داشته باشه. ویژگی Flatten در این پلاگین کمک می کنه:
- همه گروهها و فریمهای اضافی داخل ایکون رو پاک کنید.
- همه لایههای Stroke رو به Fill تبدیل کنید.
- لایههای Mask و Placeholder رو حذف کنید.
- اسم و رنگ لایه اصلی همه آیکون رو یکسان کنید.
- نقاط یا همون Node های اضافی ایکون رو حذف کنید.
همه این کارها فقط با یک کلیک انجام میشه و جالبش اینجاست که شما می تونید همه این کارها رو در عرض ۲-۳ ثانیه روی صدها آیکون همزمان انجام بدید!
اگر دوست داشتید و استفاده کردید، ممنون میشم با لایک و کامنت تو کامیونیتی فیگما حمایت کنید
@DevTwitter | <Vahid Mehrad/>
لینک IconLab در کامیونیتی فیگما
https://www.figma.com/community/plugin/1470150361236399232/iconlab-tools-for-managing-icons
چیزهایی که بهش اضافه شده:
- با ویژگی Rename می تونید براحتی یک پیش نمایشی از ایکونهاتون ببینید و اسمشون رو عوض کنید.
ویژگی Flatten چی هست؟
در UI ساختمان ایکون بسیار مهمه و حتما باید ساختار درست و استانداردی داشته باشه. ویژگی Flatten در این پلاگین کمک می کنه:
- همه گروهها و فریمهای اضافی داخل ایکون رو پاک کنید.
- همه لایههای Stroke رو به Fill تبدیل کنید.
- لایههای Mask و Placeholder رو حذف کنید.
- اسم و رنگ لایه اصلی همه آیکون رو یکسان کنید.
- نقاط یا همون Node های اضافی ایکون رو حذف کنید.
همه این کارها فقط با یک کلیک انجام میشه و جالبش اینجاست که شما می تونید همه این کارها رو در عرض ۲-۳ ثانیه روی صدها آیکون همزمان انجام بدید!
اگر دوست داشتید و استفاده کردید، ممنون میشم با لایک و کامنت تو کامیونیتی فیگما حمایت کنید
@DevTwitter | <Vahid Mehrad/>
❤11👍2🔥1
تایم اوت بالا در سرویسها: مشکل از کیه؟ API Manager یا Backend؟ ️
یکی از رایجترین سؤالها در تیمهای یکپارچهسازی اینه که:
«وقتی زمان پاسخدهی یک سرویس زیاده، من که API Manager یا ESB هستم Timeout رو روی چند ثانیه تنظیم کنم؟»
ظاهرش سادهست؛ ولی پشتش یک نکته مهم وجود داره:
تایم اوت رو ESB یا API Manager تعیین نمیکنه؛ معماری سیستم تعیین میکنه.
خیلی وقتها Timeout بالا فقط مشکل "طولانی بودن پردازش" نیست، بلکه نشونه یک مشکل بزرگتره.
چرا نباید Timeout رو زیاد کنیم؟
اگر Backend کند باشه، طولانیکردن Timeout فقط مشکل رو پنهان میکنه.
مثلاً Lag در گیتوی باعث میشه کانکشنها قفل بشن و Load کل سیستم بالا بره.
صف درخواستها روی گیتوی ساخته میشه و کل سیستم ناپایدار میشه.
چه کارهایی باید انجام بشه؟
1- ریشه مشکل کندی سرویس رو پیدا کن
کوئریهای سنگین دیتابیس
تعداد I/O زیاد
سرویسهای زنجیرهای کند
یا Memory leak
یا Thread pool ناکافی
تا وقتی اینها درست نشه، هیچ تایم اوتی مساعد نخواهد بود.
2- تایماوت (Timeout) باید متناسب با نوع سرویس باشه
سرویسهای synchronous مثل اطلاعات مشتری: ۳–۱۰ ثانیه
سرویسهای پردازش سنگین: اصلاً synchronous نباید باشن
3- کارهای سنگین رو asynchronous کن
برای عملیات طولانی از:
Kafka
Redis queue
Celery
SQS
Internal event bus
استفاده کن و نتیجه رو بعداً تحویل بده.
4- بخش API Manager محل پردازش نیست
بخش ESB/WSO2/APIM فقط باید:
درخواست رو مدیریت کنه
امنیت رو برقرار کنه
نرخ و دسترسی رو کنترل کنه
نه اینکه ۳۰ ثانیه منتظر بمونه یک Backend تموم بشه!
5- تایماوتهای چندگانه تنظیم کن
Gateway timeout
Backend timeout
Load balancer timeout
Client timeout
اینها باید یکپارچه و هماهنگ باشن.
نتیجه
اگر یک سرویس کند است، بهترین راهحل "زیاد کردن Timeout" نیست.
راهحل طراحی درست و انتقال پردازشهای سنگین به async است.
تایماوت باید حداقلی، منطقی و قابل پیشبینی باشد، نه پنهانکننده مشکل.
@DevTwitter | <Mobin Mokhtarzadeh/>
یکی از رایجترین سؤالها در تیمهای یکپارچهسازی اینه که:
«وقتی زمان پاسخدهی یک سرویس زیاده، من که API Manager یا ESB هستم Timeout رو روی چند ثانیه تنظیم کنم؟»
ظاهرش سادهست؛ ولی پشتش یک نکته مهم وجود داره:
تایم اوت رو ESB یا API Manager تعیین نمیکنه؛ معماری سیستم تعیین میکنه.
خیلی وقتها Timeout بالا فقط مشکل "طولانی بودن پردازش" نیست، بلکه نشونه یک مشکل بزرگتره.
چرا نباید Timeout رو زیاد کنیم؟
اگر Backend کند باشه، طولانیکردن Timeout فقط مشکل رو پنهان میکنه.
مثلاً Lag در گیتوی باعث میشه کانکشنها قفل بشن و Load کل سیستم بالا بره.
صف درخواستها روی گیتوی ساخته میشه و کل سیستم ناپایدار میشه.
چه کارهایی باید انجام بشه؟
1- ریشه مشکل کندی سرویس رو پیدا کن
کوئریهای سنگین دیتابیس
تعداد I/O زیاد
سرویسهای زنجیرهای کند
یا Memory leak
یا Thread pool ناکافی
تا وقتی اینها درست نشه، هیچ تایم اوتی مساعد نخواهد بود.
2- تایماوت (Timeout) باید متناسب با نوع سرویس باشه
سرویسهای synchronous مثل اطلاعات مشتری: ۳–۱۰ ثانیه
سرویسهای پردازش سنگین: اصلاً synchronous نباید باشن
3- کارهای سنگین رو asynchronous کن
برای عملیات طولانی از:
Kafka
Redis queue
Celery
SQS
Internal event bus
استفاده کن و نتیجه رو بعداً تحویل بده.
4- بخش API Manager محل پردازش نیست
بخش ESB/WSO2/APIM فقط باید:
درخواست رو مدیریت کنه
امنیت رو برقرار کنه
نرخ و دسترسی رو کنترل کنه
نه اینکه ۳۰ ثانیه منتظر بمونه یک Backend تموم بشه!
5- تایماوتهای چندگانه تنظیم کن
Gateway timeout
Backend timeout
Load balancer timeout
Client timeout
اینها باید یکپارچه و هماهنگ باشن.
نتیجه
اگر یک سرویس کند است، بهترین راهحل "زیاد کردن Timeout" نیست.
راهحل طراحی درست و انتقال پردازشهای سنگین به async است.
تایماوت باید حداقلی، منطقی و قابل پیشبینی باشد، نه پنهانکننده مشکل.
@DevTwitter | <Mobin Mokhtarzadeh/>
❤16👍7🔥1
اخیراً فرصتی دست داد تا یک سرویس کوتاهکننده URL نسبتا خوب و scalable بسازم – چیزی که نه تنها لینکهای طولانی رو به کدهای کوتاه و کارآمد تبدیل میکنه، بلکه با تمرکز روی performance و امنیت، برای محیطهای production-ready طراحی شده. از FastAPI برای API layer استفاده کردم، PostgreSQL رو به عنوان primary store، و Redis برای caching سریع lookups.
چالشهای جالبی تو پیادهسازی داشت: مثلاً مدیریت collision-free short codes با Base62 encoding (تا ۹۱۶ میلیون unique URL)، و کاهش latency redirectها به زیر ۵ میلیثانیه با cache hits. همچنین، SSRF protection و rate limiting رو اضافه کردم تا از حملات احتمالی جلوگیری بشه. آمارگیری کلیکها هم با tracking timestamps، insights خوبی برای analytics میده.
سرویس کاملاً Dockerized هست و با یک docker-compose up، آماده اجراست. اگر به backend، optimization یا scaling علاقهمندید، کد رو چک کنین. خوشحال میشم feedbackهای فنیتون رو بشنوم، مثلاً در مورد horizontal scaling یا integration با CDN.
https://github.com/sajadfallahdoost/URL-shortener
@DevTwitter | <sajad fallahdoost/>
چالشهای جالبی تو پیادهسازی داشت: مثلاً مدیریت collision-free short codes با Base62 encoding (تا ۹۱۶ میلیون unique URL)، و کاهش latency redirectها به زیر ۵ میلیثانیه با cache hits. همچنین، SSRF protection و rate limiting رو اضافه کردم تا از حملات احتمالی جلوگیری بشه. آمارگیری کلیکها هم با tracking timestamps، insights خوبی برای analytics میده.
سرویس کاملاً Dockerized هست و با یک docker-compose up، آماده اجراست. اگر به backend، optimization یا scaling علاقهمندید، کد رو چک کنین. خوشحال میشم feedbackهای فنیتون رو بشنوم، مثلاً در مورد horizontal scaling یا integration با CDN.
https://github.com/sajadfallahdoost/URL-shortener
@DevTwitter | <sajad fallahdoost/>
❤28🍌14👍2🔥1
وقتی که داشتم تمرین تایپینگ میکردم یه سوال ذهنمو درگیر کرد... هدف از تمرینت چیه؟
سرعت یا دقت؟ کدوم بیشتر به کارت میاد؟
آیا تایپ سریع خطاهای بیشتر به همراه داره؟ تایپ دقیق با وجود کندتر بودن در نهایت میتونه صرفهجویی در زمان رو به همراه داشته باشه؟
نظر تو چیه؟ ترجیح میدی سریعتر تایپ کنی یا دقیقتر؟
و سوال بعدی: با وجود Autocomplete و IntelliSense، آیا هنوز ارزش داره برای تایپ کردن وقت بذاریم و تمرین کنیم؟
نظر خودم: تایپ دقیقتر بهتره و دوست دارم یه روز دوست دارم مثل اون «دیوونههای کدنویسی» بتونم تو Vim بدون هیچ IntelliSenseی کد بزنم
برای تمرین، اخیراً دارم خودم رو با این سایت به چالش میکشم Keybr.com
@DevTwitter | <Soheil Barati/>
سرعت یا دقت؟ کدوم بیشتر به کارت میاد؟
آیا تایپ سریع خطاهای بیشتر به همراه داره؟ تایپ دقیق با وجود کندتر بودن در نهایت میتونه صرفهجویی در زمان رو به همراه داشته باشه؟
نظر تو چیه؟ ترجیح میدی سریعتر تایپ کنی یا دقیقتر؟
و سوال بعدی: با وجود Autocomplete و IntelliSense، آیا هنوز ارزش داره برای تایپ کردن وقت بذاریم و تمرین کنیم؟
نظر خودم: تایپ دقیقتر بهتره و دوست دارم یه روز دوست دارم مثل اون «دیوونههای کدنویسی» بتونم تو Vim بدون هیچ IntelliSenseی کد بزنم
برای تمرین، اخیراً دارم خودم رو با این سایت به چالش میکشم Keybr.com
@DevTwitter | <Soheil Barati/>
👍32🍌18❤4🔥1
گوگل یه ابزار جدید و فوقالعاده کاربردی به Gemini API اضافه کرده به اسم File Search Tool که خیلی مفیده و پیاده سازی RAG را راحت میکنه.
تا حالا برای اینکه مدل جمنای (Gemini) بتونه از فایلهای شخصیتون اطلاعات دقیق بده (مثلاً داکیومنتها، PDFها و...)، باید دردسر RAG (همون Retrieval Augmented Generation) رو خودتون مدیریت میکردید. اما حالا این ابزار جدید خودش یه سیستم RAG کاملاً مدیریت شدهست و همه این کارا رو خودکار انجام میده! دیگه لازم نیست نگران ذخیرهسازی فایلها، تقسیمبندی محتوا، ساختن Embeddings و تزریق context باشید. همه چی مدیریت شدست و کار توسعه رو خیلی آسونتر کرده.
مهمتر از همه: قیمتش عالیه و خیلی بهصرفه! ذخیره فایلها و ساختن Embeddings موقع کوئری گرفتن (وقتی از فایلها سؤال میپرسی) کاملاً مجانیه! فقط برای اولین بار که فایلها رو ایندکس میکنید و آماده جستجو میشن، یه هزینه خیلی کم (۰.۱۵ دلار به ازای هر ۱ میلیون توکن) پرداخت میکنید. اینجوری ساختن و مقیاسدهی پروژهها با دیتای شخصی، فوقالعاده مقرون به صرفهتر میشه.
این ابزار از جستجوی وکتوری (Vector Search) قدرتمند استفاده میکنه که با مدلهای پیشرفته Gemini Embedding کار میکنه. یعنی چی؟ یعنی حتی اگه کلمات دقیق تو کوئری نباشه، بازم معنی و مفهوم رو میفهمه و اطلاعات مرتبط رو پیدا میکنه. تازه، خروجیها منبعدهی خودکار/citation هم دارن تا دقیقاً بدونید جواب از کدوم قسمتداکیومنت اومده.
اگه دارید باتهای پشتیبانی هوشمند، personal assistant یا هر نوع پلتفرم محتوایی میسازید که نیاز به دسترسی به داکیومنتهای بزرگ و متنوع (مثل PDF، DOCX، TXT و انواع کد) داره، این ابزار جون میده برای کار شما. حتماً داکیومنتهاش رو ببینید و توی Google AI Studio دمو رو تست کنید.
بلاگ کامل را بخونید:
https://blog.google/technology/developers/file-search-gemini-api/
@DevTwitter | <Mehdi Allahyari/>
تا حالا برای اینکه مدل جمنای (Gemini) بتونه از فایلهای شخصیتون اطلاعات دقیق بده (مثلاً داکیومنتها، PDFها و...)، باید دردسر RAG (همون Retrieval Augmented Generation) رو خودتون مدیریت میکردید. اما حالا این ابزار جدید خودش یه سیستم RAG کاملاً مدیریت شدهست و همه این کارا رو خودکار انجام میده! دیگه لازم نیست نگران ذخیرهسازی فایلها، تقسیمبندی محتوا، ساختن Embeddings و تزریق context باشید. همه چی مدیریت شدست و کار توسعه رو خیلی آسونتر کرده.
مهمتر از همه: قیمتش عالیه و خیلی بهصرفه! ذخیره فایلها و ساختن Embeddings موقع کوئری گرفتن (وقتی از فایلها سؤال میپرسی) کاملاً مجانیه! فقط برای اولین بار که فایلها رو ایندکس میکنید و آماده جستجو میشن، یه هزینه خیلی کم (۰.۱۵ دلار به ازای هر ۱ میلیون توکن) پرداخت میکنید. اینجوری ساختن و مقیاسدهی پروژهها با دیتای شخصی، فوقالعاده مقرون به صرفهتر میشه.
این ابزار از جستجوی وکتوری (Vector Search) قدرتمند استفاده میکنه که با مدلهای پیشرفته Gemini Embedding کار میکنه. یعنی چی؟ یعنی حتی اگه کلمات دقیق تو کوئری نباشه، بازم معنی و مفهوم رو میفهمه و اطلاعات مرتبط رو پیدا میکنه. تازه، خروجیها منبعدهی خودکار/citation هم دارن تا دقیقاً بدونید جواب از کدوم قسمتداکیومنت اومده.
اگه دارید باتهای پشتیبانی هوشمند، personal assistant یا هر نوع پلتفرم محتوایی میسازید که نیاز به دسترسی به داکیومنتهای بزرگ و متنوع (مثل PDF، DOCX، TXT و انواع کد) داره، این ابزار جون میده برای کار شما. حتماً داکیومنتهاش رو ببینید و توی Google AI Studio دمو رو تست کنید.
بلاگ کامل را بخونید:
https://blog.google/technology/developers/file-search-gemini-api/
@DevTwitter | <Mehdi Allahyari/>
🔥18👍3🍌3❤1
این نسخه کلی چیزای خفن داره: دانلود از SoundCloud و YouTube Music، گرفتن کپشنهای اینستا و توییتر، دانلود زیرنویس یوتیوب و کلی ریزه کاری دیگه....
اگه به دردتون خورد خوشحال میشم به دیده شدنش کمک کنین
https://github.com/MSC72m/media_downloader
@DevTwitter | <Mohammad Sadeghian/>
اگه به دردتون خورد خوشحال میشم به دیده شدنش کمک کنین
https://github.com/MSC72m/media_downloader
@DevTwitter | <Mohammad Sadeghian/>
❤51🍌3👎1