Go Casts 🚀 – Telegram
Go Casts 🚀
8.41K subscribers
283 photos
20 videos
13 files
501 links
VP of Eng Zarinpal | Ex Snapp! Senior SE
فوق لیسانس هوش مصنوعی از دانشگاه تهران

اشتراک محتوا در مورد مهندسی نرم افزار، هوش مصنوعی، گولنگ
https://gocasts.ir

پروفایل
https://www.linkedin.com/in/gohossein

ارتباط
@lifography

Ai for Software
@aicasts_ir
Download Telegram
تعداد مشارکت کنندگاه دوره از ۵۰۰ نفر گذشت 🔥

بی نهایت از اعتماد شما متشکریم. ان شاءالله که بتونیم پاسخگوی این همه محبت و اعتماد شما باشیم و بتونیم با تولید محتوای بروز، مناسب و برازنده شما، پاسخگوی محبت شما باشیم

دوره +‌ تیمسازی بکند و گولنگ Go Casts
لینک خرید دوره + تیمسازی
https://gocasts.ir

همه چیز در مورد دوره و تیمسازی در این پست توضیح داده شده
https://news.1rj.ru/str/gocasts/434

تو این پست هم میتونید فیدبک های دوره و تیمسازی و استخدام بچه هارو بخونید
https://news.1rj.ru/str/gocasts/441

دوستانی که در خرید دوره تردید دارند میتونن برای مشاوره کوتاه تلفنی، فرم زیر رو پر کنند که باهاشون تماس بگیرم
https://survey.porsline.ir/s/ATeQL4b4

@gocasts
14👍6👏1
گوگل یه ide/editor ارائه کرده که کاملا مبتنی بر وب هست و با gemini ai هم integrate شده، تست ش کردم، تجربه جالبی بود، همه چیز on the fly انجام میشه

https://idx.google.com


@gocasts
👍173
بهینه سازی مصرف حافظه برای اپلیکیشن گولنگ

چند تا مقاله میفرستم که نکات ریز و خوبی رو اشاره میکنن برای بهینه سازی مصرف حافظه در گولنگ
دقت کنید که هر جایی لازم نیست این موارد رو رعایت کنید، اما یه سری هاش رو اگه از اول تو پروژه رعایت کنید، خیلی زحمتی نداره براتون و کدتون هم بهینه تر میشه، چه اشکالی داره؟!

Optimizing Memory Usage in Go: Reducing Memory Footprint
https://clouddevs.com/go/optimizing-memory-usage/

Memory Optimization and Garbage Collector Management in Go
https://betterprogramming.pub/memory-optimization-and-garbage-collector-management-in-go-71da4612a960

Memory Allocations
https://go101.org/optimizations/0.3-memory-allocations.html

Optimizing Memory Usage in Golang: When is a Variable Allocated to the Heap
https://hackernoon.com/optimizing-memory-usage-in-golang-when-is-a-variable-allocated-to-the-heap

Mastering Go Memory Optimization: 20 Expert Techniques for Efficient Applications
https://dev.to/aaravjoshi/mastering-go-memory-optimization-20-expert-techniques-for-efficient-applications-4bjc

Enhancing Go Struct Efficiency: Essential Tips for Memory Optimization
https://www.codingexplorations.com/blog/enhancing-go-struct-efficiency-essential-tips-for-memory-optimization

How To Perform Memory Optimization and Garbage Collector Management in Go?
https://dev.to/nikl/how-to-perform-memory-optimization-and-garbage-collector-management-in-go-1j7

Golang Writing memory efficient and CPU optimized Go Structs
https://dev.to/deadlock/golang-writing-memory-efficient-and-cpu-optimized-go-structs-2ick


دوره +‌ تیمسازی بکند و گولنگ Go Casts
لینک خرید دوره + تیمسازی با ۵۰ درصد تخفیف به مبلغ ۴ میلیون و ۵۰۰ هزار تومان
https://gocasts.ir


همه چیز در مورد دوره و تیمسازی در این پست توضیح داده شده
https://news.1rj.ru/str/gocasts/434

تو این پست هم میتونید فیدبک های دوره و تیمسازی و استخدام بچه هارو بخونید
https://news.1rj.ru/str/gocasts/441

دوستانی که در خرید دوره تردید دارند میتونن برای مشاوره کوتاه تلفنی، فرم زیر رو پر کنند که باهاشون تماس بگیرم
https://survey.porsline.ir/s/ATeQL4b4

@gocasts
👍151😍1
شعار جهانی ش اینه
THE WORST DISEASE YOU’Ve NEVER HEARD OF

