سرویس با golang

سلام .

خوشحالم devheroes رو پیدا کردم . دوستان تا الان با go میکرو سرویس برا پروژه هاتون نوشتین و توی کار با حجم بالا تست کردین ؟ اگر آره لطفا تجربیات خودتون رو بیان کنید . تشکر .

2 Likes

go واقعا برای توسعه سریع و کم اشتباه عالیه, یادگیریش آسونه و کلا زبان قابل اعتمادیه

توسعه سریع که نداره فریمورک هایی هستن که با ده دقیقه کد زدن میشه یه وبسایت خوب امن و همه کاره باهاش راه انداخت ولی گو همه چیزو باید خودم انجام بدم اکثرا .

ولی مسئله اینه من تا الان خودم زیر بار پروژه بزرگ ازش استفاده نکردم همش پروژه کوچیک بوده برای همین نمیدونم توی scale بزرگ و چالش های امنیتی و … جواب میده و چطور اگر مشکلی پیش اومد باید حل بشه .

دوست دارم اگر تجربه دارین مطرح کنید لطفا .

اون که گفتم تجربم بود :smile:

راستی خوش آمدی به این سایت :sunny:

1 Likes

بله من مقداری با go تجربه ساختن میکروسرویس دارم
اگر سوال یا کمکی نیاز دارید خوشحال میشم کمک کنم

2 Likes

از همراهیتون ممنونم :slight_smile:

Go به درد میکروسرویس های بسیار کوچک و با یک هدف میخوره
به دلیل نداشتن ساختار های oop یا فانکشنال ساختن برنامه های بسیار پیچیده با go سخته

1 Likes

من با go یکم تجربه داشتم . اول اینکه اینترفیس و اشاره گر و سینتاکس متفاوت این زبان دست ب دست هم میدن و باعث میشه وقتی حجم کد بالا رفت کارتون سخت بشه . دوما هم دوباره همین عوامل دست ب دست هم میدن و باعث میشن خوانایی کد سخت بشه و زمان میبره که چشم و مغز بتونن عادت کنن . البته اینا برای من اتفاق افتاده بود و ممکنه بعضی ها خیلی هم دوست داشته باشند .
بنظر من go برای برنامه های cli و همون طور که جناب سم دی وی ار عرض کردند وب سرویس های کوچولو و ساده خوبه .
البته من از گو برای دستگاه های ابزار دقیق هم استفاده کردم که متاسفانه بخاطر کمبودهای بی شمار این زبان خوب از آب درنیومد و دوباره مجبور شدم با زبان دیگه از نو بنویسم . ولی یک سرویس برای tcp با گو نوشتم که چون ساده و کوچک بود خیلی هم استفاده از این زبان لذت بخش بود .

مرسی . میشه بگین چه کمبود هایی داشت و اینکه چطور شما رو سردرگم میکرد ؟

1 Likes

خلاصه نظر شخصی من درباره Go
نکات مثبت
کار با error ها
Concurrency model بسیار خوب
تایپ سیستم
Fmt
جامعه بزرگ
ساده و آسان برای یادگیری
یک راه برای انجام کار

نکات منفی
Mutability
نبود generic ها که باعث تکرار بیش از حد کد هامیشه
سختی مدل کردن پیچیدگی بدون oop یا functional programming

2 Likes

سلام . مرسی

به جای جنریک که interface{} داره اتفاقا خیلی خوشم اومد من از این قابلیت من اول فکر کردم مثل Any هست در زبان های دیگه ولی دیدم نه دقیقا میشه خیلی کارا باهاش کرد زبانی مثل گو رو پویا میکنه که در نوع خودم برام جالبه .

شی گرایی و فانکشنال بودن هم که اصلا این مشکل نیست گو متفاوته و مدل کاریش چیز دیگست برای همین باید ذهن شی گرایی و … رو کنار گذاشت اما بازم میشه بهش شی گرا نگاه کرد و پیاده سازی کرد .

Mutability یکم توضیح میدی ؟

1 Likes

Interface{} تمام هدف کامپایلرو از بین میبره و اصلا در مقابل generic ها قابل مقایسه نیست چون generic ها با اینکه abstraction درست میکنن کاملا در کامپایلر چک میشن
Interface{} در runtime چک میشن

Immutability یعنی داده ها وقتی درست میشن تغییر نمیکن در فانکشنال پروگرمینگ این کار رایج ولی زبان های دیگه ازاین پشتیبانی می‌کنند که باعث میشه برنامه خطاهاش کنار بشه
Go این کارو به خوبی پشتیبانی نمیکنه

2 Likes

بله و این متفاوت بودن زیباست اما وقتی که نهایتا 2000 خط کد داشته باشی :blush: باید قبول کرد پروژه های گو واقعا اسون و زیبا و جذابن اما وقتی که پروژه کوچولو باشه
مشکل از ذهنیت شی گرا نیس مشکل اصلی بنظر من اینه که این سینتاکس متفاوت زبان گو و روش عجیبش که جاگزین شی گرایی شده گاهی اوقات واقعا سخت و پیچیده میشه داخل پروژه. اینترفیس ها واقعا زیبا هستند و کاربردی اما اگر یکم مدلی که میخوایین پیچیده باشه و در این وسط هم از انبوه توابع استفاده کنید واقعا کار خطایابی و توسعه کد تغییر کد خواندن کد و گاهی اوقات حتی استفاده از خود تابع مشکل میشه و باید کلی وقت بین struct interface تلف کنید تا بفهمین تابعی ک خودتون نوشتین چجوری باید استفاده بشه و اینجاست که میگین چرا اینجوری شد:laughing::laughing::laughing::laughing:
دومین ایراد گو که نه تنها من بلکه خیلی های دیگه هم ازش ناراضی ان پیام های نامربوط خطا در گو هست که حتی گاهی اوقات اصلا پیام خطا ربطی به موضوع خطا نداره

3 Likes

:blush:یک چیزم به عنوان برادر کوچولو بگم که از اساتید اینجا واقعا استفاده کن حرف بیخودی نمیگن مثل بقیه گروههای تلگرامی .من قبلا بحث زیاد میکردم اما اینجا یاد گرفتم استفاده کنم

2 Likes

با سلام من تازه با این محیط آشنا شدم و بایدمقاله ای رو در ان پیاده سازی کنم
نحوه نصب و را اندازی آن به چه صورت هیت
ممنون میشم اگر کسی کمک کنه
سریعترین راه برای نصب ویا استفاده از آن به چه صورت هست؟

باید یک سرویس با Go بنویسید ؟

بله یک کدی هست مربوط به پیاده سازی مقاله ای که داخل golang نوشته شده و می بایست که از آن ران بگیرم و خروجی مربوط به مقاله را بدست بیاورم
الان با نصب jetbrain تونستم از کد ران بگیرم منتها خروجی را نمایش نمیدهد
و چون با محیط و سینتکس کد اشنایی ندارم علت رو نمیتونم پیدا کنم

اول با سینکس کمی یاد بگیرید بعد اگه سوال داشتید اینجا بپرسید
https://gobyexample.com/
https://www.golang-book.com/books/intro

تشکر
با چه دستوری میتونم یک مجموعه از تصاویر را داخل کد لود کنم
و عملیات و الگوریتم ها را بر روی مجموعه تصاویر به صورت تک تک انجام دهم؟

با استفاده از کتابخانه image

https://golang.org/pkg/image/