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
#معرفی_کتاب

هنگام ایجاد نرم‌افزار همیشه با دو سوال اساسی روبرو هستیم: ۱. آیا محصولی که در حال ساخت آن هستیم را کاربر می‌خواهد (مفهوم اعتبارسنجی)؟ ۲. با فرض مثبت بودن پاسخ سوال اول، آیا اصلاً خود آن محصول را به درستی می‌سازیم (مفهوم صحت‌سنجی)؟ پاسخ به این دو سوال را حوزه‌ای از گرایش مهندسی نرم‌افزار به نام مهندسی نیازمندی‌ها می‌دهد. کارل ویگرز کتاب نیازمندی‌های نرم‌افزار را با همکاری انتشارات مایکروسافت در پاسخ به نیاز مذکور به نگارش در آورده است.

به نظرم نقاط قوت کتاب را می‌توان به صورت زیر خلاصه کرد:
۱. قالب‌ها و مستنداتی برای ثبت نیازمندی‌های نرم‌افزار ارائه می‌کند.
۲. تعداد زیادی چک لیست در کتاب وجود دارد که به پیاده‌سازی صحیح فرآیندها کمک می‌کند.
۳. فوت و فن‌های بیشماری در هر فصل نویسنده ارائه می‌کند که حاکی از تجربه زیاد فرد در صنعت است.

کانال تلگرام علیرضا آقامحمدی
کانال یوتیوب علیرضا آقامحمدی
👍12
Forwarded from مطالب درسی (Mohammad Hossein)
Media is too big
VIEW IN TELEGRAM
مبانی برنامه سازی، استاد علیرضا آقامحمدی، ۰۳/۰۱
(پایتون، م شیمی، شیمی، عمران، مواد و متالورژی، صنایع، فیزیک)
🔰مطالب درسی
https://news.1rj.ru/str/filmzabtshode
👍42
HW4.pdf
211.6 KB
تیم دستیار آموزشی زحمت کشیدند و سوالات تمرین چهارم را طراحی کردند. اگر در حال یادگیری پایتون هستید، خوب است که به حل این سوالات فکر کنید.
3👍1
پایتون یک زبان برنامه‌نویسی dynamic (پویا) است. یعنی در زمان اجرا نوع متغیر مشخص می‌شود. از طرفی زبان‌ برنامه‌نویسی ایستا (static) در زمان کامپایل نوع متغیر را مشخص می‌کنند. آیا می‌توانیم در پایتون از مزیت‌های زبان‌های برنامه‌نویسی ایستا استفاده کنیم؟

پاسخ این سوال مثبت است و به آن Type hint می‌گویند. در صدمین جلسه از آموزش برنامه‌نویسی پایتون، به این موضوع پرداختم.

https://youtu.be/eoG-Fq-PLDM
👍71
Media is too big
VIEW IN TELEGRAM
مبانی برنامه سازی، استاد علیرضا آقامحمدی، ۰۳/۰۳
(پایتون، م شیمی، شیمی، عمران، مواد و متالورژی، صنایع، فیزیک)
3
Forwarded from مطالب درسی (Mohammad Hossein)
Media is too big
VIEW IN TELEGRAM
مبانی برنامه سازی، استاد علیرضا آقامحمدی، ۰۳/۰۸
(پایتون، م شیمی، شیمی، عمران، مواد و متالورژی، صنایع، فیزیک)
🔰مطالب درسی
https://news.1rj.ru/str/filmzabtshode
3
Forwarded from مطالب درسی (Mohammad Hossein)
Media is too big
VIEW IN TELEGRAM
مبانی برنامه سازی، استاد علیرضا آقامحمدی، ۰۳/۱۰
(پایتون، م شیمی، شیمی، عمران، مواد و متالورژی، صنایع، فیزیک)
🔰مطالب درسی
https://news.1rj.ru/str/filmzabtshode
3
Media is too big
VIEW IN TELEGRAM
مبانی برنامه سازی، استاد علیرضا آقامحمدی، ۰۳/۱۷
(پایتون، م شیمی، شیمی، عمران، مواد و متالورژی، صنایع، فیزیک)
3
مهندسی نرم‌افزار تنها برنامه‌نویسی نیست! برنامه‌نویسی تنها یکی از مهارت‌های مورد نیاز مهندسی نرم‌افزار است. یک ویدیو ضبط کردم و مهارت‌ها و دانش‌هایی که به نظرم مهندس نرم‌افزار باید آن را بلد باشد، شرح دادم. مهارت‌هایی مانند متدولوژی، معماری نرم‌افزار، مهندسی نیازمندی‌ها و ... از جمله این مهارت‌ها ‌اند.

