مقالات

مشکلات را حل نکنید، آنها را از بین ببرید


انسان ها حل کننده های طبیعی مشکلات هستند. این واقعیت که ما تا زمانی که زنده مانده ایم
گونه ای که ما داریم گواه آن است.

انسان ها نیز جویای مشکلات طبیعی هستند. بگذار آن غرق شود
درست است و من در مورد آن صحبت نمی کنم این افراد. من در مورد من و تو صحبت می کنم
بیش از حد. دشوار است و نیاز به اجتناب عمدی دارد. ما فقط زمان زیادی را صرف می کنیم
برای حل مشکلات به طور طبیعی به دنبال مشکلاتی برای حل آن هستیم، حتی اگر این کار را نکنیم
همین الان این مشکلات را دارند

به عنوان مثال، یکی از خواهرانم با من تماس گرفت و پرسید که آیا می توانم به او کمک کنم
برنامه ای بسازید که اساساً قابلیت های زوم، تیتو و گوگل را ترکیب کند
تقویمی که به نوازندگان بیکار (به دلیل بیماری همه گیر) اجازه می دهد تا خودشان تدریس کنند
مهارت های فاصله ای او قبل از اینکه مشکلات را به وجود بیاورد به دنبال مشکلاتی بود تا آنها را حل کند
اول

من به جای اینکه به او کمک کنم راه حلی برای مشکلاتی که هنوز نداشته است پیدا کند
او را تشویق کنید که بله استفاده کنید Zoom، Tito و Google Calendar برای انتقال این ایده
از زمین و پس از آن زمانی که آن ابزار به آن یک مشکل خواهد بود
که او برای حل آن بهتر آماده خواهد بود زیرا موارد واقعی خواهد داشت
تجربه با مشکل و بنابراین زمینه بیشتری برای حل وجود دارد
مشکل

در نهایت، او این ایده را دنبال نکرد. چه خوب که تصمیم نگرفت
مشکلاتی که قبل از اینکه تصمیم بگیرد این ایده را رها کند نداشت. آرزو می کنم
می توانم بگویم که هرگز این اشتباه را مرتکب نشده ام. چند بار نوشته ام a
تست کدی که در نهایت قبل از انجام آن حذف کردم 🤦‍♂️

اجتناب از مشکلات بهتر از حل آنهاست. برای حل مشکلات تلاش نکنید
شما هنوز من نمی گویم از قبل برنامه ریزی نکنید. می توانید از حل کردن اجتناب کنید
مشکلاتی که بدون گوشه گیری خود ندارید.

در حالی که اجتناب از یک مشکل بهترین است، گاهی اوقات شما نمی توانید از یک مشکل اجتناب کنید.
اونوقت چی؟

مردم باید رفع کننده مشکلات باشید این غیر طبیعی است و نیاز به اضافه دارد
تلاش ها وقتی مردم با مشکلی مواجه می شوند، به طور طبیعی شروع به فکر کردن به راه حل ها می کنند
به مشکل و وقتی این کار را انجام می دهیم، حس خوبی دارد، اما ما آن را انجام داده ایم
ناخودآگاه خودمان را ساختیم اسیر پشتیبانی راه حل ما. ⛓

با این حال، اگر کسی بتواند یک گام به عقب بردارد و به جای حل مشکل، آن را از بین ببرد، خود را در موقعیت عالی می بیند و رها می شود.
تمرکز بر وظایفی غیر از نگهداری راه حل و اغلب مشکلات هستند
برای افرادی که از آنچه تولید می کنند نیز استفاده می کنند حذف می شود.

در نگاه اول به نظر می رسد حل و رفع مشکلات یکسان است
چیزی برای روشن شدن، تفاوت اینجاست: وقتی مشکلی را حل می کنید، شما
شما راه حلی برای پشتیبانی دارید وقتی مشکلی را برطرف می کنید، این کار را نمی کنید
من حتی باید در مورد آن فکر کنم زیرا مشکل دیگر وجود ندارد.

بیایید به چند نمونه نگاه کنیم.

