Channel: Learning With M
سلام سلام.
این یک آگهی شغلیه، ولی کمی متفاوت.
من برای تیم خودم در دیجیکالا دنبال چند مهندس نرم افزار خبره می گردم.
وظیفه این مهندس نرم افزار کار روی سیستم هایی هست که تراکنش های بسیار بالایی (مثل پیک های بزرگ فروش مثل بلک فرایدی و ...) خواهد بود.
افراد مورد نظر باید شرایط زیر رو داشته باشن :
1. زبان برنامه نویسی این تیم فعلا PHP و Java هست ولی به صورت کلی استک شما اهمیتی نداره.
2. بیشتر از 6 سال سابقه توسعه نرم افزار داشته باشن.
3. به ریفکتور علاقه داشته باشن.
4. در محیط های پیچیده قابلیت پیدا کردن راه رو داشته باشن.
اگر علاقه دارید به این تیم بپیوندید برای شروع کافیه برای مساله زیر راه حل ارائه بدید :
سیستمی رو طراحی کنید که از پارامتر های زیر رو داره :
1. کیف پولی که برای هر فرد دارای چندین نوع حساب می باشد.
2. سرویس مدیریت تبلیغاتی که وظیفه بروز رسانی وضعیت ادامه نمایش تبلیغات را بر اساس بودجه و مانده حساب کاربر در کیف پول بر عهده دارد.
3. سیستم نمایش تبلیغاتی که وظیفه ارائه تبلیغات را بر عهده دارد.
بر اساس سیستم ها فوق، طراحی ای پیشنهاد بدهید که :
1. دقیق ترین گزارشات بابت هزینه کرد کاربر از کیف پول خود را داشته باشد.
2. دسترس پذیری بالایی داشته باشه.
3. ارتباط بین سرویس ها بهینه باشه.
افرادی که علاقه مند هستند، می تونن از طریق این لینک اقدام کنن :
https://survey.porsline.ir/s/BMp5Uth
ممنون میشم این آگهی رو برای افراد علاقه مند ارسال کنید.
@Learning_with_m
#استخدام
این یک آگهی شغلیه، ولی کمی متفاوت.
من برای تیم خودم در دیجیکالا دنبال چند مهندس نرم افزار خبره می گردم.
وظیفه این مهندس نرم افزار کار روی سیستم هایی هست که تراکنش های بسیار بالایی (مثل پیک های بزرگ فروش مثل بلک فرایدی و ...) خواهد بود.
افراد مورد نظر باید شرایط زیر رو داشته باشن :
1. زبان برنامه نویسی این تیم فعلا PHP و Java هست ولی به صورت کلی استک شما اهمیتی نداره.
2. بیشتر از 6 سال سابقه توسعه نرم افزار داشته باشن.
3. به ریفکتور علاقه داشته باشن.
4. در محیط های پیچیده قابلیت پیدا کردن راه رو داشته باشن.
اگر علاقه دارید به این تیم بپیوندید برای شروع کافیه برای مساله زیر راه حل ارائه بدید :
سیستمی رو طراحی کنید که از پارامتر های زیر رو داره :
1. کیف پولی که برای هر فرد دارای چندین نوع حساب می باشد.
2. سرویس مدیریت تبلیغاتی که وظیفه بروز رسانی وضعیت ادامه نمایش تبلیغات را بر اساس بودجه و مانده حساب کاربر در کیف پول بر عهده دارد.
3. سیستم نمایش تبلیغاتی که وظیفه ارائه تبلیغات را بر عهده دارد.
بر اساس سیستم ها فوق، طراحی ای پیشنهاد بدهید که :
1. دقیق ترین گزارشات بابت هزینه کرد کاربر از کیف پول خود را داشته باشد.
2. دسترس پذیری بالایی داشته باشه.
3. ارتباط بین سرویس ها بهینه باشه.
افرادی که علاقه مند هستند، می تونن از طریق این لینک اقدام کنن :
https://survey.porsline.ir/s/BMp5Uth
ممنون میشم این آگهی رو برای افراد علاقه مند ارسال کنید.
@Learning_with_m
#استخدام
Porsline
استخدام
با پُرسلاین به راحتی پرسشنامه خود را طراحی و ارسال کنید و با گزارشهای لحظهای آن به سرعت تصمیم بگیرید.
👍27🔥6❤4👎1
Forwarded from tech-afternoon (Amin Mesbahi)
Please open Telegram to view this post
VIEW IN TELEGRAM
Google
Real-time meetings by Google. Using your browser, share your video, desktop, and presentations with teammates and customers.
❤1
Forwarded from tech-afternoon (Amin Mesbahi)
اگر نظر مثبتی نسبت به جلسه اول «مرور مهارتهای مورد نیاز و مسیر رسیدن به مهندس ارشد نرمافزار» داشتید و فکر میکنید ادامه بحث میتونه براتون جالب باشه، لطفا از طریق فرم زیر بگید 😊
🗓 برای روز یکشنبه ۷ اردیبهشت (۲۷ اپریل) ساعت ۱۸:۳۰ به وقت تهران
https://forms.gle/ayy2Q3MESKnhrNt3A
Please open Telegram to view this post
VIEW IN TELEGRAM
Google Docs
دورهمی تکافترنون (مسیر شغلی) یکشنبه ۷ اردیبهشت (۲۷ اپریل)
مرور مهارتهای مورد نیاز و مسیر رسیدن به مهندس ارشد نرمافزار
👍13❤3🔥1
Forwarded from .NET Internals
هفت عادت آدم های بسیار ناکارآمد!
عادت ۱: واکنش نشان بده React
همه مشکلاتت را گردن رئیس بد، والدین، ژنها، همسر، شریک، اقتصاد یا دولت بینداز. هیچ مسئولیتی قبول نکن. اگر گرسنهای، بخور؛ اگر عصبانی شدی، داد بزن؛ اگر کسی بیادبی کرد، جوابش را بده. فقط واکنش نشان بده.
عادت ۲: بدون هدف شروع کن Begin with Squad in Mind
برنامهریزی نکن، هدف نگذار و نگران پیامدهای کارت نباش. فقط با جریان زندگی حرکت کن و خوش بگذران؛ فردا ممکن است نباشد.
عادت ۳: کارهای مهم را به آخر بینداز Put First Things Last
همیشه کارهای فوری مثل پاسخ دادن به پیامها و نوتیفیکیشنها را اول انجام بده. کارهای مهم مثل تقویت روابط یا ورزش را بگذار برای بعد. روزت را با دیدن ویدیوهای یوتیوب پر کن.
عادت ۴: طرز فکر برد-باخت داشته باش Think Win-Lose
زندگی را یک رقابت بیرحمانه ببین. اگر دیگران برنده شوند، تو بازندهای. پس قبل از اینکه دیگران تو را شکست دهند، تو آنها را شکست بده. اگر هم باختی، مطمئن شو که طرف مقابل را با خودت پایین بکشی.
عادت ۵: اول حرف بزن، بعد وانمود کن گوش میدهی Seek First to Talk, Then Pretend to Listen
زیاد حرف بزن. اول نظرات خودت را به همه بگو. اگر مجبور شدی، فقط وانمود کن گوش میدهی. در ذهن خودت درباره ناهار فکر کن. یا اگر واقعاً خواستی نظر کسی را بدانی، نظرت را به جای او بهش بده!
عادت ۶: جزیرهای برای خودت باش Be an Island
دیگران متفاوتاند و عجیب. چرا وقت تلف کنی که با آنها کنار بیایی؟ همکاری وقتگیر است. خودت همیشه بهترین ایدهها را داری، پس تنهایی کار کن و برای خودت یک جزیرهی خاص باش.
عادت ۷: خودت را فرسوده کن Burn Yourself Out
آنقدر مشغول باش که وقت استراحت کردن یا یادگیری چیزهای جدید نداشته باشی. ورزش را فراموش کن. سراغ کتاب خوب، طبیعت، هنر یا موسیقی نرو. فقط بسوز و بسوز!
نظرتون چیه؟ باید اعتراف کنم عادت 7 رو دارم ولی دارم روش کار میکنم که ترکش کنم
از کتاب:
The 7 Habits Of Highly Effective People (Stephen R. Covey)
عادت ۱: واکنش نشان بده React
همه مشکلاتت را گردن رئیس بد، والدین، ژنها، همسر، شریک، اقتصاد یا دولت بینداز. هیچ مسئولیتی قبول نکن. اگر گرسنهای، بخور؛ اگر عصبانی شدی، داد بزن؛ اگر کسی بیادبی کرد، جوابش را بده. فقط واکنش نشان بده.
عادت ۲: بدون هدف شروع کن Begin with Squad in Mind
برنامهریزی نکن، هدف نگذار و نگران پیامدهای کارت نباش. فقط با جریان زندگی حرکت کن و خوش بگذران؛ فردا ممکن است نباشد.
عادت ۳: کارهای مهم را به آخر بینداز Put First Things Last
همیشه کارهای فوری مثل پاسخ دادن به پیامها و نوتیفیکیشنها را اول انجام بده. کارهای مهم مثل تقویت روابط یا ورزش را بگذار برای بعد. روزت را با دیدن ویدیوهای یوتیوب پر کن.
عادت ۴: طرز فکر برد-باخت داشته باش Think Win-Lose
زندگی را یک رقابت بیرحمانه ببین. اگر دیگران برنده شوند، تو بازندهای. پس قبل از اینکه دیگران تو را شکست دهند، تو آنها را شکست بده. اگر هم باختی، مطمئن شو که طرف مقابل را با خودت پایین بکشی.
عادت ۵: اول حرف بزن، بعد وانمود کن گوش میدهی Seek First to Talk, Then Pretend to Listen
زیاد حرف بزن. اول نظرات خودت را به همه بگو. اگر مجبور شدی، فقط وانمود کن گوش میدهی. در ذهن خودت درباره ناهار فکر کن. یا اگر واقعاً خواستی نظر کسی را بدانی، نظرت را به جای او بهش بده!
عادت ۶: جزیرهای برای خودت باش Be an Island
دیگران متفاوتاند و عجیب. چرا وقت تلف کنی که با آنها کنار بیایی؟ همکاری وقتگیر است. خودت همیشه بهترین ایدهها را داری، پس تنهایی کار کن و برای خودت یک جزیرهی خاص باش.
عادت ۷: خودت را فرسوده کن Burn Yourself Out
آنقدر مشغول باش که وقت استراحت کردن یا یادگیری چیزهای جدید نداشته باشی. ورزش را فراموش کن. سراغ کتاب خوب، طبیعت، هنر یا موسیقی نرو. فقط بسوز و بسوز!
نظرتون چیه؟ باید اعتراف کنم عادت 7 رو دارم ولی دارم روش کار میکنم که ترکش کنم
از کتاب:
The 7 Habits Of Highly Effective People (Stephen R. Covey)
👍26❤10
Forwarded from tech-afternoon (Amin Mesbahi)
بیمقدمه: فصل گرما در پیش است، اخبار گواه اینه که بهبود خاصی در ظرفیت تولید، یا مدیریت توزیع برق کشور اتفاق نیوفتاده، برای اینکه با از دسترس خارج شدن دیتاسنترها، سرویسهامون دچار مشکل نشه، بهتره نگاهی به معماری سلولی و تجربه اسلک بندازیم...
توی معماری سلولی سیستمهای پیچیده به واحدهای مستقل و خودکفا (سلولها) تقسیم میشن. هر سلول میتونه به تنهایی کار کنه و اگر یک سلول دچار مشکل بشه، بقیه سلولها میتونن به کار خودشون ادامه بدن.
یه روز توی اسلک، نمودارهای مانیتورینگ نشون دادن که یکی از Availability Zone (AZ) های AWS در منطقه us-east-1 داره پکتهای زیادی رو از دست میده. این باعث خطا و کندی سرویس برای کاربرها شده بود.
مشکل اصلی اینجا بود که با وجود اینکه اسلک از چند AZ استفاده میکرد، وقتی یک AZ دچار مشکل میشد، کل سرویس تحت تأثیر قرار میگرفت! خب این اصلاً منطقی نیست! مگه نه اینکه هدف استفاده از چند AZ همین هست که اگه یکی به مشکل خورد، بقیه کار رو پیش ببرن؟
در مورد اسلک، هر AZ تبدیل به یک سلول شد. یعنی مجموعهای از سرویسهایی که در یک AZ هستن و میتونن به عنوان یک واحد از سرویس خارج بشن یا به سرویس برگردن.
🎯 اسلک چهار هدف اصلی داشت:
- حذف ترافیک از یک AZ در کمتر از ۵ دقیقه (سرعت)
- حذف ترافیک نباید باعث خطای قابل مشاهده برای کاربر بشه
- خروج و بازگشت ترافیک یک AZ باید تدریجی باشه (مثلاً ۱٪ یا ۱۰٪)
- مکانیزم Drain نباید به AZ مشکلدار وابسته باشه
🧠 استراتژیهای پیادهسازی در اسلک
چرا این بار موفق شدن؟
اسلک قبلاً یک بار تلاش کرده بود این کار رو انجام بده و شکست خورده بود. این بار چند اصل مهم رو رعایت کردن:
- تدریجی بودن (Incrementality): به جای ساخت یک سیستم کاملاً جدید و تغییر یکباره، هر سرویس رو جداگانه و تدریجی تغییر دادن.
- نگاه از پایین به بالا (Bottom-up): با هر تیم سرویس جداگانه کار کردن و راهکار مخصوص اون سرویس رو پیدا کردن.
- به اندازه کافی خوب (Good Enough): پذیرفتن اینکه لازم نیست همه سرویسها یکجا و کامل تغییر کنن.
- رویکرد Roofshot به جای Moonshot: به جای یک حرکت مستقیم و بلندپروازانه، مجموعهای از قدمهای کوچکتر که در هر مرحله ارزش ایجاد میکنه.
- تستهای منظم: هر هفته یک AZ رو drain میکردن و پیشرفت رو اندازه میگرفتن.
⛳️ نتایج:
- الان میتونن یک AZ رو در ۶۰ ثانیه از سرویس خارج کنن
- هزینههای انتقال داده بین AZ کاهش پیدا کرده
- یک مکانیزم blue-green deployment جدید به دست آوردن
- راهکار عمومی برای مقابله با مشکلات محدود به یک AZ دارن
📝 نکتههای کلیدی برای پروژههای زیرساختی بزرگ
Please open Telegram to view this post
VIEW IN TELEGRAM
👍11❤5
در راستای حرکتی که فقط از یک شرکت بی کیفیت مثل پارس پک میشه انتظار داشت:
Prejudice is the child of ignorance.
- George Orwell
تعصب فرزند نادانی است.
- جرج اورول
Prejudice is the child of ignorance.
- George Orwell
تعصب فرزند نادانی است.
- جرج اورول
👍35🔥4
Forwarded from tech-afternoon (Amin Mesbahi)
شاید بد نباشه تا دفعه بعد که خواستید در مورد معماری و ساختار یه پروژه تصمیم بگیرید، یه بار پیشینهی پیدایش مایکروسرویس رو مرور کنین تا از تناسب «نیاز» و «راهکار»ی که مدنظر دارید مطمئن باشید.
نمیشه دقیق و قاطع گفت «اولین» بار کی مفهوم مایکروسرویس رو پیاده کرده. مفهوم مایکروسرویس از تکامل معماریهای قبلتر از خودش، خصوصا به عنوان یک پاسخ به محدودیتهای سیستمهای یکپارچه، و پیچیدگی معماری سرویسگرا (SOA) شکل گرفت. حالا دو چیز رو باید توضیح داد، یک شیوههای امروزیتر پیادهسازی مایکروسرویس، و یکی مفهوم و معماریاش. برای پیادهسازی مدرن، نتفلیکس رو میشه به عنوان یکی از اولین و تأثیرگذارترین پذیرندگان رویکرد میکروسرویس توی مقیاس بزرگ شناخت. نتفلیکس مهاجرت خودش از معماری یکپارچه به مایکروسرویسها رو حدود سال ۲۰۰۹ شروع کرد، خیلی قبل از اینکه اصطلاح "مایکروسرویس" به طور رسمی سال ۲۰۱۱ مطرح بشه. تا سال ۲۰۱۱، نتفلیکس طراحی مجدد بخش قابل توجهی از سیستمهاش به مایکروسرویسها رو تکمیل کرده بود و از AWS استفاده میکرد، و خیلی از الگوهایی که امروز به عنوان استاندارد یا best practice شناخته میشن رو پیاده کرده بود.
ولی از نظر مفهومی، آمازون یکی از پذیرندگان اولیه و کلیدی است. یعنی حدود سال ۲۰۰۱، آمازون (در اون زمان تحت هدایت جف بزوس) شروع میکنه به تجزیه سیستمهای یکپارچه، بزرگ و مستحکمش به سرویسهای کوچکتر و مستقل تا بتونه مشکلات مقیاسپذیری و استقرار رو بهبود بده. این انتقال، زمینه رو برای اونچه سالها بعد، به عنوان معماری مایکروسرویس میشناسیم، فراهم کرد.
پذیرندگان بعدی این معماری، از eBay و Spotify و... همه یک سری دغدغه مشترک داشتن، یعنی مقیاسپذیری، پیچیدگی و وسعت سیستم، و استقرار، اونم با تیمهای بزرگ.
بیایم نگاه بندازیم به روایات!
جناب Fred George یکی از پیشگامان معماری مایکروسرویس میگه هر مایکروسرویس باید به قدری ساده و کوچک باشه که توی ذهن یک توسعهدهنده جا بشه:
"small enough and simple enough that a single developer can understand the whole thing"
بعدتر همین رو مارتین فولر هم به نحوی تکرار میکنه.
حالا سوال اینه که اگر تیم توسعه و تعداد سرویسها بزرگ نیستند، آیا مقیاسپذیری مورد نیازمون به حدی رسیده که scale-up پاسخگو نباشه و بریم سراغ شکست و توزیع سرویسها؟ آیا زیرساخت لازم رو از پردازش ابری تا DevOps تا مونیتورینگ/observabilty و... داریم؟ آیا ظرفیت مستندسازی API، فرایند، کاتالوگ دادهها و فرایندها و... رو داریم؟
تجربیات مستند زیادی وجود داره که استارتاپها و تیمهای کوچیک زیادی «زودتر از موعد» به سراغ مایکروسرویس رفتن و از عهدهی سربارش بر نیومدن... یادمون نره، معماری باید در خدمت مسائل ما باشن، نه اینکه ما در خدمت معماری دربیایم.
توی مباحث DDD به تفصیل خواهم گفت که معماری سازمانی ما هم حتی باید با شیوه تحلیل نیازمندیها و شیوه ترجمهی اونها به راهکارهای نرمافزاری سازگار باشه.
مایکروسرویس فقط تفیکیک کدها به چند پوشه و وصل کردنشون با API و دپلوی کردنشون تحت پروسههای مجزا نیست! و ای بسا میتونه آغازی بشه بر مصیبتهای آشکار فنی و آسیبهای پرشمار پنهان، منجمله نپرداختن به ریشهی کاستیها، یا افتادن به تلهی مرزبندی اشتباه سرویسها از هم.
لذا مایکروسرویس، در زمان مناسبش و با فراهم کرن پیشنیازهاش، و علیالخصوص وقتی که در خدمت حلکردن مسائل ما باشه همون قدر خوب و مفیده که وقتی زودهنگام یا بدون پیشنیازهاش میریم سراغش، مضر!
Please open Telegram to view this post
VIEW IN TELEGRAM
❤15👍7
Forwarded from مدرسه علوم انسانی
This media is not supported in your browser
VIEW IN TELEGRAM
Ⓜ️ نظریات مزاحم
➕موثر در تفکر نقاد، تفکر خلاق، مهارت حل مسئله
➕ یک آزمایش
➕ دکتر آذرخش مکری
🛄 @zistboommedia || مدرسه علوم انسانی
➕موثر در تفکر نقاد، تفکر خلاق، مهارت حل مسئله
➕ یک آزمایش
➕ دکتر آذرخش مکری
🛄 @zistboommedia || مدرسه علوم انسانی
👍14❤5
Forwarded from tech-afternoon (Amin Mesbahi)
اوایل دههٔ ۲۰۰۰ شرکتهای خیلی بزرگ (بانکها، بیمه، و …) با سیستمهای نرمافزاریای روبهرو بودند که:
- دامینهای با پیچیدگی خیلی بالا داشتند (مثل قوانین کسبوکار پرشمار و در حال تغییر).
- گپ ارتباطی وحشتناکی بین تحلیلگرها و برنامهنویسها وجود داشت؛ اصطلاحات یکی برای دیگری نامفهوم بود.
- هر تغییر کوچک به موجی از regression bugها و استرس انتشار تبدیل میشد.
توی چنین شرایطی، Eric Evans میگه: «بیایید به جای تمرکز صِرفن روی لایههای فنی، قلب مسأله—یعنی دامنه—رو محور کار بگذاریم.» نتیجه شد متدولوژی Domain-Driven Design که توی کتاب معروف «آبی» در سال ۲۰۰۳ متولد شد و بعدتر با کارهای Vaughn Vernon، Jimmy Nilsson و بقیه گسترش پیدا کرد.
برخی مفاهیم پایه در DDD:
- مفهوم Ubiquitous Language
زبان مشترک بین همهٔ ذینفعان. کلاس، جدول DB و اسلاید ارائه باید از یک واژه برای یک مفهوم استفاده کنند، و یک واژه باید همه جا معنی یکسان داشته باشه.
- مفهوم Bounded Context
مرزهایی شفاف برای معنی واژهها. «سفارش» در حسابداری ≠ «سفارش» در انبار.
- مفهوم Aggregate
یک خوشه (گروه) از آبجکتها، با یک ریشهٔ واحد که میشه بهصورت واحد تلقی کردشون.
- مفهوم Context Map
نقشهٔ روابط بین Bounded Contextها؛ شامل پیوندهای همکار، مشتری–تأمینکننده و…
- مفهوم Strategic Design
هنر تشخیص اینکه کِی باید دامنه رو بشکنیم و تیم رو حولش سازماندهی کنیم.
آیا DDD برای همه است؟ نه دقیقاً!
توی «مطلب قبل» دربارهٔ وسوسهٔ ترندها گفتم، DDD هم قربانی حبابها شده. نشونههای انتخاب اشتباه:
- دامنه ساده است (CRUD سرراست، منطق پیچیدهای هم نداره) ولی تیم حتماً میخواد Bounded Context تعریف کنه و Event Storming برگزار کنه!
- ابزارهای تحلیلی، تست، مستندسازی و DevOps هنوز بالغ نیستند اما «میخواهیم معماری تمیز + DDD + مایکروسرویس» رو با هم پیاده کنیم.
- تیم کوچک است ولی هر کانتکست رو توی یک ریپو جداگانه Deploy میکنه و نصف زمانش صرف هماهنگی بین ریپوها میشه.
یادمون نره: DDD هزینه داره—هم آموزشی، هم طراحی، هم نگهداری.
اگر درد پیچیدگی دامنه رو حس نمیکنیم، این دارو تلخ و بیفایده است!!
چرا لزوماً هر معماری دامین-سنتریک، DDD نیست؟!
— بعدتر دراینباره خواهم نوشت که هر گردی گردو نیست!! پیادهسازی Clean / Hexagonal / Onion به معنی DDD نیست!
«توی DDD، معماری کد فقط یک لایه از ماجراست؛ موفقیت زمانی رقم میخوره که ساختار سازمانی و فرایندهای تیم هم با مرزهای دامنه منطبق شن. اگر تیم کوچکه و دامنه پیچیدگی بالایی نداره، صرف داشتن لایهٔ Domain یا استفاده از معماری Clean، شما صاحب DDD نمیشید.»
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥13❤6👍6
Forwarded from کانال مکتبخانه DDD
چرا تخمینزدن سخت است، و بهجای آن چه باید کرد❓
در توسعه محصول، اغلب تحت فشاریم که "حدس بزنیم" یک کار چقدر زمان میبرد. سؤال رایجی مثل این:
«این تسک چند روز طول میکشه؟»
اما بیشتر وقتها، این تخمینها بیشتر از اینکه بر پایه درک واقعی باشن، روی امید و حدس بنا شدن. و وقتی کار طبق برنامه پیش نمیره، که خیلی وقتها هم همینطوره، تیمها دچار استرس، عجله یا سرزنش میشن.
مشکل اینجاست: ما با کار کردن روی محصول مثل یه کار ساده و قابلپیشبینی برخورد میکنیم. درحالیکه بیشتر کارهای محصول پیچیده هستن و این پیچیدگی تابعی است از فاکتورهای مختلف و بهم مرتبط. و پیچیدگی با برنامه زمانی دقیق پیش نمیره.
کاری که واقعاً کمک میکنه، اینه که بهجای زور زدن برای تخمین زودهنگام، اول سعی کنیم اصل مسئله رو بهتر بفهمیم.
بهجای اینکه بپرسیم «چقدر طول میکشه؟»، میپرسیم:
«چقدر این کار رو میفهمیم؟»
و اینو از پنج زاویه اصلی بررسی میکنیم:
🌟 وضوح دامنه (Domain Clarity)
آیا دقیق میدونیم مشکل چیه و کسبوکار یا کاربر چی میخواد؟
🔄 مثال: پیادهسازی فرم لاگین = واضح. طراحی سیستم قیمتگذاری برای ۳ منطقه با قوانین در حال تغییر = مبهم.
🌟 وابستگیهای فنی (Technical Dependencies)
چقدر این کار به سیستمهای دیگه یا بخشهای حساس و قدیمی بستگی داره؟
🔄 مثال: اضافهکردن یک تولتیپ ساده در UI = راحت. اتصال به API قدیمی یک سیستم ثالث = پیچیده و پرریسک.
🌟 وابستگیهای بیرونی (External Dependencies)
آیا این تسک به ورودی یا تأیید تیمهای دیگه، تأمینکنندهها یا بخشهایی مثل حقوقی وابستهست؟
🔄 مثال: بهروزرسانی مستندات داخلی = مستقل. راهاندازی فیچری که نیاز به تأیید حقوقی و هماهنگی با تأمینکننده داره = وابسته.
🌟 آشنایی تیم (Team Familiarity)
آیا تیم قبلاً اینجور کارها رو با همین ابزارها انجام داده؟
🔄 مثال: رفع باگ در اپ اصلی = آشنا. ساخت سرویس جدید با زبانی که تیم بلد نیست = ناشناخته.
🌟 هماهنگی بینتیمی (Cross-Team Sync)
آیا این کار رو میتونیم کاملاً درون تیم انجام بدیم یا نیاز به هماهنگی و تأیید از جاهای دیگه داره؟
🔄 مثال: تغییر متن دکمه = مستقل. اضافه کردن فیچری که نیاز به تأیید حقوقی، دیزاین و دیتا داره = نیازمند هماهنگی بالا.
با امتیاز دادن به یک تسک بر اساس این ۵ عامل (از پیچیدگی کم تا زیاد)، درک خیلی دقیقتری از اونچه قراره انجام بشه بهدست میاریم. این کمک میکنه بفهمیم آیا آماده اجراییم، یا باید اول کشف بیشتری انجام بدیم.
🔍 مثال واقعی:
مکتبخانه DDD
@DomainDrivenDesign_ir
در توسعه محصول، اغلب تحت فشاریم که "حدس بزنیم" یک کار چقدر زمان میبرد. سؤال رایجی مثل این:
«این تسک چند روز طول میکشه؟»
اما بیشتر وقتها، این تخمینها بیشتر از اینکه بر پایه درک واقعی باشن، روی امید و حدس بنا شدن. و وقتی کار طبق برنامه پیش نمیره، که خیلی وقتها هم همینطوره، تیمها دچار استرس، عجله یا سرزنش میشن.
مشکل اینجاست: ما با کار کردن روی محصول مثل یه کار ساده و قابلپیشبینی برخورد میکنیم. درحالیکه بیشتر کارهای محصول پیچیده هستن و این پیچیدگی تابعی است از فاکتورهای مختلف و بهم مرتبط. و پیچیدگی با برنامه زمانی دقیق پیش نمیره.
کاری که واقعاً کمک میکنه، اینه که بهجای زور زدن برای تخمین زودهنگام، اول سعی کنیم اصل مسئله رو بهتر بفهمیم.
بهجای اینکه بپرسیم «چقدر طول میکشه؟»، میپرسیم:
«چقدر این کار رو میفهمیم؟»
و اینو از پنج زاویه اصلی بررسی میکنیم:
🌟 وضوح دامنه (Domain Clarity)
آیا دقیق میدونیم مشکل چیه و کسبوکار یا کاربر چی میخواد؟
🔄 مثال: پیادهسازی فرم لاگین = واضح. طراحی سیستم قیمتگذاری برای ۳ منطقه با قوانین در حال تغییر = مبهم.
🌟 وابستگیهای فنی (Technical Dependencies)
چقدر این کار به سیستمهای دیگه یا بخشهای حساس و قدیمی بستگی داره؟
🔄 مثال: اضافهکردن یک تولتیپ ساده در UI = راحت. اتصال به API قدیمی یک سیستم ثالث = پیچیده و پرریسک.
🌟 وابستگیهای بیرونی (External Dependencies)
آیا این تسک به ورودی یا تأیید تیمهای دیگه، تأمینکنندهها یا بخشهایی مثل حقوقی وابستهست؟
🔄 مثال: بهروزرسانی مستندات داخلی = مستقل. راهاندازی فیچری که نیاز به تأیید حقوقی و هماهنگی با تأمینکننده داره = وابسته.
🌟 آشنایی تیم (Team Familiarity)
آیا تیم قبلاً اینجور کارها رو با همین ابزارها انجام داده؟
🔄 مثال: رفع باگ در اپ اصلی = آشنا. ساخت سرویس جدید با زبانی که تیم بلد نیست = ناشناخته.
🌟 هماهنگی بینتیمی (Cross-Team Sync)
آیا این کار رو میتونیم کاملاً درون تیم انجام بدیم یا نیاز به هماهنگی و تأیید از جاهای دیگه داره؟
🔄 مثال: تغییر متن دکمه = مستقل. اضافه کردن فیچری که نیاز به تأیید حقوقی، دیزاین و دیتا داره = نیازمند هماهنگی بالا.
با امتیاز دادن به یک تسک بر اساس این ۵ عامل (از پیچیدگی کم تا زیاد)، درک خیلی دقیقتری از اونچه قراره انجام بشه بهدست میاریم. این کمک میکنه بفهمیم آیا آماده اجراییم، یا باید اول کشف بیشتری انجام بدیم.
🔍 مثال واقعی:
فرض کن تیم قراره فیچری اضافه کنه به اسم «پشتیبانی از یک پلن جدید پرداخت».نتیجه:
در ظاهر ساده بهنظر میرسه، ولی وقتی تیم از زاویه این ۵ عامل نگاه میکنه، متوجه میشه:
- منطق قیمتگذاری مشخص نیست → (وضوح دامنه پایین).
- باید به سیستم یک تأمینکننده خارجی وصل بشه → (وابستگی زیاد).
- تیم قبلاً با سیستم پرداخت کار نکرده → (آشنایی کم).
این کار کوچیک نیست، و باید اول یک فاز کشف (Discovery) براش انجام بدن.
این روش کمک میکنه تیمها هوشمندتر برنامهریزی کنن، غافلگیر نشن، و از قبل در مورد ریسکها صحبت کنن — نه وقتی خیلی دیر شده.
مکتبخانه DDD
@DomainDrivenDesign_ir
👍31❤12
Forwarded from سنتز | Synthesis
معرفی مقاله
■ مدلهای زبانی کوچک (SLM) - آیندهی هوش مصنوعی عاملی
■ عنوان اصلی: Small Language Models are the Future of Agentic AI
■ نوشتهی تیمی از محققان NVIDIA Research و Georgia Institute of Technology
■ تاریخ انتشار: 12 خرداد 1404
■ چکیده:
«مدلهای زبانی بزرگ (LLMها) بهدلیل تواناییشان در مکالمههای عمومی و عملکرد نزدیک به انسان در طیف گستردهای از وظایف، مورد توجه زیادی قرار گرفتهاند. با این حال، ظهور سیستمهای هوش مصنوعی عاملی (Agentic AI) موجی از کاربردها را به همراه داشته است که در آنها مدلهای زبانی تنها تعداد محدودی از وظایف تخصصی را بهصورت تکراری و با تنوع اندک انجام میدهند. در این مقاله، این دیدگاه را مطرح میکنیم که مدلهای زبانی کوچک (SLMها) برای چنین کاربردهایی کاملاً کافی، از نظر ساختاری مناسبتر، و از نظر اقتصادی بسیار مقرونبهصرفهتر هستند. به همین دلیل، ما معتقدیم آیندهی هوش مصنوعی عاملی به سمت استفاده از SLMها پیش خواهد رفت. این باور بر پایهی توانمندیهای فعلی SLMها، ساختار رایج سیستمهای عاملی، و هزینههای مرتبط با استقرار مدلها شکل گرفته است.
همچنین بیان میکنیم که در مواردی که توانایی گفتوگوی عمومی اهمیت دارد، استفاده از سیستمهای عاملی ناهمگن (heterogeneous agentic systems) که بهطور همزمان از چند مدل مختلف بهره میبرند، گزینهای طبیعی و منطقی خواهد بود. در ادامه، به موانع احتمالی در مسیر بهکارگیری SLMها اشاره میکنیم و الگوریتمی برای تبدیل عاملهای مبتنی بر مدلهای بزرگ به مدلهای کوچک ارائه میدهیم.
دیدگاه ما بهصورت یک بیانیهی ارزشی مطرح شده است تا اهمیت تأثیرات عملیاتی و اقتصادی حرکت از LLMها به SLMها را در صنعت عاملهای هوش مصنوعی برجسته کند. هدف ما آغاز گفتوگویی دربارهی استفادهی مؤثرتر از منابع هوش مصنوعی و کمک به کاهش هزینههای آن در شرایط کنونی است.»
🔗 لینک:
https://arxiv.org/pdf/2506.02153v1
■ مدلهای زبانی کوچک (SLM) - آیندهی هوش مصنوعی عاملی
■ عنوان اصلی: Small Language Models are the Future of Agentic AI
■ نوشتهی تیمی از محققان NVIDIA Research و Georgia Institute of Technology
■ تاریخ انتشار: 12 خرداد 1404
■ چکیده:
«مدلهای زبانی بزرگ (LLMها) بهدلیل تواناییشان در مکالمههای عمومی و عملکرد نزدیک به انسان در طیف گستردهای از وظایف، مورد توجه زیادی قرار گرفتهاند. با این حال، ظهور سیستمهای هوش مصنوعی عاملی (Agentic AI) موجی از کاربردها را به همراه داشته است که در آنها مدلهای زبانی تنها تعداد محدودی از وظایف تخصصی را بهصورت تکراری و با تنوع اندک انجام میدهند. در این مقاله، این دیدگاه را مطرح میکنیم که مدلهای زبانی کوچک (SLMها) برای چنین کاربردهایی کاملاً کافی، از نظر ساختاری مناسبتر، و از نظر اقتصادی بسیار مقرونبهصرفهتر هستند. به همین دلیل، ما معتقدیم آیندهی هوش مصنوعی عاملی به سمت استفاده از SLMها پیش خواهد رفت. این باور بر پایهی توانمندیهای فعلی SLMها، ساختار رایج سیستمهای عاملی، و هزینههای مرتبط با استقرار مدلها شکل گرفته است.
همچنین بیان میکنیم که در مواردی که توانایی گفتوگوی عمومی اهمیت دارد، استفاده از سیستمهای عاملی ناهمگن (heterogeneous agentic systems) که بهطور همزمان از چند مدل مختلف بهره میبرند، گزینهای طبیعی و منطقی خواهد بود. در ادامه، به موانع احتمالی در مسیر بهکارگیری SLMها اشاره میکنیم و الگوریتمی برای تبدیل عاملهای مبتنی بر مدلهای بزرگ به مدلهای کوچک ارائه میدهیم.
دیدگاه ما بهصورت یک بیانیهی ارزشی مطرح شده است تا اهمیت تأثیرات عملیاتی و اقتصادی حرکت از LLMها به SLMها را در صنعت عاملهای هوش مصنوعی برجسته کند. هدف ما آغاز گفتوگویی دربارهی استفادهی مؤثرتر از منابع هوش مصنوعی و کمک به کاهش هزینههای آن در شرایط کنونی است.»
🔗 لینک:
https://arxiv.org/pdf/2506.02153v1
❤6👍4
Forwarded from صادق سپندارند
وقتی حافظه جمعی، استراتژیها را تغییر میدهد
تصور کنید در یک جلسه سازمانی، مدیران به ایدهای اشاره میکنند که همه دربارهاش اطمینان دارند. «همیشه اینطور بوده!» جملهای است که بارها تکرار میشود. اما اگر واقعیت متفاوت باشد چه؟ اگر خاطرهای که همه به آن استناد میکنند اساساً رخ نداده باشد؟
پدیده «اثر ماندلا»، که بر مبنای خاطره جمعی غلطِ درگذشت نلسون ماندلا در «زندان»دهه ۸۰ در میان مردم نامگذاری شده، نشان میدهد که ذهن جمعی انسانها چگونه میتواند خاطرات غیرواقعی بسازد. این اثر زمانی نمایان میشود که رویدادها به شکل تحریفشدهای در حافظه گروهی افراد ثبت و به مرور زمان تقویت میشوند، بهطوریکه تبدیل به حقیقتی غیرقابل انکار میشوند.
در دنیای کسبوکار، چنین تحریفهایی اغلب از آنچه فکر میکنیم پررنگترند. مدیران تصمیمات استراتژیک خود را گاهی بر اساس تجربیات جمعی نادرستی اتخاذ میکنند که در گذر زمان به «حقایق غیرقابل تردید» تبدیل شدهاند. مثلاً بارها دیده شده شرکتی استراتژیاش را بر پایه شکست یا موفقیت فرضی یک محصول در گذشته بنا میکند، درحالیکه بررسی دقیقتر نشان میدهد اساساً چنین تجربهای به آن شکل که تصور میشود وجود نداشته است.
اثر ماندلا میتواند سازمانها را به دام تصمیمگیریهای نادرست، سرمایهگذاریهای بیهوده یا حتی هراسهای بیاساس بکشاند. اما شناخت این پدیده، به مدیران اجازه میدهد تا با احتیاط بیشتری به «واقعیتهای سازمانی» نزدیک شوند. مستندسازی دقیق و بررسی منظم تصمیمها و نتایج گذشته میتواند سپر دفاعی مناسبی در برابر حافظه جمعی اشتباه باشد.
از سوی دیگر، این اثر، اهمیت «قصهگویی» (Storytelling) در سازمانها را آشکار میکند؛ داستانهایی که بارها بازگو میشوند، نهایتاً به فرهنگ سازمانی بدل شده و استراتژیها را شکل میدهند.
توجه به «اثر ماندلا» به مدیران یادآوری میکند که حتی جمعیترین خاطرات هم ممکن است نادرست باشند. پذیرش این حقیقت، میتواند سازمانها را در مسیر واقعبینانهتر و آگاهانهتری قرار دهد و تصمیمگیریها را از دام توهمات جمعی نجات دهد
#اثر_ماندلا #استراتژی #حافظه_جمعی #سازمان #سپندارند
تصور کنید در یک جلسه سازمانی، مدیران به ایدهای اشاره میکنند که همه دربارهاش اطمینان دارند. «همیشه اینطور بوده!» جملهای است که بارها تکرار میشود. اما اگر واقعیت متفاوت باشد چه؟ اگر خاطرهای که همه به آن استناد میکنند اساساً رخ نداده باشد؟
پدیده «اثر ماندلا»، که بر مبنای خاطره جمعی غلطِ درگذشت نلسون ماندلا در «زندان»دهه ۸۰ در میان مردم نامگذاری شده، نشان میدهد که ذهن جمعی انسانها چگونه میتواند خاطرات غیرواقعی بسازد. این اثر زمانی نمایان میشود که رویدادها به شکل تحریفشدهای در حافظه گروهی افراد ثبت و به مرور زمان تقویت میشوند، بهطوریکه تبدیل به حقیقتی غیرقابل انکار میشوند.
در دنیای کسبوکار، چنین تحریفهایی اغلب از آنچه فکر میکنیم پررنگترند. مدیران تصمیمات استراتژیک خود را گاهی بر اساس تجربیات جمعی نادرستی اتخاذ میکنند که در گذر زمان به «حقایق غیرقابل تردید» تبدیل شدهاند. مثلاً بارها دیده شده شرکتی استراتژیاش را بر پایه شکست یا موفقیت فرضی یک محصول در گذشته بنا میکند، درحالیکه بررسی دقیقتر نشان میدهد اساساً چنین تجربهای به آن شکل که تصور میشود وجود نداشته است.
اثر ماندلا میتواند سازمانها را به دام تصمیمگیریهای نادرست، سرمایهگذاریهای بیهوده یا حتی هراسهای بیاساس بکشاند. اما شناخت این پدیده، به مدیران اجازه میدهد تا با احتیاط بیشتری به «واقعیتهای سازمانی» نزدیک شوند. مستندسازی دقیق و بررسی منظم تصمیمها و نتایج گذشته میتواند سپر دفاعی مناسبی در برابر حافظه جمعی اشتباه باشد.
از سوی دیگر، این اثر، اهمیت «قصهگویی» (Storytelling) در سازمانها را آشکار میکند؛ داستانهایی که بارها بازگو میشوند، نهایتاً به فرهنگ سازمانی بدل شده و استراتژیها را شکل میدهند.
توجه به «اثر ماندلا» به مدیران یادآوری میکند که حتی جمعیترین خاطرات هم ممکن است نادرست باشند. پذیرش این حقیقت، میتواند سازمانها را در مسیر واقعبینانهتر و آگاهانهتری قرار دهد و تصمیمگیریها را از دام توهمات جمعی نجات دهد
#اثر_ماندلا #استراتژی #حافظه_جمعی #سازمان #سپندارند
👍3❤1
رفقا، برای همتون با هر عقیدهای سلامتی برای خودتون و عزیزانتون آرزو می کنم.
❤105👍4🥰2🔥1
از این اتفاقات یه سری یادگیری ها داشتم که برای خودم نوشته بودمشون، با اینکه به موضوع کانال ربط نداره ولی به اشتراک میزارم:
۱. دشمن اونیه که توی شرایط خاص جنسش رو گرون می کنه، کم می فروشه یا نمی فروشه. دشمن لزوما نمیخواد جونتو بگیره، خیلی وقتها میخواد جیب خودشو پر کنه.
۲. توی دنیای بدون اینترنت مطالعه می تونه آرامش بخش باشه ولی یادگیری تقریبا غیر ممکنه.
۳. بزرگتر ها بیشتر از ما می ترسن، نه از جنگ، از سر بار دیگران شدن.
۴. خبر ذاتش منفیه، از هر طرفی که باشه. دلیلش هم علمیه، ذهن انسان ها به اخبار منفی واکنش نشون میده، نه مثبت. چون نگرانیه ذهن برای بقاشه، پس نگرانی هاشو دنبال می کنه.
۵. برای زندگی تو ایران پلن بی و سی و دی و ... لازمه !
۶.قدر داشته هامونو بیشتر بدونیم.
۷. اونهایی که خیلی ادعای نترسی می کنن، لزوما کلشون بو قرمه سبزی نمیده، اونا هم شاید می ترسن، برای روحیه دادن به بقیه قوی جلوه می دن خودشونو.
۸. قطعا به دولت ها(هر طرفی) نمیشه اعتماد کرد.
شاید همش غلط باشه و من گاردی ندارم اگر برای شما کار نمی کنن.
اینا تجربه زیسته منه توی این ۱۰ روز از جنگ و آوارگی.
۱. دشمن اونیه که توی شرایط خاص جنسش رو گرون می کنه، کم می فروشه یا نمی فروشه. دشمن لزوما نمیخواد جونتو بگیره، خیلی وقتها میخواد جیب خودشو پر کنه.
۲. توی دنیای بدون اینترنت مطالعه می تونه آرامش بخش باشه ولی یادگیری تقریبا غیر ممکنه.
۳. بزرگتر ها بیشتر از ما می ترسن، نه از جنگ، از سر بار دیگران شدن.
۴. خبر ذاتش منفیه، از هر طرفی که باشه. دلیلش هم علمیه، ذهن انسان ها به اخبار منفی واکنش نشون میده، نه مثبت. چون نگرانیه ذهن برای بقاشه، پس نگرانی هاشو دنبال می کنه.
۵. برای زندگی تو ایران پلن بی و سی و دی و ... لازمه !
۶.قدر داشته هامونو بیشتر بدونیم.
۷. اونهایی که خیلی ادعای نترسی می کنن، لزوما کلشون بو قرمه سبزی نمیده، اونا هم شاید می ترسن، برای روحیه دادن به بقیه قوی جلوه می دن خودشونو.
۸. قطعا به دولت ها(هر طرفی) نمیشه اعتماد کرد.
شاید همش غلط باشه و من گاردی ندارم اگر برای شما کار نمی کنن.
اینا تجربه زیسته منه توی این ۱۰ روز از جنگ و آوارگی.
❤50👍29
امیدوارم همتون بعد از این اتفاقات سالم باشید و در امان.
یاد آوری می کنم به خودم که از این به بعد وقتی تصمیمی دارم میگیرم که ممکنه روی آدم ها تاثیر بزاره بیشتر روی جوانبش فکر کنم.
📌 توضیح عکس : این عکس مربوط به هدیه، یک دختر ۴ ساله سوری در سال ۲۰۱۴ در اردوگاه پناهندگان عطمه در نزدیکی مرز ترکیه است. عکاس، عثمان ساغرلی، با لنز تلهفوتو عکاسی کرد و هدیه به اشتباه دوربین Hitler's Youth آن را با اسلحه اشتباه گرفت و دستهایش را از ترس بالا برد. این تصویر در سال ۲۰۱۵ وایرال شد و نمادی از تأثیر جنگ داخلی سوریه بر کودکان است. برخی ابتدا به اصالت عکس شک داشتند، اما بیبیسی و منابع دیگر آن را تأیید کردند. این عکس نشاندهنده ترس و آسیب روانی کودکان در جنگ است.
یاد آوری می کنم به خودم که از این به بعد وقتی تصمیمی دارم میگیرم که ممکنه روی آدم ها تاثیر بزاره بیشتر روی جوانبش فکر کنم.
📌 توضیح عکس : این عکس مربوط به هدیه، یک دختر ۴ ساله سوری در سال ۲۰۱۴ در اردوگاه پناهندگان عطمه در نزدیکی مرز ترکیه است. عکاس، عثمان ساغرلی، با لنز تلهفوتو عکاسی کرد و هدیه به اشتباه دوربین Hitler's Youth آن را با اسلحه اشتباه گرفت و دستهایش را از ترس بالا برد. این تصویر در سال ۲۰۱۵ وایرال شد و نمادی از تأثیر جنگ داخلی سوریه بر کودکان است. برخی ابتدا به اصالت عکس شک داشتند، اما بیبیسی و منابع دیگر آن را تأیید کردند. این عکس نشاندهنده ترس و آسیب روانی کودکان در جنگ است.
💔45❤25👎2🥰2
Jadal & Mantegh
Azarkhsh Mokri
در روز های گذشته مجادله ای در گروه چت بین دو طرز فکر شکل گرفت.
من از دو طرف درخواست کردم که ادامه بحث رو ادامه ندهند و متذکر شدم که جدل و بحث فایده ای نداره.
با اینکه اون ماجرا به دلیل عدم توجه به تذکر من منتج شد به بسته شدن گروه چت و برچسب دیکتاور خوردنم شد(اونایی که منو میشناسن الان این شکلین : 😁) ، ولی بازم همه این مشکلات مسیر رو برای یادگیری میتونه باز کنه.
حالا من توجه شما رو به سخن دکتر آذرخش مُکری جلب می کنم با عنوان : جدل و منطق
من از دو طرف درخواست کردم که ادامه بحث رو ادامه ندهند و متذکر شدم که جدل و بحث فایده ای نداره.
با اینکه اون ماجرا به دلیل عدم توجه به تذکر من منتج شد به بسته شدن گروه چت و برچسب دیکتاور خوردنم شد(اونایی که منو میشناسن الان این شکلین : 😁) ، ولی بازم همه این مشکلات مسیر رو برای یادگیری میتونه باز کنه.
حالا من توجه شما رو به سخن دکتر آذرخش مُکری جلب می کنم با عنوان : جدل و منطق
😁8🔥7👍5👎5❤2
سلام.
متاسفانه اخیرا شاهد تعدیل نیرو در شرکت های بزرگی مثل علی بابا بودیم.
تحلیل های متفاوتی هم می بینم که دوستان می نوسین که اکثرا از روی عصبانیت هست.
از اونجایی که هر مشکلی همیشه یه درسی توش داره، می خوام از این مشکل هم یک درس جدید در بیارم.
برای همین میخوام در مورد دلایل تعدیل نیرو به این سبک در شرکت های فناوری براتون بگم.
برای همین پستی در وبلاگم در این مورد نوشتم که توجه شما رو به اون جلب می کنم :
چرا شرکت های فناوری تعدیل نیرو می کنند.
@learning_with_m
متاسفانه اخیرا شاهد تعدیل نیرو در شرکت های بزرگی مثل علی بابا بودیم.
تحلیل های متفاوتی هم می بینم که دوستان می نوسین که اکثرا از روی عصبانیت هست.
از اونجایی که هر مشکلی همیشه یه درسی توش داره، می خوام از این مشکل هم یک درس جدید در بیارم.
برای همین میخوام در مورد دلایل تعدیل نیرو به این سبک در شرکت های فناوری براتون بگم.
برای همین پستی در وبلاگم در این مورد نوشتم که توجه شما رو به اون جلب می کنم :
چرا شرکت های فناوری تعدیل نیرو می کنند.
@learning_with_m
👍28❤22👎5🔥4🥰3
HTML Embed Code: