این روز ها یه متولوژی مورد بحث و توجه گرفته به اسم Shape Up که تازگی ها برخی شرکت ها شروع کردن به استفاده کردن که برخی از نقایص اسکرام رو پوشش میده ظاهرا
برام جالب بود . گفتم با شما هم به اشتراک بزارم .
اگر تجربه ای در این زمینه دارید . به اشتراک بزارید.😊
شیپآپ یک چارچوب مدیریت پروژه است که توسط شرکت Basecamp معرفی شده و هدف اصلی آن افزایش کنترل و پیشبینیپذیری در فرآیند توسعه نرمافزار است. برخلاف اسکرام که مبتنی بر اسپرینتهای کوتاهمدت (۲-۴ هفته) و رویکرد چابک (Agile) است، Shape Up از چرخههای ۶ هفتهای استفاده میکند. در این روش، تیمها ابتدا بهطور دقیق ایدهها را پردازش (Shaping) میکنند و سپس در یک بازه زمانی ثابت توسعه میدهند.
مراحل اصلی شیپآپ:
اول Shaping: مشخص کردن ایدههای کلی و طراحی محدوده پروژه قبل از ورود تیم توسعه.
دوم Betting Table: بررسی ایدهها و انتخاب پروژههایی که بیشترین ارزش را دارند.
سوم Building: یک دوره ۶ هفتهای که در آن تیم توسعه بدون وقفه روی محصول کار میکند.
چهارم Cool Down: یک دوره استراحت و مرور پس از تکمیل پروژه.
در این باره bootcamp یک کتاب ارائه داده که میتونید از اینجا بخونید .
https://basecamp.com/shapeup
یک شخص هم امده شروع کرد این کتاب رو به فارسی ترجمه کنه که اینجا در دسترس هست
https://github.com/mohamadsmt/Shapeup
این هم یک مقاله که اسکرام و shape up رو مقایسه کرد .
https://vrgl.ir/n93i3
@panicdev
برام جالب بود . گفتم با شما هم به اشتراک بزارم .
اگر تجربه ای در این زمینه دارید . به اشتراک بزارید.
شیپآپ یک چارچوب مدیریت پروژه است که توسط شرکت Basecamp معرفی شده و هدف اصلی آن افزایش کنترل و پیشبینیپذیری در فرآیند توسعه نرمافزار است. برخلاف اسکرام که مبتنی بر اسپرینتهای کوتاهمدت (۲-۴ هفته) و رویکرد چابک (Agile) است، Shape Up از چرخههای ۶ هفتهای استفاده میکند. در این روش، تیمها ابتدا بهطور دقیق ایدهها را پردازش (Shaping) میکنند و سپس در یک بازه زمانی ثابت توسعه میدهند.
مراحل اصلی شیپآپ:
اول Shaping: مشخص کردن ایدههای کلی و طراحی محدوده پروژه قبل از ورود تیم توسعه.
دوم Betting Table: بررسی ایدهها و انتخاب پروژههایی که بیشترین ارزش را دارند.
سوم Building: یک دوره ۶ هفتهای که در آن تیم توسعه بدون وقفه روی محصول کار میکند.
چهارم Cool Down: یک دوره استراحت و مرور پس از تکمیل پروژه.
در این باره bootcamp یک کتاب ارائه داده که میتونید از اینجا بخونید .
https://basecamp.com/shapeup
یک شخص هم امده شروع کرد این کتاب رو به فارسی ترجمه کنه که اینجا در دسترس هست
https://github.com/mohamadsmt/Shapeup
این هم یک مقاله که اسکرام و shape up رو مقایسه کرد .
https://vrgl.ir/n93i3
@panicdev
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥7👍3
🚫 خداحافظ reCAPTCHA، سلام Turnstile! 👋
🤖 قبلاً Google reCAPTCHA خیلی خوب بود. بدون دردسر رباتها رو فیلتر میکرد، بدون اینکه تجربه کاربر رو خراب کنه.
همه خوشحال بودن، تا وقتی که...
💰 گوگل تصمیم گرفت پول دربیاره!
💸 فقط 10,000 درخواست رایگان؟ 😬
اگه یه سایت کوچولو داری، شاید کافی باشه.
ولی برای ورود کاربرا، ثبت کامنت، دانلود، فرمهای ثبتنام و…
🎯 خیلی زود به سقف میخوری!
🔄 من دنبال جایگزین گشتم:
🔍 استفاده از hCaptcha:
ظاهرش مثل reCAPTCHA ولی قیمتش از گوگل هم بدتره 😓
🧪 ساختن CAPTCHA دستی:
با کلی دردسر، کلی کد، و قابل عبور برای رباتهایی با OCR باهوش😐
🚀 و بالاخره رسیدیم به Cloudflare Turnstile
✔️ بدون انتخاب تصویر دوچرخه یا تاکسی 😅
✔️ بررسی رفتار کاربر و دستگاه بهجای اذیت کردن کاربر
✔️ بدون هزینه، راحت و سریع
✔️ 📦 پکیج آماده برای Laravel
⚠️ ولی بدون: Turnstile گل بیخار نیست!
🟡 ممکنه بعضی رباتها رد بشن (طبق داشبورد خودش)
🔵 ولی تعامل کاربریش بینقصه
🔴 اگه دنبال نمرهدهی نامرئی مثل reCAPTCHA v3 هستی، باید بری سراغ جیب 😅
🎉 نتیجه؟
با Turnstile کاربرا راحتترن، رباتا محدودترن، و توسعهدهندهها خوشحالترن.
📦 مخصوصاً اگه با Laravel کار میکنی، این پکیج رو نصب کن و یه نفس راحت بکش 😌
#laravel #captcha #package
@panicdev
🤖 قبلاً Google reCAPTCHA خیلی خوب بود. بدون دردسر رباتها رو فیلتر میکرد، بدون اینکه تجربه کاربر رو خراب کنه.
همه خوشحال بودن، تا وقتی که...
💰 گوگل تصمیم گرفت پول دربیاره!
💸 فقط 10,000 درخواست رایگان؟ 😬
اگه یه سایت کوچولو داری، شاید کافی باشه.
ولی برای ورود کاربرا، ثبت کامنت، دانلود، فرمهای ثبتنام و…
🎯 خیلی زود به سقف میخوری!
🔄 من دنبال جایگزین گشتم:
🔍 استفاده از hCaptcha:
ظاهرش مثل reCAPTCHA ولی قیمتش از گوگل هم بدتره 😓
🧪 ساختن CAPTCHA دستی:
با کلی دردسر، کلی کد، و قابل عبور برای رباتهایی با OCR باهوش
🚀 و بالاخره رسیدیم به Cloudflare Turnstile
✔️ بدون انتخاب تصویر دوچرخه یا تاکسی 😅
✔️ بررسی رفتار کاربر و دستگاه بهجای اذیت کردن کاربر
✔️ بدون هزینه، راحت و سریع
✔️ 📦 پکیج آماده برای Laravel
⚠️ ولی بدون: Turnstile گل بیخار نیست!
🟡 ممکنه بعضی رباتها رد بشن (طبق داشبورد خودش)
🔵 ولی تعامل کاربریش بینقصه
🔴 اگه دنبال نمرهدهی نامرئی مثل reCAPTCHA v3 هستی، باید بری سراغ جیب 😅
🎉 نتیجه؟
با Turnstile کاربرا راحتترن، رباتا محدودترن، و توسعهدهندهها خوشحالترن.
📦 مخصوصاً اگه با Laravel کار میکنی، این پکیج رو نصب کن و یه نفس راحت بکش 😌
#laravel #captcha #package
@panicdev
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥20👍10
#شاید_برای_شما_هم_اتفاق_بیفتد .
برای اینکه یک سری دیتا رو به فرانت اند برگردونم .
باید سه تا API از سرویس های مختلف call میکردم تا اون آرایه ای که مد نظرم هست رو بسازم .
در حالت عادی باید به ترتیب API ها کال میشد تا بتونم آرایه رو بسازم . که باعث میشد ریسپانس تایم چیزی بین ۵ تا ۱۰ ثانیه طول بکشه .
ولی با کلاس جدیدی که از لاراول ۱۱ معرفی کرده به اسم😊
@panicdev
برای اینکه یک سری دیتا رو به فرانت اند برگردونم .
باید سه تا API از سرویس های مختلف call میکردم تا اون آرایه ای که مد نظرم هست رو بسازم .
در حالت عادی باید به ترتیب API ها کال میشد تا بتونم آرایه رو بسازم . که باعث میشد ریسپانس تایم چیزی بین ۵ تا ۱۰ ثانیه طول بکشه .
ولی با کلاس جدیدی که از لاراول ۱۱ معرفی کرده به اسم
Concurrency سرویس ها را همزمان کال میکنم . که باعث شد ریسپانس تایمم بشه چیزی بین ۱.۵ تا ۲ ثانیه .@panicdev
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍18🔥5
Panic Dev
🚫 خداحافظ reCAPTCHA، سلام Turnstile! 👋 🤖 قبلاً Google reCAPTCHA خیلی خوب بود. بدون دردسر رباتها رو فیلتر میکرد، بدون اینکه تجربه کاربر رو خراب کنه. همه خوشحال بودن، تا وقتی که... 💰 گوگل تصمیم گرفت پول دربیاره! 💸 فقط 10,000 درخواست رایگان؟ 😬 اگه یه سایت…
پکیج برای استفاده در لاراول و لایوایر
https://github.com/ryangjchandler/laravel-cloudflare-turnstile
#package #laravel
https://github.com/ryangjchandler/laravel-cloudflare-turnstile
#package #laravel
GitHub
GitHub - ryangjchandler/laravel-cloudflare-turnstile: A simple package to help integrate Cloudflare Turnstile.
A simple package to help integrate Cloudflare Turnstile. - ryangjchandler/laravel-cloudflare-turnstile
🚀 ترکیب Laravel + Go: توسعه سریع، عملکرد بالا!
اگر توسعه با Laravel رو دوست داری ولی دنبال عملکرد بهتر برای کارهای سنگین هستی، یه راه عالی اینه که از معماری رویدادمحور (EDA) استفاده کنی:
✅فریم ورک Laravel برای ارسال Job به صف
✅ زبان Go برای پردازش سریع با goroutineها
مثلاً:
با Laravel یه تسک مثل پردازش تصویر رو dispatch میکنه.
بعد Go اون رو از Redis میخونه و خیلی سریع اجرا میکنه.
اینجوری:
سیستم سبک میمونه.
کاربر منتظر نمیمونه.
با چند تا Go worker، پردازشهاتو راحت مقیاسپذیر میکنی.
👀 فقط حواست باشه که Go باید فقط داده موردنیاز Job رو بخونه (بدون متادیتای اضافهی Laravel) و لاگ و مانیتورینگ رو خوب مدیریت کنی.
📌 اگه پردازش سنگین مثل ایمیل انبوه، تصویر، یا دادههای تحلیلی داری، این معماری معرکهست!
منبع 👇
🔗 لینک مقاله
#Laravel #GoLang #EDA #معماری_رویدادمحور #توسعه_بک_اند #برنامه_نویسی #مقیاس_پذیری
اگر توسعه با Laravel رو دوست داری ولی دنبال عملکرد بهتر برای کارهای سنگین هستی، یه راه عالی اینه که از معماری رویدادمحور (EDA) استفاده کنی:
✅فریم ورک Laravel برای ارسال Job به صف
✅ زبان Go برای پردازش سریع با goroutineها
مثلاً:
با Laravel یه تسک مثل پردازش تصویر رو dispatch میکنه.
بعد Go اون رو از Redis میخونه و خیلی سریع اجرا میکنه.
اینجوری:
سیستم سبک میمونه.
کاربر منتظر نمیمونه.
با چند تا Go worker، پردازشهاتو راحت مقیاسپذیر میکنی.
👀 فقط حواست باشه که Go باید فقط داده موردنیاز Job رو بخونه (بدون متادیتای اضافهی Laravel) و لاگ و مانیتورینگ رو خوب مدیریت کنی.
📌 اگه پردازش سنگین مثل ایمیل انبوه، تصویر، یا دادههای تحلیلی داری، این معماری معرکهست!
منبع 👇
🔗 لینک مقاله
#Laravel #GoLang #EDA #معماری_رویدادمحور #توسعه_بک_اند #برنامه_نویسی #مقیاس_پذیری
👍16🔥4🌚2❤🔥1
🛡 مدیریت درخواستهای همزمان در Laravel با Session Blocking
در اپلیکیشنهای پرترافیک مثل پرداخت، مدیریت موجودی یا رزرو، درخواستهای همزمان میتونن باعث تداخل داده و باگهای جدی بشن. لاراول با یه قابلیت ساده ولی قدرتمند به اسم Session Blocking این مشکل رو حل کرده.
📌 چطوری کار میکنه؟
در Session Blocking با استفاده از atomic lock ها، فقط به یک درخواست در هر زمان اجازه میده که اجرا بشه و بقیه باید صبر کنن یا تایماوت میشن.
برای فعالسازی:
- از cache driverهایی مثل Redis استفاده کن.
- از session driver غیر از cookie مثل Redis یا database استفاده کن.
- در روتها از متد
عدد اول: مدت زمان قفل (ثانیه)
عدد دوم: مدت زمانی که درخواست منتظر میمونه تا قفل آزاد شه
———————————————————
⚠️ ریسکها و محدودیتها
با وجود قدرت زیاد session blocking، باید حواست به محدودیتهاش هم باشه:
- خطر Deadlock: تنظیم نادرست زمان قفلها مخصوصاً در فرایندهای پیچیده میتونه باعث بنبست بشه.
- افزایش بار سیستم: شکستهای مکرر در قفلگذاری میتوانند باعث افزایش سربار سیستم بشود. استفاده از مکانیزمهای retry مؤثر توصیه میشه.
- وابستگی به کش: عملکرد این قابلیت به شدت وابسته به driver کش هست. پس حتماً باید Redis یا Memcached قوی و پایدار داشته باشی.
——————————————————-
🛠 جایگزینهای session blocking
اگه احساس میکنی این راهکار مناسب پروژهت نیست، گزینههای دیگهای هم هست:
- گزینه Optimistic Locking: با استفاده از نسخهگذاری (versioning) تداخل در بروزرسانیها رو تشخیص بده.
- صفهای توزیعشده (Distributed Queues): عملیات رو به سیستم صف مثل RabbitMQ یا AWS SQS منتقل کن تا غیربلادرنگ (asynchronous) انجام بشه.
- محدودیتهای دیتابیس: با تعریف constraintهای خاص توی دیتابیس، از درج دادههای تکراری جلوگیری کن.
🎯 نتیجه: Session Blocking ابزار فوقالعادهای برای مدیریت درخواستهای حساسه، ولی باید با دقت و مانیتورینگ درست استفاده بشه.
منبع 👇
🔗لینک مقاله
#Laravel #PHP #ConcurrentRequests #SessionBlocking #توسعه_بک_اند #مدیریت_موجودی #رزرو_آنلاین #پرداخت_امن #برنامه_نویسی
@panicdev
در اپلیکیشنهای پرترافیک مثل پرداخت، مدیریت موجودی یا رزرو، درخواستهای همزمان میتونن باعث تداخل داده و باگهای جدی بشن. لاراول با یه قابلیت ساده ولی قدرتمند به اسم Session Blocking این مشکل رو حل کرده.
📌 چطوری کار میکنه؟
در Session Blocking با استفاده از atomic lock ها، فقط به یک درخواست در هر زمان اجازه میده که اجرا بشه و بقیه باید صبر کنن یا تایماوت میشن.
برای فعالسازی:
- از cache driverهایی مثل Redis استفاده کن.
- از session driver غیر از cookie مثل Redis یا database استفاده کن.
- در روتها از متد
->block() استفاده کن:Route::post('/products/update-stock', [StockController::class, 'updateStock'])->block(5, 10);عدد اول: مدت زمان قفل (ثانیه)
عدد دوم: مدت زمانی که درخواست منتظر میمونه تا قفل آزاد شه
———————————————————
⚠️ ریسکها و محدودیتها
با وجود قدرت زیاد session blocking، باید حواست به محدودیتهاش هم باشه:
- خطر Deadlock: تنظیم نادرست زمان قفلها مخصوصاً در فرایندهای پیچیده میتونه باعث بنبست بشه.
- افزایش بار سیستم: شکستهای مکرر در قفلگذاری میتوانند باعث افزایش سربار سیستم بشود. استفاده از مکانیزمهای retry مؤثر توصیه میشه.
- وابستگی به کش: عملکرد این قابلیت به شدت وابسته به driver کش هست. پس حتماً باید Redis یا Memcached قوی و پایدار داشته باشی.
——————————————————-
🛠 جایگزینهای session blocking
اگه احساس میکنی این راهکار مناسب پروژهت نیست، گزینههای دیگهای هم هست:
- گزینه Optimistic Locking: با استفاده از نسخهگذاری (versioning) تداخل در بروزرسانیها رو تشخیص بده.
- صفهای توزیعشده (Distributed Queues): عملیات رو به سیستم صف مثل RabbitMQ یا AWS SQS منتقل کن تا غیربلادرنگ (asynchronous) انجام بشه.
- محدودیتهای دیتابیس: با تعریف constraintهای خاص توی دیتابیس، از درج دادههای تکراری جلوگیری کن.
🎯 نتیجه: Session Blocking ابزار فوقالعادهای برای مدیریت درخواستهای حساسه، ولی باید با دقت و مانیتورینگ درست استفاده بشه.
منبع 👇
🔗لینک مقاله
#Laravel #PHP #ConcurrentRequests #SessionBlocking #توسعه_بک_اند #مدیریت_موجودی #رزرو_آنلاین #پرداخت_امن #برنامه_نویسی
@panicdev
❤🔥6🔥2👍1
💡 کلاس WeakMap در PHP: قهرمان خاموش برای مدیریت حافظه
در زمان توسعه بخشهای پرفورمنسمحور یک اپلیکیشن، متوجه شدم که WeakMap میتونه یه قهرمان خاموش باشه که زمانی که بهش نیاز داری، به دادت میرسه.
🔍 کلاس WeakMap چیست؟
در ظاهر، WeakMap مثل یه store کلید-مقدار عادی به نظر میاد. اما تفاوت اصلی اینجاست که WeakMap کلیدها رو به صورت weak reference نگه میداره، یعنی وقتی شی از حافظه پاک میشه، WeakMap بهطور خودکار اون ورودی رو حذف میکنه. این ویژگی باعث میشه که نیازی به پاکسازی دستی دادهها نباشه و هیچگونه حافظهای به طور نادرست مصرف نشه.
📌 چرا این ویژگی اهمیت داره؟
فرض کنید در حال ساخت یک مدیریت مستندات یا مدیریت تصاویر هستید. هر شی (مثل یک فایل یا تصویر) ممکنه متادیتای پرهزینهای برای محاسبه داشته باشه. میخواهید این متادیتا رو در هنگام استفاده از شی کش کنید ولی نیازی به پاکسازی دستی و نگرانی از نشت حافظه ندارید.
🛠 نمونه کد:
در کدی که در تصویر مشاهده میکنید . ما از WeakMap برای کش کردن متادیتای اشیاء استفاده میکنیم
🚀 نتیجهگیری
در نتیجه WeakMap برای مواردی مثل مدیریت کش متادیتا یا پردازشهای پرهزینه بسیار مفیده، چرا که از نشت حافظه جلوگیری میکنه و با خودکار حذف کردن ورودیها از حافظه، کار رو برای برنامهنویس راحتتر میکنه.
🔗 منبع: مقاله
#PHP #MemoryManagement #WeakMap #Cashing #Development #Backend #OptimizedCode
@panicdev
در زمان توسعه بخشهای پرفورمنسمحور یک اپلیکیشن، متوجه شدم که WeakMap میتونه یه قهرمان خاموش باشه که زمانی که بهش نیاز داری، به دادت میرسه.
🔍 کلاس WeakMap چیست؟
در ظاهر، WeakMap مثل یه store کلید-مقدار عادی به نظر میاد. اما تفاوت اصلی اینجاست که WeakMap کلیدها رو به صورت weak reference نگه میداره، یعنی وقتی شی از حافظه پاک میشه، WeakMap بهطور خودکار اون ورودی رو حذف میکنه. این ویژگی باعث میشه که نیازی به پاکسازی دستی دادهها نباشه و هیچگونه حافظهای به طور نادرست مصرف نشه.
📌 چرا این ویژگی اهمیت داره؟
فرض کنید در حال ساخت یک مدیریت مستندات یا مدیریت تصاویر هستید. هر شی (مثل یک فایل یا تصویر) ممکنه متادیتای پرهزینهای برای محاسبه داشته باشه. میخواهید این متادیتا رو در هنگام استفاده از شی کش کنید ولی نیازی به پاکسازی دستی و نگرانی از نشت حافظه ندارید.
🛠 نمونه کد:
در کدی که در تصویر مشاهده میکنید . ما از WeakMap برای کش کردن متادیتای اشیاء استفاده میکنیم
🚀 نتیجهگیری
در نتیجه WeakMap برای مواردی مثل مدیریت کش متادیتا یا پردازشهای پرهزینه بسیار مفیده، چرا که از نشت حافظه جلوگیری میکنه و با خودکار حذف کردن ورودیها از حافظه، کار رو برای برنامهنویس راحتتر میکنه.
🔗 منبع: مقاله
#PHP #MemoryManagement #WeakMap #Cashing #Development #Backend #OptimizedCode
@panicdev
👍11🔥2
🚀 مدیریت Migrationها در لاراول با shouldRun()
وقتی از feature flagها یا استراتژی rollout مرحلهای استفاده میکنید، ممکنه بخواهید بعضی migrationها فقط در صورتی اجرا بشن که یک ویژگی خاص فعال باشه. قبلاً این کار نیاز به ترفندهای دستی یا مدیریت سخت migrationها داشت.
حالا لاراول با معرفی متد جدید
🧠 این migration فقط زمانی اجرا میشه که feature مربوطه فعال باشه. اگه فعال نباشه، بدون خطا رد میشه و هیچ رکوردی توی جدول migrations ثبت نمیشه.
✅ نکات مهم:
یک نکته این که shouldRun() هم در migrate و هم در rollback در نظر گرفته میشه، پس رفتار migration در هر دو مسیر هماهنگه.
دیگه نیاز نیست migrationهایی که فقط در محیط خاص یا برای tenant خاص هستن رو دستی مدیریت کنید.
ایدهآل برای اپلیکیشنهای multi-tenant، ویژگیهای قابل غیرفعال/فعالسازی و استقرار مرحلهای (progressive deployment).
#Laravel #Migration #FeatureFlags #shouldRun #SaaS #BackendTips #ProgressiveDeployment
@panicdev
وقتی از feature flagها یا استراتژی rollout مرحلهای استفاده میکنید، ممکنه بخواهید بعضی migrationها فقط در صورتی اجرا بشن که یک ویژگی خاص فعال باشه. قبلاً این کار نیاز به ترفندهای دستی یا مدیریت سخت migrationها داشت.
حالا لاراول با معرفی متد جدید
shouldRun() این مشکل رو حل کرده. این متد به هر migration اجازه میده خودش تصمیم بگیره که اجرا بشه یا نه.🧠 این migration فقط زمانی اجرا میشه که feature مربوطه فعال باشه. اگه فعال نباشه، بدون خطا رد میشه و هیچ رکوردی توی جدول migrations ثبت نمیشه.
✅ نکات مهم:
یک نکته این که shouldRun() هم در migrate و هم در rollback در نظر گرفته میشه، پس رفتار migration در هر دو مسیر هماهنگه.
دیگه نیاز نیست migrationهایی که فقط در محیط خاص یا برای tenant خاص هستن رو دستی مدیریت کنید.
ایدهآل برای اپلیکیشنهای multi-tenant، ویژگیهای قابل غیرفعال/فعالسازی و استقرار مرحلهای (progressive deployment).
#Laravel #Migration #FeatureFlags #shouldRun #SaaS #BackendTips #ProgressiveDeployment
@panicdev
👍8
🧠 ارزیابی سطح شغلی
۱. با توجه به موقعیت شغلی فعلیتون، فکر میکنید در چه سطحی قرار دارید؟
۱. با توجه به موقعیت شغلی فعلیتون، فکر میکنید در چه سطحی قرار دارید؟
Anonymous Poll
29%
🟢 جونیور (Junior)
44%
🟡 میدلول (Mid-Level)
10%
🔵 سنیور (Senior)
6%
🟣 فوق سنیور (Lead/Principal)
11%
⚪️ هنوز لولی برای سطح من تعریف نشده 🙂
Panic Dev
🧠 ارزیابی سطح شغلی
۱. با توجه به موقعیت شغلی فعلیتون، فکر میکنید در چه سطحی قرار دارید؟
۱. با توجه به موقعیت شغلی فعلیتون، فکر میکنید در چه سطحی قرار دارید؟
۲. چرا فکر میکنید در این سطح قرار دارید؟
۳. به نظرتون برای رسیدن به لول بعدی، بیشتر به کدوم مورد نیاز دارید؟
✅ افزایش سابقه کار
✅ افزایش مهارتهای فنی
✅ بهبود مهارتهای مدیریتی و رهبری تیم
✅ تجربه در پروژههای بزرگتر و چالشبرانگیزتر
✅ یادگیری مهارتهای نرم (ارتباط، مذاکره، تفکر سیستمی و...)
✅ گرفتن بازخورد حرفهای و منتورینگ
۳. به نظرتون برای رسیدن به لول بعدی، بیشتر به کدوم مورد نیاز دارید؟
✅ افزایش سابقه کار
✅ افزایش مهارتهای فنی
✅ بهبود مهارتهای مدیریتی و رهبری تیم
✅ تجربه در پروژههای بزرگتر و چالشبرانگیزتر
✅ یادگیری مهارتهای نرم (ارتباط، مذاکره، تفکر سیستمی و...)
✅ گرفتن بازخورد حرفهای و منتورینگ
Panic Dev
۲. چرا فکر میکنید در این سطح قرار دارید؟ ۳. به نظرتون برای رسیدن به لول بعدی، بیشتر به کدوم مورد نیاز دارید؟ ✅ افزایش سابقه کار ✅ افزایش مهارتهای فنی ✅ بهبود مهارتهای مدیریتی و رهبری تیم ✅ تجربه در پروژههای بزرگتر و چالشبرانگیزتر ✅ یادگیری مهارتهای…
یک مقاله ای داشتم میخوندم . نسبتا طولانی ولی ارزش خوندن داشت . من دوست داشتم ،😊
گفتم خلاصه ای رو با شما هم به اشتراک بزارم . کسی دوست داشت بره کاملشو بخونه
🧠 تفاوت اصلی بین برنامهنویس جونیور و سینیور
این مقاله گفتوگویی درونی بین «منِ جونیور» و «منِ سینیور» و تلاش میکنه به یک نکته عمیق اشاره کنه:
✅ تفاوت اصلی بین برنامهنویس سینیور و جونیور توی طرز فکر، نه تعداد سالهای تجربه.
🎯 خلاصه مهمترین تفاوتهای ذهنیت سینیورها:
۱. بهجای فقط نوشتن کد، میپرسن: «آیا اصلاً لازمه اینو بنویسم؟»
۲. فقط باگ رو رفع نمیکنن، علت اصلی (Root Cause) رو پیدا میکنن.
۳. فقط کد درست نمینویسن، کد قابلنگهداری و تمیز مینویسن.
۴. بهجای «من میتونم اینو حل کنم»، میپرسن: «چطور تیم میتونه اینو حل کنه؟»
۵. دنبال یادگیری تکنولوژی جدید نیستن، یاد گرفتنِ «روش یادگیری» رو بلدن.
۶. منتظر اجازه نمیمونن، مسئولیت میپذیرن و اقدام میکنن.
۷. سریع وارد کدنویسی نمیشن، اول تحلیل و طراحی میکنن.
۸. فقط تسک done نمیکنند ، اثرش روی کاربر و کسبوکار رو میسنجن.
۹. منتظر خراب شدن سیستم نمیمونن، از قبل مشکلات رو پیشبینی میکنن.
.
۱۰. کارهای تکراری رو دستی انجام نمیدن، اتومات میکنن و مستند مینویسن.
📌 جمعبندی:
برنامهنویس سینیور کسیه که فقط کد نمینویسه، بلکه دید استراتژیک داره، تیم رو رشد میده، و برای آینده تصمیم میگیره.
هرکدوم از این تغییرات ذهنی، شما رو یک قدم به سینیور شدن نزدیکتر میکنه.
📖 اگر علاقهمند به خوندن متن کامل این مقاله هستید، پیشنهاد میکنم حتماً بخونید:
🔗 لینک مقاله کامل
@panicdev
گفتم خلاصه ای رو با شما هم به اشتراک بزارم . کسی دوست داشت بره کاملشو بخونه
🧠 تفاوت اصلی بین برنامهنویس جونیور و سینیور
این مقاله گفتوگویی درونی بین «منِ جونیور» و «منِ سینیور» و تلاش میکنه به یک نکته عمیق اشاره کنه:
✅ تفاوت اصلی بین برنامهنویس سینیور و جونیور توی طرز فکر، نه تعداد سالهای تجربه.
🎯 خلاصه مهمترین تفاوتهای ذهنیت سینیورها:
۱. بهجای فقط نوشتن کد، میپرسن: «آیا اصلاً لازمه اینو بنویسم؟»
جونیورها بلافاصله سراغ کدنویسی میرن.
سینیورها اول تحلیل میکنن، سؤال میپرسن و دید کلی پیدا میکنن.
۲. فقط باگ رو رفع نمیکنن، علت اصلی (Root Cause) رو پیدا میکنن.
سینیورها روی پیشگیری تمرکز دارن، نه فقط درمان.
۳. فقط کد درست نمینویسن، کد قابلنگهداری و تمیز مینویسن.
به "قانون پیشاهنگ" پایبندن: «کد رو بهتر از قبل بذار.»
۴. بهجای «من میتونم اینو حل کنم»، میپرسن: «چطور تیم میتونه اینو حل کنه؟»
مستندسازی، اشتراک دانش، و طراحی قابل فهم برای همه.
۵. دنبال یادگیری تکنولوژی جدید نیستن، یاد گرفتنِ «روش یادگیری» رو بلدن.
روی اصول پایه تمرکز دارن، نه هر ترند جدید.
۶. منتظر اجازه نمیمونن، مسئولیت میپذیرن و اقدام میکنن.
طرز فکر «مالکیت کامل» دارن.
۷. سریع وارد کدنویسی نمیشن، اول تحلیل و طراحی میکنن.
طراحی قبل از ساخت، فهم قبل از کدنویسی.
۸. فقط تسک done نمیکنند ، اثرش روی کاربر و کسبوکار رو میسنجن.
هر تسک رو به عنوان فرصتی برای ایجاد ارزش میبینن.
۹. منتظر خراب شدن سیستم نمیمونن، از قبل مشکلات رو پیشبینی میکنن.
طراحی مقاوم، مانیتورینگ و تست خودکار بخش اصلی کارشونه
.
۱۰. کارهای تکراری رو دستی انجام نمیدن، اتومات میکنن و مستند مینویسن.
ابزار میسازن، اسناد تهیه میکنن، و زمان تیم رو حفظ میکنن.
📌 جمعبندی:
برنامهنویس سینیور کسیه که فقط کد نمینویسه، بلکه دید استراتژیک داره، تیم رو رشد میده، و برای آینده تصمیم میگیره.
هرکدوم از این تغییرات ذهنی، شما رو یک قدم به سینیور شدن نزدیکتر میکنه.
📖 اگر علاقهمند به خوندن متن کامل این مقاله هستید، پیشنهاد میکنم حتماً بخونید:
🔗 لینک مقاله کامل
@panicdev
Please open Telegram to view this post
VIEW IN TELEGRAM
Medium
How Senior Engineers Think Differently: 10 Mental Models You Need
The Mindset Shift from Junior to Senior Engineer
50👍19
Panic Dev
یه سرویس Open-Source و سبک برای کپچا 🔗 https://capjs.js.org
Please open Telegram to view this post
VIEW IN TELEGRAM
🤣33👍1🔥1🕊1
تمام تسکهای ورژن 4 فیلامنت done شدن ✅
انتظار میره خیلی زود (شاید طی چند روز آینده) نسخه جدید فیلامنت ریلیز و قابل استفاده بشه 🔥
🔗 https://github.com/filamentphp/filament/milestone/3
انتظار میره خیلی زود (شاید طی چند روز آینده) نسخه جدید فیلامنت ریلیز و قابل استفاده بشه 🔥
Please open Telegram to view this post
VIEW IN TELEGRAM
GitHub
filamentphp/filament
A collection of beautiful full-stack components for Laravel. The perfect starting point for your next app. Using Livewire, Alpine.js and Tailwind CSS. - filamentphp/filament
🔥17👍2
میخوایم کتاب
هدیه بدیم برای ۵ نفر😊
به ۵ نفر اولی که اعلام حضور کنه
⚠️ لطفا اگر میدونید موضوعش چی هست و علاقه به مطالعه دارید اعلام کنید .
(تمام شد)
تست مامان
هدیه بدیم برای ۵ نفر
به ۵ نفر اولی که اعلام حضور کنه
(تمام شد)
Please open Telegram to view this post
VIEW IN TELEGRAM