تسلا مدل اس سریع با کوه ها در پس زمینه رانندگی می کند

تسلا یک مثال عالی از این موضوع است. با تمام برقی شدن حذف کرده اند
قطعات و فرآیندهای بی شماری که بیش از صدها هنجار صنعت هستند
سال این امر آنها را آزاد کرد تا روی مسائل دیگری که با آنها آشنا شده بودند تمرکز کنند
رویکرد جایگزین آنها

و به عنوان یک مالک خودروهای برقی، رفتن از گاز به برق به من امکان حذف را می دهد
مشکلاتی مانند “از کجا می توانم روغن را عوض کنم” یا نگرانی در مورد گیربکس
منفجر می شود و به ندرت (اگر هرگز) نیاز به لنت ترمز جدید و غیره پیدا کنم
و غیره (خودروهای برقی به نگهداری بسیار کمی نیاز دارند زیرا قطعات بسیار کمی دارند
که می تواند فرسوده شود و بشکند).

تصویری از پخش زنده تسلا که دستگاه ریخته‌گری مدل y giga را با کلمات نشان می‌دهد "40% صرفه جویی در هزینه برای عقب خودرو" و "-79 قطعه در هر ماشین"

یک نوآوری جدیدتر تسلا استفاده از “Gigapress” است که اجازه می دهد
از آنها برای ساختن گچ گیری از یک قسمت از کل عقب و جلوی ماشین.
این کار نیاز به ده ها ربات برای پیچ و جوش دهی قطعات را از بین می برد
با هم

تسلا نمونه فوق العاده ای برای از بین بردن مشکلات است. یک مطالعه موردی بسیار جالب
برای هر کسی که علاقه مند به تولید در مقیاس گسترده است. رفع مشکل است
رمز موفقیت آنها

بسیاری از شما که مطالعه می کنید احتمالاً در مقیاس تولید نمی کنید. شما برنامه های کاربردی ایجاد می کنید.
بنابراین چند نمونه از عیب یابی مرتبط با کد چیست؟

لوگوی React

سال ها پیش، برای ایجاد کامپوننت React، کلاسی ایجاد کردیم که
extends React.Component. ما روش هایی را برای رویدادهای مختلف چرخه حیات اضافه می کنیم
ما می خواستیم آن را بسازیم این برای سال ها خوب کار می کرد، اما یک مانع بزرگ بود
استفاده مجدد از کد یک «نگرانی» (یا ویژگی) ممکن است دارای کدی باشد که در سرتاسر هر یا پراکنده شده باشد
همه از constructor، componentDidMount، componentDidUpdate،
componentWillUnmount، و render. ایجاد انتزاعات قابل استفاده مجدد که
کد مورد نیاز در هر یک از این چرخه های عمر یک چالش بود.

تیم و انجمن React با ایده هایی مانند “Higher Order Components” آمدند.
و “Render Props” برای حل این مشکلات. برای مدت طولانی به نظر می رسید
راه حل بسیار خوبی برآمدگی هایی وجود داشت (مشکلات تودرتو و سلسله مراتب نادرست).
با رندر یا پشتیبانی وحشتناک تایپ و اشتباه/برخورد برای زیر
HOCs) اما ما تقریباً به عنوان یک جامعه به این مشکلات عادت کرده بودیم
راه حل بسیار خوب کار می کند.

سپس تیم React به طور کامل بازی را تغییر داد و هوک ها را معرفی کرد. با قلاب،
استفاده مجدد از کد بی اهمیت و واضح است. شما به همین روش کد را با قلاب های React به اشتراک می گذارید
شما کد جاوا اسکریپت ساده را به اشتراک می گذارید: یک تابع بسازید. کاملا حذف کردند
مشکل و ما دیگر دردی را که ما را به HOC یا رندر پروپز آورده است احساس نمی کنیم
به جز در سناریوهای بسیار خاص

