Microfrontend.ir
1.44K subscribers
221 photos
3 videos
2 files
272 links
کانال تلگرامی وبلاگ میکروفرانت‌اند. مباحثی پیرامون هوش مصنوعی و یادگیری ماشین، معماری نرم افزار با تمرکز بر DDD ، میکروسرویس و میکروفرانت‌اند
www.microfrontend.ir

@hemanhp2
Download Telegram
آموزش پروژه محور جاوا اسکریپت - DOM Events

در قسمت پنجم از آموزش پروژه محور جاوا اسکریپت به بررسی مفهوم DOM Events ها پرداختیم. ابتدا به معرفی مفهوم و کارکرد event در استاندارد DOM پرداختیم. سپس سه شیوه اضافه کردن Event Listener ها به المان‌ها را شرح و مزایا و معایب هرکدام را بررسی کردیم.


Link: https://youtu.be/2oEq-oLZI0A

PlayList: https://www.youtube.com/playlist?list=PLJ9zDGwhhsBxTnc38aIpeTV3m_UUw-4EF
〰️〰️〰️〰️〰️〰️
© @microfrontend_ir
11👍2💯1
Microfrontend.ir
آموزش پروژه محور جاوا اسکریپت - DOM Events در قسمت پنجم از آموزش پروژه محور جاوا اسکریپت به بررسی مفهوم DOM Events ها پرداختیم. ابتدا به معرفی مفهوم و کارکرد event در استاندارد DOM پرداختیم. سپس سه شیوه اضافه کردن Event Listener ها به المان‌ها را شرح و مزایا…
آموزش پروژه محور جاوا اسکریپت - Capturing and Bubbling

در قسمت ششم از آموزش پروژه محور جاوا اسکریپت به بررسی مفهوم Capturing and Bubbling در مدیریت Event ها پرداختیم. ابتدا به بررسی رویکرد مرورگر برای مدیریت Event در فازهای Capturing و Bubbling پرداختیم و سپس شیوه اضافه کردن Event Listener برای هر کدام از فازها را شرح و در نهایت یک مثال ساده از کاربرد آن را بررسی کردیم. در خاتمه یک کوییز و سوال کوچک جاوا اسکریپتی رو مطرح کردم :)

Link: https://youtu.be/KtUmvqTcSjo

PlayList: https://www.youtube.com/playlist?list=PLJ9zDGwhhsBxTnc38aIpeTV3m_UUw-4EF
〰️〰️〰️〰️〰️〰️
© @microfrontend_ir
12👍3💯1
مصاحبه فنی جاوا اسکریپت: کلمه کلیدی this و کاربردهای آن

در این ویدیو از سری مصاحبه فنی جاوا اسکریپت یکی از پرتکرارترین مفاهیم آن یعنی کلمه کلیدی this را بررسی کردیم. کلمه کلیدی this در جاوا اسکریپت یکی از مفاهیم مهم و پیچیده است که معنای آن به نحوهٔ فراخوانی تابع بستگی دارد. در این ویدیو سعی کردم حالت‌های مختلف استفاده از this را توضیح دهم. ابتدا در مورد شرایط implicit binding کلمه کلیدی this صحبت کردم و سپس explicit binding را از طریق متدها call, apply و bind شرح دادم.

Link: https://youtu.be/fCQFyVckhs8

PlayList: https://www.youtube.com/playlist?list=PLJ9zDGwhhsBzcA25VvIevaPo-5qrKXtWY

〰️〰️〰️〰️〰️〰️
© | @microfrontend_ir
5🔥5👍2💯1
Microfrontend.ir
مصاحبه فنی جاوا اسکریپت: کلمه کلیدی this و کاربردهای آن در این ویدیو از سری مصاحبه فنی جاوا اسکریپت یکی از پرتکرارترین مفاهیم آن یعنی کلمه کلیدی this را بررسی کردیم. کلمه کلیدی this در جاوا اسکریپت یکی از مفاهیم مهم و پیچیده است که معنای آن به نحوهٔ فراخوانی…
مصاحبه فنی جاوا اسکریپت: پیاده سازی Event Emitter با تست