سخت ترین بیماری دنیا که تو هرگز راجع به آن نشنیده ای


مطئنم خیلی هامون حتی نمیتونیم تصور کنیم که پشت این چهره زیبا چقدر درد نهفته ست، من تصاویر رو منتشر نمیکنم، اگه دلش رو داشتید یه جستجو در اینترنت انجام بدید با عنوان «بیماری پروانه ای» اون موقع شاید بخشی از این درد رو متوجه بشیم..


من همیشه سعی میکنم محتوای کانال کاملا مرتبط با بحث های فنی باشه و از این به بعد هم همینطور خواهد بود، اما به عنوان کسی که این موضوع رو میدونم و از نزدیک با تنها ngo حامی این بیماران، خانه ای بی، نزدیک به ۱۰ سال افتخار همکاری رو دارم و میدونم که چقدر پاک و سالم و صادقانه حمایت میکنن، وظیفه حداقلی خودم میدونم تا آخرین نفس، هر چند کوچیک هر از گاهی حمایت‌شون کنم.


هر طور که دوست دارید حمایت کنید، اطلاع رسانی، آگاهی بخشی، حمایت مالی، هر طور که دوست داشتید حمایت کنید

اینم لینک سایت جهت حمایت
https://ebhome.ngo/support


پیشاپیش یلدای همگی مبارک، مرسی که هستید، مخلص همه
یا علی


@gocasts
54👍5😍1
Go Casts 🚀
تعداد مشارکت کنندگاه دوره از ۵۰۰ نفر گذشت 🔥 بی نهایت از اعتماد شما متشکریم. ان شاءالله که بتونیم پاسخگوی این همه محبت و اعتماد شما باشیم و بتونیم با تولید محتوای بروز، مناسب و برازنده شما، پاسخگوی محبت شما باشیم دوره +‌ تیمسازی بکند و گولنگ Go Casts لینک…
معماری Event-Driven یه پارادایم هست که روی produce و consume کردن eventها برای اکشن های مهم سیستم و تغییرات state سیستم تاکید میکنه.

یکی از مهم ترین مزیت هاش چیه؟ اینه که producer خیلی loosely coupled میشه نسبت به consumerها و قسمت های دیگه سیستم.

مزیت های دیگه هم داره از جمله اینکه مقیاس پذیری سیستم رو راحت تر میکنه و انعطاف بیشتری به سیستم میده.

ولی خب چالش هایی هم داره، از جمله اینکه مدیریت eventها پیچیده تر میشه و مدیریت data consistency بین سرویس های مختلف رو سخت تر میکنه.

به همین دلیل، تعریف schemaی مناسب برای eventها و داشتن error handling درست روی produce و consume کردن eventها مهم میشه.

این مقاله رو دوست داشتید بخونید، مفاهیم مقدماتی رو توضیح میده
Introduction to Event-Driven Architecture
https://medium.com/microservicegeeks/introduction-to-event-driven-architecture-e94ef442d824


تعداد مشارکت کنندگاه دوره از ۵۰۰ نفر گذشت 🔥
به همین مناسبت، تخفیف ۵۳ درصدی دوره در نظر گرفتیم
جزییات بیشتر در این پست 👇
https://news.1rj.ru/str/gocasts/572


@gocasts
👍148
یکی از کتاب هایی که درباره sql و anti-patternهاش هست و ریویهای مثبت خوبی داره این کتابه

SQL Antipatterns: Avoiding the Pitfalls of Database Programming (Pragmatic Programmers) 1st Edition

by Bill Karwin (Author)
4.5 out of 5 stars
189 ratings

https://www.amazon.com/SQL-Antipatterns-Programming-Pragmatic-Programmers/dp/1934356557

مزیت این کتاب اینه که نکات کوچیک و ساده رو practical مثال زده و توضیح داده علت اینکه anti-pattern هست چیه

کتاب از ابعاد مختلف به دیتابیس نگاه کرده، تو فصل های مختلف نکاتی رو گفته که متنوع هست، مثلا درباره طراحی جداول دیتابیس صحبت کرده، درباره کوئری ها صحبت کرده، در مورد ایندکس دیتابیس، در مورد نکاتی که از سمت اپلیکیشن باید در مورد دیتابیس رعایت بشه صحبت کرده و غیره

@gocasts
👍24🔥4
یه ویدیوی تازه و داغ که یه کتابخونه جدید رو هم معرفی میکنه برای event stream processing

Processing Millions of Events Per Second Reliably Using Generics
https://youtu.be/tedFyfKqKeI?si=HoWXARoDv0BRbQRo