به عنوان یک مثال سریع دیگر: در اوایل دنیای React، تنها نسخه رسمی
روش پشتیبانی شده برای دریافت حالت و توابع از یک مکان به مکان دیگر در React است
برای پاس دادن یک تکیه گاه این منجر به “حفاری حفاری” شد که در آن شما باید وسایل را برانید
اجزای موجود در برنامه شما درد بزرگی بود در روزنامه ها یادداشتی بود
در مورد API “زمینه ای” که وجود داشت، اما استفاده از آن به شدت منع شد
مستقیما در اسناد

Redux سپس به صحنه آمد و کاوش برک آوت (در میان چیزهای دیگر) را حل کرد و
مردم سریع پریدند Redux در واقع استفاده می شود متن API، اما به دلیل آن
پشت یک قفسه کتاب پنهان شده بود، هشدارهای موجود در اسناد باعث ناراحتی مردم نشد
(بیشتر حتی نمی دانستند که به طور غیر مستقیم از زمینه استفاده می کنند).

با این حال، زمانی که زمینه رسمی شد و زمانی که قلاب ها کار را بسیار آسان کردند
بسیاری از مردم متوجه شده اند که مشکل اصلی آنها از redux استفاده می کنند
(دریافت وضعیت پیرامون کاربرد آنها) با یک رویکرد داخلی حذف شدند،
و کاهش را به نفع رویکرد جدید کنار گذاشت.

(برای روشن شدن، دلایل دیگری وجود دارد که مردم از redux استفاده می کنند، اما چند روز پیش
زمینه رسمی، درد اصلی بود که باعث کاهش مردم شد).

آرم ریمیکس

ریمیکس نمونه عالی دیگری از رفع مشکل است. الف گرفته اند
یک رویکرد کاملا متفاوت برای ساخت اپلیکیشن با React و حذف شده است
یک سری مشکلات در این فرآیند

افرادی که از متافریم های دیگر می آیند خیلی سریع عاشق پشتیبانی داخلی برای مسیریابی تو در تو می شوند. از جمله حذف می کند
مشکل با اجزای طرح بندی مشترک اگر ناامیدی را بدانید، متوجه می شوید
منظورم چیست اگر نه … شما خوش شانس هستید.

از آنجایی که Remix یک API مستقیم را در هدرهای حافظه پنهان پاسخ قرار می دهد، می توانید داشته باشید
تمام مزایای اصلی ژنراتورهای سایت استاتیک بدون نیاز به انجام
بازسازی های افزایشی “هوشمند” (که راه حلی بسیار پیچیده برای
یک مشکل واقعی پیش روی رویکرد SSG).

به دلیل روشی که Remix به شما اجازه می دهد تا داده های خود را در a بارگذاری کنید loader تابع ج
همان فایل کامپوننت شما، مشکل واکشی بیش از حد داده ها برطرف می شود
(شما فقط آنچه را که در آن نیاز ندارید فیلتر می کنید loader بنابراین شما فقط آنچه را که هست ارسال می کنید
مورد نیاز از طریق سیم) و مشکل بزرگی که مردم را از استفاده از کلاینت های graphql باز می دارد
حذف شد (برای واضح بودن، Remix با graphql کار می کند، فقط نیازی به استفاده از a نیست
کلاینت پیچیده graphql سمت کلاینت با Remix برای جلوگیری از واکشی بیش از حد). ریمیکس
همچنین فقط داده ها را برای طرح بندی ها را تغییر داد در انتقال صفحه
(چیزی که واقعا فقط با مسیریابی تودرتو می توانید انجام دهید)، حذف بیشتر
مشکل بازیابی

زیرا ریمیکس پشتیبانی می کند directly, you don’t have to worry about the
song-and-dance of form state management and submission. And to get the same
benefits with client-side routing, it exposes a component that emulates
the same experience without a full-page refresh.

Because Remix automatically re-calls your loaders on mutations, you don’t need
to worry about cache invalidation.

Because Remix allows you to specify the link برچسب های موجود در یک مسیر از طریق مسیر
اساساً، لازم نیست نگران تغییرات تک صفحه‌ای CSS باشید که بر آن‌ها تأثیر می‌گذارد
در صفحه دیگر این مشکل کاملا برطرف شده و شاید الان
قبل از دستیابی به کتابخانه CSS-in-JS برای حل این مشکل دو بار فکر می کنید.
زیرا وقتی از Remix استفاده می کنید وجود ندارد.