در این ویدیو از سری مصاحبه فنی جاوا اسکریپت به بررسی یگ مثال واقعی یعنی پیاده سازی Event Emitter با تست پرداختیم. EventEmitter یک سیستم ساده برای مدیریت و اجرای رویدادها فراهم می‌کند. این کلاس به شما اجازه می‌دهد که برای رویدادهای مختلف، شنونده‌های (listener) متفاوتی ثبت کنید و سپس این رویدادها را اجرا کنید و شنونده‌ها را فراخوانی کنید. در این ویدیو ابتدا Test Case های خود را بر اساس مساله تعریف و با استفاده از Vitest و Vite مراحل پیاده سازی و پاس کردن تست ها را پیش بردیم.

Link: https://youtu.be/ph7fqGM8gek

PlayList: https://www.youtube.com/playlist?list=PLJ9zDGwhhsBzcA25VvIevaPo-5qrKXtWY

DOM Playlist: https://www.youtube.com/playlist?list=PLJ9zDGwhhsBxTnc38aIpeTV3m_UUw-4EF


〰️〰️〰️〰️〰️〰️
© | @microfrontend_ir
13👍3💯1
Microfrontend.ir
مصاحبه فنی جاوا اسکریپت: پیاده سازی Event Emitter با تست در این ویدیو از سری مصاحبه فنی جاوا اسکریپت به بررسی یگ مثال واقعی یعنی پیاده سازی Event Emitter با تست پرداختیم. EventEmitter یک سیستم ساده برای مدیریت و اجرای رویدادها فراهم می‌کند. این کلاس به…
مصاحبه فنی جاوا اسکریپت: Prototype Inheritance

در این ویدیو از سری مصاحبه فنی جاوا اسکریپت به بررسی مفهوم Prototype Inheritance در زبان برنامه نویسی جاوا اسکریپت پرداختیم.
در برنامه‌نویسی شیءگرا، دو روش اصلی برای وراثت وجود دارد: وراثت نمونه‌ای و وراثت کلاسیک. وراثت کلاسیک بر مبنای کلاس‌ها است که در زبان‌های برنامه‌نویسی شیءگرا مانند Java، C++، و Python مورد استفاده قرار می‌گیرد. در این مدل، یک کلاس والد تعریف می‌شود و کلاس‌های فرزند از این کلاس والد وراثت می‌گیرند. کلاس‌ها نوعی الگو یا قالب هستند که اشیاء از روی آنها ساخته می‌شوند.
وراثت نمونه‌ای در زبان‌های برنامه‌نویسی مانند JavaScript استفاده می‌شود. در این مدل، اشیاء می‌توانند مستقیماً از اشیاء دیگر وراثت بگیرند، بدون نیاز به تعریف کلاس‌ها. هر شیء یک نمونه دارد که به عنوان مرجعی برای وراثت عمل می‌کند.


Link: https://youtu.be/gl6BCRRuyVc

PlayList: https://www.youtube.com/playlist?list=PLJ9zDGwhhsBzcA25VvIevaPo-5qrKXtWY

〰️〰️〰️〰️〰️〰️
© | @microfrontend_ir
12🔥1💯1
از هفته بعد تمرکز کانال بر روی داکر و پستگرس خواهد بود و پلی لیست‌های جاوا اسکریپت رو هم با سرعت کمتری ادامه می‌دم. روی یک پلی لیست آموزش Go هم دارم کار می‌کنم که چون می‌خوام مثل پلی لیست‌های ناقص دیگه نشه تا کامل ضبط نکنم منتشر نمی‌کنم. برای حمایت از کانال به دوستان خود بگویید :)

https://youtube.com/microfrontend

