Go Casts 🚀 – Telegram
Go Casts 🚀
7.67K subscribers
279 photos
20 videos
13 files
497 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
پاسخ صوتی به این سوال
خواستم بپرسم دوره‌ای که گذاشتید حالت بوت کمپ داره و ما باید گزارش بدیم به شما؟


لینک توضیحات ویدیویی دوره
https://news.1rj.ru/str/gocasts/297

لینک سرفصل های دوره
https://gocasts.ir/downloads/GoCasts-Bootcamp-Syllabus-v1.0.0-14020314.pdf

لینک جزئیات و خرید دوره ویدیویی
https://gocasts.ir/gocasts-bootcamp-140110

@gocasts
👍62🔥1
در مورد پرسیدن سوالات الگوریتمی (مخصوصا منوط کردن نتیجه به سوالات الگوریتمی) بحث زیاد شده و به عنوان کسی که خیلی در حل مسائل الگوریتمی قوی نیستم مخالف هستم با این موضوع. شاید در بعضی مواقع و برای برخی موقعیت های شغلی پرسیدن سوالات الگوریتمی رویکرد مناسبی باشه، اما در خیلی از موارد اینطور نیست.



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



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



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



علت اینکه تاکید میکنم روی شناخت ابزارها به این علته که در دنیای واقعی مهندسی نرم افزار ما در اکثر موارد صرفا قراره با استفاده از ابزارها و خیلی سریع یک محصول رو توسعه بدیم، قرار نیست در لبته تکنولوژی قدم بزنیم و ابزار جدیدی خلق کنیم.



اگه تیم مثلا روی یک دیتابیس جدید کار میکنه، آره موافقم که الگوریتم مهم میشه.



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





مهندس نرم افزار خوب باید بتونه خیلی خوب با افراد سمت بیزینس تعامل کنه.

مهندس نرم افزار خوب باید بتونه یه پروژه رو به سرانجام برسونه.

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

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



معیار دیگه «آچار فرانسه بودنه» چقدر میشه روش حساب کرد که تو جنبه های مختلف به تیم کمک کنه.



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



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



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

این ویدیو حسین ناصر هم در این مورد جالبه

https://www.youtube.com/watch?v=bDIB2eIzIC8


@gocasts
👍308🔥1
این کتاب جالبیه برای concurrency که رایگان هم هست. ضمنا نویسنده کتاب از اعضاء تیم rust هست

Rust Atomics and Locks
Low-Level Concurrency in Practice

by Mara Bos
https://marabos.nl/atomics/

@gocasts

#rust
19👍3🔥1
این مقاله به شدت جذاب به نظر میرسه درباره Unicode

https://tonsky.me/blog/unicode

@gocasts
👍142🔥2
تعریف دیتابیس clickhouse رو زیاد شنیدم از این جهت که به شدت سرعت خوبی در پاسخگویی روی حجم زیاد داده داره.



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

Why is ClickHouse so fast?
https://clickhouse.com/docs/en/concepts/why-clickhouse-is-so-fast


@gocasts
👍12
Go Casts 🚀
Voice message
محمد جان با بیش از ۴ سال سابقه به عنوان software developer در سرویس «کارنامه» از زیرمجموعه های هزاردستان مشغول به کار هست، اینم فیدبک ایشون نسبت به دوره

لینکدین محمد جان
https://www.linkedin.com/in/mohammad-chalaki/

لینک توضیحات ویدیویی دوره
https://news.1rj.ru/str/gocasts/297

لینک سرفصل های دوره
https://gocasts.ir/downloads/GoCasts-Bootcamp-Syllabus-v1.0.0-14020314.pdf

لینک جزئیات و خرید دوره ویدیویی
https://gocasts.ir/gocasts-bootcamp-140110


@gocasts
🔥94👍2
کوه صبر هم باشی کم میاری در مقابل این حجم از درد

ای هدهد صبا به سبا می‌فرستمت
بنگر که از کجا به کجا می‌فرستمت

حیف است طایری چو تو در خاکدان غم
زین جا به آشیان وفا می‌فرستمت

در راه عشق مرحله قرب و بعد نیست
می‌بینمت عیان و دعا می‌فرستمت

هر صبح و شام قافله‌ای از دعای خیر
در صحبت شمال و صبا می‌فرستمت

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

ای غایب از نظر که شدی همنشین دل
می‌گویمت دعا و ثنا می‌فرستمت

در روی خود تفرج صنع خدای کن
کآیینهٔ خدای نما می‌فرستمت

تا مطربان ز شوق منت آگهی دهند
قول و غزل به ساز و نوا می‌فرستمت

ساقی بیا که هاتف غیبم به مژده گفت
با درد صبر کن که دوا می‌فرستمت