A blazingly fast event stream processing library powering the reveald event processing daemon.
https://github.com/runreveal/kawa

Kawa: The Event Processor for the Grug Brained Developer
https://blog.runreveal.com/kawa-the-event-processor-for-the-grug-brained-developer/


تعداد مشارکت کنندگاه دوره از ۵۰۰ نفر گذشت 🔥
به همین مناسبت، تخفیف ۵۳ درصدی دوره در نظر گرفتیم
جزییات بیشتر در این پست 👇
https://news.1rj.ru/str/gocasts/572


@gocasts
👍9😍1
مقایسه دیدگاه سازنده golang و rust

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

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

من قبلا یکی از اولین ارائه های rob pike و گولنگ رو تو کانال گذاشتم
https://news.1rj.ru/str/gocasts/97

در مقابل یکی از اولین ارائه های graydon hoare در mozilla رو بخونید
http://venge.net/graydon/talks/intro-talk-2.pdf

مثلا برای گولنگ تو طراحی و اهداف شون اشاره کرده بود که میخواد گرامر زبان منظم و ساده باشه با تعداد keyword کم

و در مقابل rust میگه syntax آخرین دغدغه ای هست که بهش فکر میکنم…

یا میگه multi-paradigm هستم، یعنی FP و OO و procedural رو بسته به استفاده شون تو زبان خواهم داشت.

دونستن این دیدگاه کمک میکنه که اگه مثلا rust یاد میگیری سعی نکنی همه چیز رو OO ببینی، یا همه چیز رو FP ببینی.

یا اگه گولنگ یاد میگیری شکایت نکنی چرا زبانش کوچیک و جمع و جوره و خیلی قابلیت های fancy نداره، و یا GC داره، خب تو طراحی ش همینو میخواسته و همینم انجام داده..

@gocasts
👍35👏31🔥1😁1
دو برنامه نویس کهنه کار و خفن ۲۵ سال پیش یه کتاب جمع و جور و خوب نوشتن که کلی نکته کوچیک و مفید در مورد practiceهای برنامه نویسی داره.


مثلا در فصل اول برای style همین یک پاراگراف کلی نکته داره
اولا اینکه style یه common sense هست، پس براش دنبال استاندارد و قانون نگردید.
کد باید واضح و ساده باشه و نباید clever tricks داشته باشه
خیلی Consistency مهمه که یک style در کل کد رعایت بشه

The principles of programming style are based on common sense guided by expe- rience, not on arbitrary rules and prenoscriptions. Code should be clear and simple- straightforward logic, natural expression, conventional language use, meaningful names, neat formatting, helpful comments- and it should avoid clever tricks and unusual constructions. Consistency is important because others will find it easier to read your code, and you theirs, if you all stick to the same style.


من چند تا از نکات فصل اول رو مینویسم اینجا

Use denoscriptive names for globals, short names for locals.
Programmers are often encouraged to use long variable names regardless of context. That is a mistake: clarity is often achieved through brevity.
نوشته شده که global variables باید اسم های طولانی و توصیف کننده داشته باشن و local variables ها باید short name داشته باشن.
نکته جالبی که میگه اینه که برنامه نویس ها علاقه دارن اسم های طولانی انتخاب بکنن بدون در نظر گرفتن context، در حالیکه clarity خیلی وقت ها با استفاده از اختصار بدست میاد.

Be consistent
در انتخاب اسم ها باید سیاست consistent داشته باشیم، اگه یه جا برای نامگذاری یه متغیر مرتبط با صف از Queue استفاده کردیم، برای یه متغیر دیگه از Q استفاده نکنیم…

Consistency and Idioms: Use a consistent indentation and brace style
این چیزیه که در گولنگ خیلی دغدغه ش رو نداریم، چون rob pike یکی از نویسندگان این کتاب خودش گولنگ رو نوشته 🙂

Give names to magic numbers
بهتره اگه تو کد مقادیر ثابت استفاده میکنید براشون constant تعریف کنید، مثلا اگه در گولنگ از لینتر استفاده کنید میتونید این لینتر رو نصب کنید go-mnd که بهتون بگه کجاها رعایت نکردید

خلاصه این کتاب کلی نکته مفید و کوچیک و خفن داره که هنوز هم خیلی هاش کاربردیه

The Practice of Programming (Addison-Wesley Professional Computing Series) 1st Edition
https://www.amazon.com/Practice-Programming-Addison-Wesley-Professional-Computing/dp/020161586X
by Brian Kernighan (Author), Rob Pike (Author)


@gocasts
👍218
یه کتابی که خیلی فیدبک های خوبی داره برای ساختمان داده و الگوریتم، کتاب
A Common-Sense Guide to Data Structures and Algorithms, Second Edition: Level Up Your Core Programming Skills 2nd Edition
هست که ریویوهاش رو اینجا میتونید بخونید
https://www.amazon.com/Common-Sense-Guide-Structures-Algorithms-Second/dp/1680507222

مزیت اصلی کتاب اینه که خیلی از تصویرسازی کمک گرفته برای آموزش دادن مفاهیم و این کمک بزرگی میکنه به مخاطب.


قبلا تو کانال در مورد مزایای یادگیری مصور صحبت شده بود
https://news.1rj.ru/str/gocasts/155


@gocasts
👍20
یکی از چیزایی که از rust خیلی دوست دارم pattern matching هست، خیلی تر و تمیز و انعطاف پذیر هست.
اینجا بیشتر میتونید در موردش بخونید.
https://doc.rust-lang.org/book/ch06-00-enums.html

مثلا استفاده کردن match در کنار Result ENUM خیلی practice خوبی برای بررسی خروجی یک تابع یا متد هست.

اینطوری مجبور نیستی همه توابع رو طوری بنویسی که خروجی آخرشون error باشه (در گولنگ اینطوریه)

به کمک pattern matching هم خیلی خوانایی کد کمتر نمیشه بنظرم.

let greeting_file_result = File::open("hello.txt");

let greeting_file = match greeting_file_result {
Ok(file) => file,
Err(error) => match error.kind() {
ErrorKind::NotFound => match File::create("hello.txt") {
Ok(fc) => fc,
Err(e) => panic!("Problem creating the file: {e:?}"),
},
other_error => {
panic!("Problem opening the file: {other_error:?}");
}
},
};


از نظر error handling فکر میکنم نگاه مشترکی با گولنگ داره، از این نظر که خطاهارو دو دسته recoverable و unrecoverable میبینه که یکی رو با Result مدیریت میکنه و یکی رو با panic که فکر میکنم خیلی شبیه نگاه گولنگ هست.
Most languages don’t distinguish between these two kinds of errors and handle both in the same way, using mechanisms such as exceptions. Rust doesn’t have exceptions. Instead, it has the type Result<T, E> for recoverable errors and the panic! macro that stops execution when the program encounters an unrecoverable error.


@gocasts

#rust #golang
👍222🔥1
مصاحبه های طراحی سیستم نقش مهمی تو خیلی از مصاحبه های فنی دارن. من با چند برنامه نویس از سطوح مختلف با تجربه های ۴، ۵ سال و کمتر بصورت ناشناس مصاحبه های mock فنی طراحی سیستم انجام دادم که ۶ تا از این مصاحبه ها در دوره قرار گرفته. موضوع مصاحبه ها در مورد سیستم های مختلفی هست از جمله سرویس های پرداخت، بورس، فایل و غیره ست.
الحمدلله که این مصاحبه ها به دوستان کمک کرده تو فرآیند مصاحبه های طراحی سیستم عملکرد بهتری داشته باشن و به استخدام شون کمک کرده.

دوره +‌ تیمسازی بکند و گولنگ Go Casts
لینک خرید دوره + تیمسازی با ۵۰ درصد تخفیف به مبلغ ۴ میلیون و ۵۰۰ هزار تومان
https://gocasts.ir

همه چیز در مورد دوره و تیمسازی در این پست توضیح داده شده
https://news.1rj.ru/str/gocasts/434

تو این پست هم میتونید فیدبک های دوره و تیمسازی و استخدام بچه هارو بخونید
https://news.1rj.ru/str/gocasts/441

دوستانی که در خرید دوره تردید دارند میتونن برای مشاوره کوتاه تلفنی، فرم زیر رو پر کنند که باهاشون تماس بگیرم
https://survey.porsline.ir/s/ATeQL4b4


@gocasts
👏14👍52🔥1
شاید تعجب کرده باشید که چرا در خیلی از کنفرانس های JavaScript جای این عبارت از js و ecmanoscript استفاده میکنن..
دلیلش اینه که آقای oracle که sun microsystems رو خرید تریدمارک JavaScript رو هم در نتیجه ش صاحب شد.
حالا آقای ryan dahl که سازنده nodejs و deno هست چند وقتی هست گیر داده به oracle که تریدمارک JavaScript رو کنسل کنه که دیگه به عنوان یه کلمه عمومی همه بتونن ازش استفاده کنن. سفت و سخت پیگیره..

