چرا گولنگ توی چین محبوب و پر استفاده هستش؟
https://news.ycombinator.com/item?id=8872400#:~:text=More%20and%20more%20companies%20are,It%20just%20fills%20the%20gap.
خلاصه:
تو چین یکی از مشکلاتی که دارن اینه کسب و کارشون ممکنه با رشد خیلی زیادی مواجه بشه(با توجه به جمعیتی که دارن).
برای همین زبانی مثل گو که پرفورمنس خوبی داره و قابلیت اسکیل کردنش خوبه، به یکی از گزینه های محبوب و کارساز تبدیل شده.
#go
@Syntax_fa
https://news.ycombinator.com/item?id=8872400#:~:text=More%20and%20more%20companies%20are,It%20just%20fills%20the%20gap.
خلاصه:
تو چین یکی از مشکلاتی که دارن اینه کسب و کارشون ممکنه با رشد خیلی زیادی مواجه بشه(با توجه به جمعیتی که دارن).
برای همین زبانی مثل گو که پرفورمنس خوبی داره و قابلیت اسکیل کردنش خوبه، به یکی از گزینه های محبوب و کارساز تبدیل شده.
#go
@Syntax_fa
👍17
سوالات احتمالی مصاحبه ی زبان گولنک
همینجوری اتفافی توی گیت هاب دیدمش.
توی این ریپازیتوری سوالاتی که توی مصاحبه شغلی گولنگ ممکنه باهاش روبرو بشید رو قرار داده
البته انگار هنوز کامل نشده.
همچنین خسته نباشید میگم به بردیا 😁
https://github.com/mrbardia72/Go-Interview-Questions-And-Answers?tab=readme-ov-file
#Interview #go
@Syntax_fa
همینجوری اتفافی توی گیت هاب دیدمش.
توی این ریپازیتوری سوالاتی که توی مصاحبه شغلی گولنگ ممکنه باهاش روبرو بشید رو قرار داده
البته انگار هنوز کامل نشده.
همچنین خسته نباشید میگم به بردیا 😁
https://github.com/mrbardia72/Go-Interview-Questions-And-Answers?tab=readme-ov-file
#Interview #go
@Syntax_fa
🔥7
😁14👍1
اپلیکیشن Real-Time بدون وب سوکت با Long Polling - از تلگرام یاد بگیریم
وقتی از اپلیکیشن Real-Time صحبت میکنیم اولین چیزی که همه به ذهنشون میاد #وب_سوکت هستش و منطقا میتونه انتخاب خوبی باشه اما #long_polling هم تکنیک خوبی هستش که اکثر نیازهای معمول ما رو برطرف میکنه، تا اونجایی که تلگرام برای پیادهسازی APIهای ربات هاش از این تکنیک استفاده کرده.
به شکل خلاصه، کانکشن HTTPرو باز نگه میداریم تا وقتی که notification جدیدی یا update جدیدی برای کاربرمون داشته باشیم، بدین شکل با استفاده از HTTP/1 هم میتونیم قابلیت Real-time بودن رو برای اپلیکیشنمون پیاده سازی کنیم.
توی این ویدیو با هم اول روش های مرسوم رو با هم مرور میکنیم و می بینیم چطور long-polling بخش زیادی از مشکلات Short-polling رو رفع میکنه و در نهایت با هم با کمک ردیس در Go اون رو پیاده سازی میکنیم.
https://youtu.be/Qmh7M6qx3H8?si=KoyorEX1J1Q8-b3C
[MHRCode]
#Go #Long_polling
@Syntax_fa
وقتی از اپلیکیشن Real-Time صحبت میکنیم اولین چیزی که همه به ذهنشون میاد #وب_سوکت هستش و منطقا میتونه انتخاب خوبی باشه اما #long_polling هم تکنیک خوبی هستش که اکثر نیازهای معمول ما رو برطرف میکنه، تا اونجایی که تلگرام برای پیادهسازی APIهای ربات هاش از این تکنیک استفاده کرده.
به شکل خلاصه، کانکشن HTTPرو باز نگه میداریم تا وقتی که notification جدیدی یا update جدیدی برای کاربرمون داشته باشیم، بدین شکل با استفاده از HTTP/1 هم میتونیم قابلیت Real-time بودن رو برای اپلیکیشنمون پیاده سازی کنیم.
توی این ویدیو با هم اول روش های مرسوم رو با هم مرور میکنیم و می بینیم چطور long-polling بخش زیادی از مشکلات Short-polling رو رفع میکنه و در نهایت با هم با کمک ردیس در Go اون رو پیاده سازی میکنیم.
https://youtu.be/Qmh7M6qx3H8?si=KoyorEX1J1Q8-b3C
[MHRCode]
#Go #Long_polling
@Syntax_fa
👍11👀2
کتاب آنلاین go101
یکی از بهترین منابع برای یادگیری زبان گولنگ هستش.
اگه قصد دارید زبان گولنگ رو یاد بگیرید و یا اینکه دانشتون رو عمیق تر کنید پیشنهاد میشه حتما یه سر بزنید
https://go101.org/
#book #go
@Syntax_fa
یکی از بهترین منابع برای یادگیری زبان گولنگ هستش.
اگه قصد دارید زبان گولنگ رو یاد بگیرید و یا اینکه دانشتون رو عمیق تر کنید پیشنهاد میشه حتما یه سر بزنید
https://go101.org/
#book #go
@Syntax_fa
go101.org
Go 101 -Go 101
Golang online books, articles, tools, etc.
👍3👏1
This media is not supported in your browser
VIEW IN TELEGRAM
Go + HTMX
ادمین پنل Quick Connect
ما توی پنل ادمین(سرویس adminapp) قید فریمورکهای سنگین جاوااسکریپت (مثل React/Vue) رو زدیم و مستقیم سراغ ترکیب Go + HTMX رفتیم.
چرا؟ چون سریعه، ساده و فوقالعاده قدرتمنده.
معماری چطوریه؟
الگوی BFF هستش. adminapp ما یک Backend for Frontend (BFF) کلاسیک هست.
این یعنی چی؟
Go Server (BFF): adminapp
یک سرور Go هست که مخصوص UI ادمین ساخته شده. این سرور، مرورگر رو به عنوان فرانتاند خودش میبینه.
ارتباط باطن با gRPC.
این سرور Go، برای گرفتن دیتا (مثلا لیست یوزرها)، با managerapp یا سرویسهای دیگه از طریق gRPC صحبت میکنه.
رندر سمت سرور (SSR):
وقتی دیتا رو از gRPC گرفت، میاد اون رو توی قالبهای HTML (فایلهای .../templates/) رندر میکنه.
بدون JSON، فقط HTML: اینجا دیگه خبری از API یی که JSON برگردونه و یه فرانتاند جاوااسکریپتی اون رو بگیره و کامپوننت بسازه نیست. سرور Go مستقیم خود HTML نهایی رو میسازه و میفرسته.
ا. HTMX اینجا چیکار میکنه؟
جادوی واقعی اینجاست!
بارگذاری اولیه: کاربر صفحه داشبورد رو باز میکنه. سرور Go کل صفحه dashboard.html رو رندر میکنه و میفرسته.
کاربر روی دکمه «ساختن یوزر جدید» کلیک میکنه.
ا. HTMX (که یه فایل .js کوچیکه) یه درخواست AJAX به سرور Go میفرسته (مثلا به POST /htmx/users/create-modal).
سرور Go این درخواست رو میگیره.
ا. Go فقط و فقط فایل user_create_modal.html رو رندر میکنه (نه کل صفحه رو!).
این تکه HTML کوچیک به مرورگر برمیگرده.
ا. HTMX این تکه HTML رو میگیره و تو صفحه swap میکنه مثلا داخل یه div خالی میذاره).
نتیجه؟
ما یه داشبورد داینامیک و سریع داریم که حس اپلیکیشنهای SPA (مثل ریاکت) رو میده، اما:
* ۹۹٪ منطق توی Go نوشته شده.
* نیازی به Build Step جاوااسکریپتی نداریم.
* سرعت لود اولیه فوقالعادهست.
* توسعهش بهشدت ساده و لذتبخشه.
اگه از نوشتن Go لذت میبری و دلت نمیخواد درگیر پیچیدگیهای فرانتاند مدرن بشی، معماری adminapp دقیقاً همون چیزیه که دنبالش میگردی.
Quick Connect
AdminApp
#go #htmx
@Syntax_fa
ادمین پنل Quick Connect
ما توی پنل ادمین(سرویس adminapp) قید فریمورکهای سنگین جاوااسکریپت (مثل React/Vue) رو زدیم و مستقیم سراغ ترکیب Go + HTMX رفتیم.
چرا؟ چون سریعه، ساده و فوقالعاده قدرتمنده.
معماری چطوریه؟
الگوی BFF هستش. adminapp ما یک Backend for Frontend (BFF) کلاسیک هست.
این یعنی چی؟
Go Server (BFF): adminapp
یک سرور Go هست که مخصوص UI ادمین ساخته شده. این سرور، مرورگر رو به عنوان فرانتاند خودش میبینه.
ارتباط باطن با gRPC.
این سرور Go، برای گرفتن دیتا (مثلا لیست یوزرها)، با managerapp یا سرویسهای دیگه از طریق gRPC صحبت میکنه.
رندر سمت سرور (SSR):
وقتی دیتا رو از gRPC گرفت، میاد اون رو توی قالبهای HTML (فایلهای .../templates/) رندر میکنه.
بدون JSON، فقط HTML: اینجا دیگه خبری از API یی که JSON برگردونه و یه فرانتاند جاوااسکریپتی اون رو بگیره و کامپوننت بسازه نیست. سرور Go مستقیم خود HTML نهایی رو میسازه و میفرسته.
ا. HTMX اینجا چیکار میکنه؟
جادوی واقعی اینجاست!
بارگذاری اولیه: کاربر صفحه داشبورد رو باز میکنه. سرور Go کل صفحه dashboard.html رو رندر میکنه و میفرسته.
کاربر روی دکمه «ساختن یوزر جدید» کلیک میکنه.
ا. HTMX (که یه فایل .js کوچیکه) یه درخواست AJAX به سرور Go میفرسته (مثلا به POST /htmx/users/create-modal).
سرور Go این درخواست رو میگیره.
ا. Go فقط و فقط فایل user_create_modal.html رو رندر میکنه (نه کل صفحه رو!).
این تکه HTML کوچیک به مرورگر برمیگرده.
ا. HTMX این تکه HTML رو میگیره و تو صفحه swap میکنه مثلا داخل یه div خالی میذاره).
نتیجه؟
ما یه داشبورد داینامیک و سریع داریم که حس اپلیکیشنهای SPA (مثل ریاکت) رو میده، اما:
* ۹۹٪ منطق توی Go نوشته شده.
* نیازی به Build Step جاوااسکریپتی نداریم.
* سرعت لود اولیه فوقالعادهست.
* توسعهش بهشدت ساده و لذتبخشه.
اگه از نوشتن Go لذت میبری و دلت نمیخواد درگیر پیچیدگیهای فرانتاند مدرن بشی، معماری adminapp دقیقاً همون چیزیه که دنبالش میگردی.
Quick Connect
AdminApp
#go #htmx
@Syntax_fa
🔥11👍6❤2🥰2