حافظ سرود مجلس ما ذکر خیر توست
بشتاب هان که اسب و قبا می‌فرستمت

@gocasts
82👍10
Go Casts 🚀
تو اینستاگرام هم مجدد فعال شدیم دوست داشتید میتونید دنبال کنید https://instagram.com/gocasts.ir
چند روز پیش در مورد اعداد اعشاری و مشکلات دیتابیس در اینستاگرام صحبت کردیم، این مقاله به تازگی منتشر شده در همین مورد خوبه که بخونید

Working with Money in Postgres
https://www.crunchydata.com/blog/working-with-money-in-postgres


استوری های قبلی در هایلایت دیتابیس در اینستاگرام ذخیره شده
https://instagram.com/gocasts.ir


@gocasts.ir
👍8
احتمالا Kent Beck رو بشناسید یا کتاب هاشو در حوزه مهندسی نرم افزار خونده باشید.
پیشنهاد میکنم مقالاتش رو دنبال کنید.
این یکی از تازه ترین مقالاتشه
To Design or Not To Design?
https://tidyfirst.substack.com/p/to-design-or-not-to-design

@gocasts
🔥52
موقعیت کارآموزی مهندسی نرم افزار (گولنگ)
شرکتی واقع در شرق تهران در حوزه تلکام فعالیت میکنه که به دنبال یک کارآموز در موقعیت مهندسی نرم افزار (گولنگ) هست.
مدت کارآموزی از یک تا سه ماه هست و فرصت استخدام بعد از پایان کارآموزی هم وجود داره.
کار بصورت حضوری هست و ۲ ساعت شناوری داره.

اگه تمایل دارید اقدام کنید رزومه های خودتون رو به این ایمیل ارسال کنید.
itsMohammadHeidari@gmail.com

@gocasts
👍13🔥1
تو قلب هر سیستمی یه تعداد حیاتی job و cronjob وجود داره، خوبه که تو طراحی سیستم تون سعی کنید بگونه ای پیش برید که ترجیحا از داشتن job بپرهیزید، چرا؟ چون داشتن job به این معنیه که شما کاری که میتونی در زمان رخداد event انجام بشه رو به زمان دیگری موکول کنی و اون زمان دیگه سیستم باید در یک بازه زمانی کوتاه، یه تعداد زیادی job رو انجام بده که خب مسائل scalability میتونه چالش برانگیز بشه.
البته طبیعتا یه سری مسائل هست که حین انجام رخداد قابل انجام نیست و شما باید در یک زمان معینی در آینده اون کار مشخص رو انجام بدی، به همین دلیل داشتن cronjob تقریبا اجتناب ناپذیره.
نکته ای که باید بهش توجه کنید اینه که cronjob ها میتونن کارهای حیاتی سیستم رو انجام بدن و قلب سیستم باشن، پس وقتی cronjob مینویسید خیلی به کدی که مینویسید دقت کنید.
این مقاله جدید تیم مهندسی slack هم جالبه، بخونید.
Executing Cron Scripts Reliably At Scale
https://slack.engineering/executing-cron-noscripts-reliably-at-scale

@gocasts
👍219
تو دنیای cloud وقتی با containerها سر و کله میزنید، لازمه که دانش خوبی از container networking داشته باشید

یکی از بهترین سری مقالاتی که در این مورد هست رو بهتون معرفی میکنم، با دقت مطالعه کنید.

Mastering Container Networking
Learning Series
https://iximiuz.com/en/series/mastering-container-networking/

@gocasts

#container #network
👍266🔥2
سلام دوستان
موقعیت شغلی بکند و گولنگ

نام شرکت: اوزون (زیر مجموعه گروه صنعتی گلرنگ)
نوع حضور : هیبرید
موقعیت شرکت: خیابان وزرا
عنوان شغلی: میدلول یا سنیور گولنگ
حداقل سابقه کار: ۲ سال

خیلی بهتر هست اگر
تجربه کار با rabbitMQ یا kafka
تجربه کار با elasticsearch
تجربه کار با redis
را داشته باشند


https://www.linkedin.com/posts/ozonesocial_cv-developer-aepaewaeaaewaeu-activity-7119217862568722433-LpCK?utm_source=share&utm_medium=member_desktop

@gocasts
👍14
سلام، وقت بخیر

اگه حداقل یک سال سابقه کار حرفه ای با react-native رو دارید و تمایل دارید به صورت تمام وقت و هیبرید (دورکاری، با یک یا دو روز حضور) همکاری کنید، لطفا فرم زیر رو پر کنید.


آگهی جذب برنامه نویس react native برای اقتصاد آنلاین

https://survey.porsline.ir/s/6GBwCX3r


@gocasts
👍3🔥2
دیتابیس PostgreSQL قابلیت Full-Text search داره که خیلی وقت ها میتونه نیازمندی هارو پوشش بده و لازم نباشه سرویسی مثل elasticsearch رو بصورت مجزا استفاده کرد. چون نگهداری و مدیریت هر سرویس جدید هم هزینه نیروی انسانی داره و هم هزینه زمانی و انتقال دانش و کسب تجربه و غیره.

این مقاله قابلیت های دیتابیس PostgreSQL برای Full-Text search رو بیان میکنه

Create an advanced search engine with PostgreSQL
https://xata.io/blog/postgres-full-text-search-engine

@gocasts

#database #postgres
👍357🔥4
Go Casts 🚀
Voice message
تیمسازی - نقاشی روز

برای بچه های دوره یک ماهی میشه که الحمدلله تیمسازی رو شروع کردیم و تصمیم گرفتیم یه open-source customer data platform رو مثل segment.com ان شاءالله طراحی و پیاده سازی کنیم.

این طراحی اولیه ای هست که برای معماری سیستم بهش رسیدیم، قطعا این معماری اولیه کلی مشکل و نقص داره که باید کم کم بهتر بشه ان شاءالله.

ممنون از علیرضا جان بابت تر و تمیز کردن معماری
https://news.1rj.ru/str/ar_mokhtari

لینک توضیحات ویدیویی دوره
https://news.1rj.ru/str/gocasts/297

لینک سرفصل های دوره
https://gocasts.ir/downloads/GoCasts-Bootcamp-Syllabus-v1.0.0-14020314.pdf

لینک جزئیات و خرید دوره ویدیویی
https://gocasts.ir/gocasts-bootcamp-140110

@gocasts
12👍4🔥4
#php #devops

سلام به همه دوستان، مخصوصا دوستان خفن php developer و devops
یکی از دوستان من یه اپلیکیشن داره که با php توسعه داده شده، من dockerizeش کردم براش، ولی خیلی عملکرد نسخه dockerize شده روی vps با ۱۶ گیگ رم بدتر از نسخه ای هست که روی یه هاست cpanel هست.

حالا از دوستان خفن php و devops در مورد performance این اپلیکیشن php اگه میتونید راهنمایی کنید که چرا عملکرد اپلیکیشن روی مثلا یه هاست با CPanel خیلی بهتر از عملکرد همون اپلیکیشن روی vps با nginx بصورت dockerize شده هست؟

اینطوری بگم که برای تست لود با ۱۰ هزار درخواست تفاوت عملکرد مثلا روی cpanel عدد ۱۸۰ rps رو داره ولی روی vps که ۱۶ گیگ هم رم داره و ۸ هسته cpu داره حدود 40 rps هست؟

چه چیزایی میتونه کمک کنه عملکرد php در نسخه dockerize شده رو بهینه کرد؟
اینم مشخصاتیه که ممکنه کمک کنه
php: 7.4.33
OPCache: enabled
composer install --optimize-autoloader --no-dev

دو لایه nginx وجود داره که یکی ش gateway هست و صرفا proxy میکنه و یکی ش nginx داخل container خود php هست که nginx و fpm اونجا هستند، ولی واقعیتش فکر نمیکنم مشکل nginxها باشن چون تفاوت عملکرد خیلی زیاده، حدسم اینه یه چیزی در مورد خود تنظیمات fpm یا php یا docker باید انجام بشه، نمیدونم..

شما ایده ای ندارید؟
🔥5👍31
برنامه هایی که با گولنگ نوشته میشن یکی از شایع ترین خطاهایی که در runtime و روی production باهاش مواجه میشن خطای panic از جنس nil pointer هست. که میتونه منجر به از کار افتادن برنامه هم بشه، هر چند راه هایی وجود داره که شما بتونید panic رو recover کنید، اما اصولا جواب بهتر اینه که سعی کنید قسمت هایی از کد که باعث ایجاد این دسته از panic ها میشن رو شناسایی کنید و مشکل رو از ریشه حل کنید.


panic: runtime error: invalid memory address or nil pointer dereference

شرکت Uber اخیر مقاله ای منتشر کرده که در این مورد توضیحات خوبی رو ارائه داده، دوست داشتید مطالعه کنید.

NilAway: Practical Nil Panic Detection for Go

یه پروژه open-source هم در همین رابطه منشتر کرده که من روی یکی از پروژه هام اجراش کردم و کلی statement پیدا کرد که این مشکل رو داره احتمالا.

خودش هشدار داده که پروژه در دست توسعه ست و ممکنه خطای false positive داشته باشید، ولی بد نیست به پروسه ci اضافه بشه یا حداقل لوکال چک کنید.

نصب و اجراشم ساده ست.


go install go.uber.org/nilaway/cmd/nilaway@latest
nilaway ./...



@gocasts

#golang
👍40🔥6