تست کردن پکیج ها و لایبری ها قبل از publish کردن
(yarn link - yarn workspaces)
اخیراً وقتی روی یکی از لایبریهای داخلی شرکت کار میکردم٬ یه چالشی داشتیم برای تست کردن تغییرات نهاییمون روی پروژه هامون که تنها راهی که داشتیم پابلیش کردن روی npm و تستشون بود. که جدیدا با yarn link و yarn workspaces آشنا شدم.
وقتی روی چند تا پکیج هم زمان کار میکنی مثلاً یه لایبرری UI داخلی و یه اپ اصلی٬ لازمه اینا رو قبل از پابلیش تو npm، به هم وصل کنی تا لوکال بتونی تستشون کنی.
که تو این شرایط میشه از دوتا قابلیت yarn استفاده کرد :
Yarn link
یه symbolic link بین پکیج لوکال و پروژت میسازه. یعنی پکیج رو مثل یه dependency نصبشده میتونی استفاده کنی، بدون اینکه منتشرش کنی.
ولی اگه چند تا پکیج داری یا ساختار مونوریپو داری، مدیریت لینکها میتونه سخت بشه.
Yarn workspaces
برای همین مورد طراحی شده. Workspaces بهت اجازه میده چند تا پکیج رو تو یه repo نگه داری، dependency هاشون رو share کنی و تغییراتشون رو هم زمان sync نگه داری.
در واقع یه روش تمیزتر و پایدارتر برای پروژههای چند پکیجی هستش.
داک رسمی :
https://classic.yarnpkg.com/lang/en/docs/cli/link/
https://classic.yarnpkg.com/lang/en/docs/workspaces/
@DevTwitter | <Siavash Aghazadeh/>
(yarn link - yarn workspaces)
اخیراً وقتی روی یکی از لایبریهای داخلی شرکت کار میکردم٬ یه چالشی داشتیم برای تست کردن تغییرات نهاییمون روی پروژه هامون که تنها راهی که داشتیم پابلیش کردن روی npm و تستشون بود. که جدیدا با yarn link و yarn workspaces آشنا شدم.
وقتی روی چند تا پکیج هم زمان کار میکنی مثلاً یه لایبرری UI داخلی و یه اپ اصلی٬ لازمه اینا رو قبل از پابلیش تو npm، به هم وصل کنی تا لوکال بتونی تستشون کنی.
که تو این شرایط میشه از دوتا قابلیت yarn استفاده کرد :
Yarn link
یه symbolic link بین پکیج لوکال و پروژت میسازه. یعنی پکیج رو مثل یه dependency نصبشده میتونی استفاده کنی، بدون اینکه منتشرش کنی.
ولی اگه چند تا پکیج داری یا ساختار مونوریپو داری، مدیریت لینکها میتونه سخت بشه.
Yarn workspaces
برای همین مورد طراحی شده. Workspaces بهت اجازه میده چند تا پکیج رو تو یه repo نگه داری، dependency هاشون رو share کنی و تغییراتشون رو هم زمان sync نگه داری.
در واقع یه روش تمیزتر و پایدارتر برای پروژههای چند پکیجی هستش.
داک رسمی :
https://classic.yarnpkg.com/lang/en/docs/cli/link/
https://classic.yarnpkg.com/lang/en/docs/workspaces/
@DevTwitter | <Siavash Aghazadeh/>
👍6❤3🔥1
یک ریپو جدید دارم برای کسایی که با Laravel کار میکنند
برای اتومیشن سرور که به راحتی بتونید تمامی نیازمندی هارو نصب کنید بدون اتلاف وقت
https://github.com/MisaghMomeniB/ansible-laravel-nginx-mysql-ubuntu
@DevTwitter | <Misagh Momeni Bashusqeh/>
برای اتومیشن سرور که به راحتی بتونید تمامی نیازمندی هارو نصب کنید بدون اتلاف وقت
https://github.com/MisaghMomeniB/ansible-laravel-nginx-mysql-ubuntu
@DevTwitter | <Misagh Momeni Bashusqeh/>
👍14👎6❤4🍌2
من خودم زمانی که برای المپیاد میخوندم ، داده و الگوریتم را باید میخوردم با هسته اش
سمت دنیای برنامه نویسی میاین باید داده و الگوریتم بیشتر از اظرافیان بشناسین و بفهمین
اینم لینک :
https://github.com/arpit20adlakha/Data-Structure-Algorithms-LLD-HLD
@DevTwitter | <zhiwar/>
سمت دنیای برنامه نویسی میاین باید داده و الگوریتم بیشتر از اظرافیان بشناسین و بفهمین
اینم لینک :
https://github.com/arpit20adlakha/Data-Structure-Algorithms-LLD-HLD
@DevTwitter | <zhiwar/>
👍26❤6🍌2
یکی از ویژگیهای جالبی که در React 19.2 اضافه شده، هوک جدیدی به نام useEffectEvent است. این هوک یکی از مشکلات قدیمی React را حل میکند: "stale closures" و اجرای غیرضروری useEffect وقتی state یا props تغییر میکنند.
با useEffectEvent میتوانیم وابستگیهای useEffect را به حداقل برسانیم و در عین حال، همیشه به جدیدترین مقادیر state و props دسترسی داشته باشیم.
در این مثال، ما یک کامپوننت ساده به نام ChatRoom داریم که وقتی به یک room جدید متصل میشود، اگر صدای اعلان در تنظیمات کاربر فعال باشد، صدایی پخش میکند.
نکته مهم اینجاست که تابع onConnected با استفاده از هوک جدید useEffectEvent تعریف شده است.
این کار باعث میشود که تابع همیشه به جدیدترین مقدار userPreferences دسترسی داشته باشد،
اما بدون اینکه نیاز باشد آن را در dependency array قرار دهیم.
به این ترتیب، اتصال فقط زمانی دوباره برقرار میشود که roomId تغییر کند،
و تغییر تنظیمات کاربر باعث اجرای غیرضروری useEffect نمیشود.
@DevTwitter | <Sepehr Sharifzade/>
با useEffectEvent میتوانیم وابستگیهای useEffect را به حداقل برسانیم و در عین حال، همیشه به جدیدترین مقادیر state و props دسترسی داشته باشیم.
در این مثال، ما یک کامپوننت ساده به نام ChatRoom داریم که وقتی به یک room جدید متصل میشود، اگر صدای اعلان در تنظیمات کاربر فعال باشد، صدایی پخش میکند.
نکته مهم اینجاست که تابع onConnected با استفاده از هوک جدید useEffectEvent تعریف شده است.
این کار باعث میشود که تابع همیشه به جدیدترین مقدار userPreferences دسترسی داشته باشد،
اما بدون اینکه نیاز باشد آن را در dependency array قرار دهیم.
به این ترتیب، اتصال فقط زمانی دوباره برقرار میشود که roomId تغییر کند،
و تغییر تنظیمات کاربر باعث اجرای غیرضروری useEffect نمیشود.
@DevTwitter | <Sepehr Sharifzade/>
❤15👍3👎1🔥1
آخر هفته سرم خلوت بود
یه قالب مینیمال ساختم که با چند کلیک یه بلاگ رایگان روی GitHub آماده میکنه، بدون دردسر و هزینه ای
https://github.com/alihtt/al-minimal
@DevTwitter | <Ali Hatami/>
یه قالب مینیمال ساختم که با چند کلیک یه بلاگ رایگان روی GitHub آماده میکنه، بدون دردسر و هزینه ای
https://github.com/alihtt/al-minimal
@DevTwitter | <Ali Hatami/>
❤27👍2👎2🔥2
یک رپو دیگه برای علاقه مندان به تجربه امنیت و باگبانتی و Ai ابزار جذاب HackGPT Enterprise یه ابزار حرفهای و پیشرفته برای تست نفوذه که با هوش مصنوعی و یادگیری ماشین کار میکنه
با HackGPT میتونید آسیبپذیریهای سیستمها رو پیدا کنید، گزارشهای کامل و دقیق بگیرید و حتی از چارچوبهای امنیتی مثل OWASP، NIST و ISO27001 پیروی کنید.
این ابزار با معماری میکروسرویسها و پشتیبانی از Docker و Kubernetes، مقیاسپذیری بالایی داره و میتونید روی ابرهای مختلف مثل AWS، Azure و GCP استقرارش بدید.
https://github.com/yashab-cyber/HackGpt/
@DevTwitter | <POURYA/>
با HackGPT میتونید آسیبپذیریهای سیستمها رو پیدا کنید، گزارشهای کامل و دقیق بگیرید و حتی از چارچوبهای امنیتی مثل OWASP، NIST و ISO27001 پیروی کنید.
این ابزار با معماری میکروسرویسها و پشتیبانی از Docker و Kubernetes، مقیاسپذیری بالایی داره و میتونید روی ابرهای مختلف مثل AWS، Azure و GCP استقرارش بدید.
https://github.com/yashab-cyber/HackGpt/
@DevTwitter | <POURYA/>
👍5🔥4❤2🍌1
This media is not supported in your browser
VIEW IN TELEGRAM
اگه دنبال یه آلترنیتیو برای Claude Code می گردید که اکثر Providerهارو ساپورت کنه بهتون Crush رو پیشنهاد می دم!
با go نوشته شده و من خیلی تجربه خوبی داشتم وقتی توی دو سه روز گذشته!
https://github.com/charmbracelet/crush
@DevTwitter | <Von Datawarehausen/>
با go نوشته شده و من خیلی تجربه خوبی داشتم وقتی توی دو سه روز گذشته!
https://github.com/charmbracelet/crush
@DevTwitter | <Von Datawarehausen/>
👍7🔥3👎2
یک سایت پیدا کردم از این طراحی های قشنگ قشنگ میشه درست کرد.
https://excalidraw.com
@DevTwitter | <Reza Ghasemi/>
https://excalidraw.com
@DevTwitter | <Reza Ghasemi/>
👍47🍌25👎4❤2
تو دات نت 10 قراره این امکان فراهم بشه که فایل csproj رو نداشته باشیم !
مایکروسافت حسابی تو این ورژن های اخیر داره دست و پا میزنه به فرم زبان های مدرن تر برسونه سی شارپ رو و این آپدیت حسابی چشمو گرفت
احتمالا اوایل نوامبر منتشر شه و LTS خواهد بود
https://www.youtube.com/watch?si=gZLfBcsHQiya8U3A&v=j4tLg4bMZK4&feature=youtu.be
این ویدئو کامل این قضیه رو پوشش میده، حقیقتش از شیوه ایمپورت کردن پکیج ها زیاد خوشم نیومد و اینکه از این به بعد فلو کار و پیاده سازی یه سری چیزا چجوری میشه همچنان برام سواله
ولی خب !
@DevTwitter | <Taqi/>
مایکروسافت حسابی تو این ورژن های اخیر داره دست و پا میزنه به فرم زبان های مدرن تر برسونه سی شارپ رو و این آپدیت حسابی چشمو گرفت
احتمالا اوایل نوامبر منتشر شه و LTS خواهد بود
https://www.youtube.com/watch?si=gZLfBcsHQiya8U3A&v=j4tLg4bMZK4&feature=youtu.be
این ویدئو کامل این قضیه رو پوشش میده، حقیقتش از شیوه ایمپورت کردن پکیج ها زیاد خوشم نیومد و اینکه از این به بعد فلو کار و پیاده سازی یه سری چیزا چجوری میشه همچنان برام سواله
ولی خب !
@DevTwitter | <Taqi/>
👍24🍌8🔥2👎1
This media is not supported in your browser
VIEW IN TELEGRAM
فقط با یک پرامپت هر لیندینگ پیج یا سایت استایتیکی که دوست داری سریع و رایگان برای خودت بساز!
یکی از کاربردی ترین ابزار هایی که میتونید استفاده کنید DeepSite است ، در ویدئو من یک پرامپت ساده بهش دادم و نتیجه رو میتونید ببینید!
https://huggingface.co/deepsite
@DevTwitter | <POURYA/>
یکی از کاربردی ترین ابزار هایی که میتونید استفاده کنید DeepSite است ، در ویدئو من یک پرامپت ساده بهش دادم و نتیجه رو میتونید ببینید!
https://huggingface.co/deepsite
@DevTwitter | <POURYA/>
👍13🍌8👎3🔥1
یه gist نوشتم هر وقت جایی سیستم جدید میبینم و بخوام پایتون کار کنم، اینو اجرا میکنم و فایل اولیه پروژه لوکالم رو میسازم :)
https://gist.github.com/hamidtech/b576e5760b63421ac58498fa470c64a9
@DevTwitter | <حمید/>
https://gist.github.com/hamidtech/b576e5760b63421ac58498fa470c64a9
@DevTwitter | <حمید/>
🍌29👍8❤4👎2
اگه زبان گو کار میکنید و یا قصد یادگیریش رو دارید این ویدیو هارو ببینید از تیم Ardan Labs هستش یه مجموعه خیلی خوب برای یادگیری برنامه نویسی و دواپس
https://github.com/ardanlabs/gotraining
@DevTwitter | <MEHDI Homeily - مِهدی هُمِیلی/>
https://github.com/ardanlabs/gotraining
@DevTwitter | <MEHDI Homeily - مِهدی هُمِیلی/>
❤14👍1🔥1
یه افزونه مشتی برای TypeScript پیدا کردم که واقعاً کار رو راحتتر میکنه:
اگه مثل من اهل ساختار تمیز و feature-based تو پروژههات هستی، احتمالاً همیشه درگیر ساخت یا آپدیت دستی فایلهای index.ts برای export کردن ماژولها بودی
این افزونه دقیقاً همون چیزیه که دنبالش بودم!
با یه کلیک همهی exportها رو به صورت خودکار جمع میکنه، و دیگه لازم نیست خودت بری فایلهای مختلف رو دستی اضافه کنی.
پشتیبانی از alias
بهروزرسانی خودکار وقتی فایل جدید اضافه میکنی
تنظیمات قابل شخصیسازی برای مسیرها
من چند روزه دارم استفاده میکنم، و به جرأت میتونم بگم barrel management توی TypeScript هیچوقت به این راحتی نبوده (مخصوصا برای پروژه های اسکیل بالا)
اگه زیاد با ساختارهای feature-base یا monorepo کار میکنی، این اکستنشن قطعاً باید جزو ابزارهای ثابتت باشه
لینک افزونه [vscode]
https://github.com/estruyf/vscode-typenoscript-exportallmodules
@DevTwitter | <Soheil Ghanbary/>
اگه مثل من اهل ساختار تمیز و feature-based تو پروژههات هستی، احتمالاً همیشه درگیر ساخت یا آپدیت دستی فایلهای index.ts برای export کردن ماژولها بودی
این افزونه دقیقاً همون چیزیه که دنبالش بودم!
با یه کلیک همهی exportها رو به صورت خودکار جمع میکنه، و دیگه لازم نیست خودت بری فایلهای مختلف رو دستی اضافه کنی.
پشتیبانی از alias
بهروزرسانی خودکار وقتی فایل جدید اضافه میکنی
تنظیمات قابل شخصیسازی برای مسیرها
من چند روزه دارم استفاده میکنم، و به جرأت میتونم بگم barrel management توی TypeScript هیچوقت به این راحتی نبوده (مخصوصا برای پروژه های اسکیل بالا)
اگه زیاد با ساختارهای feature-base یا monorepo کار میکنی، این اکستنشن قطعاً باید جزو ابزارهای ثابتت باشه
لینک افزونه [vscode]
https://github.com/estruyf/vscode-typenoscript-exportallmodules
@DevTwitter | <Soheil Ghanbary/>
🔥15❤5👎2👍1
واتساپ نسخه بومی ویندوز را کنار گذاشته و نسخه جدیدش در واقع یک مرورگر را بصورت داخلی اجرا و نسخه وبی واتساپ را در آن اجرا میکند و این یعنی مصرف منابع بسیار بیشتر.
مثلا نسخه بومی برای صفحه لاگین ۱۰ مگابابت مصرف اما جدیده نزدیک ۳۰۰ مگ.
موقع استفاده جدی تا ۲ گیگ رم میخوره!
عملا استفاده از نسخه وب واتساپ روی مرورگرهای دیگر مانند کروم یا فایرفاکس یا اج بصرفهتر بوده و منابع کمتری از سیستم شما را اشغال میکند
@DevTwitter | <Alireza Shirazi/>
مثلا نسخه بومی برای صفحه لاگین ۱۰ مگابابت مصرف اما جدیده نزدیک ۳۰۰ مگ.
موقع استفاده جدی تا ۲ گیگ رم میخوره!
عملا استفاده از نسخه وب واتساپ روی مرورگرهای دیگر مانند کروم یا فایرفاکس یا اج بصرفهتر بوده و منابع کمتری از سیستم شما را اشغال میکند
@DevTwitter | <Alireza Shirazi/>
🍌84❤7👍3
با cursor کل وب سایت پورتفولیومو تو کمتر از نیم ساعت از اول با GoLang زدم،
نتیجه: سرعت بیلد شدن و اومدن بالا (از ۲۰ دقیقه - NextJS + PNPM)
اومد رسید به ۱ دقیقه و ۳۰ ثانیه از تایمی که پوش میکنم تا وقتی رو کلاستره کوبر دیپلوی میشه کامل
یکی دیگه از نتایج این بود که همه اینا شد ۱۰۰٪
و یکی دیگه از نتایج هم اینه که کل چیزی که میرسه دست کاربر بدون GZIP به ۱ مگ هم نمیرسه :))
@DevTwitter | <Mamad/>
نتیجه: سرعت بیلد شدن و اومدن بالا (از ۲۰ دقیقه - NextJS + PNPM)
اومد رسید به ۱ دقیقه و ۳۰ ثانیه از تایمی که پوش میکنم تا وقتی رو کلاستره کوبر دیپلوی میشه کامل
یکی دیگه از نتایج این بود که همه اینا شد ۱۰۰٪
و یکی دیگه از نتایج هم اینه که کل چیزی که میرسه دست کاربر بدون GZIP به ۱ مگ هم نمیرسه :))
@DevTwitter | <Mamad/>
👎94🍌25🔥22👍8
کسایی که کار امنیت و یا باگ بانتی انجام میدن شاید این ابزار براشون جالب باشه
میاد کل روند ری سرچ و انواع تست هارو خودش انجام میده
نیاز باشه ریکان نیاز باشه هر مدل تستی
فقط کافیه ادرس سایت بهش بدی و یه api key از openai !
https://github.com/usestrix/strix
@DevTwitter | <Navid/>
میاد کل روند ری سرچ و انواع تست هارو خودش انجام میده
نیاز باشه ریکان نیاز باشه هر مدل تستی
فقط کافیه ادرس سایت بهش بدی و یه api key از openai !
https://github.com/usestrix/strix
@DevTwitter | <Navid/>
❤13👍2🔥1
پروژه orderbook یک پیادهسازی پرسرعت از L2/L3 orderbook به زبان C برای پایتون است، مناسب برای ساخت سیستمهای معاملاتی و صرافی و...
https://github.com/bmoscon/orderbook
@DevTwitter | <Amir/>
https://github.com/bmoscon/orderbook
@DevTwitter | <Amir/>
👍8🔥3
️ همه فقط نوک کوه یخ رو میبینن...
چند خط کد، یه لپتاپ، یه لیوان قهوه و یه اپلیکیشن جذاب.
اما واقعیت خیلی عمیقتر از این حرفاست!
پایینتر که بری تازه میبینی خبری از اون تصویرای رویایی نیست...
جلسههای بیپایان، استرس ریلیز، باگهایی که نصف شب پیداشون میشه، جنگ با Dependencyها و معماریهای پیچیدهای که گاهی نفس آدمو میگیره.
جادوی واقعی همونجایی اتفاق میفته که هیچکس نمیبینه؛
زیر سطح آب... جایی که همه سختیها، یادگیریها و رشدهای واقعی شکل میگیره.
@DevTwitter | <Ali Rostami/>
چند خط کد، یه لپتاپ، یه لیوان قهوه و یه اپلیکیشن جذاب.
اما واقعیت خیلی عمیقتر از این حرفاست!
پایینتر که بری تازه میبینی خبری از اون تصویرای رویایی نیست...
جلسههای بیپایان، استرس ریلیز، باگهایی که نصف شب پیداشون میشه، جنگ با Dependencyها و معماریهای پیچیدهای که گاهی نفس آدمو میگیره.
جادوی واقعی همونجایی اتفاق میفته که هیچکس نمیبینه؛
زیر سطح آب... جایی که همه سختیها، یادگیریها و رشدهای واقعی شکل میگیره.
@DevTwitter | <Ali Rostami/>
👍102🍌11❤8👎2
بالاخره تونستم یکی از سنگین ترین ویدیو های مستندات laravel12 رو آماده کنم!
این بخش از مستندات، ۲۸ تا قسمت مختلف داره و واقعاً بعضی بخش هاش انقدر پیچیده و خسته کننده هست که فکر نکنم خیلی ها تا حالا کامل خونده باشنش
ولی توی این ویدیو سعی کردم اون نکات سخت و کسل کننده رو با توضیح های ساده تبدیل کنم به یه مسیر قابل درک و دوست داشتنی. چیزی که خودم دلم میخواست موقع شروع یادگیری لاراول وجود داشته باشه.
اگر داری مستندات laravel رو دنبال میکنی یا میخوای اصولی واردش بشی، این ویدیو رو از دست نده. قول میدم دیدت رو نسبت به این بخش کامل تر کنه.
لیست کامل دوره رایگان مستندات لاراول ۱۲ رو از طریق لینک زیر میتونی مشاهده کنی:
https://www.youtube.com/playlist?list=PL3HE8SdhbwWl7UnEdKes2OEmfapGDiF57
@DevTwitter | <Ehsan Mahmoodi/>
این بخش از مستندات، ۲۸ تا قسمت مختلف داره و واقعاً بعضی بخش هاش انقدر پیچیده و خسته کننده هست که فکر نکنم خیلی ها تا حالا کامل خونده باشنش
ولی توی این ویدیو سعی کردم اون نکات سخت و کسل کننده رو با توضیح های ساده تبدیل کنم به یه مسیر قابل درک و دوست داشتنی. چیزی که خودم دلم میخواست موقع شروع یادگیری لاراول وجود داشته باشه.
اگر داری مستندات laravel رو دنبال میکنی یا میخوای اصولی واردش بشی، این ویدیو رو از دست نده. قول میدم دیدت رو نسبت به این بخش کامل تر کنه.
لیست کامل دوره رایگان مستندات لاراول ۱۲ رو از طریق لینک زیر میتونی مشاهده کنی:
https://www.youtube.com/playlist?list=PL3HE8SdhbwWl7UnEdKes2OEmfapGDiF57
@DevTwitter | <Ehsan Mahmoodi/>
👍22❤9👎2🔥2
This media is not supported in your browser
VIEW IN TELEGRAM
میتونید بدون یک خط کد، مرورگرتون رو به یک ربات هوشمند تبدیل کنید
با NanoBrowser، فقط با یک پرامپت ساده، میتونید هر کاری که با مرورگر انجام میدید رو اتوماتیک کنید! از پر کردن فرمها تا کامنت گذاشتن زیر توییتهای جدید ایلان ماسک!
http://github.com/nanobrowser/nanobrowser
@DevTwitter | <POURYA/>
با NanoBrowser، فقط با یک پرامپت ساده، میتونید هر کاری که با مرورگر انجام میدید رو اتوماتیک کنید! از پر کردن فرمها تا کامنت گذاشتن زیر توییتهای جدید ایلان ماسک!
http://github.com/nanobrowser/nanobrowser
@DevTwitter | <POURYA/>
❤12👍3🔥1