عید همیشه فرصت خوبی برای یادگیری بوده
ما امسال تو دیجیشهر یک برنامه کارآموزی داریم تصمیم گرفتم برای کارآموزای تیمم (فرانت) یه پیش شادی آماده کنم😁💐
شامل:
کانسپت های جاوااسکریپت
ریکت
لینوکس
یه سری لینک های مفید رو هم گذاشتم که دیدنشون خالی از لطف نیست.
اینجا هم به اشتراک میذارم شاید برای دوستان دیگه هم مفید باشه❤️
https://roadmap.sh/r/peyk-shadi-2cwiq
ما امسال تو دیجیشهر یک برنامه کارآموزی داریم تصمیم گرفتم برای کارآموزای تیمم (فرانت) یه پیش شادی آماده کنم😁💐
شامل:
کانسپت های جاوااسکریپت
ریکت
لینوکس
یه سری لینک های مفید رو هم گذاشتم که دیدنشون خالی از لطف نیست.
اینجا هم به اشتراک میذارم شاید برای دوستان دیگه هم مفید باشه❤️
https://roadmap.sh/r/peyk-shadi-2cwiq
💙💙💙
امروز تقریبا شد دو سال که در مجموعه دیجیشهر به عنوان فرانتاند تیم لید فعالم و این دو سال برای من پر از تجربه های مختلف بوده که دوست دارم مهمتریناش رو به صورت یک جملهای اینجا بذارم:
۱. دیسیپلین کلید پیشرفت توی طولانی مدته.
۲. یادگیری رو به عنوان یه پروژه نگاه نکنید٬ یه روتینه.
۳. هر آدمی یه لمی داره و کار کردن با آدما خیلی میتونه پیچیده بشه اگه دقیق بهشون دقت نکنی.
۴. سافت اسکیل به اندازه هارد اسکلیل مهمه!
۵. اگه روز اول همکاری با یه مجموعه به این فکر کنی که چه برندی از خودت میخوای بسازی خیلی کارت راحتتر میشه.
۶. کنجکاو باش و سعی کن بیزنسی که داری براش ارزش خلق میکنی رو بفهمی.
۷. رو آدم ها حساب کن و بهشون شانس بده!
امروز تقریبا شد دو سال که در مجموعه دیجیشهر به عنوان فرانتاند تیم لید فعالم و این دو سال برای من پر از تجربه های مختلف بوده که دوست دارم مهمتریناش رو به صورت یک جملهای اینجا بذارم:
۱. دیسیپلین کلید پیشرفت توی طولانی مدته.
۲. یادگیری رو به عنوان یه پروژه نگاه نکنید٬ یه روتینه.
۳. هر آدمی یه لمی داره و کار کردن با آدما خیلی میتونه پیچیده بشه اگه دقیق بهشون دقت نکنی.
۴. سافت اسکیل به اندازه هارد اسکلیل مهمه!
۵. اگه روز اول همکاری با یه مجموعه به این فکر کنی که چه برندی از خودت میخوای بسازی خیلی کارت راحتتر میشه.
۶. کنجکاو باش و سعی کن بیزنسی که داری براش ارزش خلق میکنی رو بفهمی.
۷. رو آدم ها حساب کن و بهشون شانس بده!
👾15🍾13🔥2
سلام رفقا
با تاخیر عیدتون مبارک
امیدوارم امسال بتونید به هدفاتون پایبند باشید و خوب پیشرفت کنید.❤️
من بعد یه سفر پر ماجرا تازه یکم کارام رو جمع کردم و برگشتم به روتین دوستایی که قرار منتورینگ داشتیم و نرسیدیم جلساتشو بریم بهم پیام بدید که لطفا ست کنیم.
ارادت🫶
با تاخیر عیدتون مبارک
امیدوارم امسال بتونید به هدفاتون پایبند باشید و خوب پیشرفت کنید.❤️
من بعد یه سفر پر ماجرا تازه یکم کارام رو جمع کردم و برگشتم به روتین دوستایی که قرار منتورینگ داشتیم و نرسیدیم جلساتشو بریم بهم پیام بدید که لطفا ست کنیم.
ارادت🫶
🍾11👾2🍓1
🔧 اهمیت ریفکتور کردن کد (Refactoring) + منابع پیشنهادی
برنامهنویسی فقط نوشتن کد نیست، نگهداری و بهبود اون هم به همون اندازه مهمه.
ریفکتور کردن یعنی بازنویسی کد بدون تغییر در عملکردش، با هدف خواناتر، سادهتر و قابل نگهداریتر شدنش.
✅ چرا ریفکتور مهمه؟
کاهش پیچیدگی کد
جلوگیری از ایجاد باگ در آینده
آمادگی برای افزودن قابلیتهای جدید
همکاری بهتر در تیم
افزایش سرعت توسعه در بلندمدت
💡 نشونههایی که بهت میگن وقت ریفکتوره:
کدی که حتی خودت هم نمیفهمیش 😅
توابع خیلی طولانی
تکرار زیاد تو کد
وابستگیهای زیاد بین بخشها
📚 منابع پیشنهادی برای یادگیری ریفکتور:
🔹 کتاب "Refactoring" نوشتهی Martin Fowler
یه مرجع کلاسیک و کاربردی برای درک اصول و تکنیکهای ریفکتور.
🔹 وبسایت Refactoring.guru
ساده، مصور، و به شدت آموزنده!
🌐 https://refactoring.guru
برنامهنویسی فقط نوشتن کد نیست، نگهداری و بهبود اون هم به همون اندازه مهمه.
ریفکتور کردن یعنی بازنویسی کد بدون تغییر در عملکردش، با هدف خواناتر، سادهتر و قابل نگهداریتر شدنش.
✅ چرا ریفکتور مهمه؟
کاهش پیچیدگی کد
جلوگیری از ایجاد باگ در آینده
آمادگی برای افزودن قابلیتهای جدید
همکاری بهتر در تیم
افزایش سرعت توسعه در بلندمدت
💡 نشونههایی که بهت میگن وقت ریفکتوره:
کدی که حتی خودت هم نمیفهمیش 😅
توابع خیلی طولانی
تکرار زیاد تو کد
وابستگیهای زیاد بین بخشها
📚 منابع پیشنهادی برای یادگیری ریفکتور:
🔹 کتاب "Refactoring" نوشتهی Martin Fowler
یه مرجع کلاسیک و کاربردی برای درک اصول و تکنیکهای ریفکتور.
🔹 وبسایت Refactoring.guru
ساده، مصور، و به شدت آموزنده!
🌐 https://refactoring.guru
refactoring.guru
Refactoring and Design Patterns
Refactoring is a controllable process of improving code without creating new functionality. Design Patterns are typical solutions to the commonly occurring problems in software design.
🍾7👾3
این کتاب رو امروز تموم کردم و تصمیم گرفتم دیدمو بهش بگم:
این کتاب یه جورایی با هیچ کتاب دیگهای که خوندم شبیه نیست. انگار داری تیکههایی از خاطرات، خیالپردازیها و فکرای عجیب نویسنده رو ورق میزنی، بدون اینکه دنبال یه خط داستانی مشخص باشی. ریچارد براتیگان با یه لحن ساده ولی شاعرانه، از چیزای خیلی معمولی یه دنیای خاص ساخته. بعضی جاها خندهت میگیره، بعضی جاها یه حس تنهایی خاصی تو دل آدم میندازه. اگه دنبال یه داستان منظم و کلاسیکی، این کتاب شاید اذیتت کنه. ولی اگه دوست داری توی ذهن یه آدم خلاق و متفاوت پرسه بزنی، احتمالاً ازش خوشت میاد.
این کتاب یه جورایی با هیچ کتاب دیگهای که خوندم شبیه نیست. انگار داری تیکههایی از خاطرات، خیالپردازیها و فکرای عجیب نویسنده رو ورق میزنی، بدون اینکه دنبال یه خط داستانی مشخص باشی. ریچارد براتیگان با یه لحن ساده ولی شاعرانه، از چیزای خیلی معمولی یه دنیای خاص ساخته. بعضی جاها خندهت میگیره، بعضی جاها یه حس تنهایی خاصی تو دل آدم میندازه. اگه دنبال یه داستان منظم و کلاسیکی، این کتاب شاید اذیتت کنه. ولی اگه دوست داری توی ذهن یه آدم خلاق و متفاوت پرسه بزنی، احتمالاً ازش خوشت میاد.
🍾10
🎯 دعوت به همکاری در یک پروژه متنباز
سلام به جامعهی جاوااسکریپتیها 👋
ما داریم روی یه پایگاه دانش فارسی متنباز کار میکنیم و خوشحال میشیم شما هم کنارمون باشید.
🔧 تکنولوژی: JavaScript
🌍 هدف: ساخت یک مرجع دانش ساده و مفید به زبان فارسی
🤝 همکاری در توسعه، طراحی، محتوا و هر کاری که دوست دارید
اگه علاقهمند بودید، خوشحال میشم پیام بدید 💬
@arminshaikhy
سلام به جامعهی جاوااسکریپتیها 👋
ما داریم روی یه پایگاه دانش فارسی متنباز کار میکنیم و خوشحال میشیم شما هم کنارمون باشید.
🔧 تکنولوژی: JavaScript
🌍 هدف: ساخت یک مرجع دانش ساده و مفید به زبان فارسی
🤝 همکاری در توسعه، طراحی، محتوا و هر کاری که دوست دارید
اگه علاقهمند بودید، خوشحال میشم پیام بدید 💬
@arminshaikhy
🍾15👾2💩1
Forwarded from @danialbehzadi:mozilla.org دانیال بهزادی
بهترین آموزش گیتی که در این ۲۰−۲۵ سال اخیر دیدم:
https://web.archive.org/web/20161121145226/http://rypress.com:80/tutorials/git/index
https://web.archive.org/web/20161121145226/http://rypress.com:80/tutorials/git/index
web.archive.org
Ry’s Git Tutorial - RyPress
Ry’s Git Tutorial is a complete introduction to distributed
version control with a focus on practical command line usage. We explain Git’s robust branching, merging, and
collaboration capabilities from the ground up, so prior experience with
centralized systems…
version control with a focus on practical command line usage. We explain Git’s robust branching, merging, and
collaboration capabilities from the ground up, so prior experience with
centralized systems…
🔥3💯1
اخیراً با یکی از توسعهدهندههای پایتون برای پیادهسازی یک سرویس SSO با Node.js همکاری داشتم، و تجربهای پر از یادگیری بود — مخصوصاً از نظر تفاوتهای ذهنی بین دو زبان.
چالش اول برای اون، درک ماهیت asynchronous در Node.js بود. مفاهیمی مثل event loop و استفاده از async/await در مقایسه با مدل همگام پایتون، کاملاً متفاوت بودن و باعث شد در اوایل پروژه با پیچیدگیهایی مواجه بشه.
در مرحله بعد، کار با Express.js و ساختار routeها، middlewareها و ساختار کلی اپلیکیشن در Node.js براش جدید بود. با اینکه کانسپتها خیلی متفاوت نبودن، اما نحوه پیادهسازی و ابزارهای موجود فرق زیادی داشتن.
ما از TypeScript یا استانداردهایی مثل OAuth2 یا SAML استفاده نکردیم، بنابراین همه چیز به صورت سبکتر و سادهسازیشده پیادهسازی شد. همین موضوع باعث شد توسعه سریعتر پیش بره، ولی در عوض نیاز به دقت بیشتری توی طراحی و امنیت داشتیم.
جالبترین بخش ماجرا برای من، دیدن تلاش اون برای تطبیق با یک زبان و چارچوب جدید بود — و این بهم یادآوری کرد که زبان برنامهنویسی مهم نیست، بلکه طرز فکر توسعهدهنده است که نتیجه رو میسازه.
چالش اول برای اون، درک ماهیت asynchronous در Node.js بود. مفاهیمی مثل event loop و استفاده از async/await در مقایسه با مدل همگام پایتون، کاملاً متفاوت بودن و باعث شد در اوایل پروژه با پیچیدگیهایی مواجه بشه.
در مرحله بعد، کار با Express.js و ساختار routeها، middlewareها و ساختار کلی اپلیکیشن در Node.js براش جدید بود. با اینکه کانسپتها خیلی متفاوت نبودن، اما نحوه پیادهسازی و ابزارهای موجود فرق زیادی داشتن.
ما از TypeScript یا استانداردهایی مثل OAuth2 یا SAML استفاده نکردیم، بنابراین همه چیز به صورت سبکتر و سادهسازیشده پیادهسازی شد. همین موضوع باعث شد توسعه سریعتر پیش بره، ولی در عوض نیاز به دقت بیشتری توی طراحی و امنیت داشتیم.
جالبترین بخش ماجرا برای من، دیدن تلاش اون برای تطبیق با یک زبان و چارچوب جدید بود — و این بهم یادآوری کرد که زبان برنامهنویسی مهم نیست، بلکه طرز فکر توسعهدهنده است که نتیجه رو میسازه.
🔥12💯2
وی یکی از پروژهها، موقع توسعه یه بخش از اپلیکیشن، با مشکلی برخورد کردم که اولش خیلی ساده به نظر میرسید، اما باعث میشد اطلاعات اشتباهی به کاربر نشون داده بشه. ماجرا از اونجا شروع شد که کاربر موقع جستوجو یا جابهجا شدن سریع بین آیتمها، با سرعت بالا روی گزینههای مختلف کلیک میکرد و با هر تغییر، یه درخواست جدید برای گرفتن اطلاعات به سرور میرفت.
همهچیز ظاهراً درست کار میکرد — هر درخواست ارسال میشد و پاسخش هم میاومد. ولی بعضی وقتا یه اتفاق عجیب میافتاد: پاسخی که مربوط به درخواست قبلی بود، بعد از درخواست جدیدتر برمیگشت و باعث میشد دیتای اشتباهی توی صفحه نمایش داده بشه.
بعد از یه بررسی دقیقتر، فهمیدم با یه Race Condition طرفم — یعنی وقتی چند عملیات async با هم اجرا میشن و نتیجه به خاطر ترتیب نامناسب تموم شدنشون، بهم میریزه.
برای حلش اومدم یه راهحلی پیاده کردم که مطمئن بشم فقط آخرین درخواست باقی میمونه و درخواستهای قبلی یا نادیده گرفته میشن یا لغو. این کار رو میشه با چیزایی مثل AbortController یا چک کردن اینکه پاسخ مربوط به همون درخواست فعلیه انجام داد.
همهچیز ظاهراً درست کار میکرد — هر درخواست ارسال میشد و پاسخش هم میاومد. ولی بعضی وقتا یه اتفاق عجیب میافتاد: پاسخی که مربوط به درخواست قبلی بود، بعد از درخواست جدیدتر برمیگشت و باعث میشد دیتای اشتباهی توی صفحه نمایش داده بشه.
بعد از یه بررسی دقیقتر، فهمیدم با یه Race Condition طرفم — یعنی وقتی چند عملیات async با هم اجرا میشن و نتیجه به خاطر ترتیب نامناسب تموم شدنشون، بهم میریزه.
برای حلش اومدم یه راهحلی پیاده کردم که مطمئن بشم فقط آخرین درخواست باقی میمونه و درخواستهای قبلی یا نادیده گرفته میشن یا لغو. این کار رو میشه با چیزایی مثل AbortController یا چک کردن اینکه پاسخ مربوط به همون درخواست فعلیه انجام داد.
🔥14🍓2
Forwarded from 🎄 DevTwitter | توییت برنامه نویسی
برای کسایی که دوست دارن با n8n کار کنند، یک نفر یک سری پروژه درست کرده به همراه یک ویدیو ۲ ساعته که این پروژه ها توضیح میده. چون من خودم از این ابزار استفاده نمیکنم کیفیت پروژه ها و ویدیو را نمیدونم، ولی به نظر میاد که فیدبک مثبت گرفته.
Youtube: https://youtube.com/watch?v=8-nTKVnUnwM
@DevTwitter | <Mehdi Allahyari/>
Youtube: https://youtube.com/watch?v=8-nTKVnUnwM
@DevTwitter | <Mehdi Allahyari/>
🔥5⚡1
Forwarded from FullstacksJS — Academy
خطر هوش مصنوعی برای افراد سنیور:
استفاده از هوش مصنوعی چطوری می تونه بهمون آسیب بزنه؟
آیا اینکه هوش مصنوعی رو از فرایند توسعه حذف کنیم خوبه؟
مرز بین مثبت و منفی بودن هوش مصنوعی برای برنامه نویس ها کجا مشخص میشه؟
#exp #ai #competency #ide
استفاده از هوش مصنوعی چطوری می تونه بهمون آسیب بزنه؟
آیا اینکه هوش مصنوعی رو از فرایند توسعه حذف کنیم خوبه؟
مرز بین مثبت و منفی بودن هوش مصنوعی برای برنامه نویس ها کجا مشخص میشه؟
#exp #ai #competency #ide
🔥5
Forwarded from 🎄 DevTwitter | توییت برنامه نویسی
انتخاب زیرساخت مناسب برای دیپلوی پروژهها؛ فقط یک تصمیم فنی نیست، بلکه نیازمند یک تصمیم استراتژیکه.
امروزه، با گسترش ابزارهای کانتینرسازی، معمولاً سه گزینه هست که بیشتر از همه به چشم میاد:
Docker Compose
+ عالی برای توسعه و محیطهای لوکال
+ ساده، سریع و بدون نیاز به منابع زیاد
- مناسب نبودن برای پروژههای High Availability
Docker Swarm
+ راهحلی سریع برای مقیاسبندی ساده روی چند سرور
+ راهاندازی راحتتر نسبت به Kubernetes
- امکانات محدود نسبت به مباحث پیشرفته
- خود داکر بیشتر به Kubernetes اهمیت میده
Kubernetes (K8s)
+ استاندارد بازار کار برای مقیاسبندی، پایداری، و مدیریت سیستمهای بزرگ
+ Self-Healing، Load Balancing پیشرفته، و مقیاسپذیری بینهایت
+ اکوسیستم قدرتمند از ابزارها (CI/CD, Monitoring, Security)
- نیازمند تخصص بیشتر
- پیچیدگی در راهاندازی اولیه
اما در دنیای واقعی چه اتفاقی میوفته؟
Docker Compose بیشتر برای توسعهی لوکال یا پروژههای کوچک استفاده میشه.
Docker Swarm به تدریج جایگاه خودش رو از دست داده و کمتر در پروژهها دیده میشه.
Kubernetes به استاندارد اصلی بازار کار تبدیل شده؛ به طوری که همه به نوعی روی Kubernetes تاکید میکنن.
به عنوان نتیجهگیری نهایی و البته نظر شخصی:
هیچ ابزاری به خودی خود بهترین نیست.
بهترین انتخاب، ابزاری است که با نیازهای امروز و چشمانداز فردای پروژه هماهنگ باشه.
ولی اگر به فکر آینده شغلی، رشد و مقیاسپذیری هستی، باید Kubernetes رو جدی بگیری.
@DevTwitter | <Farzin Shams/>
امروزه، با گسترش ابزارهای کانتینرسازی، معمولاً سه گزینه هست که بیشتر از همه به چشم میاد:
Docker Compose
+ عالی برای توسعه و محیطهای لوکال
+ ساده، سریع و بدون نیاز به منابع زیاد
- مناسب نبودن برای پروژههای High Availability
Docker Swarm
+ راهحلی سریع برای مقیاسبندی ساده روی چند سرور
+ راهاندازی راحتتر نسبت به Kubernetes
- امکانات محدود نسبت به مباحث پیشرفته
- خود داکر بیشتر به Kubernetes اهمیت میده
Kubernetes (K8s)
+ استاندارد بازار کار برای مقیاسبندی، پایداری، و مدیریت سیستمهای بزرگ
+ Self-Healing، Load Balancing پیشرفته، و مقیاسپذیری بینهایت
+ اکوسیستم قدرتمند از ابزارها (CI/CD, Monitoring, Security)
- نیازمند تخصص بیشتر
- پیچیدگی در راهاندازی اولیه
اما در دنیای واقعی چه اتفاقی میوفته؟
Docker Compose بیشتر برای توسعهی لوکال یا پروژههای کوچک استفاده میشه.
Docker Swarm به تدریج جایگاه خودش رو از دست داده و کمتر در پروژهها دیده میشه.
Kubernetes به استاندارد اصلی بازار کار تبدیل شده؛ به طوری که همه به نوعی روی Kubernetes تاکید میکنن.
به عنوان نتیجهگیری نهایی و البته نظر شخصی:
هیچ ابزاری به خودی خود بهترین نیست.
بهترین انتخاب، ابزاری است که با نیازهای امروز و چشمانداز فردای پروژه هماهنگ باشه.
ولی اگر به فکر آینده شغلی، رشد و مقیاسپذیری هستی، باید Kubernetes رو جدی بگیری.
@DevTwitter | <Farzin Shams/>
🔥2💯2
رفقای فرانتاند دولوپر و کسایی که دارن تازه شروع میکنن
nextjs.org/learn
حتما این لینکو چک کنین خیلی آموزش خوبیه برای نکست و ریکت، تهشم ظاهرا مدرک میده میتونین توی لینکدین به اشتراک بذارین که بنظرم کار باحالیه!
nextjs.org/learn
حتما این لینکو چک کنین خیلی آموزش خوبیه برای نکست و ریکت، تهشم ظاهرا مدرک میده میتونین توی لینکدین به اشتراک بذارین که بنظرم کار باحالیه!
🍾7🔥4💯3🍌1
Forwarded from 1agilist
Media is too big
VIEW IN TELEGRAM
🔸Technical debt should be addressed with a realistic plan; otherwise, the payback cost rises unpredictably as it accumulates.
🔹With that in mind, I’ve started my first round of technical debt payback this year. Just before this Nowruz, we had a great session with Iranian Agile practitioners on Estimation topic in agile teams, hosted by Epic Agile. You can watch the recording here and explore key takeaways in the comments.
🔸بدهیهای فنی را باید با یک برنامهریزی واقع بینانه پس داد وگرنه وقتی تلنبار میشوند روی همدیگر از یه جایی به بعد دیگر هزینه بالایی برای بازپرداخت آنها به ما تحمیل میشود.
🔹با این مقدمه میخواستم اولین بازپرداخت بدهیهای فنی خودم در این سال را انجام بدهم. پیش از نوروز امسال یک گفتگوی تعاملی داشتیم با چابک کاران ایرانی به میزبانی بچههای اپیک اجایل در موضوع تخمین در تیمهای چابک که ویدئو این جلسه را میتوانید از اینجا داشته باشید و نکات تکمیلی را در کامنتها ملاحظه فرمایید.
https://www.youtube.com/watch?v=VqP_kjmb_rM
instagram.com/1agilist
twitter.com/1agilist
@YekAgilist
🔹With that in mind, I’ve started my first round of technical debt payback this year. Just before this Nowruz, we had a great session with Iranian Agile practitioners on Estimation topic in agile teams, hosted by Epic Agile. You can watch the recording here and explore key takeaways in the comments.
🔸بدهیهای فنی را باید با یک برنامهریزی واقع بینانه پس داد وگرنه وقتی تلنبار میشوند روی همدیگر از یه جایی به بعد دیگر هزینه بالایی برای بازپرداخت آنها به ما تحمیل میشود.
🔹با این مقدمه میخواستم اولین بازپرداخت بدهیهای فنی خودم در این سال را انجام بدهم. پیش از نوروز امسال یک گفتگوی تعاملی داشتیم با چابک کاران ایرانی به میزبانی بچههای اپیک اجایل در موضوع تخمین در تیمهای چابک که ویدئو این جلسه را میتوانید از اینجا داشته باشید و نکات تکمیلی را در کامنتها ملاحظه فرمایید.
https://www.youtube.com/watch?v=VqP_kjmb_rM
instagram.com/1agilist
twitter.com/1agilist
@YekAgilist
🔥3💯2