https://x.com/deno_land/status/1873615998324203591


@gocasts
👍18🔥3
دوستان سنیور گولنگ که دنبال کار دلاری هستید، اگه مهارت مکالمه زبان خوبی دارید لطفا فرم زیر رو پر کنید، یکی از دوستان به دنبال نیروی سنیور گولنگ هست.
https://survey.porsline.ir/s/O1pXpEzr


کانال تلگرام
@gocasts
👍16😁1
دوستان اگه اپلیکیشن رو بصورت مونولیت مینیوسید، کار خوبی میکنید، اما aggregation pattern رو جدی بگیرید، کمک بزرگی میکنه به حفظ loosely coupled بودن ماژول و سرویس هاتون.

یه اشتباه رایجی که باعث میشه خیلی راحت همه چیز در هم تنیده و coupled بشه نیازهای بیزینسی ای هست که دیتای aggregate شده از چند domain مختلف رو میخواد از شما. تو حالت مونولیت خیلی ساده ست که شما در هر domain به دیتابیس یه domain دیگه درخواست بزنی و یا حتی تو interactor/service دیگه یه متد جدید تعریف کنی که دیتای مد نظر رو بده. که معمولا باعث در هم تنیده شدن و چاق شدن سرویس هاتون میشه.

بهتره سرویس یا همون interactorهاتون کارهای خیلی کوچیک و well-definedی رو انجام بدن و اگه نیازمندی های aggregationطور دارید، یه سری service دیگه بسازید که وابستگی خواهد داشت به سرویس های مختلف و دیتاهای raw رو میگیره و پردازش میکنه که دیتای نهایی رو آماده کنه.

بعضی وقت ها از طریق gateway هم ممکنه بتونید aggregate کنید. بعضی وقت ها ممکنه تو همون لایه دلیوری (کنترلر) تون بتونید دو تا سرویس رو فراخوانی کنید و کار رو در بیارید، گاهی هم پیچیده تر میشه و لازمه یه سرویس(interactor) بنویسید که کار aggregation رو انجام بده
https://learn.microsoft.com/en-us/azure/architecture/patterns/gateway-aggregation

باز خود aggregate کردن حالت های مختلفی داره، اینجا میتونید بیشتر بخونید در موردش
https://medium.com/geekculture/design-patterns-for-microservices-aggregation-pattern-1b8994516fa2

@gocasts
👍203👏2🔥1
ملت از چی پول در میارن 😁

طرف ۹۹ دلار میگیره که ruby رو روی سیستم عامل مک نصب کنه :)
تا الان بیش از ۲ هزار نفر هم بهش پول دادن

https://www.rubyonmac.dev/

حالا من از کجا پیداش کردم؟ برای یه پروژه قدیمی داشتم ruby نصب میکردم که به مشکل خوردم، واقعا هم بعضی وقتا دردسر داره نصبش، مخصوصا اینکه نسخه ۳ هم اومده...

من حاضرم رو سیستم تون کامپایلر گولنگ نصب کنم به همراه همه وابستگی هاش، ۹ دلارم بیشتر نمیگیرم 😄


@gocasts
😁63👍4
Go Casts 🚀
تعداد مشارکت کنندگاه دوره از ۵۰۰ نفر گذشت 🔥 بی نهایت از اعتماد شما متشکریم. ان شاءالله که بتونیم پاسخگوی این همه محبت و اعتماد شما باشیم و بتونیم با تولید محتوای بروز، مناسب و برازنده شما، پاسخگوی محبت شما باشیم دوره +‌ تیمسازی بکند و گولنگ Go Casts لینک…
سلام دوستان
بالاخره سایتمون بروز شد :)

فکر کنم بعد از چند سال لازم بود از یه صفحه خیلی ساده کمی بهتر بشه

زحمت پیاده سازی ش رو دوستان فرانت کشیدن، و من با دخل و تصرف در کارشون صرفا یه سری قسمت هارو خراب کردم :)

اگه مشکلی داشت بدونید کار خودمه، مثلا کلی کلنجار رفتم که بتونم یه سری button رو به وسط صفحه منتقل کنم نشد که نشد 😟😁

از یه برنامه نویس بکند بیشتر از این انتظار نداشته باشید…

فعلا فقط لندینگ اصلی تغییر کرده. سعی کردیم توضیحات خوبی در مورد دوره و تیمسازی تو این صفحه قرار بدیم.

https://gocasts.ir

دمتون گرم ❤️

@gocasts
😍4213👍6🔥6😁1