〰️〰️〰️〰️〰️〰️
© | @microfrontend_ir
🔥3512💯1
سلام و با عرض پوزش، در دو هفته گذشته متاسفانه عملا دسترسی نداشتم و نتونستم ویدیو منتشر کنم. از هفته بعد مجدد شروع می‌کنم.
〰️〰️〰️〰️〰️〰️
© | @microfrontend_ir
38👍6
یک سرور دیسکورد برای کانال ساختم که برخی کارها مخصوصا دسته بندی اطلاعات و رفع اشکال پلی لیست‌ها رو اونجا داشته باشیم. اگر مایل بودید خوشحال می‌شم جوین شید.

https://discord.gg/hmxWQjKb

〰️〰️〰️〰️〰️〰️
© @microfrontend_ir
👍177🥱1
Forwarded from Django Expert (Boby Cloud)
✔️ در طی چند سال گذشته از فعالیت کانال، محتواهای رایگان زیادی تولید شده و هدف کانال هم از ابتدا اشتراک دانش رایگان و عام المنفعه بوده، برای همین تصمیم گرفتیم یک بار دیگه تمام این محتواهارو در یک پیام قرار بدیم تا به راحتی قابل دسترسی برای افراد علاقمند به یادگیری باشه:

🎥 کانال یوتوب سیلیسیم مهران تعریف (آموزش پایتون و جاوااسکریپت و...)
https://www.youtube.com/@Silicium7

🎥 کانال یوتوب میکروفرانت اند (آموزش پایتون و جاواسکریپت و ...)
https://www.youtube.com/@MicroFrontend

🎥 کانال یوتوب بابی کلاد (آموزش پایتون، کلاد، دوآپس و ...)
https://www.youtube.com/@bobycloud

🎥 کانال یوتوب امیر مطهری (آموزش پایتون، میکروپایتون و ...)
https://www.youtube.com/@AmirMotahari

🎥 کانال یوتوب گیت اور هیر مانی (آموزش پایتون، دیزاین پترن و ...)
https://www.youtube.com/@GitOverHere

🎥 کانال یوتوب تورهام (آموزش پایتون، فست ای پی آی و ...)
https://www.youtube.com/@techwithtori

🎥 کانال یوتوب شهریار شریعتی (آموزش سلری، جنگو چنلز، وب فریمورک ها و ...)
https://www.youtube.com/@ShahriarShariati

🎥 کانال یوتوب دوآپس هابیز (آموزش امیربهادر - دوره پروژه محور جنگو به همراه داکر، سی آی سی دی و ...)
https://www.youtube.com/watch?v=KtYDIJN3wmM&list=PLYrn63eEqAzY5uG5ks_OquWcojzHvhp9Z

🔥 سه فایل مصاحبه با آقای حسن رمضانی که از Core Developer های Django, Gunicorn, Pydantic, Urllib3 و ... هستند در کانال موجود هست که با سرچ کردن اسم آقای "حسن رمضانی" در کانال میتونید مصاحبه هارو پیدا کنید و گوش بدید.

📚 ریپازیتوری گیتهاب Awesome Python Resources: مجموعه ای از بهترین و کامل ترین ریسورس‌های مورد نیاز برای رشد در مسیر شغلی مهندسی نرم افزار (پایتون) به همراه تفکیک بر اساس Career Path و Advanced Topics
https://github.com/DjangoEx/awesome-python-resources

📚 ریپازیتوری گیتهاب Awesome Python Roadmaps: مجموعه از رودمپ‌های مورد نیاز یک مهندس نرم افزار (پایتون) در Career Path هایی نظیر Backend، Data Scientist، Software Architect و ...
https://github.com/DjangoEx/awesome-python-roadmaps

📚 تمام ریپازیتوری‌ها به صورت یکجا نیز در صفحه گیتهاب DjangoEx قابل دسترسی هست
https://github.com/DjangoEx

تمام این موارد آموزشی رایگان هستند و میتونید ازشون استفاده کنید.
موقت: اگر مطلبی رو یادم رفته بزارم و قبلا توی کانال تولید محتوا داشتند لطفا به من (@BobyCloud) پیام بدید.

#رودمپ #پایتون #جنگو #منابع #از_کجا_شروع_کنیم

