کد زدن تو Go با ذهنیت PHP، یکی از سریعترین راهها برای فرستادن باگهای خاموش به پروداکشنه!
خیلی وقتها میبینیم یه برنامهنویس باتجربه PHP سوییچ میکنه روی Go. سینتکس رو خیلی خوب یاد میگیره، ظاهرا کد تمیزی هم میزنه و تستها هم پاس میشن. اما وقتی پروژه زیر بار (Load) میره، ناگهان Data Race ها خودشون رو نشون میدن، دیتای کاربرها با هم قاطی میشه و Goroutine ها انقدر لیک میشن تا سرور کرش کنه.
مشکل از نفهمیدن سینتکس نیست؛ مشکل تغییر نکردن «مدل ذهنی» معماریه.
تو دنیای PHP ما به لطف FPM به معماری Shared-Nothing عادت کردیم. هر ریکوئست تو یه محیط ایزوله اجرا میشه و وقتی تموم شد، همهچیز از بین میره. شما نگران مدیریت مموری و منابع مشترک بین ریکوئست ها نیستی سیستمعامل و لاراول زحمت مدیریت مموری و ایزولیشن رو میکشن. ما اونجا نیازی به Mutex نداشتیم چون هر ریکوئست توی یه پروسس جدید بالا می اومد و اصلاً مموریِ مشترکی بین ریکوئستها وجود نداشت.
اما Go دنیای Shared-Everything هست. اپلیکیشن شما یک پروسس لانگ ران هستش که با ریکوئستهای جدید رفرش نمیشه. تو این دنیا شما خودتون مسئول مدیریت مموری، Connection Pool ها، همزمانی و چرخه حیات هر Goroutine هستید. اینجا دیگه لاراولی در کار نیست که اشتباهات مموری رو پاک کنه.
تو مقاله جدیدی که تو مدیوم منتشر کردم، این شیفت معماری رو دقیق بررسی کردم. سه تا تله خیلی رایج (مثل باگهای State مشترک و Goroutine های رها شده) رو با نمونه کد واقعی کالبدشکافی کردم و راهحلهای اصولی Go رو براشون نوشتم. (یه باگ خاص رو هم بررسی کردم که معمولا کسی متوجه ش نمیشه)
https://medium.com/@mmtaheri.dev/shared-nothing-shared-everything-b57ec99306db
اگر دولوپر PHP هستید که به Go مهاجرت کرده (یا قصدش رو داره)، یا معماری بکاند براتون دغدغهست، این مقاله براتون نوشته شده.
@DevTwitter | <Mohammad Mahdi taheri/>
خیلی وقتها میبینیم یه برنامهنویس باتجربه PHP سوییچ میکنه روی Go. سینتکس رو خیلی خوب یاد میگیره، ظاهرا کد تمیزی هم میزنه و تستها هم پاس میشن. اما وقتی پروژه زیر بار (Load) میره، ناگهان Data Race ها خودشون رو نشون میدن، دیتای کاربرها با هم قاطی میشه و Goroutine ها انقدر لیک میشن تا سرور کرش کنه.
مشکل از نفهمیدن سینتکس نیست؛ مشکل تغییر نکردن «مدل ذهنی» معماریه.
تو دنیای PHP ما به لطف FPM به معماری Shared-Nothing عادت کردیم. هر ریکوئست تو یه محیط ایزوله اجرا میشه و وقتی تموم شد، همهچیز از بین میره. شما نگران مدیریت مموری و منابع مشترک بین ریکوئست ها نیستی سیستمعامل و لاراول زحمت مدیریت مموری و ایزولیشن رو میکشن. ما اونجا نیازی به Mutex نداشتیم چون هر ریکوئست توی یه پروسس جدید بالا می اومد و اصلاً مموریِ مشترکی بین ریکوئستها وجود نداشت.
اما Go دنیای Shared-Everything هست. اپلیکیشن شما یک پروسس لانگ ران هستش که با ریکوئستهای جدید رفرش نمیشه. تو این دنیا شما خودتون مسئول مدیریت مموری، Connection Pool ها، همزمانی و چرخه حیات هر Goroutine هستید. اینجا دیگه لاراولی در کار نیست که اشتباهات مموری رو پاک کنه.
تو مقاله جدیدی که تو مدیوم منتشر کردم، این شیفت معماری رو دقیق بررسی کردم. سه تا تله خیلی رایج (مثل باگهای State مشترک و Goroutine های رها شده) رو با نمونه کد واقعی کالبدشکافی کردم و راهحلهای اصولی Go رو براشون نوشتم. (یه باگ خاص رو هم بررسی کردم که معمولا کسی متوجه ش نمیشه)
https://medium.com/@mmtaheri.dev/shared-nothing-shared-everything-b57ec99306db
اگر دولوپر PHP هستید که به Go مهاجرت کرده (یا قصدش رو داره)، یا معماری بکاند براتون دغدغهست، این مقاله براتون نوشته شده.
@DevTwitter | <Mohammad Mahdi taheri/>
❤59👍18💔2
اگر میخوای AI به جای Vibe Coding یک فرآیند مهندسیشده رو طی کنه یعنی اول بره مشخصات کامل تسک رو دربیاره بعد نقشه فنیش رو تولید کنه و بعد بر اساس نقشه وظایف رو ایجاد کنه و در نهایت کدها رو تولید کنه این برای تو هست
https://github.com/github/spec-kit
@DevTwitter | <Reza :)/>
https://github.com/github/spec-kit
@DevTwitter | <Reza :)/>
👍33👎6🍌3
یک پکیج Django برای تبدیل زبان طبیعی به Django ORM با کمک AI (OpenAI / Ollama)
به جای نوشتن کوئریهای پیچیده، فقط سوالت رو به انگلیسی بپرس — پکیج به صورت امن برات ORM Query میسازه
امن (جلوگیری از کوئریهای خطرناک)
سریع و قابل توسعه
مبتنی بر AI
امکان ساخت query با داشبورد
اگر روی Django کار میکنی، خوشحال میشم نظرت رو بدونم
برای نصب کافیه تو پروژه Django خودتون کافیه دستور زیر رو اجرا کنید:
pip install django-dynamic-query
لینک گیت هاب پروژه:
https://github.com/sajjad-ch/django-dynamic-query
لینک ریپازیتوری در PyPI:
https://pypi.org/project/django-dynamic-query/
@DevTwitter | <Sajjad/>
به جای نوشتن کوئریهای پیچیده، فقط سوالت رو به انگلیسی بپرس — پکیج به صورت امن برات ORM Query میسازه
امن (جلوگیری از کوئریهای خطرناک)
سریع و قابل توسعه
مبتنی بر AI
امکان ساخت query با داشبورد
اگر روی Django کار میکنی، خوشحال میشم نظرت رو بدونم
برای نصب کافیه تو پروژه Django خودتون کافیه دستور زیر رو اجرا کنید:
pip install django-dynamic-query
لینک گیت هاب پروژه:
https://github.com/sajjad-ch/django-dynamic-query
لینک ریپازیتوری در PyPI:
https://pypi.org/project/django-dynamic-query/
@DevTwitter | <Sajjad/>
👍22🍌14❤6
برنامهی Sharron یه انجین همگامسازی (Sync) فایل به صورت Peer-to-Peer و تو شبکههای LAN هستش.
به این شکل کار میکنه که دستگاههاتون رو توی یه شبکه محلی بدون نیاز به سرور ابری پیدا میکنه، بینشون تونل امن میزنه و فایلها رو به صورت خودکار سینک نگه میداره.
https://github.com/1MahdiR/Sharron
@DevTwitter | <M R/>
به این شکل کار میکنه که دستگاههاتون رو توی یه شبکه محلی بدون نیاز به سرور ابری پیدا میکنه، بینشون تونل امن میزنه و فایلها رو به صورت خودکار سینک نگه میداره.
https://github.com/1MahdiR/Sharron
@DevTwitter | <M R/>
❤17👍9💔4
یکی از بزرگترین مشکلات RAGهای معمولی اینه که همیشه قبل از پاسخ دادن، بدون فکر میرن سراغ بازیابی اطلاعات. در حالی که خیلی وقتها یک جستجو/سرچ کافی نباشه و مدل باید چند بار جستجو کنه، نتایج رو ارزیابی کنه و بعد تصمیم بگیره.
اینجاست که Agentic RAG وارد میشه. ایدهی اصلی خیلی سادهست: Retrieval نباید یک مرحلهی اجباری باشه؛ باید یک تصمیم باشه.
در این مقاله دربارهی تفاوت RAG سنتی و Agentic RAG، چرخهی تصمیمگیری برای Retrieval، معماری کلی سیستم، مزایا و محدودیتها، و اینکه چه زمانی از Agentic RAG استفاده کنیم صحبت کردم. همچنین سعی کردم موضوع رو با شکلها و مثالهای عملی و کد توضیح بدم
اگر روی RAG، AI Agentها یا LLMها کار میکنید، این براتون مفیده.
لینک مقاله:
https://mlnotes.substack.com/p/agentic-rag-make-retrieval-a-decision
@DevTwitter | <Mehdi Allahyari/>
اینجاست که Agentic RAG وارد میشه. ایدهی اصلی خیلی سادهست: Retrieval نباید یک مرحلهی اجباری باشه؛ باید یک تصمیم باشه.
در این مقاله دربارهی تفاوت RAG سنتی و Agentic RAG، چرخهی تصمیمگیری برای Retrieval، معماری کلی سیستم، مزایا و محدودیتها، و اینکه چه زمانی از Agentic RAG استفاده کنیم صحبت کردم. همچنین سعی کردم موضوع رو با شکلها و مثالهای عملی و کد توضیح بدم
اگر روی RAG، AI Agentها یا LLMها کار میکنید، این براتون مفیده.
لینک مقاله:
https://mlnotes.substack.com/p/agentic-rag-make-retrieval-a-decision
@DevTwitter | <Mehdi Allahyari/>
👍22🍌8❤5
هرچه جلوتر میریم کیفیت Agent ها کمتر به خود مدل و بیشتر به Loop هایی که دورشون میسازیم بستگی داره این ریپو پر از نمونه های خوبه
https://github.com/cobusgreyling/loop-engineering
@DevTwitter | <Davinchi/>
https://github.com/cobusgreyling/loop-engineering
@DevTwitter | <Davinchi/>
❤15👎12🍌3
#کوته_نیوز
آنتروپیک ابزار جدیدی به نام Claude Science معرفی کرده که مخصوص پژوهشهای علمیه.
@DevTwitter
آنتروپیک ابزار جدیدی به نام Claude Science معرفی کرده که مخصوص پژوهشهای علمیه.
@DevTwitter
❤32🍌4👎3
This media is not supported in your browser
VIEW IN TELEGRAM
اگر دوست دارید kde رو شبیه به هایپرلند کنید این پروژه مخصوص شماست
به شخصه دوست دارم همه چیز ساده باشه و از این فنسی بازیا به دورم
https://github.com/ladybug-me/caelestia-dots-kde
@DevTwitter | <Mahdi Akrami/>
به شخصه دوست دارم همه چیز ساده باشه و از این فنسی بازیا به دورم
https://github.com/ladybug-me/caelestia-dots-kde
@DevTwitter | <Mahdi Akrami/>
❤30👎9👍4
DevTwitter | توییت برنامه نویسی
#کوته_نیوز آنتروپیک ابزار جدیدی به نام Claude Science معرفی کرده که مخصوص پژوهشهای علمیه. @DevTwitter
This media is not supported in your browser
VIEW IN TELEGRAM
کلاود دونه دونه داره آباد میکنه
-> Claude Code
-> Claude Cowork
-> Claude Design
-> Claude Finance
-> Claude Science
- Claude HR
- Claude Analytics
- Claude Marketing
- Claude Sales
- Claude Legal
- Claude Logistics
- Claude R&D
- Claude Procurement
- Claude Accounting
- Claude Engineering
@DevTwitter
-> Claude Code
-> Claude Cowork
-> Claude Design
-> Claude Finance
-> Claude Science
- Claude HR
- Claude Analytics
- Claude Marketing
- Claude Sales
- Claude Legal
- Claude Logistics
- Claude R&D
- Claude Procurement
- Claude Accounting
- Claude Engineering
@DevTwitter
❤62🔥11👍6
این ریپوی یک موتور جستجوی Agentic است که بهجای تکیه بر الگوریتمهای سنتی از لایکها منشن ها آپووتها و سیگنالهای واقعی کاربران استفاده میکند یک موضوع میدهید و در کمتر از یک دقیقه خلاصهای از بحثها و ترندهای واقعی ۳۰ روز اخیر را تحویل میگیرید
https://github.com/mvanhorn/last30days-skill
@DevTwitter | <Davinci/>
https://github.com/mvanhorn/last30days-skill
@DevTwitter | <Davinci/>
❤16👍7👎5
یه مشکل ریزی رو بهش برخوردم و اونم اینه که اگه از قابلیت متغیر های داینامیک postman دارین استفاده میکنین و به خصوص متغیر {{randomPassword}}$
در ترکیبش با ابزار class-validator و خصوصا دکوراتور IsStrongPassword به مشکل میخورین اونم اینه که در همه حالت از نظر این دکوراتور پسورد هایی که postman میسازه و ارسال میکنه :
به اندازه کافی قوی نیست
مشکل داستان اینه که داخل رمزعبور هایی که postman میسازه سیمبل استفاده نمیشه مثل $
و یکی از قوانین دکوراتور IsStrongPassword برای قوی بودن رمز عبور اینه که حداقل نیاز به یک کاراکتر سیمبل هست
برای درست شدنش کافیه این قانون رو از این دکوراتور بردارین اونم با صفر کردن مقدار minSymbols از اپشن های همین دکوراتور
@DevTwitter | <Ali Nazari/>
در ترکیبش با ابزار class-validator و خصوصا دکوراتور IsStrongPassword به مشکل میخورین اونم اینه که در همه حالت از نظر این دکوراتور پسورد هایی که postman میسازه و ارسال میکنه :
به اندازه کافی قوی نیست
مشکل داستان اینه که داخل رمزعبور هایی که postman میسازه سیمبل استفاده نمیشه مثل $
و یکی از قوانین دکوراتور IsStrongPassword برای قوی بودن رمز عبور اینه که حداقل نیاز به یک کاراکتر سیمبل هست
برای درست شدنش کافیه این قانون رو از این دکوراتور بردارین اونم با صفر کردن مقدار minSymbols از اپشن های همین دکوراتور
@DevTwitter | <Ali Nazari/>
❤18👍10👎2
اگه ایجنت های اختصاصی میسازین و به شکل cli ارائه ش میکنین، با این پروژه میتونین لوگوهای جذاب ASCII art براش درست کنین:
https://github.com/shinshin86/oh-my-logo
@DevTwitter | <Mehrdad Ameri/>
https://github.com/shinshin86/oh-my-logo
@DevTwitter | <Mehrdad Ameri/>
🔥37🍌7👎3
برنامه WinRAR نسخه 7.23 رو منتشر کرده و بازم داره سر جریان خرید لایسنس شوخی میکنه.
توی پیامشون گفتن «به لطف پرداختهای اخیر شما بالاخره تونستیم نسخه جدید بسازیم.»
جدا از این شوخی، تو آپدیت جدید مشکل امنیتی پردازش RAR5 حل شده و یه سری باگ که باعث کرش میشد رو هم برطرف کردن.
@DevTwitter | <Behrad Javed/>
توی پیامشون گفتن «به لطف پرداختهای اخیر شما بالاخره تونستیم نسخه جدید بسازیم.»
جدا از این شوخی، تو آپدیت جدید مشکل امنیتی پردازش RAR5 حل شده و یه سری باگ که باعث کرش میشد رو هم برطرف کردن.
@DevTwitter | <Behrad Javed/>
❤115🔥10🍌3
اگه این پروژه رو یه خارجی درست کرده بود، الان کلی سر و صدا کرده بود و همهجا ترند بود!
بچههای ایرانی توی پروژه bicardinal یه «موتور جستجوی معنایی هوش مصنوعی» با C++ ساختن که میتونه مفهوم و معنای متنها و تصاویر رو با سرعت خیرهکننده پردازش و جستجو کنه. شاهکارش اینه که غولهای دنیا مثل Qdrant زیر بار کمبود رم کرش کردن، اما این پروژه با کمترین سختافزار پایدار موند. دمتون گرم!
https://github.com/bicardinal/brinicle
@DevTwitter | <Pouya Mohammadi/>
بچههای ایرانی توی پروژه bicardinal یه «موتور جستجوی معنایی هوش مصنوعی» با C++ ساختن که میتونه مفهوم و معنای متنها و تصاویر رو با سرعت خیرهکننده پردازش و جستجو کنه. شاهکارش اینه که غولهای دنیا مثل Qdrant زیر بار کمبود رم کرش کردن، اما این پروژه با کمترین سختافزار پایدار موند. دمتون گرم!
https://github.com/bicardinal/brinicle
@DevTwitter | <Pouya Mohammadi/>
❤118👎71👍20
آنتروپیک برنامه Claude Corps رو راهاندازی کرده تا هزار نفر رو برای استفاده عملی از هوش مصنوعی آموزش بده و یک سال داخل سازمانهای غیرانتفاعی مشغول به کار کنه. هدف اینه که AI فقط در شرکتهای بزرگ استفاده نشه و سازمانهای عمومی هم به نیروی متخصص و ابزارهای هوش مصنوعی دسترسی پیدا کنن.
https://www.anthropic.com/claude-corps
@DevTwitter | <Nima/>
https://www.anthropic.com/claude-corps
@DevTwitter | <Nima/>
❤26👎12👍4
رقیب مدلهای غربی در برنامهنویسی؛ شرکت چینی Z.ai از ابزار ZCode رونمایی کرد
آزمایشگاه هوش مصنوعی Z.ai با رونمایی از محیط توسعه رایگان و ایجنتمحور ZCode، رسماً به رقابت با ابزارهای محبوبی چون کرسر، Claude Code و گیتهاب کوپایلت وارد شد. این ابزار که برای ویندوز، مک و لینوکس عرضه شده، به صورت عمیق با مدل قدرتمند و متنباز GLM-5.2 ادغام شده است.
یکی از ویژگیهای منحصربهفرد ZCode، امکان مدیریت و کنترل پروژه از طریق پیامرسانهای موبایلی نظیر ویچت و تلگرام است که به برنامهنویسان اجازه میدهد در هر زمان پیشرفت کار ایجنت هوش مصنوعی را زیر نظر بگیرند.
نکته چالشبرانگیز این فناوری، استقلال کامل آن از زیرساختهای غربی است؛ مدل GLM-5.2 که زیربنای ZCode را تشکیل میدهد، کاملاً روی تراشههای هواوی آموزش دیده و توسعه یافته است. همچنین عرضه این ابزار درست همزمان با محدودیتهای موقت دولت آمریکا روی مدلهای آنتروپیک انجام شده و توجه شرکتهای بزرگ را به سمت جایگزینهای متنباز جلب کرده است.
@DevTwitter | <Digiato/>
آزمایشگاه هوش مصنوعی Z.ai با رونمایی از محیط توسعه رایگان و ایجنتمحور ZCode، رسماً به رقابت با ابزارهای محبوبی چون کرسر، Claude Code و گیتهاب کوپایلت وارد شد. این ابزار که برای ویندوز، مک و لینوکس عرضه شده، به صورت عمیق با مدل قدرتمند و متنباز GLM-5.2 ادغام شده است.
یکی از ویژگیهای منحصربهفرد ZCode، امکان مدیریت و کنترل پروژه از طریق پیامرسانهای موبایلی نظیر ویچت و تلگرام است که به برنامهنویسان اجازه میدهد در هر زمان پیشرفت کار ایجنت هوش مصنوعی را زیر نظر بگیرند.
نکته چالشبرانگیز این فناوری، استقلال کامل آن از زیرساختهای غربی است؛ مدل GLM-5.2 که زیربنای ZCode را تشکیل میدهد، کاملاً روی تراشههای هواوی آموزش دیده و توسعه یافته است. همچنین عرضه این ابزار درست همزمان با محدودیتهای موقت دولت آمریکا روی مدلهای آنتروپیک انجام شده و توجه شرکتهای بزرگ را به سمت جایگزینهای متنباز جلب کرده است.
@DevTwitter | <Digiato/>
🔥63👍11❤8
اگه میخواهید بدونید چه خبره تو کمپانی های مختلف، و چطوری از AI استفاده میکنند این ویدیو را حتما ببینید. یک عالمه اطلاعات جدید، ترندها و کلی موضوع های مختلف که خود کمپانی ها ارائه میدند.
https://www.youtube.com/watch?v=htM02KMNZnk
@DevTwitter | <Mehdi Allahyari/>
https://www.youtube.com/watch?v=htM02KMNZnk
@DevTwitter | <Mehdi Allahyari/>
❤15👎3👍2
یک باگ عجیب که فکر میکردیم از Backend است!
یک long در Java تولید میشد، اما وقتی به Frontend میرسید، چند رقم آخرش تغییر میکرد!
بعد از ساعتها بررسی فهمیدیم نه Java مشکل داشت، نه دیتابیس...
مقصر فقط JavaScript بود!
دلیلش هم این است که Java long یک عدد صحیح ۶۴ بیتی است، اما JavaScript Number فقط تا 2^53 - 1 را بدون از دست دادن دقت نگه میدارد. بنابراین اعداد بزرگتر دچار Precision Loss میشوند و ممکن است مقدارشان تغییر کند.
گاهی سختترین باگها، اصلاً در جایی که دنبالشان میگردیم نیستند.
@DevTwitter | <Vahid Heydari/>
یک long در Java تولید میشد، اما وقتی به Frontend میرسید، چند رقم آخرش تغییر میکرد!
بعد از ساعتها بررسی فهمیدیم نه Java مشکل داشت، نه دیتابیس...
مقصر فقط JavaScript بود!
دلیلش هم این است که Java long یک عدد صحیح ۶۴ بیتی است، اما JavaScript Number فقط تا 2^53 - 1 را بدون از دست دادن دقت نگه میدارد. بنابراین اعداد بزرگتر دچار Precision Loss میشوند و ممکن است مقدارشان تغییر کند.
گاهی سختترین باگها، اصلاً در جایی که دنبالشان میگردیم نیستند.
@DevTwitter | <Vahid Heydari/>
1❤74👎18🍌13
درود بر فریلنسرهای عزیز!
اگه توی سایتهای فریلنسری فعالیت میکنین، حتماً میدونی که پیدا کردن پروژه و جمعآوری اطلاعات کارفرما چقدر وقت میگیره. Xelector یه اکستنشن کروم اوپنسورس و کمحجمه که این کار رو برات ساده تر میکنه.
- استخراج خودکار مشخصات کارفرما، نیازمندیها و… با CSS Selectorهای دلخواه
- خروجی Markdown، JSON یا متن ساده – مستقیم توی کلیپبورد
- ترکیب دادهها با قالب پروپوزال و ارسال سریعتر
- پروفایلهای قابل ذخیره، ایمپورت/اکسپورت و اشتراکگذاری
برای دریافت آخرین نسخه میتونید از این لینک مستقیم اقدام کنید:
https://github.com/Tariux/Xelector
@DevTwitter | <MADMAN/>
اگه توی سایتهای فریلنسری فعالیت میکنین، حتماً میدونی که پیدا کردن پروژه و جمعآوری اطلاعات کارفرما چقدر وقت میگیره. Xelector یه اکستنشن کروم اوپنسورس و کمحجمه که این کار رو برات ساده تر میکنه.
- استخراج خودکار مشخصات کارفرما، نیازمندیها و… با CSS Selectorهای دلخواه
- خروجی Markdown، JSON یا متن ساده – مستقیم توی کلیپبورد
- ترکیب دادهها با قالب پروپوزال و ارسال سریعتر
- پروفایلهای قابل ذخیره، ایمپورت/اکسپورت و اشتراکگذاری
برای دریافت آخرین نسخه میتونید از این لینک مستقیم اقدام کنید:
https://github.com/Tariux/Xelector
@DevTwitter | <MADMAN/>
❤16👍4👎3
چند ماه پیش یه زبان برنامهنویسی جدید اومده بود به اسم داریکس، اوایل تازه داشتن روش کار میکردن ولی الان دیگه خیلی جالبتر شده،
سینتکس این زبان شبیه جاوا اسکریپت و پایتونه، در عین حال که ساده هست خیلی قدرتمند و سریعه!
میشه گفت این زبان از خیلی از زبان های مفسری مثل پایتون و PHP و... سریعتره
https://github.com/shayanheidari01/DariX
بهنظرم این پروژه، پروژهی جالبیه چند وقتیه که دارم دنبالش میکنم چون میتونه آینده خوبی داشته باشه.
@DevTwitter | <Person/>
سینتکس این زبان شبیه جاوا اسکریپت و پایتونه، در عین حال که ساده هست خیلی قدرتمند و سریعه!
میشه گفت این زبان از خیلی از زبان های مفسری مثل پایتون و PHP و... سریعتره
https://github.com/shayanheidari01/DariX
بهنظرم این پروژه، پروژهی جالبیه چند وقتیه که دارم دنبالش میکنم چون میتونه آینده خوبی داشته باشه.
@DevTwitter | <Person/>
👎71👍15❤10