https://youtu.be/siD4u4OLVuY
👍3
سطح خودتان را در زبان برنامه‌نویسی پایتون چگونه ارزیابی می‌کنید؟
Anonymous Poll
41%
مقدماتی
26%
متوسط
9%
پیشرفته
25%
بلد نیستم
Media is too big
VIEW IN TELEGRAM
#کدگرمی
حل چند نمونه سوال کار با فایل جهت آمادگی برای تمرین و امتحان
حل کننده: محمد زارع

🆔 @BPPythonG7
👍2
#معرفی_کتاب

به این مسئله توجه کنید. یک سیستم فروشگاهی را در نظر بگیرید که میلیون‌ها کاربر فعال دارد. از محصولی تنها یک عدد باقی مانده است. ممکن است چند کاربر به صورت همزمان در حال مشاهده صفحه آن محصول باشند. اگر یکی از مشتریان محصول را خرید، دیگران که در حال مشاهده صفحه بودند چه زمانی باید متوجه این قضیه شوند؟ به چه شکل این سیستم بزرگ را از لحاظ کارایی باید مدیریت کنیم (سیستم کند نشود)؟
ادامه معرفی کتاب در پست بعد ...
👍7
این کتاب در سطح پیشرفته قرار دارد و مفاهیم جدید طراحی و معماری نرم‌افزار را مانند معماری تمیز، طراحی قلمرو محور، مایکروسرویس‌ها و معماری رویداد محور با استفاده از زبان برنامه‌نویسی پایتون آموزش می‌دهد. به نظرم در دو حالت کتاب را مطالعه کنید:
۱. پایتون را در سطح پیشرفته بلد هستید و می‌خواهید سطح دانش خود را در حوزه‌های دیگر مانند معماری و طراحی بهبود ببخشید.
۲. بر روی سیستمی کار می‌کنید که تعداد کاربران فعال آن میلیونی (یا بیشتر) است.
👍5
در پایتون یک ویژگی به نام Denoscriptor وجود دارد که با آن می‌توانید نحوه دسترسی به یک متغیر را کنترل کنید. مثلاً یک مستطیل را در نظر بگیرید، می‌خواهیم همیشه طول و عرض آن عدد مثبت باشد و نمی‌خواهیم کد تکراری هم داشته باشیم (اگر از property استفاده کنید، کد تکراری خواهید داشت).
نکته پیشرفته: در چارچوب جنگو، مدل‌هایی که تعریف می‌کنید (BooleanField, FileField, ...) در پشت پرده از این خاصیت پایتون استفاده می‌کنند.

کانال یوتیوب علیرضا آقامحمدی
کانال تلگرام علیرضا آقامحمدی
👍2
Final.pdf
173.6 KB
دیروز امتحان درس مبانی برنامه‌نویسی (پایتون) در دانشگاه صنعتی شریف برگزار شد. سوالات به همراه پاسخ آن را برایتان پیوست کردم.
13👍2
Forwarded from Golem Course
کانال تلگرام علیرضا آقامحمدی
کانال یوتیوب علیرضا آقامحمدی

💰 می‌خواهید وارد بازار کار شوید؟
📕 می‌خواهید دانش و مهارت ضروری صنعت کامپیوتر را بلد باشید؟
🧠 عاشق یادگیری هستید؟

اگر پاسخ شما به سه سوال بالا منفی است، این کانال مناسب شما نیست!

لینک دسترسی به تمام ویدیو‌ها در کانال یوتیوب:

🥉 مسیر یادگیری و تقویت زبان انگلیسی

🎯 آموزش زبان انگلیسی: (۳۰:۳۷ ساعت - به اتمام رسیده)

==================
🥈مسیر برنامه‌نویس شدن:

