Golem Course – Telegram
Golem Course
2.93K subscribers
47 photos
43 videos
40 files
144 links
Alireza Aghamohammadi, Ph.D.

https://youtube.com/@GolemCourse
Download Telegram
#معرفی_کتاب

عنوان:

Storytelling with Data: A Data Visualization Guide for Business Professionals

همه ما چه در کسب و کارمان، چه زمان ارائه، یا چه در محیط دانشگاهی نیازمند مصورسازی داده برای انتقال هر چه بهتر اطلاعات هستیم. نویسنده کتاب، مدیر تیم‌های تحلیلگر در شرکت گوگل، راهنمایی برای اثربخش کردن مصور‌سازی داده‌ها ارائه می‌کند.
محتوای کتاب را می‌توان به بخش‌های زیر تقسیم کرد:
۱. شناسایی مخاطبان، نیازمندی‌ها و بستر تعامل با آن‌ها
۲. انتخاب ابزار و نمودار مناسب (میله‌ای، خطی، ستونی، یا پراکنده)؟
۳. حذف جزئیات غیر ضروری و تمرکز بر مهم‌ترین اطلاعاتی که می‌خواهیم منتقل کنیم
۴. استفاده از رنگ، اندازه، درشت‌نمایی
۵. بررسی مثال‌های مختلف عملی
لازم به ذکر است که کتاب به ابزار خاصی مانند اکسل نمی‌پردازد و چنین قصدی نیز ندارد. بلکه اصولی را یاد می‌دهد که می‌توانید در تمام ابزارها استفاده کنید.
@golemcourse
👍6🔥4💯1
Forwarded from Deep Time
خلاصه که copilot تو جوپیتر👌
2🔥1
کتابخانه Pydantic یکی از کتابخانه‌های معروف پایتونی برای اعتبارسنجی داده و اطمینان از مقید بودن فیلد‌های کلاس به type مشخص‌شده است. این کتابخانه در چهارچوب معروفی با نام fastAPI نیز برای serialization و unmarshalling استفاده می‌شود.

برای یادگیری این کتابخانه می‌توانید ویدیو یک ساعت و ۳۷ دقیقه‌ای مرا در یوتیوب تماشا کنید:
https://youtu.be/Da5F_OVxvUo
👍11🔥1
#معرفی_کتاب

عنوان:
Microservice APIs: Using Python, Flask, FastAPI, OpenAPI and more

نویسنده در یک مثال عملی، یعنی ساخت کافی شاپ آنلاین، تکنولوژی‌های متعدد و حجم زیادی دانش را آموزش می‌دهد.

کتاب را می‌توان به چهار بخش تقسیم کرد. در بخش اول کار با REST و نحوه مستند‌سازی آن با OpenAPI یا همان Swagger را فرا می‌گیرید. برای پیاده‌سازی مایکروسرویس‌ها از کتابخانه‌های FastAPI و Flask استفاده می‌کند. در بخش دوم GraphQL را آموزش می‌دهد. بخش سوم کتاب به حوزه امنیت و کار با OAuth و OpenID اختصاص دارد. در بخش چهارم با داکر و کوبرنتیز محصول را در محیط خدمات ابری آمازون مستقر می‌کند.

ساختار کتاب و نحوه آموزش مطالب کاملاً فکر شده است. اغراق نیست اگر بگویم صفحه‌ای پیدا نمی‌کنید که مطلبی برای یادگیری نداشته باشد.

کدهای کتاب هم به صورت عمومی در دسترس است و می‌توانید به صورت همزان با خوانش کتاب، آن‌ها را اجرا کنید.
@golemcourse
17👍3🔥1
معماری بدون سرور (serverless) چیست؟

یک ویدیو ضبط کردم و داخل یوتیوب قرار دادم (لینک). بعد از تماشای ویدیو انتظار می‌رود:
- بتوانید مفهوم معماری بدون سرور را توضیح دهید.
- بتوانید دو جزء مهم این معماری یعنی FaaS و BaaS را تشریح کنید.
- بتوانید مزایا و معایب آن را ذکر کنید.
13👍3🔥3
why_you_should_avoid_mock.pdf
278 KB
چرا باید تا جای ممکن از ماک (mock) اجتناب کنیم؟

احتمالا نام mock و کاربرد آن در تست نرم‌افزار به گوش‌تان خورده است. اما به کارگیری آن در تست می‌تواند سبب به وجود آمدن پدیده‌ای به نام mocking hell شود. روش‌های بهتری برای تست نرم‌افزار و اجتناب از ماک وجود دارد. فایلی کوتاه آماده کردم و مشکل را همراه با یک مثال پایتون توضیح دادم.
👍13🔥2
الگوی ambassador چیست؟

