بررسی دوین: آیا عامل کدنویسی هوش مصنوعی بهتر از Cursor است؟

Summarize this content to 400 words in Persian Lang
من 500 دلار در ماه برای استفاده از Devin، عامل کدنویسی هوش مصنوعی پرداخت کردم، بنابراین شما مجبور نیستید. بیایید آن را با نمایندگان مکاننما مقایسه کنیم و ببینیم آیا ارزش ارزش ۲ میلیارد دلاری شرکت آنها را دارد یا خیر.
دوین چیست؟
نکته اصلی که باید در مورد Devin بدانید این است که در درجه اول یک گردش کار مبتنی بر Slack است – این یک IDE نیست.
شما دوین را در Slack تگ می کنید و از دوین می خواهید چیزی را به روز کند، چیزی را اصلاح کند و غیره. دیوین شامل:
یک سرور راه دور
رابط مرورگر
رابط ویرایش کد VS
یک برنامه ریز
یک رابط چت
میتوانید گام به گام را دنبال کنید تا ببینید دوین چه کرده و چه میکند.
تست دوین با مدل تولید تصویر
من در مورد این مدل جدید تولید تصویر شنیدم که قرار است به اندازه کافی کوچک باشد تا بتواند روی سخت افزار درجه یک مصرف کننده اجرا شود.
من امیدوار بودم که یک رابط کاربری وب اولیه داشته باشم، اما بعد همه اینها را پیدا کردم و متوجه شدم که در پایتون کدنویسی نمی کنم. نمی دانستم با این چه کار کنم، بنابراین از دوین پرسیدم.
دوین سر کار رفت و در عرض 12 دقیقه:
مخزن را کلون کرد
فهمیدم چرخید
تصویری از یک گربه برای من ایجاد کرد
تصویر را به من پیوست کرد
سپس چهار تصویر دیگر از یک سگ سوار بر بالون هوای گرم را خواستم. و من تصاویرم را با کیفیت کامل و وحشتناک دریافت کردم.
البته این تقصیر دوین نیست. این مدلی است که ما استفاده می کنیم.
درخواست از دوین برای ایجاد یک رابط کاربری وب
من دیدم یکی از کارهای این مخزن ایجاد یک برنامه تعاملی محلی و بلادرنگ است.
بنابراین از دوین پرسیدم که آیا میتواند این مخزن را شبیهسازی کند و یک رابط کاربری مبتنی بر وب برای تایپ درخواستها و دیدن تصاویر اضافه کند. دوین شروع به چرخش چیزها و ارسال به روز رسانی ها برای من کرد.
یکی از کارهای بسیار جالب که دوین انجام می دهد این است که یادداشت برداری می کند و آنها را در یک فایل notes.txt ذخیره می کند تا به آن مراجعه کند و در اعلان های بعدی از آن استفاده کند.
به نظر می رسد این یک تکنیک جالب برای خلاصه کردن اطلاعات مهم و انتقال آن در مراحل بعدی است.
دیوین همچنین گاهی اوقات ورودی های دانشی را ایجاد می کند، که مانند بیت هایی از اطلاعات هستند که می توانند در اجراهای کاملاً بعدی به آنها مراجعه کنند.
اینها را ذخیره می کند و در صورت نیاز آنها را جستجو می کند، که قرار است دانش قبیله ای را که در یک تیم وجود دارد تقلید کند.
دوین در واقع میتوانست رابط کاربری وب را که من درخواست میکردم اضافه کند، اما ما به مشکلات دیگری برخوردیم. در یک لحظه بیشتر در مورد آن
توانایی ها و محدودیت های دیوین
به طور کلی، دوین بسیار چشمگیر است. آن:
طرح هایی ایجاد می کند
کد می نویسد
اشکالات کد را پیدا می کند
کد را تصحیح می کند
آزمایشهای سرتاسر خود را اجرا میکند تا تأیید کند که کار میکند
در صورت یافتن مشکلات و تلاش برای رفع آنها به بازخورد شما پاسخ می دهد
هر چیزی که در Slack پاسخ دهید، دیوین شروع به کار بر روی یک پاسخ می کند. در این مورد، میتوانست تأیید کند که ما با مشکلات استقرار مواجه هستیم.
من به کار بر روی اشکال زدایی آن ادامه دادم، اما متأسفانه، پس از مدت ها رفت و برگشت، هنوز نتوانسته آن را حل کند. در نهایت، من از تلاش منصرف شدم.
شخصاً، Slack Thread Hell روش مورد علاقه من برای توسعه/اشکالزدایی نیست:
ترجیح میدهم به «هیچ بهروزرسانی؟» تنزل رتبه ندهم. پسر
در نهایت، من پرسیدم که آیا می توانم این کد را به صورت محلی پایین بکشم و آن را به صورت محلی اجرا کنم. دستورالعمل هایی به من داد، اما آنها معتبر نبودند، زیرا در واقع این کد را در یک درخواست کششی ارسال نکرد.
قابلیت های درخواست کشش دیوین
این بدان معنا نیست که دوین نمی تواند درخواست کشش را انجام دهد. یکی از اولین اجراهای من از Devin اضافه کردن یک ویژگی به یک برنامه آب و هوا بود.
توانست ویژگی مورد نظر من را اضافه کند و همچنین به بازخورد من که میخواهم بیشتر شبیه استایل iOS باشد پاسخ دهد.
درخواست کشش نهایی بد نبود. دو بسته اضافه کرد و کد بسیار خوبی بود، اما یک لاگ کنسول در کد وجود داشت.
همچنین پس از بازخورد من فراموش کرده است بسته ای را که دیگر به آن نیازی نداشت حذف نصب کند. اما ما می توانیم وارد شویم و مانند یک فرد معمولی فقط نظرات خود را بگذاریم تا این گزارش را حذف کنیم و که دیگر به این بسته نیازی نیست.
یکی از کارهای جالب دیوین زمانی که ما در مورد اینکه رابط کاربری این بهروزرسانی برنامه آبوهوا باید چگونه باشد، انجام داد، این بود که بدون اینکه من بپرسم، یک راهاندازی با URL پیشنمایش ایجاد کرد.
بنابراین وقتی در شهری تایپ میکنم، میتوانم ببینم که ویژگی مورد نظر من یک سبک iOS دارد که من پرسیدم. حتی اگر من در واقع پیشنمایش استقرار را روی این مخزن راهاندازی نکردهام، به هر حال نسخهای را برای دیدن من نصب کرده است.
وقتی فهمید که من یک سبک iOS برای این برنامه میخواهم، این را برای صرفهجویی در دانش پیشنهاد کرد. من میتوانم آن را بررسی و تأیید کنم، و آن را در طول اجراهای بعدی به خاطر خواهد آورد.
با این حال، به دلایلی، این بار نتوانستم دوین را وادار کنم که به بازخورد من پاسخ دهد، حتی اگر قبلاً آن را دیده بودم. نمی دانم چه مشکلی پیش آمد.
به طور کلی، من در طول مسیر در حین استفاده از Devin به چند باگ برخورد کردم، اما هیچ چیز فوق العاده دیوانه کننده ای نبود که نتوانم معمولا کار کردن
رفع اشکالات با دیوین
یک کار جداگانه که من از دوین خواستم این بود که یک باگ در وب سایت موجود ما برطرف کند. پس از حدود 12 دقیقه، یک PR را با یک اصلاح چرخاند، بولی لازم را پیدا کرد و آن را از درست به نادرست به روز کرد.
اما سپس موارد دیگری را که انتظارش را نداشتم به روز کرد:
الف اضافه شد fallback: true در getStaticPaths، حتی اگر getBuilderStaticPaths در حال حاضر بازگشت به ‘blocking’
یک چک حذف شد، حتی اگر قبلاً آن مقدار را به false تبدیل کرده بودیم
یک اعلان نوع اضافه شده است که من می دانم که نیازی به آن نیست
بخش جالب این است که من در روابط عمومی پرسیدم که چرا این کار را کرد، و دوین شکلک چشم را اضافه کرد تا به من بگوید که این را می بیند. بعد خودش توضیح داد.
راستش را بخواهید، به نوعی امیدوار بودم که آن چیزها را برطرف کند. اما توضیح کاملی ارائه کرد. فقط خوب نبود بیشتر این اطلاعات در واقع درست نیست.
Fallback true پیمایش سمت سرویس گیرنده را فعال نمی کند یا سیستم پیش نمایش Builder.io را فعال نمی کند. مسدود کردن بازگشتی، که قبلاً استفاده شده بود، اولویت ما است. همچنین، به تعریف نوع واکنش نشاندهنده جدول نیازی نیست. در بسته گنجانده شده است.
اظهار نظر عجیبی کرد که این اجزاء بخشی از سیستم ناوبری سمت مشتری هستند، هر چه که باشد. اما قسمت خوب این است که من می توانم مانند یک انسان با دوین صحبت کنم، نظر بگذارم، و می تواند مطابق با آن به روز رسانی کند.
افزودن یک ویژگی Backend
آخرین کاری که از دوین خواستم این است که یک ویژگی Backend را پیاده سازی کند. گفتم قابلیت خواندن و نوشتن از مجموعه نظرات را به API ادمین GraphQL خود اضافه کنیم.
دوین روابط عمومی خوبی ایجاد کرد. این بسته ابرداده بازتاب را اضافه کرد که فکر نمیکنم مورد نیاز باشد (تا به امروز به آن نیاز نداشتهایم).
اما مهمتر از همه، تشخیص داد که ما از این ساختار حلکننده استفاده میکنیم. یک حل کننده نظرات ایجاد کرد و آن را اضافه کرد.
این کد در واقع به نظر کاملاً معمولی به نظر می رسد که چگونه این را در باطن نوشته ایم. اکنون چند فیلد را تشکیل می دهد که بهتر است از من بپرسید که این طرح چیست. اما در غیر این صورت، من میتوانم بگویم این کد مناسبی است.
مشکلات گردش کار با دوین
به طور کلی، میتوانم بگویم بزرگترین مشکلی که با دوین دارم این است که گردش کار ترجیحی من نیست. من نمیخواهم درخواستی بکنم و 15 دقیقه برای درخواست کشش منتظر بمانم، و سپس این درخواست را به عقب و جلو در درخواست کشش و/یا Slack داشته باشم.
من بیشتر گردش کار مکان نما را ترجیح می دهم، جایی که همه اینها را در محیط محلی و IDE خود دارم. من میتوانم بهروزرسانیها را در زمان واقعی ببینم و میتوانم به صورت محلی، بدون پریدن به سرور راه دور و مجموعهای از ابزارهای دیگر که نمیدانم، انجام دهم و اشکالزدایی کنم، و این همه انتظار و تأخیر طولانی را داشته باشم که ناآشنا و غیرمولد هستند.
من میدانم که ایده دوین این است که تعدادی از همکاران ناهمزمان مامور را به یک کار معطوف کند و به آنها اجازه دهد کارهای زیادی را به صورت موازی انجام دهند و فقط با نتایج به سراغ شما بیایند.
اما تا زمانی که دیوین ها خیلی بهتر نباشند، واقعاً گردش کار خوبی نیست. من نمیخواهم هوش مصنوعی خاموش شود و کار خود را انجام دهد و تنها زمانی که تمام شد بازگردد، مگر اینکه مطمئن باشم که واقعاً، واقعاً قابل اعتماد خواهد بود.
در غیر این صورت، ترجیح می دهم IDE من فقط این کار را انجام دهد.
مقایسه با عوامل مکان نما
بیایید برخی از وظایف مشابه را با ویژگیهای عامل جدید مکاننما مقایسه کنیم.
مدیریت زمینه
تفاوت بزرگ بین عوامل مکاننما و نمای استاندارد آهنگساز مکاننما در این است که شما مجبور نیستید فایلها را به صورت دستی به متن اضافه کنید. مکان نما پایگاه کد شما را اسکن می کند و فایل های مربوطه را پیدا کرده و برای شما اضافه می کند.
مکان نما توانست این متغیر مسیریابی سمت مشتری را پیدا کند و آن را به false تبدیل کند. اگر بهروزرسانیها را بپذیرم، میتوانیم ببینیم که دقیقاً همان کاری را انجام داده است که میخواستیم. یک تفاوت اساسی حداقل.
کنترل و بازخورد کاربر
مکان نما همیشه کامل نیست، اما بخشی که من بیشتر دوست دارم این است که کنترل را در دست دارم و روی صندلی راننده نشسته ام. اگر چیز متفاوتی میخواهم، میتوانم بگویم، فقط آن متغیر و همه مراجع را به طور کامل حذف کنید. و من می توانستم فوراً به روز رسانی را ببینم. انتظار کمتر و اقدام بیشتر وجود دارد.
در حالی که من بیشتر در جریان هستم، اعتماد بیشتری به این فرآیند دارم. از آنجایی که میدانم چه میخواهم، و اگر بتواند کد من را اسکن کند، چندین فایل را بهروزرسانی کند و باعث شود نگران جزئیات نباشم، میتوانم بازخورد و تغییرات دستی را در زمان واقعی ارائه دهم و درخواست کشش را به من ارسال کنم.
این کار برای من و تیمم بسیار ساده تر است.
وضوح مالکیت
با مکان نما نیز واضح تر است که درخواست کشش متعلق به چه کسی است: این من هستم. من این فرآیند را سریعتر، آسانتر و زیباتر میدانم. ما رباتهای عجیب و غریبی نداریم که درخواستهای کششی را ایجاد کنند، جایی که مشخص نیست چه کسی واقعاً مالک آن است و مسئول اطمینان از خوب بودن کد است.
هیچ کس مجبور نیست روابط عمومی آن ربات را شبیه سازی کند و به روز رسانی های آن را انجام دهد. و هر به روز رسانی خیلی سریع اتفاق می افتد.
مثال GraphQL
من همچنین درخواست GraphQL را با مخزن داخلی بسیار بزرگ خود در حالت عامل مکاننما نیز امتحان کردم. و من نتایج بسیار مشابهی گرفتم. آن:
حل کننده نظرات اضافه شد
آن را در API ادغام کرد
انواع را نیز اضافه کرد
نتایج بسیار مشابهی با آنچه از دیدگاه آهنگساز Cursor انتظار دارید، مشابه است. ولی بازم بخاطر حالت agent مجبور نشدم فایل ها رو مشخص کنم. من فقط دستورم را تایپ کردم و این اتفاق افتاد. خوب بود
کلون مخزن مولد تصویر
اکنون بیایید یک گردش کار عاملی تر را امتحان کنیم که در آن می خواهیم این مخزن مدل مولد تصویر را شبیه سازی کنیم. شما تفاوت اصلی بین عوامل مکان نما و دوین را خواهید دید که قبل از اجرای دستورات از من خواسته است.
مکان نما به طور کلی محتاط تر از Devin است، که خوب است زیرا روی دستگاه محلی من اجرا می شود. اما گاهی اوقات آرزو می کنم که ای کاش این چیزها را برای من اجرا می کرد.
من متوجه شده ام که اگر خطایی پیدا کند، به طور خودکار سعی می کند آن را برطرف کند، که در آن موفق بوده است، که عالی است. الان کد نوشته شده که قبول میکنم. خطایی پیدا کرد و بر این اساس دستور را بازنویسی میکند.
متأسفانه، قبل از اینکه بتوانم به شما نشان دهم آیا مکاننما میتوانست آن کار را به پایان برساند، رایانه من مسدود شد. به نظرم می رسید که تصویر را به خوبی تولید می کند، اما معلوم شد که این مدل برای داشتن یک GPU واقعی و عدم سوزاندن در پردازنده لپ تاپ من مانند آنچه من سعی می کردم ساخته شده است.
نتایج
به طور کلی، من فکر نمی کنم که دوین مانند مکان نما از زمین خارج شود. و این فقط به دلیل نقطه شروع 500 دلار در ماه نیست. استفاده از مکان نما بسیار ساده تر است و من رویکرد افزایشی آنها را دوست دارم.
من می ترسم که دوین سعی می کند خیلی دور بپرد. آنها تمام این پول را جمع آوری کرده اند و می گویند این راه کاملاً جدید برای ساختن نرم افزار با عوامل وجود دارد، اما این روند کاری ترجیحی من نبود.
شاید روزی برسد که LLM ها حتی بهتر شوند و نمایندگان بسیار قابل اعتماد باشند. اما مطمئن نیستم که سرعت پیشرفت ما را خیلی زود به آنجا برساند. و من شخصاً به رویکرد افزایشی Cursor بیشتر از رویکرد “بیا همه چیز را تغییر دهیم” دوین اعتقاد دارم.
پشته هوش مصنوعی ترجیحی من
گردش کار ترجیحی من بیشتر شبیه این است:
یک توسعه دهنده به صورت تکراری با مکان نما کار می کند
سایر هم تیمی ها مانند طراحان با ابزارهای خود تکرار می کنند
محصولاتی مانند builder.io میتوانند طرحها را به کد تبدیل کنند و همچنین بهروزرسانیهای طراحی را در صورت نیاز وصله کنند
در نهایت گردش کار شما تغییر چندانی نمی کند. شما هنوز در حال کدنویسی و رفع اشکال به صورت محلی هستید. در صورت نیاز تغییرات را تحت فشار قرار می دهید.
اما من می گویم که از داشتن یک بازیکن جدید در فضای کدنویسی نماینده هیجان زده هستم تا مکان نما را حتی بیشتر از این پیش ببرد. و من نمی توانم صبر کنم تا ببینم از نتیجه این کار چه می شود.
اما این برداشت سریع من است. با هر چیزی که دیدی، نظرت چیه؟ در نظرات به من اطلاع دهید. و اگر تا انتها رسیدید و می خواهید ویدیوهای بیشتری از این دست ببینید حتما لایک و سابسکرایب کنید.
من 500 دلار در ماه برای استفاده از Devin، عامل کدنویسی هوش مصنوعی پرداخت کردم، بنابراین شما مجبور نیستید. بیایید آن را با نمایندگان مکاننما مقایسه کنیم و ببینیم آیا ارزش ارزش ۲ میلیارد دلاری شرکت آنها را دارد یا خیر.
دوین چیست؟
نکته اصلی که باید در مورد Devin بدانید این است که در درجه اول یک گردش کار مبتنی بر Slack است – این یک IDE نیست.
شما دوین را در Slack تگ می کنید و از دوین می خواهید چیزی را به روز کند، چیزی را اصلاح کند و غیره. دیوین شامل:
- یک سرور راه دور
- رابط مرورگر
- رابط ویرایش کد VS
- یک برنامه ریز
- یک رابط چت
میتوانید گام به گام را دنبال کنید تا ببینید دوین چه کرده و چه میکند.
تست دوین با مدل تولید تصویر
من در مورد این مدل جدید تولید تصویر شنیدم که قرار است به اندازه کافی کوچک باشد تا بتواند روی سخت افزار درجه یک مصرف کننده اجرا شود.
من امیدوار بودم که یک رابط کاربری وب اولیه داشته باشم، اما بعد همه اینها را پیدا کردم و متوجه شدم که در پایتون کدنویسی نمی کنم. نمی دانستم با این چه کار کنم، بنابراین از دوین پرسیدم.
دوین سر کار رفت و در عرض 12 دقیقه:
- مخزن را کلون کرد
- فهمیدم چرخید
- تصویری از یک گربه برای من ایجاد کرد
- تصویر را به من پیوست کرد
سپس چهار تصویر دیگر از یک سگ سوار بر بالون هوای گرم را خواستم. و من تصاویرم را با کیفیت کامل و وحشتناک دریافت کردم.
البته این تقصیر دوین نیست. این مدلی است که ما استفاده می کنیم.
درخواست از دوین برای ایجاد یک رابط کاربری وب
من دیدم یکی از کارهای این مخزن ایجاد یک برنامه تعاملی محلی و بلادرنگ است.
بنابراین از دوین پرسیدم که آیا میتواند این مخزن را شبیهسازی کند و یک رابط کاربری مبتنی بر وب برای تایپ درخواستها و دیدن تصاویر اضافه کند. دوین شروع به چرخش چیزها و ارسال به روز رسانی ها برای من کرد.
یکی از کارهای بسیار جالب که دوین انجام می دهد این است که یادداشت برداری می کند و آنها را در یک فایل notes.txt ذخیره می کند تا به آن مراجعه کند و در اعلان های بعدی از آن استفاده کند.
به نظر می رسد این یک تکنیک جالب برای خلاصه کردن اطلاعات مهم و انتقال آن در مراحل بعدی است.
دیوین همچنین گاهی اوقات ورودی های دانشی را ایجاد می کند، که مانند بیت هایی از اطلاعات هستند که می توانند در اجراهای کاملاً بعدی به آنها مراجعه کنند.
اینها را ذخیره می کند و در صورت نیاز آنها را جستجو می کند، که قرار است دانش قبیله ای را که در یک تیم وجود دارد تقلید کند.
دوین در واقع میتوانست رابط کاربری وب را که من درخواست میکردم اضافه کند، اما ما به مشکلات دیگری برخوردیم. در یک لحظه بیشتر در مورد آن
توانایی ها و محدودیت های دیوین
به طور کلی، دوین بسیار چشمگیر است. آن:
- طرح هایی ایجاد می کند
- کد می نویسد
- اشکالات کد را پیدا می کند
- کد را تصحیح می کند
- آزمایشهای سرتاسر خود را اجرا میکند تا تأیید کند که کار میکند
- در صورت یافتن مشکلات و تلاش برای رفع آنها به بازخورد شما پاسخ می دهد
هر چیزی که در Slack پاسخ دهید، دیوین شروع به کار بر روی یک پاسخ می کند. در این مورد، میتوانست تأیید کند که ما با مشکلات استقرار مواجه هستیم.
من به کار بر روی اشکال زدایی آن ادامه دادم، اما متأسفانه، پس از مدت ها رفت و برگشت، هنوز نتوانسته آن را حل کند. در نهایت، من از تلاش منصرف شدم.
شخصاً، Slack Thread Hell روش مورد علاقه من برای توسعه/اشکالزدایی نیست:
ترجیح میدهم به «هیچ بهروزرسانی؟» تنزل رتبه ندهم. پسر
در نهایت، من پرسیدم که آیا می توانم این کد را به صورت محلی پایین بکشم و آن را به صورت محلی اجرا کنم. دستورالعمل هایی به من داد، اما آنها معتبر نبودند، زیرا در واقع این کد را در یک درخواست کششی ارسال نکرد.
قابلیت های درخواست کشش دیوین
این بدان معنا نیست که دوین نمی تواند درخواست کشش را انجام دهد. یکی از اولین اجراهای من از Devin اضافه کردن یک ویژگی به یک برنامه آب و هوا بود.
توانست ویژگی مورد نظر من را اضافه کند و همچنین به بازخورد من که میخواهم بیشتر شبیه استایل iOS باشد پاسخ دهد.
درخواست کشش نهایی بد نبود. دو بسته اضافه کرد و کد بسیار خوبی بود، اما یک لاگ کنسول در کد وجود داشت.
همچنین پس از بازخورد من فراموش کرده است بسته ای را که دیگر به آن نیازی نداشت حذف نصب کند. اما ما می توانیم وارد شویم و مانند یک فرد معمولی فقط نظرات خود را بگذاریم تا این گزارش را حذف کنیم و که دیگر به این بسته نیازی نیست.
یکی از کارهای جالب دیوین زمانی که ما در مورد اینکه رابط کاربری این بهروزرسانی برنامه آبوهوا باید چگونه باشد، انجام داد، این بود که بدون اینکه من بپرسم، یک راهاندازی با URL پیشنمایش ایجاد کرد.
بنابراین وقتی در شهری تایپ میکنم، میتوانم ببینم که ویژگی مورد نظر من یک سبک iOS دارد که من پرسیدم. حتی اگر من در واقع پیشنمایش استقرار را روی این مخزن راهاندازی نکردهام، به هر حال نسخهای را برای دیدن من نصب کرده است.
وقتی فهمید که من یک سبک iOS برای این برنامه میخواهم، این را برای صرفهجویی در دانش پیشنهاد کرد. من میتوانم آن را بررسی و تأیید کنم، و آن را در طول اجراهای بعدی به خاطر خواهد آورد.
با این حال، به دلایلی، این بار نتوانستم دوین را وادار کنم که به بازخورد من پاسخ دهد، حتی اگر قبلاً آن را دیده بودم. نمی دانم چه مشکلی پیش آمد.
به طور کلی، من در طول مسیر در حین استفاده از Devin به چند باگ برخورد کردم، اما هیچ چیز فوق العاده دیوانه کننده ای نبود که نتوانم معمولا کار کردن
رفع اشکالات با دیوین
یک کار جداگانه که من از دوین خواستم این بود که یک باگ در وب سایت موجود ما برطرف کند. پس از حدود 12 دقیقه، یک PR را با یک اصلاح چرخاند، بولی لازم را پیدا کرد و آن را از درست به نادرست به روز کرد.
اما سپس موارد دیگری را که انتظارش را نداشتم به روز کرد:
- الف اضافه شد
fallback: true
درgetStaticPaths
، حتی اگرgetBuilderStaticPaths
در حال حاضر بازگشت به'blocking'
- یک چک حذف شد، حتی اگر قبلاً آن مقدار را به false تبدیل کرده بودیم
- یک اعلان نوع اضافه شده است که من می دانم که نیازی به آن نیست
بخش جالب این است که من در روابط عمومی پرسیدم که چرا این کار را کرد، و دوین شکلک چشم را اضافه کرد تا به من بگوید که این را می بیند. بعد خودش توضیح داد.
راستش را بخواهید، به نوعی امیدوار بودم که آن چیزها را برطرف کند. اما توضیح کاملی ارائه کرد. فقط خوب نبود بیشتر این اطلاعات در واقع درست نیست.
Fallback true پیمایش سمت سرویس گیرنده را فعال نمی کند یا سیستم پیش نمایش Builder.io را فعال نمی کند. مسدود کردن بازگشتی، که قبلاً استفاده شده بود، اولویت ما است. همچنین، به تعریف نوع واکنش نشاندهنده جدول نیازی نیست. در بسته گنجانده شده است.
اظهار نظر عجیبی کرد که این اجزاء بخشی از سیستم ناوبری سمت مشتری هستند، هر چه که باشد. اما قسمت خوب این است که من می توانم مانند یک انسان با دوین صحبت کنم، نظر بگذارم، و می تواند مطابق با آن به روز رسانی کند.
افزودن یک ویژگی Backend
آخرین کاری که از دوین خواستم این است که یک ویژگی Backend را پیاده سازی کند. گفتم قابلیت خواندن و نوشتن از مجموعه نظرات را به API ادمین GraphQL خود اضافه کنیم.
دوین روابط عمومی خوبی ایجاد کرد. این بسته ابرداده بازتاب را اضافه کرد که فکر نمیکنم مورد نیاز باشد (تا به امروز به آن نیاز نداشتهایم).
اما مهمتر از همه، تشخیص داد که ما از این ساختار حلکننده استفاده میکنیم. یک حل کننده نظرات ایجاد کرد و آن را اضافه کرد.
این کد در واقع به نظر کاملاً معمولی به نظر می رسد که چگونه این را در باطن نوشته ایم. اکنون چند فیلد را تشکیل می دهد که بهتر است از من بپرسید که این طرح چیست. اما در غیر این صورت، من میتوانم بگویم این کد مناسبی است.
مشکلات گردش کار با دوین
به طور کلی، میتوانم بگویم بزرگترین مشکلی که با دوین دارم این است که گردش کار ترجیحی من نیست. من نمیخواهم درخواستی بکنم و 15 دقیقه برای درخواست کشش منتظر بمانم، و سپس این درخواست را به عقب و جلو در درخواست کشش و/یا Slack داشته باشم.
من بیشتر گردش کار مکان نما را ترجیح می دهم، جایی که همه اینها را در محیط محلی و IDE خود دارم. من میتوانم بهروزرسانیها را در زمان واقعی ببینم و میتوانم به صورت محلی، بدون پریدن به سرور راه دور و مجموعهای از ابزارهای دیگر که نمیدانم، انجام دهم و اشکالزدایی کنم، و این همه انتظار و تأخیر طولانی را داشته باشم که ناآشنا و غیرمولد هستند.
من میدانم که ایده دوین این است که تعدادی از همکاران ناهمزمان مامور را به یک کار معطوف کند و به آنها اجازه دهد کارهای زیادی را به صورت موازی انجام دهند و فقط با نتایج به سراغ شما بیایند.
اما تا زمانی که دیوین ها خیلی بهتر نباشند، واقعاً گردش کار خوبی نیست. من نمیخواهم هوش مصنوعی خاموش شود و کار خود را انجام دهد و تنها زمانی که تمام شد بازگردد، مگر اینکه مطمئن باشم که واقعاً، واقعاً قابل اعتماد خواهد بود.
در غیر این صورت، ترجیح می دهم IDE من فقط این کار را انجام دهد.
مقایسه با عوامل مکان نما
بیایید برخی از وظایف مشابه را با ویژگیهای عامل جدید مکاننما مقایسه کنیم.
مدیریت زمینه
تفاوت بزرگ بین عوامل مکاننما و نمای استاندارد آهنگساز مکاننما در این است که شما مجبور نیستید فایلها را به صورت دستی به متن اضافه کنید. مکان نما پایگاه کد شما را اسکن می کند و فایل های مربوطه را پیدا کرده و برای شما اضافه می کند.
مکان نما توانست این متغیر مسیریابی سمت مشتری را پیدا کند و آن را به false تبدیل کند. اگر بهروزرسانیها را بپذیرم، میتوانیم ببینیم که دقیقاً همان کاری را انجام داده است که میخواستیم. یک تفاوت اساسی حداقل.
کنترل و بازخورد کاربر
مکان نما همیشه کامل نیست، اما بخشی که من بیشتر دوست دارم این است که کنترل را در دست دارم و روی صندلی راننده نشسته ام. اگر چیز متفاوتی میخواهم، میتوانم بگویم، فقط آن متغیر و همه مراجع را به طور کامل حذف کنید. و من می توانستم فوراً به روز رسانی را ببینم. انتظار کمتر و اقدام بیشتر وجود دارد.
در حالی که من بیشتر در جریان هستم، اعتماد بیشتری به این فرآیند دارم. از آنجایی که میدانم چه میخواهم، و اگر بتواند کد من را اسکن کند، چندین فایل را بهروزرسانی کند و باعث شود نگران جزئیات نباشم، میتوانم بازخورد و تغییرات دستی را در زمان واقعی ارائه دهم و درخواست کشش را به من ارسال کنم.
این کار برای من و تیمم بسیار ساده تر است.
وضوح مالکیت
با مکان نما نیز واضح تر است که درخواست کشش متعلق به چه کسی است: این من هستم. من این فرآیند را سریعتر، آسانتر و زیباتر میدانم. ما رباتهای عجیب و غریبی نداریم که درخواستهای کششی را ایجاد کنند، جایی که مشخص نیست چه کسی واقعاً مالک آن است و مسئول اطمینان از خوب بودن کد است.
هیچ کس مجبور نیست روابط عمومی آن ربات را شبیه سازی کند و به روز رسانی های آن را انجام دهد. و هر به روز رسانی خیلی سریع اتفاق می افتد.
مثال GraphQL
من همچنین درخواست GraphQL را با مخزن داخلی بسیار بزرگ خود در حالت عامل مکاننما نیز امتحان کردم. و من نتایج بسیار مشابهی گرفتم. آن:
- حل کننده نظرات اضافه شد
- آن را در API ادغام کرد
- انواع را نیز اضافه کرد
نتایج بسیار مشابهی با آنچه از دیدگاه آهنگساز Cursor انتظار دارید، مشابه است. ولی بازم بخاطر حالت agent مجبور نشدم فایل ها رو مشخص کنم. من فقط دستورم را تایپ کردم و این اتفاق افتاد. خوب بود
کلون مخزن مولد تصویر
اکنون بیایید یک گردش کار عاملی تر را امتحان کنیم که در آن می خواهیم این مخزن مدل مولد تصویر را شبیه سازی کنیم. شما تفاوت اصلی بین عوامل مکان نما و دوین را خواهید دید که قبل از اجرای دستورات از من خواسته است.
مکان نما به طور کلی محتاط تر از Devin است، که خوب است زیرا روی دستگاه محلی من اجرا می شود. اما گاهی اوقات آرزو می کنم که ای کاش این چیزها را برای من اجرا می کرد.
من متوجه شده ام که اگر خطایی پیدا کند، به طور خودکار سعی می کند آن را برطرف کند، که در آن موفق بوده است، که عالی است. الان کد نوشته شده که قبول میکنم. خطایی پیدا کرد و بر این اساس دستور را بازنویسی میکند.
متأسفانه، قبل از اینکه بتوانم به شما نشان دهم آیا مکاننما میتوانست آن کار را به پایان برساند، رایانه من مسدود شد. به نظرم می رسید که تصویر را به خوبی تولید می کند، اما معلوم شد که این مدل برای داشتن یک GPU واقعی و عدم سوزاندن در پردازنده لپ تاپ من مانند آنچه من سعی می کردم ساخته شده است.
نتایج
به طور کلی، من فکر نمی کنم که دوین مانند مکان نما از زمین خارج شود. و این فقط به دلیل نقطه شروع 500 دلار در ماه نیست. استفاده از مکان نما بسیار ساده تر است و من رویکرد افزایشی آنها را دوست دارم.
من می ترسم که دوین سعی می کند خیلی دور بپرد. آنها تمام این پول را جمع آوری کرده اند و می گویند این راه کاملاً جدید برای ساختن نرم افزار با عوامل وجود دارد، اما این روند کاری ترجیحی من نبود.
شاید روزی برسد که LLM ها حتی بهتر شوند و نمایندگان بسیار قابل اعتماد باشند. اما مطمئن نیستم که سرعت پیشرفت ما را خیلی زود به آنجا برساند. و من شخصاً به رویکرد افزایشی Cursor بیشتر از رویکرد “بیا همه چیز را تغییر دهیم” دوین اعتقاد دارم.
پشته هوش مصنوعی ترجیحی من
گردش کار ترجیحی من بیشتر شبیه این است:
- یک توسعه دهنده به صورت تکراری با مکان نما کار می کند
- سایر هم تیمی ها مانند طراحان با ابزارهای خود تکرار می کنند
- محصولاتی مانند builder.io میتوانند طرحها را به کد تبدیل کنند و همچنین بهروزرسانیهای طراحی را در صورت نیاز وصله کنند
در نهایت گردش کار شما تغییر چندانی نمی کند. شما هنوز در حال کدنویسی و رفع اشکال به صورت محلی هستید. در صورت نیاز تغییرات را تحت فشار قرار می دهید.
اما من می گویم که از داشتن یک بازیکن جدید در فضای کدنویسی نماینده هیجان زده هستم تا مکان نما را حتی بیشتر از این پیش ببرد. و من نمی توانم صبر کنم تا ببینم از نتیجه این کار چه می شود.
اما این برداشت سریع من است. با هر چیزی که دیدی، نظرت چیه؟ در نظرات به من اطلاع دهید. و اگر تا انتها رسیدید و می خواهید ویدیوهای بیشتری از این دست ببینید حتما لایک و سابسکرایب کنید.