🎯 طراحی وب‌سایت - فرانت اند: (۱:۵۰ ساعت - در حال ضبط)

🎯 دوره آموزشی پایتون: (۱۷:۲۸ ساعت - در حال ضبط)

🎯 دوره آموزشی گیت: (۴:۰۶ ساعت - به اتمام رسیده)

🎯 دوره تست نرم‌افزار با پایتون: (۱:۲۰ ساعت - به اتمام رسیده)

🎯 آموزش کتابخانه پانداس: (۲:۲۶ ساعت - در حال ضبط)

==================

🥇 مسیر کار تیمی و ایجاد نرم‌افزار

🎯 دوره آموزشی اسکرام: (۲:۳۰ ساعت - به اتمام رسیده)

🎯 دوره مهندسی نیازمندی‌ها: (۴:۳۲ ساعت - در حال ضبط)

🎯 دوره مدیریت پروژه: (۳:۱۶ ساعت - در حال ضبط)

==================
6👍2
چرا فساد (facade) نرم‌افزاری چیز خوبی است؟

یک بسته (package) نرم‌افزاری را در نظر بگیرید به طوری که دیگران از کلاس‌ها، توابع و ماژول‌های درونی آن استفاده می‌کنند. بخش‌های دیگر نرم‌افزار موارد مورد نیاز خود را از داخل بسته import می‌کنند. مشکل این کار چیست؟ مشکل این است که دیگر بخش‌های نرم‌افزار به داخل بسته دید و وابستگی پیدا کردند. در واقع به صورت یک تکه نمی‌توانید کل بسته را بردارید و در یک نرم‌افزار دیگر استفاده کنید (به خاطر وابستگی‌ها). فساد (facade) الگویی است که به شما این امکان را می‌دهد تا وابستگی‌ها و دید به داخل بسته را از بین ببرید. فساد یک کلاس (یا چند کلاس) است که در مرز بسته‌ها تعریف می‌شود و صرفاً کارچرخان است ( در واقع یک سری فراخوانی انجام می‌دهد و منطق برنامه درون آن نیست). به طور مثال، برای انجام یک کار مشخص لازم است از کلاس A نمونه گیری کنید و توابع x,y,z را فراخوانی کنید. قبلاً بدون استفاده از فساد، آن‌ها را از داخل بسته import می‌کردید و داخل کدتان استفاده می‌کردید. برای ایجاد فساد یک کلاس F درست می‌کنید و فراخوانی توابع را به داخل آن کلاس منتقل می‌کنید و شما کافی است که تنها F را import کنید. با این کار وابستگی را به فساد منتقل کردید. مزیت این کار این است که اگر منطق پیاده‌سازی بسته عوض شود اما نقاط API ثابت بماند، برنامه شما دچار اصلاً از تغییر خبردار نمی‌شود و می‌توانید بسته را در پروژه‌های دیگر نیز استفاده کنید.

نکته: مؤلفه (component) یک قطعه نرم‌افزاری است که به صورت یک تکه است و تنها راه ارتباط با آن از طریق API ها است. الگوی فساد، روش متداول تبدیل بسته به مؤلفه است.

سوال: در دنیای واقعی (اما ایده‌آل) فساد چه شکلی است؟ فرض کنید که لازم است مجوزی در یک اداره دولتی بگیرید. اگر فساد در آن اداره (فرضاً) پیاده‌سازی شده باشد، یک نفر را به عنوان مسئول کار شما انتخاب می‌کنند و لازم نیست که به ۱۰ جای مختلف برای گرفتن امضاء بروید. آن شخص بعد از گرفتن مدارک تمام امضاء ها را می‌گیرد و در نهایت نتیجه را به شما گزارش می‌کند.

کانال تلگرام علیرضا آقامحمدی
کانال یوتیوب علیرضا آقامحمدی
👍6
مدت زمان دوره آموزشی طراحی وب‌سایت (فرانت اند) به ۳:۳۰ ساعت رسید. دوره را به صورت پروژه محور آموزش دادم و تا الان تنها با استفاده از CSS, HTML و بدون هیچ کتابخانه‌ای، طراحی عکس‌های بالا آموزش داده شده است.

ویدیوها را می‌توانید از طریق یوتیوب مشاهده کنید.
26