ویدیویی برای الگوی ابری ambassador ضبط کردم (لینک). بعد از تماشای ویدیو انتظار می‌رود:

با این الگوی ابری آشنا شوید.
بتوانید مسئله‌ای را که این الگو حل می‌کند، تشریح نمایید.
بتوانید مزایا و معایب آن را ذکر کنید.
11
درخواست دستیار آموزشی درس تحلیل و طراحی سیستم‌ها

این ترم درس تحلیل و طراحی سیستم‌ها را در دانشگاه شریف ارائه می‌کنم. دستیار آموزشی ارشدم جناب آقای امیرمهدی نامجو در حال تشکیل تیم دستیاران آموزشی است. در صورتی که تمایل دارید دستیار آموزشی این درس باشید، لطفاً این فرم را تکمیل نمایید.
👍111
الگوی anti-corruption layer چیست؟

ویدیویی برای این الگو داخل کانال یوتیوب قرار دادم و می‌توانید آن را از این لینک تماشا کنید.

بعد از تماشای ویدیو انتظار می‌رود:
بتوانید مسئله‌ای که این الگو حل می‌کند، تشریح نمایید.
نحوه استفاده از FaaS را در این الگو بیان کنید.
بتوانید مزایا و معایب آن را ذکر کنید.

@golemcourse
🔥7👍1
#معرفی_کتاب

Publishing Python Packages: Test, share, and automate your projects

وقتی برنامه‌ای به زبان پایتون می‌نویسید احتمالاً تمایل دارید آن را با دیگران به اشتراک بگذارید تا از طریق pip قابل نصب باشد. این کتاب این نیاز را به خوبی هدف‌گیری کرده است. با خواندن کتاب:

یاد می‌گیرید چگونه با کمک pyproject.toml و setup.cfg بسته قابل نصب بنویسید.
تفاوت sdist و bdist را متوجه می‌شوید.
با کمک tox فرآیند اجرای تست، اجبار سبک کدزنی با black ، و بررسی کیفیت کد با flake را خودکار می‌کنید.
یاد می‌گیرید از github action برای اطمینان از صحت برنامه در محیط‌های پایتون ۳.۸، ۳.۹، ۳.۱۰ استفاده کنید.
با کمک sphinx و readthedocs برنامه‌تان را مستندسازی می‌کنید.


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

@golemcourse
👍15🔥2
برای ترم پیش‌رو، در درس تحلیل و طراحی سیستم‌ها از منابع زیر استفاده می‌کنم. با وسواس زیاد آن‌ها را انتخاب کردم. اگر قصد تدریس/یادگیری این درس را دارید، پیشنهاد می‌کنم آن‌ها را متناسب با نیازتان بررسی کنید.

۱. Scrum Guides (2020)
۲. Essential Scrum: A Practical Guide to the Most Popular Agile Process (2012)
۳. Software Architecture in Practice (2022)
۴. System Design Interview — An Insider's Guide (2020)
۵. System Design Interview — An Insider's Guide: Volume 2 (2022)
۶. Building Microservices: Designing Fine-Grained Systems (2021)
۷. Designing Data-Intensive Applications: The Big Ideas Behind Reliable, Scalable, and Maintainable Systems (2017)
۸. Fundamentals of Software Architecture: An Engineering Approach (2020)
۹. Software Architecture: The Hard Parts (2022)
۱۰. Release It!: Design and Deploy Production-Ready Software (2018)
۱۱. The Phoenix Project: A Novel about IT, DevOps, and Helping Your Business Win (2013)
۱۲. Grokking Continuous Delivery (2022)
۱۳. Learn Docker in a Month of Lunches (2020)
۱۴. Learn Kubernetes in a Month of Lunches (2021)
۱۵. Ansible for DevOps: Server and configuration management for humans (2023)
۱۶. Logging in Action: With Fluentd, Kubernetes and more (2022)
۱۷. Site Reliability Engineering: How Google Runs Production Systems (2016)
👍197🔥6💯1
حداقل سه متغیر زمان، قابلیت‌های محصول و بودجه در توسعه و ایجاد پروژه تأثیرگذار هستند. شاید برای پروژه‌هایی که عدم قطعیت ندارند (یا عدم قطعیت آن‌ها قابل مدیریت است) بتوانید با روش آبشاری هر سه متغیر را تعیین کرده و در قرارداد ذکر کنید. اما برای اکثر پروژه‌های نرم‌افزاری، به خصوص آن‌هایی که از روش‌های چابک استفاده می‌کنند، در نهایت باید یکی از این متغیرها را در قرارداد منعطف نگه دارید.عکس پیوست شده به این پست از فصل ۱۸ کتاب Essential Scrum گرفته شده است.

