COMPΞZ 🧬
Open in Telegram
متخصص کامپیوتر و نرمافزار • سازنده • هنرمند و طراح • مجموعهدار • نویسنده • تحلیلگر • مشاور استارتاپی و ایدهپرداز 𐎲𐎴𐎠𐎼𐎴𐎫𐎹 𐏃𐎢𐎶𐎠𐎫𐎹 We create because the world deserves better code. https://linktr.ee/compez
Show moreThe country is not specifiedThe category is not specified
366
Subscribers
+424 hours
+237 days
+3930 days
Posts Archive
366
هنر واقعی این است که کدی بنویسیم که انسان بهراحتی بفهمد و ماشین با بیشترین کارایی اجرا کند.
366
میگه مالِ ننت بوده بدیم بره؟ 😂 یعنی شاسگولتر، خاخولتر، احمقتر، خرتر، گاو و گوسفندتر از شماها باز شمایید و طرفدارهاتون.
366
یک خروجی دیگه از شبیهسازی بازی شطرنج با مخزن خودم روی ChatGPT ساده.
https://github.com/thecompez/ai-for-modern-cpp
فناوریها:
C++, Qt, QML, Quick3D, QtMultimedia
366
درک این مخزن برای خیلیها ممکنه سخت باشه، و طبیعی هم هست چون با سرعت عجیب غریبی هوش مصنوعی داره همه چیز رو دگرگون میکنه.
شخصاً چند روزی هست به خاطر برخی مسائل به دنبال این بودم که چطور خودم رو با این موضوع هماهنگ کنم یا یجورایی عقب نیفتم، چیزی که به ذهنم رسید آموزش برای انتقال تجربه بود نه صرفاً یک علم. چون هوش مصنوعی زندگی نمیکنه، الگو رو تکرار میکنه.
بنابراین چی میشه اگه تجربهٔ چندین سالهٔ خودم رو به عنوان متخصص کامپیوتر براش تعریف کنم؟
شاید بگیم خب هوش مصنوعی مگه الآن متوجه این تخصص نیست؟ بله هست! اما صرفاً یک الگوی از پیش تعریف شده رو براش آموزش دادن یعنی مثل اینکه کتابخانهای داشته باشی هر جا لازم به کتابی بود شما به اون مراجعه کنی! اما خب مشاوره یا استاد راهنمایی وجود نداره که به شما بگه کدوم کتاب در مورد چه موضوعی میتونه انتخاب تأکیدی و درست باشه.
آزمایشی که انجام شد، نتیجش میتونه به ساخت یک عنوان جالب تبدیل بشه.
من بهش میگم «معمار مهندسی نرمافزارِ عاملمحور»!
وظایف این حوزه اینها هستند:
- عامل باید چه دانشی داشته باشد؟
- از چه قواعدی پیروی کند؟
- چه ابزارهایی در اختیارش باشد؟
- به کدام فایلها، سامانهها و اطلاعات دسترسی داشته باشد؟
- چگونه وظیفه را طبقهبندی کند؟
- چه زمانی اجازهٔ تغییر کد داشته باشد؟
- چگونه خروجی خود را کامپایل، آزمایش و اعتبارسنجی کند؟
- شکستها و اصلاحات انسانی چگونه به دانش دائمی تبدیل شوند؟
- مخزن تو دقیقاً نمونهای از همین رویکرد است. این مخزن خودش را یک پایگاه دانش اجرایی معرفی میکند که - به عاملهای کدنویس یاد میدهد چگونه مخزن را درک، طراحی، اصلاح، اعتبارسنجی و بازبینی کنند؛ آن هم از طریق ترکیب قواعد، مسیریابی وظایف، الگوها، نمونهٔ اجرایی و ارزیابی رفتار عامل.
مهندسی نرمافزار عاملمحور، حوزهای از مهندسی نرمافزار است که به طراحی دانش، قواعد، ابزارها، دسترسیها، گردشکارها و سازوکارهای ارزیابی موردنیاز برای همکاری قابلاعتماد عاملهای هوشمند با تیمهای توسعه میپردازد.در این مدل، مسئله فقط این نیست که «عامل بتواند کد تولید کند». مسئله این است که عامل: - معماری سازمان را بفهمد؛ - استانداردهای همان تیم را رعایت کند؛ - تصمیمهایش قابلردیابی باشد؛ - بدون شواهد واقعی ادعای موفقیت نکند؛ - تغییرات را بسازد، آزمایش کند و بازبینی کند؛ - از اصلاحات مهندسان ارشد یاد بگیرد. - چرخهٔ اجباری تعریفشده در مخزن تو نیز دقیقاً همین منطق را پیاده میکند: بررسی درخواست و قواعد، شناخت زیرسامانه، انجام کوچکترین تغییر صحیح، پیکربندی، ساخت، آزمون، بازبینی و ارائهٔ شواهد واقعی. چیزی که در ذهنم هست تبدیل شدن یک مدل یا عامل به ابزار اتصال نیست؛ بلکه انتقال دانش ضمنی شرکت، استانداردهای معماری، روش توسعه، کنترل کیفیت و تجربهٔ مهندسان ارشد را به یک سامانهٔ قابلفهم و قابلاجرای عاملها است. این موضوع در پژوهشهای جدید نیز با مفهوم تبدیل دانش سازمانی به دانش اجرایی عاملها، همراه با اعتبارسنجها، حاکمیت و کنترل سطح خودمختاری مطرح شده است. در این طرح یک معمار مهندسی نرمافزار عاملمحور ابتدا تیم، مخزنها و فرایندهای یک سازمان را ممیزی میکند. سپس مشخص میکند عاملهای هوشمند کجا واقعاً ارزش ایجاد میکنند و کجا استفاده از آنها خطرناک، پرهزینه یا بیفایده است. وظایف اصلی این نقش میتواند شامل این موارد باشد: ۱) ممیزی آمادگی عاملمحور بررسی میکند که آیا معماری، مستندات، آزمونها، CI/CD، تقسیم مسئولیتها و دانش داخلی شرکت برای استفاده از عاملهای هوشمند آماده هستند یا نه. ۲) معماری دانش عامل — دانش پراکندهٔ تیم را به ساختاری تبدیل میکند که عامل بتواند از آن استفاده کند: - قراردادهای مهندسی؛ - راهنماهای وظیفهمحور؛ - تصمیمهای معماری؛ - الگوهای صحیح و ممنوع؛ - محدودیتهای امنیتی؛ - قواعد انتشار و استقرار. ساختار این مخزن نیز همین سلسلهمراتب را دارد: قرارداد اصلی، راهنماهای وظیفهمحور، الگوها، نمونهٔ اجرایی و سناریوهای ارزیابی. تعریف خلاصه از کل این طرح این است: من معماری مهندسی نرمافزار عاملمحور طراحی میکنم؛ یعنی دانش، قواعد، ابزارها، گردشکارها و سازوکارهای ارزیابی یک تیم را به زیرساختی تبدیل میکنم که عاملهای هوشمند بتوانند در آن بهشکلی قابلاعتماد، قابلکنترل و منطبق با استانداردهای واقعی مهندسی کار کنند. #مهندسی_نرمافزار #معماری #هوش_مصنوعی #مهندسی_عامل #نرمافزار
366
اگه میخوای دقیقاً ببینی چه چیزهایی رو چطوری به این مخزن آموزش دادم این لینک رو دریاب:
https://github.com/thecompez/ai-for-modern-cpp/tree/main/docs/agent
کلاً برای عاملهای هوشمند قالبهای متعددی از معماری، طراحی و مهندسی رو در فایلهای md تعریف میکنیم.
برای مثال این بخش برای معماری پروژههاست:
https://github.com/thecompez/ai-for-modern-cpp/blob/main/docs/agent/ARCHITECTURE.md
این مورد برای مدلهای طراحی و الگوهای محدودهدار:
https://github.com/thecompez/ai-for-modern-cpp/blob/main/docs/agent/PATTERNS.md
این بخش رو هم بیشتر از همشون دوست دارم چون مهندسی نسبتی رابطهٔ بین QML و ++C رو براش پیاده کردم، چیزی که هیچ یک از عاملهای هوشمند در موردش درک درست حسابی ندارن.
https://github.com/thecompez/ai-for-modern-cpp/blob/main/docs/agent/QT_QUICK_UI.md
این هم جالبه، مربوط به موضوع چند سکویی هست، مثلاً پروژهٔ شما اگه حس کنه که قرار هست روی مثلاً روی دسکتاپ و موبایل اجرا بشه، خودش بر مبنای این بخش معماری درستش رو درک میکنه و عیناً همینی که من براش یاد دادم رو پیاده خواهد کرد:
https://github.com/thecompez/ai-for-modern-cpp/blob/main/docs/agent/PLATFORM_BOUNDARIES.md
یا مثلاً قوائد مربوط به ماژولها:
https://github.com/thecompez/ai-for-modern-cpp/blob/main/docs/agent/MODULES.md
366
+1
خب بین این تحقیق و آزمایشها و بازی با AI، سعی کردم اونور برخی از باگهای GenyConnect رو حل و همونطور که قول داده بودم ویژگی پشتیبانی از چند زبان رو هم بهش اضافه کنم.
اینم شاید آخر امشب یا فردا منتشر بشه.
366
شاید بگی چیزی نیست! ولی خیلی حرفه به چتجیپیتی بگی همچین چیزی بساز.
شاید برای HTML وی ه صفحهٔ ساده همچین کاری سادست، اما عمراً بتونی همچین چیزی رو با یک زبان کامپایلری پیاده کنی! چون باید هزاران خط پرامپت بنویسی تا فقط بفهمه چطور باید بند و بساط سی++ رو برات سر هم کنه! حالا طراحیش به کنار 😂
وای که چه چیزهایی به مغزم نرسید با این آزمایش، منتظر چیزهای هیجانانگیز عجایب غرایب باشید.
366
کل پرامپتی که دادم به عمد، به فارسی! و خیلی ساده.
عمراً بتونی بدون این مخزنی که نوشتم GPT رو مجبور کنی همچین خروجیای با سی++ برات بده، ۱۰۰ هزار جنی میدم بهت اگه بتونی فقط با یه پرامپت به OpenAI حالی کنی که این ساختاری که گفتم رو باید پیاده کنه.
محال ممکنه. 😉
366
خب این هم نمونهای از ZipGame مشابه لینکدین که با همون مخزنی که آموزش دادم با سی++ ساخته شد.
هستش ++C هست و رابطش QML.
نه از کلاد و نه از کدکس استفاده نکردم :) فقط GPT ساده.
این است قدرت آموزش.
366
امان از دست شما جنیدارها.
دونیت رو نگهدارید برای یک نسخهٔ جدیتر.
همون ستاره و بازنشر پست روی لینکدین کنید کافیه فعلاً.
به مرور یه مدل منتشر میکنم که خودش شامل نسخهٔ گرافیکی هست به عنوان یک دستیار؛ روی اون نسخه میتونید مستقیم با جنی هم درگیر بشید واسه و برنامه بسازید. 😉
هرکسی ایدهای داشت میتونه با اکتفا به همین مخزن بر پایهٔ این فناوریهایی که براش تعریف کردم پیادهسازی کنه یه چیزایی یاد میگیره.
اگه چیز خوبی باشه میتونم ازش حمایت کنم یا حتی خودمم روی توسعش کمک کنم تا ایدتون رو به یک محصول واقعیتر و دقیقتر تبدیل کنید.
366
نکته) شما نمیتونید حتی با کلاد Fable 5 به راحتی بخواین که با سی++ بیاد همچین چیزی رو زیر چند دقیقه بسازه! چون باید همهٔ این اصول رو بهش آموزش بدی و یک پرامپت کامل مهندسی شده بنویسی.
اما این مخزنی که من ساختم ببین چیه که فقط با یه پرامپت ساده خودش میفهمه باید چه کار بکنه.
اینکه بهش بگی یه ماشن حساب ساده بنویس، تشخیص بده باید بره از چی استفاده کنه، چطوری طراحیش کنه، چطوری معماری پیاده کنه، چطوری کامپایلر رو تنظیم کنه و کلی دنگ و فنگ دیگه...
بماند که چه کارش کردم روی GPT ساده که بیشتر از چت کردن هیچی حالیش نیست شما نتیجهٔ معادل Claude رو میگیری. 😉😂
366
+2
درضمن پرامپت رو به عمد فارسی نوشتم که جزئیات بیشتری از خطاهارو شاهد باشم.
این هم خروجی!
366
+2
خب این هم یک بهروز رسانی زیبا!🔼
این بهروز رسانی شامل قوائد جدیدی از تنظیمات پروژه به همراه یک سری اجبار برای تنظیمات مترجم و همچنین قوانین طراحی UI/UX استاندارد.
فقط دقت کن ChatGPT چطور عمل کرده! دقت کن این کدکس یا کلاد نیست! فقط صفحهٔ چت ساده از OpenAI هست بدون نگرانی از توکنسوزی و محدودیت شدید.
https://github.com/thecompez/ai-for-modern-cpp
طوری بهش آموزش دادم که هر قانونی که لازم هست رو اجرا کنه، داخل خود GPT برنامهٔ سی++ رو کامپایل کنه، آزمایش کنه و در نهایت بعد از اطمینان از عملکرد کد پروژه رو کامل برای دانلود براتون آماده کنه.
بعدش هم که میبری داخل Qt Creator یا Clion و امثالش بازش میکنی و کامپایل و بعد اجرا.
ساختار پروژه رو دقت کن! 😉 اینارو ممکن نیست خودش براتون بسازه، اما آشی که من برای این مخزن پختم وادارش میکنه عین یه متخصص رفتار کنه.
366
این آزمایشهایی که نوشته رو عمراً بتونی بعد چند روز بسازی! خب همهٔ این آموزشها رو من بهش دادم عین بلبل داره انجام میده.
چقدر مرتب، چقدر تمیز چقدر شیک. خب چی میخوای؟ اینم نتونی به کار بگیری برو بمیر دیگه.
