اگه داری با Docker یا Kubernetes کار میکنی و دیگه خسته شدی از این همه کامند خطی یه ابزار خوشگل و راحت هست به اسم Portainer!
با Portainer میتونی:
همهی کانتینراتو گرافیکی ببینی و مدیریت کنی
لاگ بگیری
شبکهها، ولومها و استکها رو ببینی
با یه کلیک کانتینر بسازی یا پاک کنی!
حتی چندتا سرور Docker رو از یه پنل مدیریت کنی
به Kubernetes هم وصل میشه و کلی امکانات باحال داره!
مزایا؟
دیگه نیاز نیست همه چی رو حفظ باشی
مناسب برای تازهکارها و حتی حرفهایها
سبک و سادهست، با یه Docker run بالا میاد!
تحت وبه، فقط پورتش رو باز کن و عشق و حال کن
🛠 برای نصبش ؟ فقط این یه خطو بزن:
docker run -d -p 9000:9000 --name=portainer \
-v /var/run/docker.sock:/var/run/docker.sock \
portainer/portainer-ce
اگه تازه داری وارد دنیای Docker میشی، Portainer مثل GPS میمونه برات! من که هرروز استفاده میکنم ازش.
@DevTwitter | <Amir Nasiri/>
با Portainer میتونی:
همهی کانتینراتو گرافیکی ببینی و مدیریت کنی
لاگ بگیری
شبکهها، ولومها و استکها رو ببینی
با یه کلیک کانتینر بسازی یا پاک کنی!
حتی چندتا سرور Docker رو از یه پنل مدیریت کنی
به Kubernetes هم وصل میشه و کلی امکانات باحال داره!
مزایا؟
دیگه نیاز نیست همه چی رو حفظ باشی
مناسب برای تازهکارها و حتی حرفهایها
سبک و سادهست، با یه Docker run بالا میاد!
تحت وبه، فقط پورتش رو باز کن و عشق و حال کن
🛠 برای نصبش ؟ فقط این یه خطو بزن:
docker run -d -p 9000:9000 --name=portainer \
-v /var/run/docker.sock:/var/run/docker.sock \
portainer/portainer-ce
اگه تازه داری وارد دنیای Docker میشی، Portainer مثل GPS میمونه برات! من که هرروز استفاده میکنم ازش.
@DevTwitter | <Amir Nasiri/>
❤16👎6👍4
#کوته_نیوز
توییت وزیر ارتباطات خطاب به برنامه نویسان:
چربش کنید داریم میایم.
* توییت قدیمیه، مال 2019 هست.
اخیرا ترند شده تو توییتر، اگر دیدید بدونید قدیمیه
@DevTwitter
توییت وزیر ارتباطات خطاب به برنامه نویسان:
چربش کنید داریم میایم.
* توییت قدیمیه، مال 2019 هست.
اخیرا ترند شده تو توییتر، اگر دیدید بدونید قدیمیه
@DevTwitter
👎134❤4
اولین اپلیکیشن موبایل من با نام Tomodoro منتشر شد
این اپلیکیشن یک اپلیکیشن مدیریت تسک و تایمر پومودورو هست که بصورت آزاد و تحت لایسنس GPL-V3 منتشر شده.
درحال حاضر نسخه 0.6.3 اون منتشر شده و در مرحله بتا تسته
توضیحات بیشتر و دانلود
https://github.com/shahriaarrr/tomodoro
@DevTwitter | <Shahriar Ghasempour/>
این اپلیکیشن یک اپلیکیشن مدیریت تسک و تایمر پومودورو هست که بصورت آزاد و تحت لایسنس GPL-V3 منتشر شده.
درحال حاضر نسخه 0.6.3 اون منتشر شده و در مرحله بتا تسته
توضیحات بیشتر و دانلود
https://github.com/shahriaarrr/tomodoro
@DevTwitter | <Shahriar Ghasempour/>
❤35👍4👎3🔥3
خب این سیستم رو با یک ایده ساده نوشتم بالاخره. به مرور هم تکمیلش میکنم. فعلا میشه روی ویندوز/مک/لینوکس اجرا کردش و بهمون در لحظه بگه الان گوگل توی کدوم دیتاسنتر ایرانی اختلال داره.
پوشنوتیف/ایمیل/بات تلگرام هم احتمالا اضافه کنم بهش.
مخزن گیتهاب:
https://github.com/ohmydevops/arvancloud-radar-notif
@DevTwitter | <Amir/>
پوشنوتیف/ایمیل/بات تلگرام هم احتمالا اضافه کنم بهش.
مخزن گیتهاب:
https://github.com/ohmydevops/arvancloud-radar-notif
@DevTwitter | <Amir/>
👍36👎7❤5
مثل اینکه سازنده الیکسیر تصمیم گرفته قسمت داکیومنت و آموزش OTP رو بهبود بده. ریویو کننده هاشم آدمای فعال هستند مثل سازنده Ash و ....
https://github.com/elixir-lang/elixir/pull/14637
همانطور سازنده این مقاله رو هم پیشنهاد داده
https://dashbit.co/blog/homemade-analytics-with-ecto-and-elixir
@DevTwitter | <Tagarg/>
https://github.com/elixir-lang/elixir/pull/14637
همانطور سازنده این مقاله رو هم پیشنهاد داده
https://dashbit.co/blog/homemade-analytics-with-ecto-and-elixir
@DevTwitter | <Tagarg/>
👍6
دوستانی که دنبال کانتریبیوت رو پروژه ی اندرویدی هستن، این پروژه خیلی جای کار داره، خیلی:
https://github.com/permissionlesstech/bitchat-android
@DevTwitter | <Abolfazl/>
https://github.com/permissionlesstech/bitchat-android
@DevTwitter | <Abolfazl/>
👎9👍7
میلاد نوری که معرف حضورتون هستن، یه اپ جدید ساخته به اسم مطمئن باش، خودش اینطوری توضیحش میده:
ابزاری برای محافظت در برابر پیامکهای فیشینگ، لینکهای کلاهبرداری و اپلیکیشنهای مشکوک و مخرب
حتما این اپ رو اول برای خودتون و بعد برای پدر و مادرتون نصب کنید که درگیر کلاهبرداریهای پانزی و فیشینگ نشن.
همچنین این اپ توی گیتهاب به شکل اوپن سورس منتشر شده.
ریپوهای پروژه:
https://motmaenbash.ir/git.html
@DevTwitter
ابزاری برای محافظت در برابر پیامکهای فیشینگ، لینکهای کلاهبرداری و اپلیکیشنهای مشکوک و مخرب
حتما این اپ رو اول برای خودتون و بعد برای پدر و مادرتون نصب کنید که درگیر کلاهبرداریهای پانزی و فیشینگ نشن.
همچنین این اپ توی گیتهاب به شکل اوپن سورس منتشر شده.
ریپوهای پروژه:
https://motmaenbash.ir/git.html
@DevTwitter
👍86❤28👎15
معرفی برنامه Shellngn
یه ابزار قدرتمند تحت وب هست که به راحتی میتونید موارد زیر رو باهاش مدیریت کنید:
- SSH
- SFTP
- Telnet
- RDP
- VNC
مهم: اگر میخواید روی سرور پابلیک اجراش کنید حتما موارد امنیتی مثل استفاده از رمز عبور قوی برای ادمین و نصب TLS رو در نظر بگیرید.
لینک داکر
https://shellngn.com/pro-docker
@DevTwitter | <Mahdi Akrami />
یه ابزار قدرتمند تحت وب هست که به راحتی میتونید موارد زیر رو باهاش مدیریت کنید:
- SSH
- SFTP
- Telnet
- RDP
- VNC
مهم: اگر میخواید روی سرور پابلیک اجراش کنید حتما موارد امنیتی مثل استفاده از رمز عبور قوی برای ادمین و نصب TLS رو در نظر بگیرید.
لینک داکر
https://shellngn.com/pro-docker
@DevTwitter | <Mahdi Akrami />
❤8
This media is not supported in your browser
VIEW IN TELEGRAM
یک گروه از دانشگاه استنفورد یک AI agent به اسم Biomni درست کردن برای کارهای biomedical. از جمله درست کردن گزارش هایی که برای افراد روزها طول میکشه الان تو چند دقیقه درست میشه. این ایجنت اپن سورس هست و میتونید کامل ران کنید و یا حتا با توجه به نیازتون تغییرش بدید. یک مقاله دارن که کامل توضیح میدن چطوری درست شده و کار میکنه.
github: https://github.com/snap-stanford/Biomni
@DevTwitter | <Mehdi Allahyari/>
github: https://github.com/snap-stanford/Biomni
@DevTwitter | <Mehdi Allahyari/>
❤7🔥3
دسترسی به پکیجها وقتی اینترنت قطع میشه به صورت آفلاین
بهعنوان توسعهدهنده، وقتی اینترنت قطع میشه، ممکنه حتی نتونیم سادهترین کار یعنی pnpm install یا npm install رو انجام بدیم!
با خودم گفتم:
چیکار کنم که زمان قطعی اینترنت، همچنان به پکیجهای ضروری و داکیومنت ها دسترسی داشته باشم؟ یا حتی بتونم از این پکیجها تو هر پروژهی جدید استفاده کنم؟
جواب کوتاه و ساده استفاده از pnpm با قابلیت کش افلاینه.
من چیکار کردم؟
1- اومدم یه پروژه تست ساختم که شامل فقط یه فایل package.json با لیستی از پکیجهایی که تو اکثر پروژهها لازمم میشن (مثل React, Next.js, Tailwind, Zustand, ...).
2- مسیر کش رو با دستور زیر به یه درایو امن تر منتقل کردم:
"pnpm config set store-dir "E:\Dev\pnpm-cache
3- با pnpm install همه رو یکبار دانلود کردم تا برن توی کش لوکال.
4- حالا هر وقت اینترنت قطع باشه، فقط کافیه بزنم:
pnpm install --offline
pnpm add axios --offline
نکته: حتی میتونی با ابزارهایی مثل verdaccio یه ریجیستری npm لوکال بسازی و در حالت تیمی همه پکیجهات رو همیشه در دسترس داشته باشی
برای دسترسی به داکیومنت پکیجها هم در حالت آفلاین، ابزارهای زیر میتونن تا حدی کار راه انداز باشن:
DevDocs.io (با کش آفلاین)
Velocity / Dash / Zeal
ممنون میشم اگه شما هم راهکاری دارید به اشتراک بزارید.
امیدوارم وقتی تو آینده این داستانا رو تعریف میکنیم بگن شوخی میکنی مگه میشه!!
@DevTwitter | <Mehdi Salimi/>
بهعنوان توسعهدهنده، وقتی اینترنت قطع میشه، ممکنه حتی نتونیم سادهترین کار یعنی pnpm install یا npm install رو انجام بدیم!
با خودم گفتم:
چیکار کنم که زمان قطعی اینترنت، همچنان به پکیجهای ضروری و داکیومنت ها دسترسی داشته باشم؟ یا حتی بتونم از این پکیجها تو هر پروژهی جدید استفاده کنم؟
جواب کوتاه و ساده استفاده از pnpm با قابلیت کش افلاینه.
من چیکار کردم؟
1- اومدم یه پروژه تست ساختم که شامل فقط یه فایل package.json با لیستی از پکیجهایی که تو اکثر پروژهها لازمم میشن (مثل React, Next.js, Tailwind, Zustand, ...).
2- مسیر کش رو با دستور زیر به یه درایو امن تر منتقل کردم:
"pnpm config set store-dir "E:\Dev\pnpm-cache
3- با pnpm install همه رو یکبار دانلود کردم تا برن توی کش لوکال.
4- حالا هر وقت اینترنت قطع باشه، فقط کافیه بزنم:
pnpm install --offline
pnpm add axios --offline
نکته: حتی میتونی با ابزارهایی مثل verdaccio یه ریجیستری npm لوکال بسازی و در حالت تیمی همه پکیجهات رو همیشه در دسترس داشته باشی
برای دسترسی به داکیومنت پکیجها هم در حالت آفلاین، ابزارهای زیر میتونن تا حدی کار راه انداز باشن:
DevDocs.io (با کش آفلاین)
Velocity / Dash / Zeal
ممنون میشم اگه شما هم راهکاری دارید به اشتراک بزارید.
امیدوارم وقتی تو آینده این داستانا رو تعریف میکنیم بگن شوخی میکنی مگه میشه!!
@DevTwitter | <Mehdi Salimi/>
❤39👍6🔥1
Forwarded from DevTwitter Ads.
یه لحظه تصور کن:
لپتاپ جلوته با یه نوشیدنی خنک، داری روی یه کد مهم کار میکنی🍹💻
چون برنامهنویسی بک اند سایت یه پروژه بزرگ با توعه!
درسته، همون طور که همیشه آرزوشو داشتی تو یه برنامهنویس پایتون جنگویی ⭐️
تابستون امسال، وقتشه ورق رو برگردونی.
دورهی جنگو دانشکار فقط یه آموزش نیست.
تمرینه، پروژست، شبیهساز دنیای حرفهایه!
🎯 این تابستون، صحنهی بعدی زندگیت رو خودت بساز:
🔗https://dnkr.ir/6pJep
🔴۲۵٪ تخفیف ثبتنام زودهنگام تا آخر ۲۲ تیر
لپتاپ جلوته با یه نوشیدنی خنک، داری روی یه کد مهم کار میکنی🍹💻
چون برنامهنویسی بک اند سایت یه پروژه بزرگ با توعه!
درسته، همون طور که همیشه آرزوشو داشتی تو یه برنامهنویس پایتون جنگویی ⭐️
تابستون امسال، وقتشه ورق رو برگردونی.
دورهی جنگو دانشکار فقط یه آموزش نیست.
تمرینه، پروژست، شبیهساز دنیای حرفهایه!
🎯 این تابستون، صحنهی بعدی زندگیت رو خودت بساز:
🔗https://dnkr.ir/6pJep
🔴۲۵٪ تخفیف ثبتنام زودهنگام تا آخر ۲۲ تیر
👎34❤1👍1
یه مشکلی که بهش برخوردم و چند ساعتی وقتمو گرفت تا بفهمم مشکل کجاست ؟!
وقتی یه پروژه جدید با next js شروع میکنین، tailwind v4 رو براتون نصب میکنه اما میبینین که فایل tailwind.config.ts ساخته نمیشه وقتی هم بسازینش استایل ها اعمال نمیشه علتشم اینه توی ورژن جدید همه استایل ها از global.css خونده میشن شاید متوجه نشین و ببینین که چرا اعمال نمیکنه از chatgbt هم استفاده کنین درست راهنماییتون نمیکنه و بیشتر گمراه میشین.
این مطلبو گذاشتم که شما هم مثل من وقتتون هدر نره !!
@DevTwitter | <Ali Siahsarvi/>
وقتی یه پروژه جدید با next js شروع میکنین، tailwind v4 رو براتون نصب میکنه اما میبینین که فایل tailwind.config.ts ساخته نمیشه وقتی هم بسازینش استایل ها اعمال نمیشه علتشم اینه توی ورژن جدید همه استایل ها از global.css خونده میشن شاید متوجه نشین و ببینین که چرا اعمال نمیکنه از chatgbt هم استفاده کنین درست راهنماییتون نمیکنه و بیشتر گمراه میشین.
این مطلبو گذاشتم که شما هم مثل من وقتتون هدر نره !!
@DevTwitter | <Ali Siahsarvi/>
❤38👍13👎5🔥1
یکی از دوستانم چند وقتی بود دنبال یه رودمپ بهروز برای Next.js (با آخرین آپدیتهای ۲۰۲۵) بود — اما هر چی باهم گشتیم ، چیزی که دنبالش بودیم پیدا نکردیم.
(آخرین آپدیت برای سال ۲۰۲۳ بود)
نتیجه؟ خودم دستبهکار شدم و یک رودمپ مثل نمونههای سایت roadmap.sh درست کردم.
که حالا میتونه برای بقیه هم مفید باشه.
هنوز کامل نیست، اما اگر علاقهمند باشید، خوشحال میشم باهم تکمیلش کنیم و درنهایت به عنوان یه رودمپ رسمی Next.js داخل سایت roadmap.sh پیشنهادش بدیم.
به عنوان اولین پست لینکدینم، اینجا منتشرش میکنم که شما هم اگر نیاز داشتید، استفاده کنید.
لینک رودمپ Next.js:
https://roadmap.sh/r/nextjs-mdlr6
@DevTwitter | <Bardia Rassooli/>
(آخرین آپدیت برای سال ۲۰۲۳ بود)
نتیجه؟ خودم دستبهکار شدم و یک رودمپ مثل نمونههای سایت roadmap.sh درست کردم.
که حالا میتونه برای بقیه هم مفید باشه.
هنوز کامل نیست، اما اگر علاقهمند باشید، خوشحال میشم باهم تکمیلش کنیم و درنهایت به عنوان یه رودمپ رسمی Next.js داخل سایت roadmap.sh پیشنهادش بدیم.
به عنوان اولین پست لینکدینم، اینجا منتشرش میکنم که شما هم اگر نیاز داشتید، استفاده کنید.
لینک رودمپ Next.js:
https://roadmap.sh/r/nextjs-mdlr6
@DevTwitter | <Bardia Rassooli/>
❤16👍4👎3
Forwarded from تهران دیتا-دانشگاه تهران
چگونه برخی از افراد نسبت به دیگران تصمیمگیری خود را چابکتر اتخاذ میکنند⁉️
قبل از رکود میفروشند، پیش از رشد میخرند، و در لحظه درست تصمیم میگیرند؟
پاسخ داد:
کسی که وارد آن میشود، دیگر همان فرد قبلی نخواهد بود
#تحلیل_داده #داده_محور #کسب_و_کار #دیتاساینس #علم_داده #دانشگاه_تهران #دوره_جامع #هوش_مصنوعی
Please open Telegram to view this post
VIEW IN TELEGRAM
👎11❤2👍1
چطوری از هیچی به یک میلیون کاربر scale بکنیم؟
بعد از تکمیل کردن کتاب system design interview از آقای Alex Xu تصمیم گرفتم چیزهایی که در فصل اول این کتاب یاد گرفتم به شکل مفصل دربارش بنویسم
مطالب مفید زیادی در فصل های دیگش گفته که توی مقاله های بعدی بررسیشون میکنیم
در سایت chera.club در رابطه با همین موضوع مقاله ای نوشتم که دعوتتون میکنم این مقاله رو بخونید:
https://chera.club/how-to-scale-from-zero-to-one-million-users/
@DevTwitter | <Amir Salehi/>
بعد از تکمیل کردن کتاب system design interview از آقای Alex Xu تصمیم گرفتم چیزهایی که در فصل اول این کتاب یاد گرفتم به شکل مفصل دربارش بنویسم
مطالب مفید زیادی در فصل های دیگش گفته که توی مقاله های بعدی بررسیشون میکنیم
در سایت chera.club در رابطه با همین موضوع مقاله ای نوشتم که دعوتتون میکنم این مقاله رو بخونید:
https://chera.club/how-to-scale-from-zero-to-one-million-users/
@DevTwitter | <Amir Salehi/>
👍20👎3
اُبسیـدیـن یه برنامهست که تو میتونی باهاش همه یادداشتهات رو توی یه پوشهی معمولی و بهصورت فایل مارکداون (Markdown) نگهداری کنی، بدون نیاز به اینترنت یا سرور خاص.
یه جورایی مثل دفترچه جادوییه که میتونی بین نوشتههات لینک بزنی، توی یه گراف ببینی چه چیزایی به هم ربط دارن، و با افزونهها خیلی چیزای حرفهای بهش اضافه کنی.
همه چی لوکاله، یعنی اطلاعاتت فقط روی سیستم خودته و هیچجا آپلود نمیشه (مگر اینکه خودت بخوای).
برای کسایی که دنبال ساختن یه "مغز دوم دیجیتال" هستن خیلی عالیه، از دانشجو گرفته تا برنامهنویس و نویسنده.
علاوه بر پلاگینهای فراوون که هر جور قابلیتی بخوای بهش اضافه میکنی، حتی خودت میتونی پلاگین بسازی و تیم مود (حالت تاریک) هم داره که چشمت خسته نشه.
جدیداً امکاناتی مثل "پایگاه داده" (Bases) اضافه کرده که میتونی یادداشتهات رو مثل جدول فیلتر و مرتب کنی.
در کل اگه دنبال یه ابزار خفن، سبک و قابل شخصیسازی برای نظم دادن به فکرت هستی، Obsidian خیلی میچسبه!
https://obsidian.md/
@DevTwitter | <Parsa Parasteh/>
یه جورایی مثل دفترچه جادوییه که میتونی بین نوشتههات لینک بزنی، توی یه گراف ببینی چه چیزایی به هم ربط دارن، و با افزونهها خیلی چیزای حرفهای بهش اضافه کنی.
همه چی لوکاله، یعنی اطلاعاتت فقط روی سیستم خودته و هیچجا آپلود نمیشه (مگر اینکه خودت بخوای).
برای کسایی که دنبال ساختن یه "مغز دوم دیجیتال" هستن خیلی عالیه، از دانشجو گرفته تا برنامهنویس و نویسنده.
علاوه بر پلاگینهای فراوون که هر جور قابلیتی بخوای بهش اضافه میکنی، حتی خودت میتونی پلاگین بسازی و تیم مود (حالت تاریک) هم داره که چشمت خسته نشه.
جدیداً امکاناتی مثل "پایگاه داده" (Bases) اضافه کرده که میتونی یادداشتهات رو مثل جدول فیلتر و مرتب کنی.
در کل اگه دنبال یه ابزار خفن، سبک و قابل شخصیسازی برای نظم دادن به فکرت هستی، Obsidian خیلی میچسبه!
https://obsidian.md/
@DevTwitter | <Parsa Parasteh/>
👍35❤8👎5
چجوری یه فریمورک ماژولار برای بالا آوردن سرویسهای بکاند طراحی کردم؟
من توی پست قبلیم اشاره کردم که یه فریمورکی برای زبان Golang نوشتم که به توسعهدهندهها کمک میکنه که سرویسهای بکاندشون رو توی چند ثانیه بالا بیارن.
خواستم بیشتر درباره معماریش و طراحی این فریمورک صحبت کنم.
خب اول از همه مشکلی که میخواستم با ساخت این فریمورک حل کنم این بود که تقریبا هر سری پروژههایی که میساختم یه سری کارهای تکراری داشت مثل:
راهاندازی HTTP Server
ساخت connectionهای دیتابیس
نوشتن دستی routeها
پیادهسازی CRUD برای هر entity
پیادهسازی Pagination و filter و sort
چون به نظرم میومد که این مراحل اکثراً ثابت هستن، خواستم یه جورایی این مراحل رو حذف کنم. با توجه به این مسئله، سعی کردم که یه طراحی ماژولار واسه این فریمورک در نظر بگیرم.
اولین بخش core :
همونطور که از اسمش معلومه، هسته مرکزی برنامهست و عملاً لایفسایکل برنامه رو مدیریت میکنه.
توابعی که برای رجیستر کردن HTTP Server و دیتابیس و entityها هستن، در واقع توی این بخش قرار دارن.
بعد از اون ماژول crud:
ماژولیه که handlerها و routeهامون رو داخلش تعریف شده. handlerها، همون handlerهای ثابتی هستن که برای هر entity داره تعریف میشه.
موارد مختلفی مثل اینکه چجوری باید با query parameterها رفتار بشه و hook های قبل و بعد از عملیات CRUD هم اینجا تعریف شدن.
رجیستر شدن routeها هم داخل routes داره اتفاق میافته.
سومین بخش ماژول HTTP هستش که دو تا اینترفیس اصلی داره:
یکی برای مدیریت کردن contextها
یکی برای مدیریت کردن خود HTTP Server (initialize کردن، رجیستر کردن routeها، استفاده از middlewareها، و در نهایت start کردن HTTP Server) که اگه بخوایم از HTTP Server استفاده کنیم، باید این اینترفیسها پیادهسازی شده باشن.
مورد چهارم database :
این بخش هم یه اینترفیس اصلی داره برای انجام عملیات CRUD.
هر دیتابیسی بخوایم استفاده کنیم، باید این اینترفیس رو پیادهسازی کرده باشه حتماً.
ماژول آخر هم hooks در نظر گرفتم.
شامل اینترفیسهایی میشه که قبل و بعد یه عملیات رو تعریف میکنن.
برای مثال:
اگه میخواید یه ولیدیشن روی یکی از فیلدهاتون قبل از ایجاد شدنش توی دیتابیس داشته باشید، برای همون entityتون اینترفیس BeforeCreate رو پیادهسازی میکنید و این ولیدیشن قبل از insert شدن انجام میشه.
سعی کردم خیلی خلاصه توضیح بدم. خوشحال میشم نظرتون رو درباره این معماری بدونم و اگر دوست داشتید یه سر به گیتهاب پروژه بزنید:
https://github.com/Lumicrate/gompose
@DevTwitter | <Iman Asgari/>
من توی پست قبلیم اشاره کردم که یه فریمورکی برای زبان Golang نوشتم که به توسعهدهندهها کمک میکنه که سرویسهای بکاندشون رو توی چند ثانیه بالا بیارن.
خواستم بیشتر درباره معماریش و طراحی این فریمورک صحبت کنم.
خب اول از همه مشکلی که میخواستم با ساخت این فریمورک حل کنم این بود که تقریبا هر سری پروژههایی که میساختم یه سری کارهای تکراری داشت مثل:
راهاندازی HTTP Server
ساخت connectionهای دیتابیس
نوشتن دستی routeها
پیادهسازی CRUD برای هر entity
پیادهسازی Pagination و filter و sort
چون به نظرم میومد که این مراحل اکثراً ثابت هستن، خواستم یه جورایی این مراحل رو حذف کنم. با توجه به این مسئله، سعی کردم که یه طراحی ماژولار واسه این فریمورک در نظر بگیرم.
اولین بخش core :
همونطور که از اسمش معلومه، هسته مرکزی برنامهست و عملاً لایفسایکل برنامه رو مدیریت میکنه.
توابعی که برای رجیستر کردن HTTP Server و دیتابیس و entityها هستن، در واقع توی این بخش قرار دارن.
بعد از اون ماژول crud:
ماژولیه که handlerها و routeهامون رو داخلش تعریف شده. handlerها، همون handlerهای ثابتی هستن که برای هر entity داره تعریف میشه.
موارد مختلفی مثل اینکه چجوری باید با query parameterها رفتار بشه و hook های قبل و بعد از عملیات CRUD هم اینجا تعریف شدن.
رجیستر شدن routeها هم داخل routes داره اتفاق میافته.
سومین بخش ماژول HTTP هستش که دو تا اینترفیس اصلی داره:
یکی برای مدیریت کردن contextها
یکی برای مدیریت کردن خود HTTP Server (initialize کردن، رجیستر کردن routeها، استفاده از middlewareها، و در نهایت start کردن HTTP Server) که اگه بخوایم از HTTP Server استفاده کنیم، باید این اینترفیسها پیادهسازی شده باشن.
مورد چهارم database :
این بخش هم یه اینترفیس اصلی داره برای انجام عملیات CRUD.
هر دیتابیسی بخوایم استفاده کنیم، باید این اینترفیس رو پیادهسازی کرده باشه حتماً.
ماژول آخر هم hooks در نظر گرفتم.
شامل اینترفیسهایی میشه که قبل و بعد یه عملیات رو تعریف میکنن.
برای مثال:
اگه میخواید یه ولیدیشن روی یکی از فیلدهاتون قبل از ایجاد شدنش توی دیتابیس داشته باشید، برای همون entityتون اینترفیس BeforeCreate رو پیادهسازی میکنید و این ولیدیشن قبل از insert شدن انجام میشه.
سعی کردم خیلی خلاصه توضیح بدم. خوشحال میشم نظرتون رو درباره این معماری بدونم و اگر دوست داشتید یه سر به گیتهاب پروژه بزنید:
https://github.com/Lumicrate/gompose
@DevTwitter | <Iman Asgari/>
❤15👎7🔥1
استخراج و پارس داده از مراحل کلیدی ساخت سیستمهای RAG هست. این ریپازیتوری نوتبوکهایی برای تست ابزارهای OCR، استخراج جدول و تحلیل نمودار ارائه میده و بنچمارکگیری از ابزارهای متنباز و ابری رو ساده کرده. حتما یه نگاهی بندازین!
https://github.com/AdemBoukhris457/Docs_Parsing_Techniques
@DevTwitter | <Reza Jafari/>
https://github.com/AdemBoukhris457/Docs_Parsing_Techniques
@DevTwitter | <Reza Jafari/>
❤8👍1
در ویندوز ابزار CPU-Z کاربردی برای دیدن و چک کردن مشخصات سختافزاری سیستم است
در لینوکس CPU-X
https://github.com/TheTumultuousUnicornOfDarkness/CPU-X
بعد از خرید سخت افزار چک کردن مشخصات با این ابزار توصیه میشود
@DevTwitter | <MehrdadLinux/>
در لینوکس CPU-X
https://github.com/TheTumultuousUnicornOfDarkness/CPU-X
بعد از خرید سخت افزار چک کردن مشخصات با این ابزار توصیه میشود
@DevTwitter | <MehrdadLinux/>
👍10❤4👎2