@golemcourse
👍12
#معرفی_کتاب

Lean from the Trenches: Managing Large-Scale Projects with Kanban

در سال ۲۰۱۱، پلیس سوئد پروژه‌ای را در سطح کشور برای بررسی آنلاین پرونده‌های افراد (مانند رانندگی در حالت مستی) تعریف کرد، بدون اینکه نیاز باشد افراد به ایستگاه‌های پلیس برای تشکیل پرونده مراجعه کنند.

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

کتاب حدوداً ۱۶۰ صفحه است و خواندن آن وقت‌گیر نیست. شخصاً توانستم آن را در یک روز بخوانم.

عکس پیوست شده، تصویری از برد پروژه است که در فصل چهارم کتاب آمده است.

@golemcourse
👍83
در سازمان، ممکن است تعدادی تیم تشکیل شود. تیم‌هایی که افراد آن‌ها توانایی‌ها و نیازهای لازم برای ساخت و ارائه محصول یا سرویس را دارند، به عنوان feature team شناخته می‌شوند. به عنوان مثال، فرض کنید سازمانی وجود دارد که دارای دپارتمان‌های توسعه، عملیات، تضمین کیفیت و امنیت است. برای ساخت محصول، یک تیم شش نفره تشکیل شده است که شامل سه نفر از بخش توسعه، یک نفر از بخش عملیات، یک نفر از بخش تضمین کیفیت و یک نفر از بخش امنیت است. این نوع تیم‌ها به عنوان تیم‌های cross functional نیز شناخته می‌شوند. در چارچوب اسکرام، تیم‌ها از این دست هستند.

اگر همه اعضای یک تیم در یک حوزه تخصص داشته باشند، آنگاه با یک component team سر و کار خواهیم داشت. به عنوان مثال، گاهی اوقات یک تیم زیرساخت برای ارائه خدمات به سایر تیم‌ها تشکیل می‌شود. این تیم‌ها زمانی مفید هستند که حول یک سرویس شکل بگیرند. در غیر این صورت، بروکراسی بین تیمی ایجاد می‌شود.

تصویر پیوست شده از کتاب Lean From the Trenches برداشت شده است. در آن سه تیم وجود دارد که از نوع Feature هستند و دو تیم که از نوع Component هستند.
@golemcourse
👍5🔥2💯2
ساختار تیمی بر معماری نرم‌افزار تاثیر می‌گذارد. این مفهوم با قانون کانوی شناخته می‌شود.

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

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

این عکس از کتاب Building Microservices گرفته شده است.

@golemcourse
👍16💯1
زمانی که در حال توسعه یک محصول هستید و ابعاد آن از یک حد خاصی بیشتر می‌شود، نیاز به استراتژی برای ایجاد شاخه در گیت پیدا می‌کنید. استراتژی‌های متنوعی مانند:
gitflow
github flow
gitlab flow
trunk-based development
برای مدیریت شاخه‌ها وجود دارد. من یک ویدیو درباره مدل gitflow ضبط کرده‌ام که می‌توانید آن را از طریق این لینک در کانال یوتیوب من تماشا کنید.

@golemcourse
🔥84👍1
009_rest.pdf
116.9 KB
به زودی قرار است در این ترم، مبحث REST را برای دانشجویان تدریس کنم. با توجه به ماهیت این مبحث، فکر می‌کنم این اطلاعات برای اعضای این کانال نیز مفید باشد. فایل پیوست، محتوایی است که برای این هدف آماده کرده‌ام.
@golemcourse
👍254🔥1
SUT_SAD_SampleExam.pdf
134.3 KB
برای دانشجویان درس تحلیل و طراحی سیستم‌ها، یک نمونه سوال امتحانی طراحی کردم که برای اعضای این کانال نیز مفید است. پیشنهاد می‌کنم که به راه‌حل آن فکر کنید.
@golemcourse
🔥156💯2
HW1_SAD_D.pdf
1.4 MB
دستیاران آموزشی عزیزم، زحمت کشیده و تمرین اول درس تحلیل و طراحی سیستم‌ها را آماده کرده‌اند. این تمرین بر بحث مدیریت محصول تمرکز دارد. در بخشی از تمرین، اصطلاح OKR مطرح می‌شود. مرجع اصلی OKR، سایت whatmatters.com است و ویدیوهای آموزشی هم دارد. به علاوه، Google OKR playbook یک guideline برای تعریف OKR ها ارائه می‌کند.
👍16🔥2