〰️〰️〰️〰️〰️〰️
© @DjangoEx
5👍4👏1
زبان Rust تضمین Race-Free بودن می‌ده، زبان Go این تضمین رو نمی‌ده ولی به فرهنگ و کالچر برنامه‌نویساش دلخوشه و به نظرم دلخوشی بجاییه و البته اگر High Availability در معماری فاکتور بحرانیه طبعا زبان یا ران تایمی مثل Erlang اولویت بالاتری داره.

〰️〰️〰️〰️〰️〰️
© | @microfrontend_ir
👍16
Microfrontend.ir
زبان Rust تضمین Race-Free بودن می‌ده، زبان Go این تضمین رو نمی‌ده ولی به فرهنگ و کالچر برنامه‌نویساش دلخوشه و به نظرم دلخوشی بجاییه و البته اگر High Availability در معماری فاکتور بحرانیه طبعا زبان یا ران تایمی مثل Erlang اولویت بالاتری داره. 〰️〰️〰️〰️〰️〰️
Race Condition
فرض کنید برنامه‌‌ای می‌نویسید که چندین ترد یا پروسس به طور همزمان در حال اجرا هستند. این ترد ها ممکن است به داده های مشترکی دسترسی داشته باشند و آنها را بروزرسانی کنند. حال اگر این دسترسی و به روزرسانی بدون کنترل و نظم انجام شود، به طوری که ترتیب دقیق دسترسی و به روزرسانی داده ها توسط ترد ها مشخص نباشد، شرایط مسابقه (Race Condition) رخ می دهد.
در این مثال، متغیر counter به عنوان یک شمارنده استفاده می شود. 10 تابع به طور همزمان مقدار counter را با استفاده از تابع increment افزایش می دهند.
در Rust با وجود اینکه ما با چندین ترد به شمارنده دسترسی داریم، سیستم مالکیت Rust تضمین می‌کند که فقط یک ترد می‌تواند همزمان شمارنده را به‌صورت تغییرپذیر یا میوتیبل در اختیار بگیرد و با قطعیت می‌توان گفت که عدد ۱۰ چاپ خواهد شد.
در Go با استفاده از یک اشاره گر مستقیماً به متغیر شمارنده دسترسی داریم. این یک Race Condition بالقوه ایجاد می کند زیرا چندین گوروتین می توانند همزمان آن را تغییر دهند. مقدار نهایی شمارنده بسته به اینکه کدام گوروتین در مسابقه برای دسترسی به آن "برنده" شود، می تواند غیرقابل پیش بینی باشد.
👍181
احتمالا همه‌تون داستان ترکیدن سرویس‌های مایکروسافتی در سطح جهان رو شنیدید. داستان از این قراره که Vincent Flibustier که روز اول کاریش در شرکت Crowdstrike فکر میکنه یک خط کد رو برای بهینه سازی تغییر بده که در عکس می‌بینید.


به نظرتون تفاوت Rust و Go در کار با پوینترها چطوریه؟

** این تیکه کد و موضوع شوخیه ولی جواب سوال مهمه :)
کست -1 به size_t که بدون علامته رفتارهای متفاوت داره ولی معمولا بزرگترین عدد قابل شمارش صحیح تو اون سیستم رو برمیگردونه
〰️〰️〰️〰️〰️〰️
© | @microfrontend_ir
👍4😁4😢1
آموزش GO
نقدهای مختلفی از منظر زبان‌های برنامه‌نویسی و گرامر به آن وارد است و نسبت به زبان‌های مدرنی مانند کاتلین و سیلان و .. که در آن سال‌ها توسعه داده شده بود پیشرفت چندانی به حساب نمی‌آید. راب این نقد را قبول دارد و می گوید که هدف اصلا این نبود اما امروزه آن را زبان زیرساخت ابری می دانند.
اما این زبان که در آغاز خیلی دوست داشتنی نبود چگونه اینقدر موفق شد. راب معتقد است که دنبال راهی برای نوشتن برنامه‌های بهتر بودند تا فقط صرف گرامر و سینتکس زبان. گو برای سیستم های توزیع شده ایجاد شد اما سادگی خود را هم نگه داشت.
سه سازنده گو در سال ۲۰۰۷ در یک نشستی به فکر ساخت آن افتادند.

Link: https://youtu.be/5tGPSf5rhjE

PlayList: https://www.youtube.com/playlist?list=PLJ9zDGwhhsBx6qqziDa4PoWUlKBw4rlBO

〰️〰️〰️〰️〰️〰️
© | @microfrontend_ir
🔥15👍62
Microfrontend.ir
در قسمت اول از پلی لیست آموزش Go ابتدا به بررسی مفهوم خوانایی کد و ضرورت آن پرداختیم سپس نصب گو را توضیح و همچنین یکی از دیباگرهای شناخته شده فضای گو به نام Delve را نصب کردیم. Link: https://youtu.be/CqzBHeqOblU PlayList: https://www.youtube.com/playli…
در قسمت دوم از آموزش Go ابتدا به بررسی Type System گو پرداختیم و سپس شیوه تعریف متغیر را در این زبان توضیح دادیم. در نهایت مقدمه‌ای داشتیم بر پوینتر و reflection در این زبان برنامه نویسی.



Link: https://youtu.be/Pq-CHQjODvM

PlayList: https://www.youtube.com/playlist?list=PLJ9zDGwhhsBx6qqziDa4PoWUlKBw4rlBO

〰️〰️〰️〰️〰️〰️
© | @microfrontend_ir
😍15
Microfrontend.ir
در قسمت دوم از آموزش Go ابتدا به بررسی Type System گو پرداختیم و سپس شیوه تعریف متغیر را در این زبان توضیح دادیم. در نهایت مقدمه‌ای داشتیم بر پوینتر و reflection در این زبان برنامه نویسی. Link: https://youtu.be/Pq-CHQjODvM PlayList: https://www.youtu…
تو این قسمت یه تشری به جاوا اسکریپت زدم و گفتم 1+'1' کار می‌کنه و عملکردی متفاوت از 1-'1' دارد. اما آیا این دستورات رو تو Go امتحان کردید؟
آنچه در قسمت بعدی خواهید دید 🙂
😁13👍1
Microfrontend.ir
در قسمت دوم از آموزش Go ابتدا به بررسی Type System گو پرداختیم و سپس شیوه تعریف متغیر را در این زبان توضیح دادیم. در نهایت مقدمه‌ای داشتیم بر پوینتر و reflection در این زبان برنامه نویسی. Link: https://youtu.be/Pq-CHQjODvM PlayList: https://www.youtu…
در قسمت سوم از آموزش Go به معرفی مفهوم const و تعریف آن پرداختیم. ابتدا مفهوم literal در زبان‌ها برنامه نویسی را شرح و سپس از معایب Implicit Conversion صحبت کردیم و در نهایت شیوه تعریف const در golang را شرح دادیم. در زبان گو دو نوع const وجود دارد. نوع اول بدون نوع است و میتواند در زمان استفاده نوع خود را دریافت کند و به برنامه نویس امکان implicit conversion می دهد و نوع دوم ثابت های نوع دار هستند که نوع آن ها قابل تغییر نیست.



Link: https://youtu.be/rJoYcSPlmoY

PlayList: https://www.youtube.com/playlist?list=PLJ9zDGwhhsBx6qqziDa4PoWUlKBw4rlBO

〰️〰️〰️〰️〰️〰️
© | @microfrontend_ir
👍13🔥7
Microfrontend.ir
در قسمت سوم از آموزش Go به معرفی مفهوم const و تعریف آن پرداختیم. ابتدا مفهوم literal در زبان‌ها برنامه نویسی را شرح و سپس از معایب Implicit Conversion صحبت کردیم و در نهایت شیوه تعریف const در golang را شرح دادیم. در زبان گو دو نوع const وجود دارد. نوع اول…
در قسمت چهارم از آموزش GO به بررسی انواع داده در زبان گو پرداختیم. در گو Data Type های مختلفی وجود دارد که اساسی ترین آنها Built-in Type ها یعنی اعداد، رشته و بول است. ابتدا نوع داده رشته‌ای را تشریح و چالش‌های آن بویژه در تغییر و مقایسه آنها را توضیح دادم. بعد از نوع داده بول به بررسی انواع عددی و ویژگی‌های آن‌ها بویژه مفهوم Overflow پرداختیم.

