Audio
رادیوجادی ۱۹۱ - دیگه کسی ما رو نمیخره
https://youtu.be/BaNEBksgdR4
در رادیوی ۱۹۱ با درد و دل کامیار شروع میکنیم و از مهملات میگیم، از هوش مصنوعی مثبت و منفی و اینکه کسی دیگه برای اطلاعات ما پولی نمیده. واقعا دیگه اصلا نمیارزیم! اوه یه خبر فوق العاده جالب از یه بحث عجیب هم داریم: اکثر کهکشانها در جهت عقربه ساعت میچرخن؛ اما چرا؟!
00:00 - صحبتهای کامیار در مورد ابزارها
02:00 - رادیوجادی ۱۹۱ کسی ما رو نمی خره
04:35 هوش مصنوعی هنوز آماده دیباگ کردن نیست
10:00 - مایکروسافت میگه ۹۵٪ کدها رو هوش مصنوعی خواهد نوشت
12:15 - نظارت بر تهران با ۱۵ هزار دوربین جدید
13:30 - ویزا با صد میلیون دلار جای مسترکارت رو برای اپل میگیره
14:48 - بیشتر کهکشانها در خلاف جهت عقربههای ساعت میچرخن؛ واقعا چرا؟
22:10 - گفتن «لطفا» و «ممنون» میلیونها دلار هزینه داره
27:25 - ادعاهای هک ایران در مورد کدبرکرز بانک سپه و شدوبیتس همراه اول
32:00 - بخش آخر
37:48 - پیامهای شما
https://youtu.be/BaNEBksgdR4
در رادیوی ۱۹۱ با درد و دل کامیار شروع میکنیم و از مهملات میگیم، از هوش مصنوعی مثبت و منفی و اینکه کسی دیگه برای اطلاعات ما پولی نمیده. واقعا دیگه اصلا نمیارزیم! اوه یه خبر فوق العاده جالب از یه بحث عجیب هم داریم: اکثر کهکشانها در جهت عقربه ساعت میچرخن؛ اما چرا؟!
00:00 - صحبتهای کامیار در مورد ابزارها
02:00 - رادیوجادی ۱۹۱ کسی ما رو نمی خره
04:35 هوش مصنوعی هنوز آماده دیباگ کردن نیست
10:00 - مایکروسافت میگه ۹۵٪ کدها رو هوش مصنوعی خواهد نوشت
12:15 - نظارت بر تهران با ۱۵ هزار دوربین جدید
13:30 - ویزا با صد میلیون دلار جای مسترکارت رو برای اپل میگیره
14:48 - بیشتر کهکشانها در خلاف جهت عقربههای ساعت میچرخن؛ واقعا چرا؟
22:10 - گفتن «لطفا» و «ممنون» میلیونها دلار هزینه داره
27:25 - ادعاهای هک ایران در مورد کدبرکرز بانک سپه و شدوبیتس همراه اول
32:00 - بخش آخر
37:48 - پیامهای شما
⚡2❤1
❓لینک ها(link) در لینوکس چی هستن ؟
✅ توی لینوکس(یا هرسیستم عاملی)، لینک یه راهه برای اشارهکردن به یه فایل دیگه.
✅ یعنی به جای اینکه خود فایل رو دوباره بسازیم یا کپی کنیم، یه "میانبر" یا "اسم دیگه" براش درست میکنیم که بتونیم ازش استفاده کنیم.
اینطوری هم جا کمتر میگیره، هم مدیریت فایلها راحتتر میشه و هرزمان شما چه فایل اصلی و چه فایل لینک شده رو تغییر بدی، تغییرات توی هردو فایل اعمال میشه
✅ این لینک ها توی ویندوز همون shortcut ها هستن
❓هاردلینک ها(Hard Link):
✅ انگار که یه اسم دیگه اس برای همون فایل اصلیه. هر دو به یه جای واقعی توی حافظه (inode) اشاره میکنن. اگه یکی رو پاک کنی، اون یکی هنوز کار میکنه.
❓سافت لینک ها(Soft Link):
✅ مثل شورتکاته. فقط مسیر فایل رو نگه میداره(inode ها متفاوتن) و اگه فایل اصلی پاک بشه، اینم دیگه به کار نمیاد و در اصطلاح broken میشه.
👈🏻 در واقع inode ها یکسری اطلاعات اضافه(metadata) در رابطه با اون فایل هستن
@LearnByLearn
#linux
#soft_link
#hard_link
✅ توی لینوکس(یا هرسیستم عاملی)، لینک یه راهه برای اشارهکردن به یه فایل دیگه.
✅ یعنی به جای اینکه خود فایل رو دوباره بسازیم یا کپی کنیم، یه "میانبر" یا "اسم دیگه" براش درست میکنیم که بتونیم ازش استفاده کنیم.
اینطوری هم جا کمتر میگیره، هم مدیریت فایلها راحتتر میشه و هرزمان شما چه فایل اصلی و چه فایل لینک شده رو تغییر بدی، تغییرات توی هردو فایل اعمال میشه
✅ این لینک ها توی ویندوز همون shortcut ها هستن
❓هاردلینک ها(Hard Link):
✅ انگار که یه اسم دیگه اس برای همون فایل اصلیه. هر دو به یه جای واقعی توی حافظه (inode) اشاره میکنن. اگه یکی رو پاک کنی، اون یکی هنوز کار میکنه.
ln <file-address> <link-address>
❓سافت لینک ها(Soft Link):
✅ مثل شورتکاته. فقط مسیر فایل رو نگه میداره(inode ها متفاوتن) و اگه فایل اصلی پاک بشه، اینم دیگه به کار نمیاد و در اصطلاح broken میشه.
ln -s <file-address> <link-address>
👈🏻 در واقع inode ها یکسری اطلاعات اضافه(metadata) در رابطه با اون فایل هستن
@LearnByLearn
#linux
#soft_link
#hard_link
👍6
Audio
رادیوجادی ۱۹۲ - غیرمستقیم
حالا که کارهای غیرمستقیم آزاده ما چرا نکنیم؟ تو این شماره نه فقط سراغ ای آی و شرایط کاری ای که درست کرده میریم که به مدل کیبرد لینوس توروالدز نگاه می کنیم و بررسی می کنیم که چرا اسم پاپ؛ لئوی ۱۴ است و این اصلا چه ربطی به ما داره! با من باشین که جهان هکرهای بیشتری لازم داره.
00:00 - رادیوجادی ۱۹۲
01:22 - تاثیر ای آی و هوش مصنوعی و مدلهای زبانی بر مشاغل
07:17 - مایکروسات ۶۰۰۰ نفر رو اخراج میکنه
10:51 - بازم هم اخراج و بحث جی تی ای ۶
12:05 - مایکروسافت میخواد برای آپدیت سرورهاش هم پول بگیره
16:30 - خبر جلف کیبرد مورد استفاده لینوس توروالدز
20:32 - «نگرانی از هوش مصنوعی» دلیل انتخاب نام لئوی ۱۴ ام
23:52 - دیدار کشورهای جهان برای بررسی قوانین مرتبط با رباتهای قاتل
30:59 - بخش آخر
https://youtu.be/-UtzE7kEkUo
حالا که کارهای غیرمستقیم آزاده ما چرا نکنیم؟ تو این شماره نه فقط سراغ ای آی و شرایط کاری ای که درست کرده میریم که به مدل کیبرد لینوس توروالدز نگاه می کنیم و بررسی می کنیم که چرا اسم پاپ؛ لئوی ۱۴ است و این اصلا چه ربطی به ما داره! با من باشین که جهان هکرهای بیشتری لازم داره.
00:00 - رادیوجادی ۱۹۲
01:22 - تاثیر ای آی و هوش مصنوعی و مدلهای زبانی بر مشاغل
07:17 - مایکروسات ۶۰۰۰ نفر رو اخراج میکنه
10:51 - بازم هم اخراج و بحث جی تی ای ۶
12:05 - مایکروسافت میخواد برای آپدیت سرورهاش هم پول بگیره
16:30 - خبر جلف کیبرد مورد استفاده لینوس توروالدز
20:32 - «نگرانی از هوش مصنوعی» دلیل انتخاب نام لئوی ۱۴ ام
23:52 - دیدار کشورهای جهان برای بررسی قوانین مرتبط با رباتهای قاتل
30:59 - بخش آخر
https://youtu.be/-UtzE7kEkUo
❤2
✅ نحوه گرفتن Gemini Pro گوگل + 2 ترابایت حجم ذخیره سازی رایگان
✅ اگه از قبل اکانت گوگل دارید که هیچی
اگه ندارید یه اکانت گوگل بسازید
✅ بعد با ip آمریکا روی لینک زیر کلیک کنید و گزینه get student رو بزنید، یه اکانت یکساله pro بهتون میده
https://one.google.com/join/ai-student
✅ حالا ip آمریکا از کجا بیاریم؟ از اکستنشن veepn میتونید برای ip امریکا استفاده کنید
✅ وقتی کاربر pro بشید دور عکس اکانتتون رنگی میشه
👈 نکته: تا سه ماه رایگانه و بعد سه ماه نیازه کردیت کارت معرفی کنید تا 9 ماه دیگه رایگان بشه
@LearnByLearn
✅ اگه از قبل اکانت گوگل دارید که هیچی
اگه ندارید یه اکانت گوگل بسازید
✅ بعد با ip آمریکا روی لینک زیر کلیک کنید و گزینه get student رو بزنید، یه اکانت یکساله pro بهتون میده
https://one.google.com/join/ai-student
✅ حالا ip آمریکا از کجا بیاریم؟ از اکستنشن veepn میتونید برای ip امریکا استفاده کنید
✅ وقتی کاربر pro بشید دور عکس اکانتتون رنگی میشه
👈 نکته: تا سه ماه رایگانه و بعد سه ماه نیازه کردیت کارت معرفی کنید تا 9 ماه دیگه رایگان بشه
@LearnByLearn
🙏2❤1
📝 پیام صریح مایکروسافت به برنامهنویسان /هوش مصنوعی از کارمندان عزیزتر شد؟
در حالی که مایکروسافت بهتازگی ۶هزار موقعیت شغلی را حذف کرده و بیشترین آسیب را مهندسان نرمافزار دیدهاند، مدیر ارشد محصولات این شرکت بهروشنی اعلام کرده که با دیدگاههایی مبنی بر منسوخ شدن حرفه برنامهنویسی بهشدت مخالف است.
آپارنا چناپراگادا، مدیر ارشد بخش «تجربهها و دستگاهها» در مایکروسافت، معتقد است که هوش مصنوعی صرفاً «لایهی جدیدی از انتزاع» در مسیر تکامل برنامهنویسی است. او توضیح داد: «ما دیگر با اسمبلی کدنویسی نمیکنیم. بیشترمون حتی دیگه با زبان C هم کار نمیکنیم. ما با لایههای بالاتر و بالاتر از انتزاع کار میکنیم.»
او در ادامه پیشنهاد کرد که مهندسان نرمافزار ممکن است در آینده بیشتر نقش «اپراتورهای نرمافزار» را داشته باشند. چناپراگادا نیز پیشبینی کرده است که تعداد اپراتورهای نرمافزار ممکن است ده برابر شود و گفته است شاید در آینده بهجای ‘Cs’ چیز دیگری مانند ‘SOs’ داشته باشیم. اما این به این معنی نیست که نباید علوم کامپیوتر یاد گرفت.
📖 منبع خبر: مجله هوش مصنوعی homeai
@LearnByLearn
در حالی که مایکروسافت بهتازگی ۶هزار موقعیت شغلی را حذف کرده و بیشترین آسیب را مهندسان نرمافزار دیدهاند، مدیر ارشد محصولات این شرکت بهروشنی اعلام کرده که با دیدگاههایی مبنی بر منسوخ شدن حرفه برنامهنویسی بهشدت مخالف است.
آپارنا چناپراگادا، مدیر ارشد بخش «تجربهها و دستگاهها» در مایکروسافت، معتقد است که هوش مصنوعی صرفاً «لایهی جدیدی از انتزاع» در مسیر تکامل برنامهنویسی است. او توضیح داد: «ما دیگر با اسمبلی کدنویسی نمیکنیم. بیشترمون حتی دیگه با زبان C هم کار نمیکنیم. ما با لایههای بالاتر و بالاتر از انتزاع کار میکنیم.»
او در ادامه پیشنهاد کرد که مهندسان نرمافزار ممکن است در آینده بیشتر نقش «اپراتورهای نرمافزار» را داشته باشند. چناپراگادا نیز پیشبینی کرده است که تعداد اپراتورهای نرمافزار ممکن است ده برابر شود و گفته است شاید در آینده بهجای ‘Cs’ چیز دیگری مانند ‘SOs’ داشته باشیم. اما این به این معنی نیست که نباید علوم کامپیوتر یاد گرفت.
📖 منبع خبر: مجله هوش مصنوعی homeai
@LearnByLearn
👍2
LearnByLearn📖
✅ این مقاله خیلی ساده، خلاصه و قشنگ راجع به ساختار و فایل بندی یه پروژه گولنگی صحبت کرده https://medium.com/@smart_byte_labs/organize-like-a-pro-a-simple-guide-to-go-project-folder-structures-e85e9c1769c2 ⚠️ پ.ن: اما قشنگ تر از اینا، یه ساختار باحال تر…
✅ پروژه های گولنگی معمولا ساختار خیلی مشخصی ندارن و این ساختار بر عهده خود تیم یا برنامه نویسه
✅ میخوام توی این مقاله یه ساختار پروژه رو توضیح بدم که خیلی قشنگ دیزاین شده(مونوریپوعه که خیلی راحت تبدیل به میکروسرویس میشه)
✅ قطعا مثل همه ساختار ها و پروژه های دیگه بی عیب و نقص نیست ولی درکل چیز جوابیه
✅ سعی میکنم ریز به ریزشو با جزعیات توضیح بدم ولی در نهایت این شمایید که طبق پروژه خودتون کاستومش میکنید
✅ قبلش اینو باید بگم که این ساختار رو توی پروژه تیم سازی بوت کمپ گوکست، با کمک منتور و استاد عزیزم حسین نظری و بقیه دوستان شرکت کننده پیاده سازی کردیم.
چون پروژه private هست کد هارو نمیتونم بزارم و این ساختار هم با اجازه خود مهندس نظری share میکنم
این هم آدرس کانالشون هست @gocasts به واسطه حق کپی رایت
انشالله به کار دوستان بیاد
ساختار رو سعی میکنم امروز بنویسم
مخلص همه❤️❤️
@LearnByLearn
✅ میخوام توی این مقاله یه ساختار پروژه رو توضیح بدم که خیلی قشنگ دیزاین شده(مونوریپوعه که خیلی راحت تبدیل به میکروسرویس میشه)
✅ قطعا مثل همه ساختار ها و پروژه های دیگه بی عیب و نقص نیست ولی درکل چیز جوابیه
✅ سعی میکنم ریز به ریزشو با جزعیات توضیح بدم ولی در نهایت این شمایید که طبق پروژه خودتون کاستومش میکنید
✅ قبلش اینو باید بگم که این ساختار رو توی پروژه تیم سازی بوت کمپ گوکست، با کمک منتور و استاد عزیزم حسین نظری و بقیه دوستان شرکت کننده پیاده سازی کردیم.
چون پروژه private هست کد هارو نمیتونم بزارم و این ساختار هم با اجازه خود مهندس نظری share میکنم
این هم آدرس کانالشون هست @gocasts به واسطه حق کپی رایت
انشالله به کار دوستان بیاد
ساختار رو سعی میکنم امروز بنویسم
مخلص همه❤️❤️
@LearnByLearn
❤5🙏3
LearnByLearn📖
✅ پروژه های گولنگی معمولا ساختار خیلی مشخصی ندارن و این ساختار بر عهده خود تیم یا برنامه نویسه ✅ میخوام توی این مقاله یه ساختار پروژه رو توضیح بدم که خیلی قشنگ دیزاین شده(مونوریپوعه که خیلی راحت تبدیل به میکروسرویس میشه) ✅ قطعا مثل همه ساختار ها و پروژه…
✅ پوشه .air :
توی این پوشه با توجه به هر اپ(سرویس) که قراره بالا بیاد، یک فایل air.myApp.toml داریم
این برای اینه که وقتی توی دولوپمنت یه اپ رو توسط داکر یا کوبر یا هرچی بالا اوردیم(توی مرحله دولوپمنت) ومثلا تغییراتی دادیم، هربار نخواییم اون اپ رو برای اجرای تغییرات بیاریم پایین و دوباره بالا بیاریم.
✅ پوشه adapter :
توی این پوشه ابزار هایی رو استفاده میکنیم که قراره توی پروژه بقیه سرویس هامون ازش استفاده کنن.
مثلا فرض کنید توی پروژه، سرویس هامون میخوان از rabbitMQ استفاده کنن. ما نمیاییم که خود ربیت رو مستقمی توی اون سرویس ایمپورت کنیم و استفاده کنیم. چون بر فرض فردا اگه بخواییم مسیج بروکرمون رو تغییر بدیم کد های ربیت با اون سرویس couple شدن و سخته عوض کردنش
به همین خاطر یک لایه ابسترکت به اسم adapter استفاده میکنیم و هر ابزار خارجی رو که پروژه و سرویس هامون نیاز داره رو اون جا یه پوشه براش میسازیم و متد های مورد نیاز رو براش پیاده میکنیم و بعد اون اداپتر رو به سرویس مورد نظر تزریق میکنیم
حتی grpc یک اپلیکیشن هم که قراره سایر سرویس ها ازش استفاده کنن هم یه سرویس خارجی حساب میشه که توی این پوشه قرار داده میشه
✅ پوشه cli :
این پوشه برای تست endpoint ها استفاده میشه، که هرکس به هرسرویس نیاز داشت از طریق این cli درخواستش رو به سرویس مورد نظر بفرسته و به اعضای هر سرویس یه پوشه داریم
✅ پوشه cmd :
برای اکسترنال کامند ها هم به اعضای هر سرویس یه پوشه اینجا میسازیم(همون main.go) هر اپ
✅ پوشه config :
دقت کنید که این پوشه فایل های کانفیگ پروژه نیست. بلکه کانفیگوریشن منیجمنتی که خودمون برای پروژه نوشتیم
✅ پوشه deploy :
کلا کار های دیپلویمنت رو برای هر سرویس اینجا انجام میدیم. فایل های کانفیگ هر اپ توی این پوشه و در پوشه مخصوص به خودشون قرار میگیرن
✅ پوشه pkg :
هر چیزی که قرار باشه به صورت مشترک برای همه سرویس ها استفاده بشه رو اینجا مینویسم مثل یه پکیج که مربوط به request زدن باشه
✅ پوشه protobuf :
توی این پوشه فایل های مربوط به پروتوباف و grpc رو که برای ارتباط بین سرویس هاست میزاریم
✅ پوشه script :
اسکریپت های مورد نیاز رو اینجا میزاریم
✅ پوشه types :
تایپ های جنریک که قراره توی کل سرویس ها یکپارچه باشن مثلا ID رو توی این پوشه میسازیم
✅ app_name :
هر سرویس یا همون اپلیکیشنی که نیاز داریم، طبق الگو نام گذاری که تیم به توافق رسیده رو به این شکل درست میکنیم مثلا : notificationApp یا userApp
✅ فایل makefile :
از این برای بالا اوردن پروژه استفاده میکنیم مثلا اگه قراره سرویسی run بشه یا پیش نیازی داره اینجا اوکی میکنیم
حالا توی هر سرویس هم باز یه ساختار مشخص داریم که تمام اپ ها به علت یکپارچه بودن ملزم هستن از این ساختار پیروی کنن:
هر سرویس این فایل و پوشه هارو داره:
✅ پوشه delivery : راه های ارتباطی با بیرون. مثلا قراره سرور http باشه پس یه پوشه http میسازیم و و هندلر هامون رو اونجا اوکی میکنیم یا مثلا اگه ارتباط از نوع grpc باشه باز یه پوشه میسازیم و بقیه ماجرا و توی پوشه delivery یه پوشه به اسم middlewere هست که میدلور های مربوط به سرویس رو اونجا هندل میکنیم
✅ پوشه validation : برای ولیدیشن های موجود توی endpoint ها استفاده میشه
بقیه فایل ها مثل params ها و config مربوط به اون سرویس و entity و …. هم اگه نیاز بود میسازیم
برای هر سرویس هم یه فایل app.go داریم که مثل main اون سرویس میمونه
پوشه service : برای بیزینس لاجیک اون سرویس استفاده میشه
✅ پوشه repository : برای لایه دیتابیس استفاده میشه
✅ با توجه به نیاز اون پروژه ممکنه چیزایی این فایل ها اضافه یا کم بشه که دیگه بستگی به پروژه اتون داره ولی به راحتی با تغییرات کوچیک قابل تبدیل به میکروسرویس هستش
مخلص همه ❤️
@LearnByLearn
#golang
توی این پوشه با توجه به هر اپ(سرویس) که قراره بالا بیاد، یک فایل air.myApp.toml داریم
این برای اینه که وقتی توی دولوپمنت یه اپ رو توسط داکر یا کوبر یا هرچی بالا اوردیم(توی مرحله دولوپمنت) ومثلا تغییراتی دادیم، هربار نخواییم اون اپ رو برای اجرای تغییرات بیاریم پایین و دوباره بالا بیاریم.
✅ پوشه adapter :
توی این پوشه ابزار هایی رو استفاده میکنیم که قراره توی پروژه بقیه سرویس هامون ازش استفاده کنن.
مثلا فرض کنید توی پروژه، سرویس هامون میخوان از rabbitMQ استفاده کنن. ما نمیاییم که خود ربیت رو مستقمی توی اون سرویس ایمپورت کنیم و استفاده کنیم. چون بر فرض فردا اگه بخواییم مسیج بروکرمون رو تغییر بدیم کد های ربیت با اون سرویس couple شدن و سخته عوض کردنش
به همین خاطر یک لایه ابسترکت به اسم adapter استفاده میکنیم و هر ابزار خارجی رو که پروژه و سرویس هامون نیاز داره رو اون جا یه پوشه براش میسازیم و متد های مورد نیاز رو براش پیاده میکنیم و بعد اون اداپتر رو به سرویس مورد نظر تزریق میکنیم
حتی grpc یک اپلیکیشن هم که قراره سایر سرویس ها ازش استفاده کنن هم یه سرویس خارجی حساب میشه که توی این پوشه قرار داده میشه
✅ پوشه cli :
این پوشه برای تست endpoint ها استفاده میشه، که هرکس به هرسرویس نیاز داشت از طریق این cli درخواستش رو به سرویس مورد نظر بفرسته و به اعضای هر سرویس یه پوشه داریم
✅ پوشه cmd :
برای اکسترنال کامند ها هم به اعضای هر سرویس یه پوشه اینجا میسازیم(همون main.go) هر اپ
✅ پوشه config :
دقت کنید که این پوشه فایل های کانفیگ پروژه نیست. بلکه کانفیگوریشن منیجمنتی که خودمون برای پروژه نوشتیم
✅ پوشه deploy :
کلا کار های دیپلویمنت رو برای هر سرویس اینجا انجام میدیم. فایل های کانفیگ هر اپ توی این پوشه و در پوشه مخصوص به خودشون قرار میگیرن
✅ پوشه pkg :
هر چیزی که قرار باشه به صورت مشترک برای همه سرویس ها استفاده بشه رو اینجا مینویسم مثل یه پکیج که مربوط به request زدن باشه
✅ پوشه protobuf :
توی این پوشه فایل های مربوط به پروتوباف و grpc رو که برای ارتباط بین سرویس هاست میزاریم
✅ پوشه script :
اسکریپت های مورد نیاز رو اینجا میزاریم
✅ پوشه types :
تایپ های جنریک که قراره توی کل سرویس ها یکپارچه باشن مثلا ID رو توی این پوشه میسازیم
✅ app_name :
هر سرویس یا همون اپلیکیشنی که نیاز داریم، طبق الگو نام گذاری که تیم به توافق رسیده رو به این شکل درست میکنیم مثلا : notificationApp یا userApp
✅ فایل makefile :
از این برای بالا اوردن پروژه استفاده میکنیم مثلا اگه قراره سرویسی run بشه یا پیش نیازی داره اینجا اوکی میکنیم
حالا توی هر سرویس هم باز یه ساختار مشخص داریم که تمام اپ ها به علت یکپارچه بودن ملزم هستن از این ساختار پیروی کنن:
هر سرویس این فایل و پوشه هارو داره:
✅ پوشه delivery : راه های ارتباطی با بیرون. مثلا قراره سرور http باشه پس یه پوشه http میسازیم و و هندلر هامون رو اونجا اوکی میکنیم یا مثلا اگه ارتباط از نوع grpc باشه باز یه پوشه میسازیم و بقیه ماجرا و توی پوشه delivery یه پوشه به اسم middlewere هست که میدلور های مربوط به سرویس رو اونجا هندل میکنیم
✅ پوشه validation : برای ولیدیشن های موجود توی endpoint ها استفاده میشه
بقیه فایل ها مثل params ها و config مربوط به اون سرویس و entity و …. هم اگه نیاز بود میسازیم
برای هر سرویس هم یه فایل app.go داریم که مثل main اون سرویس میمونه
پوشه service : برای بیزینس لاجیک اون سرویس استفاده میشه
✅ پوشه repository : برای لایه دیتابیس استفاده میشه
✅ با توجه به نیاز اون پروژه ممکنه چیزایی این فایل ها اضافه یا کم بشه که دیگه بستگی به پروژه اتون داره ولی به راحتی با تغییرات کوچیک قابل تبدیل به میکروسرویس هستش
مخلص همه ❤️
@LearnByLearn
#golang
project
|
|- .air
|- adapter
| | redis
| | RabbitMQ
| | userapp
|- cli
|- cmd
| | userService
| | notificationService
|- config
| | config.go
| | default.go
| | load.go
|- deploy
|- script
|- pkg
|- protobuf
|- types
|- MakeFile
userapp
| delivery
| | grpc
| | |handlers
| | http
| | |handlers
| params
| validation
| repository
|__ service
👏6👍1👎1
Forwarded from Infrastructure Artists
با درود و مهر خدمت همه عزیزان
چندتا ویدیو جدید تو کانال یوتیوب آپلود شد که میتونید از لینک زیر مشاهده کنید
https://youtube.com/@sudoix
مطالبی که در خصوصش صحبت شد
Cron, crontab
At
ممنون میشم با شیر و ری پست باعث بشید این مطالب به دست افراد بیشتری برسه
کانال و گروه تلگرام:
https://t.iss.one/sudoix_channel
.
https://t.iss.one/SudoSuDash
خیلی مخلصیم.
چندتا ویدیو جدید تو کانال یوتیوب آپلود شد که میتونید از لینک زیر مشاهده کنید
https://youtube.com/@sudoix
مطالبی که در خصوصش صحبت شد
Cron, crontab
At
ممنون میشم با شیر و ری پست باعث بشید این مطالب به دست افراد بیشتری برسه
کانال و گروه تلگرام:
https://t.iss.one/sudoix_channel
.
https://t.iss.one/SudoSuDash
خیلی مخلصیم.
👍3
خب دیگه دوستان لینوکسی با X11 خدافظی کنید 🥲 و به wayland سلام کنید
کلا x11 رو حذف کردن
https://discourse.ubuntu.com/t/ubuntu-25-10-drops-support-for-gnome-on-xorg/62538
@LearnByLearn
کلا x11 رو حذف کردن
https://discourse.ubuntu.com/t/ubuntu-25-10-drops-support-for-gnome-on-xorg/62538
@LearnByLearn
Ubuntu Community Hub
Ubuntu 25.10 drops support for GNOME on Xorg
With Ubuntu 25.10 “Questing Quokka,” we are taking a significant step forward in the evolution of the Ubuntu Desktop by removing the Xorg-based Ubuntu session. Starting with this release the “Ubuntu” session in GDM will run exclusively on Wayland. This decision…
👍2
Audio
رادیوجادی ۱۹۴ - جنگ کریه
جنگ شده ولی تهش فکر کردم بهتره رادیو جادی رو داشته باشیم. گپی سریع میزنیم در مورد خبرهایی که در مقابل خبرهای دیگه بی اهمیت هستن ولی می تونن بهانهای باشن برای گپ و گفت ما. وضع این دنیا که برامون ساختن خرابه و ما هکرهای بیشتری لازم داریم.
00:00 - رادیوجادی ۱۹۴ و گپهایی در مورد چرایی رادیو در زمان جنگ
03:45 - شرکت های نیویورکی باید دلیل اخراج کارمندها (ربات / هوش مصنوعی) رو ثبت کنن
06:20 - چرا به نسخه جدید SSL میگیم TLS
10:30 - سایت سایت طلایی ترامپ
14:05 - دلیل مشکلات سرویسهای گوگل
22:05 - گپی در مورد اهمیت حفظ اینترنت
24:05 - پیامهای آخر
https://youtu.be/Ade684-A9v0
پ.ن. به خاطر شرایط اینترنت نسخه مونو رو اینجا گذاشته ام که حجم کمتری داره تا همه راحتتر باشن در دانلودش.
جنگ شده ولی تهش فکر کردم بهتره رادیو جادی رو داشته باشیم. گپی سریع میزنیم در مورد خبرهایی که در مقابل خبرهای دیگه بی اهمیت هستن ولی می تونن بهانهای باشن برای گپ و گفت ما. وضع این دنیا که برامون ساختن خرابه و ما هکرهای بیشتری لازم داریم.
00:00 - رادیوجادی ۱۹۴ و گپهایی در مورد چرایی رادیو در زمان جنگ
03:45 - شرکت های نیویورکی باید دلیل اخراج کارمندها (ربات / هوش مصنوعی) رو ثبت کنن
06:20 - چرا به نسخه جدید SSL میگیم TLS
10:30 - سایت سایت طلایی ترامپ
14:05 - دلیل مشکلات سرویسهای گوگل
22:05 - گپی در مورد اهمیت حفظ اینترنت
24:05 - پیامهای آخر
https://youtu.be/Ade684-A9v0
پ.ن. به خاطر شرایط اینترنت نسخه مونو رو اینجا گذاشته ام که حجم کمتری داره تا همه راحتتر باشن در دانلودش.
https://youtube.com/shorts/fTCynQwzA-I?si=4VgG9CslupGaTUuL
ویدیو یک دقیقه که مهندس گوگل دعوتتون میکنه چطور با AI و رویکرد TDD کد بزنید🤌
ویدیو یک دقیقه که مهندس گوگل دعوتتون میکنه چطور با AI و رویکرد TDD کد بزنید🤌
YouTube
Test Driven Development (TDD) can be a drag, but it doesn’t have to be. Here’s how!
TDD is great in theory, but in practice it can be difficult to work with. The bright side? Gemini can help make TDD a little bit easier to write code. Subscr...
🔥3❤1
system_design.pdf
10.7 MB
یکی از بهترین کتاب های سیستم دیزاین که آقای Alex Xu نوشته و عزیزان زحمت ترجمشو کشیدن
نسخه فیزیکیش پولی هست که خب توی گوگل سرچ کنید میاد
@LearnByLearn
نسخه فیزیکیش پولی هست که خب توی گوگل سرچ کنید میاد
@LearnByLearn
❤8🔥1
«امنیت پایدارتر با یک چرخش ساده!»😎
✅ اگه با JWT کار کرده باشی، میدونی که ما یک access token و یک refresh token داریم
✅ اکسس توکن ما که خب عمرش کوتاهه مثلا بعد 10 دقیقه باطل میشه و از طریق رفرش توکن که عمرش بلندتره(مثلا 7 روز) باید یک اکسس توکن و رفرش توکن جدید از سرور درخواست کنیم
🤨 حالا یک مسعله ای هست این وسط ؟!
رفرش توکن شما نباید اینطوری باشه که توی اون 7 روز هربار که ازش استفاده کردی فرت و فرت بهت اکسس توکن بده.
😈 اینطوری اگه هکر عزیز بنا به هر علتی به اون رفرش توکن دسترسی پیدا کنه توی اون 7 روز هزاربار میتونه token بگیره و عشق و حال کنه
☝🏻اینجا دوتا مفهوم داریم به اسم rotate refresh token
و revoke refresh token که خیلی شبیه هم هستن(با فرق کوچولو)
✅ Rotate Token
یعنی هر بار که کاربر از Refresh Token استفاده کرد، یه Access Token جدید و یه Refresh Token جدید صادر میکنیم.
توی این حالت، Refresh Token قبلی دیگه نباید قابل استفاده باشه
اینجوریه که میگه: تو بیا رفرش توکن رو توی یک جایی مثلا ردیس یا هرچی، ذخیره کن و وقتی کاربر از اون رفرش توکن استفاده کرد قبلی رو حذف کن و جدیده رو بزار جاش تا یکبار بیشتر نتونه استفاده کنه
✅ Revoke Token
یعنی بیاعتبار کردن یک توکن قبل از اینکه تاریخ انقضاش برسه(با expire طبیعی توکن اشتباه نگیری). مثلا وقتی کاربر logout میکنه یا Refresh Token جدید گرفته، Refresh Token قبلی رو revoke میکنیم.
✅ در واقع میشه یه جورایی گفت :
اRotate یعنی "توکن جدید بده و قبلی رو کنار بذار"
اRevoke یعنی "توکن فعلی رو از کار بنداز"
این لینک زیر هم خیلی مفصل تر توضیح داده
https://auth0.com/docs/secure/tokens/refresh-tokens/refresh-token-rotation
#jwt
#rotate_refresh_token
@LearnByLearn
✅ اگه با JWT کار کرده باشی، میدونی که ما یک access token و یک refresh token داریم
✅ اکسس توکن ما که خب عمرش کوتاهه مثلا بعد 10 دقیقه باطل میشه و از طریق رفرش توکن که عمرش بلندتره(مثلا 7 روز) باید یک اکسس توکن و رفرش توکن جدید از سرور درخواست کنیم
🤨 حالا یک مسعله ای هست این وسط ؟!
رفرش توکن شما نباید اینطوری باشه که توی اون 7 روز هربار که ازش استفاده کردی فرت و فرت بهت اکسس توکن بده.
😈 اینطوری اگه هکر عزیز بنا به هر علتی به اون رفرش توکن دسترسی پیدا کنه توی اون 7 روز هزاربار میتونه token بگیره و عشق و حال کنه
☝🏻اینجا دوتا مفهوم داریم به اسم rotate refresh token
و revoke refresh token که خیلی شبیه هم هستن(با فرق کوچولو)
✅ Rotate Token
یعنی هر بار که کاربر از Refresh Token استفاده کرد، یه Access Token جدید و یه Refresh Token جدید صادر میکنیم.
توی این حالت، Refresh Token قبلی دیگه نباید قابل استفاده باشه
اینجوریه که میگه: تو بیا رفرش توکن رو توی یک جایی مثلا ردیس یا هرچی، ذخیره کن و وقتی کاربر از اون رفرش توکن استفاده کرد قبلی رو حذف کن و جدیده رو بزار جاش تا یکبار بیشتر نتونه استفاده کنه
✅ Revoke Token
یعنی بیاعتبار کردن یک توکن قبل از اینکه تاریخ انقضاش برسه(با expire طبیعی توکن اشتباه نگیری). مثلا وقتی کاربر logout میکنه یا Refresh Token جدید گرفته، Refresh Token قبلی رو revoke میکنیم.
✅ در واقع میشه یه جورایی گفت :
اRotate یعنی "توکن جدید بده و قبلی رو کنار بذار"
اRevoke یعنی "توکن فعلی رو از کار بنداز"
این لینک زیر هم خیلی مفصل تر توضیح داده
https://auth0.com/docs/secure/tokens/refresh-tokens/refresh-token-rotation
#jwt
#rotate_refresh_token
@LearnByLearn
👌5
Forwarded from جادی | Jadi
Media is too big
VIEW IN TELEGRAM
یه تیکه از رادیوجادی ۱۹۹ رو اینجا میارم چون به نظرم دیدن مستقلش مفیده. حرفهای مدیر عامل بخش وب سرویسهای آمازون است در مورد حضور هوش مصنوعی و مسیر شغلی و استخدام تازه کارها در این شرایط. خلاصهاش؟ یاد بگیرین و سعی کنین تحلیل مساله و شکستن مشکل به اجزای کوچکتر رو یاد بگیرین و اتفاقا شرکتهای بزرگ هم باید دائما در حال استخدام نیروهای جونیور باشن تا چند سال بعد نیروی سنیور داشته باشن.
#برنامه_نویسی #هوش_مصنوعی #شغل #پادکست
#برنامه_نویسی #هوش_مصنوعی #شغل #پادکست
🔥5