از آنجایی که ریمیکس چارچوبی است که بر بهبود تدریجی تمرکز دارد، نیازی به این کار ندارید
نگران این باشید که آیا برنامه شما در یک شبکه غیرقابل اعتماد که در آن JS اجرا می شود یا خیر
به دلایلی بارگذاری نمی شود.

از آنجایی که Remix اساساً بر روی API های مبتنی بر وب ساخته شده است، این موارد حذف می شوند
بیش از نیمی از اسنادی که در غیر این صورت باید بنویسند، زیرا آنها
ممکن است شما را به MDN راهنمایی کند. و هستند
مشکل مهارت های قابل انتقال را برای ما به عنوان کاربران از بین می برد زیرا
هرچه در Remix بهتر عمل کنیم، وب سایت های بدون آن بهتر می سازیم.

تا به حال حداقل یک بار باید این فکر را داشته باشید: «اما کنت… آنها می توانند
برخی از مشکلات را برطرف کرد، اما برخی از موارد جدید را معرفی کرد! بله همینطور است
آنچه ما آن را سازش می نامیم و اجتناب از آنها غیرممکن است. حتی بی عملی (حداکثر
تکنیک عیب یابی موثر) دارای معاوضه هایی است.

وسایل نقلیه الکتریکی ممکن است سردرد تعمیر و نگهداری وسایل نقلیه سنتی ICE را نداشته باشند، اما آنها را دارند
همچنین به همان سرعتی که می توانید در یک ماشین سنتی بنزین بزنید و نمی توانید آن را پر نکنید
فقط کافی است یک قوطی گاز با خود حمل کنید

React hook ها استفاده مجدد از کد را به طور چشمگیری ساده کرده اند، اما اکنون باید در مورد آن بیاموزید
هویت ارزشی و حفظ کردن در ساخت این انتزاعات است (هر چند
اغلب
با قرار دادن اشیا در داخل useEffect،
می توانیم این مشکل را برطرف کنیم).

هدف نهایی این است که مشکلات جدیدی را که باید با آن روبرو شوید آسانتر/ارزانتر کنید
برای حل از آنهایی که قبلا داشتید.

مشکلات بزرگ را در ازای مشکلات کوچکتر حذف کنید.

نمونه های بی شماری از عیب یابی در تاریخ و در تاریخ وجود دارد
هر صنعتی که جهان ما را به ارتفاعات جدیدی رسانده است.

من می خواهم همه ما را تشویق کنم که حل مشکلات بشریت را بپذیریم. منم همینطور
ما می خواهیم مراقب باشیم، یک قدم به عقب برداریم و از خود بپرسیم که آیا تصمیم می گیریم؟
مشکلات درست ما به سادگی در حال حل مشکلاتی هستیم که از راه حل آنها ایجاد کرده ایم
مشکلات دیگر؟ آیا ممکن است این مشکلات اول را حذف کنیم تا ما این کار را نکنیم
آیا نیاز به حل مسائل ایجاد شده توسط راه حل ما دارید؟

با جستجو نکردن دردسر شروع کنید. اگر واقعاً مشکلی دارید، ابتدا آن را امتحان کنید
اگر می توانید آن را حذف کنید و فقط در صورتی آن را حل کنید که مطمئن باشید نمی توانید.

بزرگترین چالش این است که اطمینان حاصل کنیم که از بین بردن مشکلات ما اتفاق نمی افتد
مشکلات بزرگتری ایجاد کند اما وقتی بتوانید این کار را انجام دهید، می توانید به طور چشمگیری پیشرفت کنید
چیزهایی برای خودتان و برای همه کسانی که از آنچه شما خلق کرده اید لذت می برند. آن را بگیریدشانس، اشتباه کردن و از بین بردن مشکلات!


Source link

نوشته های مشابه

دیدگاهتان را بنویسید

دکمه بازگشت به بالا