Link: https://youtu.be/Tyifao9VwNU

PlayList: https://www.youtube.com/playlist?list=PLJ9zDGwhhsBx6qqziDa4PoWUlKBw4rlBO

〰️〰️〰️〰️〰️〰️
© | @microfrontend_ir
🔥17👍1
Microfrontend.ir
در قسمت چهارم از آموزش GO به بررسی انواع داده در زبان گو پرداختیم. در گو Data Type های مختلفی وجود دارد که اساسی ترین آنها Built-in Type ها یعنی اعداد، رشته و بول است. ابتدا نوع داده رشته‌ای را تشریح و چالش‌های آن بویژه در تغییر و مقایسه آنها را توضیح دادم.…
در قسمت پنجم از آموزش GO به بررسی ساختمان داده آرایه و کار با آن پرداختیم. ابتدا شیوه تعریف و مقداردهی آرایه ها را ببرسی کردم. سپس مفهوم Copy Value در کار با آرایه ها در گو را شرح و با پایتون مقایسه کردیم. در گو می‌توان آرایه را به شرطی که از یک تایپ باشند با هم مقایسه و ارزیابی کرد.
در زبان گو برای حلقه‌های تکرار صرفا یک دستور for با حالت های مختلف داریم که تعریف انواع مختلف حلفه‌ها را ساده کرده است و مشخصا برای پیمایش آرایه‌ها از حالت for range استفاده میکنیم.
در نهایت با یک مثال ساده ساخت آرایه چند بعدی را نیز بررسی کردیم.

Link: https://youtu.be/VGC2AjSTYfQ

PlayList: https://www.youtube.com/playlist?list=PLJ9zDGwhhsBx6qqziDa4PoWUlKBw4rlBO

〰️〰️〰️〰️〰️〰️
© | @microfrontend_ir
🔥11👍21
Microfrontend.ir
در قسمت پنجم از آموزش GO به بررسی ساختمان داده آرایه و کار با آن پرداختیم. ابتدا شیوه تعریف و مقداردهی آرایه ها را ببرسی کردم. سپس مفهوم Copy Value در کار با آرایه ها در گو را شرح و با پایتون مقایسه کردیم. در گو می‌توان آرایه را به شرطی که از یک تایپ باشند…
در قسمت ششم از آموزش GO کار با Slice و نکته‌های آن را بررسی کردیم. ابتدا تعریف متغیر از نوع اسلایس و ساختار آن در مموری را شرح دادیم. هر متغیر slice در واقع شامل یک هدر یک آرایه است. در هدر جزییات و مشخصات دیتا تعریف و داده‌ها در درون آرایه ذخیره می‌شود. سپس دستور make که به ما امکان تعریف اسلایس اما با کنترل بیشتر بر روی هدر می دهد را توضیح دادیم. برای رسیدن به پویایی یعنی اضافه کردن آیتم به اسلایس را از طریق دستور append توضیح دادم. یکی از جذابیت‌های اسلایس این است که می‌توان از یک آرایه یا اسلایس دیگر به عنوان دیتای اصلی استفاده کنیم. این رویکرد هم انعطاف بالایی به اسلایس می‌دهد و هم ممکن است چالش ‌هایی را به وجود بیاورد که سعی کردیم این چالش ها را بررسی کنیم و در نهایت استفاده از حلقه for range برای پیمایش عناصر اسلایس و نکته‌های مهمی در استفاده از آن را مطرح کردم.



Link: https://youtu.be/Mlp1aPtFCnY

PlayList: https://www.youtube.com/playlist?list=PLJ9zDGwhhsBx6qqziDa4PoWUlKBw4rlBO

〰️〰️〰️〰️〰️〰️
© | @microfrontend_ir
🔥171