Telegram Web
چطوری از هیچی به یک میلیون کاربر scale بکنیم؟
بعد از تکمیل کردن کتاب system design interview از آقای Alex Xu تصمیم گرفتم چیزهایی که در فصل اول این کتاب یاد گرفتم به شکل مفصل دربارش بنویسم
مطالب مفید زیادی در فصل های دیگش گفته که توی مقاله های بعدی بررسیشون میکنیم
در سایت chera.club در رابطه با همین موضوع مقاله ای نوشتم که دعوتتون میکنم این مقاله رو بخونید:
https://chera.club/how-to-scale-from-zero-to-one-million-users/

@DevTwitter | <Amir Salehi/>
👍23👎3
اُبسیـدیـن یه برنامه‌ست که تو می‌تونی باهاش همه یادداشت‌هات رو توی یه پوشه‌ی معمولی و به‌صورت فایل مارک‌داون (Markdown) نگه‌داری کنی، بدون نیاز به اینترنت یا سرور خاص.
یه جورایی مثل دفترچه جادوییه که می‌تونی بین نوشته‌هات لینک بزنی، توی یه گراف ببینی چه چیزایی به هم ربط دارن، و با افزونه‌ها خیلی چیزای حرفه‌ای بهش اضافه کنی.
همه چی لوکاله، یعنی اطلاعاتت فقط روی سیستم خودته و هیچ‌جا آپلود نمیشه (مگر اینکه خودت بخوای).
برای کسایی که دنبال ساختن یه "مغز دوم دیجیتال" هستن خیلی عالیه، از دانشجو گرفته تا برنامه‌نویس و نویسنده.
علاوه بر پلاگین‌های فراوون که هر جور قابلیتی بخوای بهش اضافه می‌کنی، حتی خودت می‌تونی پلاگین بسازی و تیم مود (حالت تاریک) هم داره که چشمت خسته نشه.
جدیداً امکاناتی مثل "پایگاه داده" (Bases) اضافه کرده که می‌تونی یادداشت‌هات رو مثل جدول فیلتر و مرتب کنی.
در کل اگه دنبال یه ابزار خفن، سبک و قابل شخصی‌سازی برای نظم دادن به فکرت هستی، Obsidian خیلی می‌چسبه!

https://obsidian.md/

@DevTwitter | <Parsa Parasteh/>
👍378👎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/>
17👎7👍1🔥1
استخراج و پارس داده از مراحل کلیدی ساخت سیستم‌های RAG هست. این ریپازیتوری نوت‌بوک‌هایی برای تست ابزارهای OCR، استخراج جدول و تحلیل نمودار ارائه می‌ده و بنچ‌مارک‌گیری از ابزارهای متن‌باز و ابری رو ساده کرده. حتما یه نگاهی بندازین!
https://github.com/AdemBoukhris457/Docs_Parsing_Techniques

@DevTwitter | <Reza Jafari/>
10👍1
در ویندوز ابزار CPU-Z کاربردی برای دیدن و چک کردن مشخصات سخت‌افزاری سیستم است
در لینوکس CPU-X
https://github.com/TheTumultuousUnicornOfDarkness/CPU-X
بعد از خرید سخت افزار چک کردن مشخصات با این ابزار توصیه میشود

@DevTwitter | <MehrdadLinux/>
👍164👎2
می‌دونستی می‌تونی به localhost خودت روی اینترنت دسترسی داشته باشی؟
می‌تونی خیلی راحت از راه دور با پروژه کار کنی، تستش کنی یا برای کارفرما بفرستی.
ابزار ngrok به راحتی آب خوردن این کار رو برات انجام می‌ده.
بعد از اینکه نصبش کردی می‌تونی با اجرا کردن یک دستور ساده هر پورتی از localhost که میخوای رو Forward کنی روی یک آدرس اینترنتی.
به طور مثال برای پورت 8000 لازمه که دستور زیر رو داخل ترمینال ngrok اجرا کنی:
ngrok http 8000
این دستور رو که اجرا کنی بهت یک آدرس میده که با باز کردن اون آدرس بصورت آنلاین localhost خودتو میبینی.
هر تغییری هم که روی کد انجام بدی بصورت لحظه‌ای اعمال می‌شه و اصلا نیازی به اجرای دستور دیگه‌ای نیست. انگار که واقعا داری روی localhost‌ خودت خروجی رو می‌بینی.
هر زمان هم که کارت تموم شد می‌تونی سرویس رو Stop کنی.
همچنین بهتون روی پورت 4040 یک ابزار مانیتورینگ می‌ده که می‌تونین درخواست‌هایی که ارسال میشه به localhost و پاسخ‌هایی که localhost برمی‌گردونه با تمام جزئیات ببینین
یکی از اصلی‌ترین کاربردهای این ابزار پیاده‌سازی Webhook هست. بطور مثال شما برای توسعه یک ربات تلگرامی نیاز شدیدی به این ابزار دارین و بدون این ابزار تقریبا نمی‌تونین هیچ کاری بکنین.
اینم بگم که آدرسی که بهتون میده HTTPS هست و از این لحاظ برای استفاده در Webhook ربات مشکلی ندارین.
خلاصه که این ابزار واقعا حرف نداره و رایگان هم هست. فقط حواستون باشه که برای استفاده ازش باید VPN روی سیستم روشن باشه.
از لینک زیر که وب‌سایت رسمی این ابزار هست می‌تونین این ابزار رو دانلود کنید و ازش استفاده کنید. داکیومنت کاملش هم روی همین لینک در دسترسه:
https://ngrok.com

@DevTwitter | <Aida Mortazavi/>
👍275👎2
Forwarded from DevTwitter Ads.
🚫 تخصصت هر چی که هست، هوش مصنوعی تعیین می‌کنه که جایی توی بازی کار داری یا نه؟

🔘 هوش مصنوعی مولد رو پروژه محور یاد بگیر
🔘 مدرک آموزش‌ت رو بگیر
🔘 و جای پات رو توی بازارکار سفت کن

شروع یادگیری👇

https://dnkr.ir/6E8VV
https://dnkr.ir/6E8VV
👎10👍1
تمیز

چیز شیت گیت

@DevTwitter
🔥386👍2👎1
امروز داشتم تو نت میچرخیدم که خوردم به این:
https://github.com/vpetersson/dslf
چیه؟ یه پروژه rust که یه کوتاه‌کننده لینکه، صرفا یه سرور ساده، و دیتاش هم تو csv میریزه
حالا نکتش چیه؟ توش به سایز کم باینری اشاره میکنه که ۵ مگه، و وقتی بیلد کردم واقعا ۵ مگ شد، ولی میشه کمترش کرد؟
یه منبع خوب برای کم کردن حجم فایل باینری تو پروژه‌های rust اینه:
https://github.com/johnthagen/min-sized-rust
طبق راهنماییاش یه سری چیز اضافه میکنم ببینم میشه به زیر ۱ مگ رسید
اول strip رو اضافه میکنم
[profile.release]
strip = true
و بله، cargo build --release الان یه فایل ۴ مگی نشون میده، هورا!
اضافه کردن این خط به پروفایلِ ریلیز، باعث میشه ۰.۶ مگ دیگه هم کم بشه، فعلا یه فایل ۳.۴ مگی داریم
opt-level = "z"
این به کامپایلر میگه که optimization رو برای سایز کمتر باینری انجام بده!

@DevTwitter | <ممد دو آتیشه/>
7👍6👎3
فارغ التحصیل شدن اینطوریه که نشستم یه cli برای تقویم شمسی نوشتم.
https://github.com/alizmhdi/shamsi-calendar

@DevTwitter | <mhdi/>
🔥28👎14👍4
Forwarded from DevTwitter Ads.
آگهی‌های استخدام برنامه‌نویس

مشاهده جدیدترین موقعیت‌های شغلی توسعه‌دهنده نرم‌افزار در سازمان‌ها و شرکت‌های معتبر سراسر کشور

فرصت‌های تمام‌وقت و پروژه‌ای
وب، موبایل، بک‌اند، فرانت‌اند و …
حقوق و مزایای رقابتی

🌐 برای دیدن آگهی‌ها و ثبت رزومه، به سایت «ای-استخدام» سر بزنید:

👉 www.e-estekhdam.com/u-n338n4

همراه شما در مسیر حرفه‌ای‌تان هستیم
👎132👍1
اپلیکیشن KeySmith برای لینوکس یه رابط گرافیکی ساده برای ساختن و مدیریت کلیدهای SSH در اختیار کاربر قرار میده.
+ دانلود از فلت‌هاب:
https://flathub.org/apps/io.github.tobagin.keysmith

@DevTwitter | <Yaser Shahi/>
👍7👎4
اگر میخواهید پروفایل گیتهاب خودتون رو خوشگل کنین، میتونین از ابزار Profile Readme Generator استفاده کنین!
یه ویرایشگر آنلاین که مثل صفحه ساز المنتور اما برای پروفایل گیتهاب توسعه داده شده
https://profile-readme-generator.com

@DevTwitter | <MJ/>
👍26👎4
Forwarded from DevTwitter Ads.
📣 از HTML تا React رو توی ۳ ماه یاد بگیر!

دوره‌ فشرده‌ و بدون پیش‌نیاز برای ورود به بازارکار

🚩 در بوت‌کمپ "توسعه فرانت‌اند با ری‌اکت"

✔️ کار گروهی و شبکه‌سازی‎
✔️ تمرین و پروژه هدفمند
✔️ منتورینگ اختصاصی

❗️ ظرفیت باقی‌مانده : فقط ۹ نفر
💳 پرداخت قسطی
📚هفته OFF در زمان امتحانات دانشگاه

❗️آخرین مهلت ثبت‌نام

🌐 فرم ثبت‌نام:
🔗 https://quera.org/r/3whrs
👎204👍3
تولید UUID به صورت رشته‌ای یا عددی در پروژه‌های لاراول

generate():
تولید UUID ساده (string یا int)

generateFor():
تولید UUID منحصربه‌فرد برای مدل Eloquent (بررسی عدم تکرار در دیتابیس)
Https://github.com/TahaaZare/LaravelUuidTool

@DevTwitter | <Taha Zare/>
👍8👎21
2025/07/14 04:02:44
Back to Top
HTML Embed Code: