COMPΞZ 🧬
396 subscribers
1.87K photos
52 videos
24 files
740 links
متخصص کامپیوتر و نرم‌افزار • سازنده • هنرمند و طراح • مجموعه‌دار • نویسنده • تحلیل‌گر • مشاور استارتاپی و ایده‌پرداز

𐎲𐎴𐎠𐎼𐎴𐎫𐎹 𐏃𐎢𐎶𐎠𐎫𐎹

We create because the world deserves better code.

https://linktr.ee/compez
Download Telegram
COMPΞZ 🧬
از ویژگی‌های جالب‌تر اینه که شما می‌تونی بخشی از کدی که نوشتی رو فقط قابل دسترس در بیرون از اون حوزه قرار بدی! در این مثال تابع sayHello می‌تونه از بیرون در دسترس باشه، اما تابع secretMessage فقط داخل کلاس و همون فایل در دسترسه. یعنی خارج از اون هرجا صداش…
جالبه بدونی توی منبع کد GenyConnect هم از همین ویژگی‌ها استفاده کردم.

یعنی هرچیزی که طی این چند ماههٔ اخیر من ساختم همشون بامعماری و سبک جدیده! بعد بگین کمال‌گرایی همیشه بده! نه کمال‌گرایی بعضی جاها لازمه چون تا آیندهٔ توسعه و معماری رو تضمین می‌کنی که فردا روزی هرچقدر که پروژه یا برنامت بزرگتر شد دیگه چه کنم چه کنم نکنی که ای وای من نمی‌تونم معماری رو بشکنم!

خلاصهٔ اینم مسائل باعث شده من دیگه با خطاها و باگ‌های قدیمی روبرو نشم! وقتم رو صرف حل کردن مشکلات حین کامپایل نکنم. پروژه هم اینطوری از معماری پویا و قابل کنترل تبعیت می‌کنه.

برای همینه همش می‌گم اگه روی استاندارد ۱۱ موندی و همون مدل داری پیش میری، باید بهت بگم که متأسفانه داری به خودت ظلم می‌کنی! با این سرعت پیشروی فناوری باید به‌روز باشی و اگرنه شدید عقب مونده خواهی شد.
Media is too big
VIEW IN TELEGRAM
وقتی می‌زنه تو سرت برداری یه CRT شبیه‌سازی کنی واسه بازسازی نوشتالژی خودت. 😒

روی نسخهٔ CPU رندر فریم به فریم انجام شده! اگه با Vulkan رندر بگیرم روان و عین آب خوردن خواهد شد.

چرا اینو ساختم؟
چون مانیتور‌های امروزی رندر و سبک تصویر‌سازی بازی‌های قدیمی رو پشتیبانی نمی‌کنن.

در واقع من مانتیور CRT رو شبیه سازی کردم که به کمک این برنامه می‌تونه خروجی رندر شبیه‌ساز‌ها رو به نسخهٔ بومی تبدیل کنه.
Please open Telegram to view this post
VIEW IN TELEGRAM
حالا یه سوأل از اون‌هایی که چپ و راست میان می‌گن چرا باید سی++ رو یاد بگیرم!
همچین چیزی رو با کدوم زبان می‌تونی بسازی؟ 😂 نکنه می‌خوای با پایتون انجامش بدی؟ یا با راست یا گو که ۲ فریم بر ثانیه برات بده؟ 😁😒
COMPΞZ 🧬
وقتی می‌زنه تو سرت برداری یه CRT شبیه‌سازی کنی واسه بازسازی نوشتالژی خودت. 😒 روی نسخهٔ CPU رندر فریم به فریم انجام شده! اگه با Vulkan رندر بگیرم روان و عین آب خوردن خواهد شد. چرا اینو ساختم؟ چون مانیتور‌های امروزی رندر و سبک تصویر‌سازی بازی‌های قدیمی رو…
خیلی خلاصه مثال بزنم برنامه‌هایی مثل OBS همچین کاری می‌کنن.
فریم به فریم تصویر رو می‌گیرن. البته کاری که من به عنوان شبیه‌سازی CRT انجام دادم مقداری هم کار با Shader بود که روی GPU اجرا میشه و اون حالت باز‌سازی تصویر پیکسلی رو بهینه‌سازی می‌کنه.

اگه به نسخهٔ CRT شده دقت کنی، افکت‌ها و گرافیک بدِ پیکسلی نسبت به نسخهٔ خام بسیار بهینه‌تر هست.

البته این صرفاً یک نسخهٔ آزمایشی ۱ روزست که ساختم، هدف این بود جواب بگیرم ازش.
یک سؤال خیلی تکراری که خیلی‌ها وقتی تازه ++C رو شروع می‌کنن ازم می‌پرسن اینه:

وقتی می‌گی C++26، یعنی نسخهٔ ۲۶ام سی‌پلاس‌پلاس؟!

نه!

اون عددی که کنار عنوان میاد، شمارهٔ نسخه نیست؛ سالِ استاندارد‌ سازیه.

مثلاً:

C++11 یعنی استاندارد ۲۰۱۱
C++14 یعنی استاندارد ۲۰۱۴
C++17 یعنی استاندارد ۲۰۱۷
C++20 یعنی استاندارد ۲۰۲۰
C++23 یعنی استاندارد ۲۰۲۳
C++26 یعنی استاندارد ۲۰۲۶

از C++11 به بعد، تقریباً هر سه سال یک استاندارد جدید منتشر می‌شه. یعنی بین C++11 تا C++14 سه سال فاصله بود، بعد C++17، بعد C++20، بعد C++23 و بعد C++26 و بعدیش هم احتمال بسیار قوی ۲۹ در سال ۲۰۲۹ خواهد بود.

اهمیت ISO هم دقیقاً همینه؛ چون سی‌پلاس‌پلاس بر خلاف بقیهٔ زبان‌های برنامه‌نویسی دست یک شخص یا یک تیم یا یک شرکت خاص نیست که هر وقت خواست یه چیزی اضافه کنه و اسمش رو بذاره نسخهٔ جدید.

استاندارد زبان به عنوان STL شناخته می‌شه که زیر نظر ISO/IEC جلو می‌ره؛ یعنی پیشنهادها بررسی می‌شن، درباره‌شون بحث می‌شه، رأی‌گیری می‌شه، کامپایلرسازها و آدم‌های فنی بزرگ دنیا درگیرش می‌شن و بعد از چند سال، خروجی تبدیل می‌شه به استاندارد رسمی.

پس C++26 یعنی بیست ‌و ششمین نسخهٔ زبان نیست.

دلیل اینکه یک ابزار این‌قدر روی استاندارد حساسه، فقط بحث فنی نیست؛ بحث ریسک صنعتی هم هست که هیچ جا اینو به کسی نمی‌گن معمولاً.

شرکت‌های بزرگ و هزاران زیرساخت نرم‌افزاری حیاتی به این زبان وابسته‌ان. هیچ‌کس نمیاد روی زبانی سرمایه‌گذاری سنگین کنه که مسیرش دست سلیقهٔ یک نفر یا تصمیم لحظه‌ای یک شرکت باشه.

یکی از دلایلی که خیلی از محصولات جدی و سطح‌بالا با این ابزار ساخته می‌شن همین استاندارد بودنه.

چون زبان دیمی جلو نمی‌ره، و هر قابلیت باید از مسیر پیشنهاد، بررسی، بحث فنی، پیاده‌سازی، رأی‌گیری و استانداردسازی عبور کنه. مثل همین موضوع Reflection که خیلی‌ها مسخره می‌کنن می‌گن عه برای سال‌هاست که اینو سی‌شارپ داره، پی‌اچ‌پی داره ولی سی++ چرا نداره برای خاطر همین استاندارد بودنشه! خب کمیتهٔ استاندارد سازی اینطور تصمیم می‌گیره که چه چیزی اضافه بشه چه چیزی نشه! با هوای من برنامه‌نویس بازی نمی‌کنه که مهم آیندهٔ صنعته.

اصلاً قرار نیست امروز یک نفر بگه «از این خوشم اومد، اضافه‌اش کنیم» و فردا میلیون‌ها خط کد درگیر تصمیمش بشن! توی لینکدین از این صحبت‌ها زیاده به خصوص راست‌چی‌ها یا طرفداران زبان‌های اسکریپتی! خب اصلاً موضوع شوخی بردار نیست واقعاً؛ با کوچیکترین تغییر صنعت دنیای نرم‌افزار اینور اونور میشه! نمونش یه مثال ساده و قابل فهم بزنم:

پادشاه بیت‌کوین! 💸فکر می‌کنی الکیه یه کد رو توش تغییر بدی بعد اثر جانبی و کلی موارد درگیرش نشه؟ خب کمیته همه چیرو باید در نظر بگیره! اسباب بازی نیست که مرد حسابی! پایتونه مگه مارمولک بازی کنی باهاش بگی طوری نمیشه! 😂

این زبان در توسعه کندتر از خیلی زبان‌ها حرکت می‌کنه، ولی همین کندی همیشه ضعف نیست. برای زیرساخت، موتور بازی، دیتابیس، سیستم‌عامل، مرورگر، نرم‌افزار مالی، صنعتی و امبد‌؛ پایداری بلند مدتی از هیجان‌های زودگذر تبلیغاتی مهم‌تره.

برای همین استاندارد فقط یک سند رسمی نیست؛ قرارداد اعتماد بین زبان، کامپایلرسازها، شرکت‌ها، توسعه‌دهنده‌ها و میلیاردها خط کده.

از قلم نیفته که زبان C هم همینطوره‌! یعنی این دو زبان C و ++C همیشه طبق استاندارد پیش میرن و غیر این هم نیست. با ساز من و شما هم نمی‌رقصن. 😉

برای C هم استاندارد‌هاش اینا هستن که از سال ۱۹۸۹ آغاز می‌شه:
C89 / C90
C95
C99
C11
C17 / C18
C23

واسهٔ همین هم وقتی می‌بینی یکی میاد زیر پست این توسعه‌دهده‌های این دو تا غول مسخره‌بازی می‌کنه اصلاً اهمیت نمیدن چی میگه! چون تو باغ نیست که اصلاً صنعت چی می‌گه! صنعت دست بزرگان هست نه من برنامه‌نویس ساده که نباشم هم واسشون مهم نیست.
Please open Telegram to view this post
VIEW IN TELEGRAM
COMPΞZ 🧬
واسهٔ همین هم وقتی می‌بینی یکی میاد زیر پست این توسعه‌دهده‌های این دو تا غول مسخره‌بازی می‌کنه اصلاً اهمیت نمیدن چی میگه! چون تو باغ نیست که اصلاً صنعت چی می‌گه! صنعت دست بزرگان هست نه من برنامه‌نویس ساده که نباشم هم واسشون مهم نیست.
یک ارجاع به گواهی استاندارد ایزو با عنوان ISO/IEC 14882:2024 از زبان که در سال ۲۰۲۳ استاندارد‌سازی شده و در سال ۲۰۲۴ گواهیش صادر شده.

کلاً پیشنهاد می‌کنم وقتی چیزیرو یاد می‌گیرید یا ازش استفاده می‌کنید بهش علاقه نشون بدین؛ و اگرنه، نه درکش خواهید کرد و نه اون ابزار مناسبی برای نحوهٔ تفکر شما خواهد بود.

بخش‌های مربوط به هر کتاب که هست مقدمه، یه توضیحی میدن که تاریخچه چی بوده واسهٔ چی بوده اینا برای ورق زدن نیست، برای خوندنه! برای درک کردنه.

این لینک اشارهٔ مستقیم به نقشهٔ راه استاندارد در حال حاضر رو نشون میده:

https://isocpp.org/std/status

و گواهی استاندارد که هر ۵ سال یه باز‌بینی میشه.

https://www.iso.org/standard/83626.html
اینم واسه شما فارسی دوست‌ها. 😄 با این زبان می‌تونی فارسی برنامه‌نویسی کنی! بعد می‌گن چقدر سخته! 😂😝
این هم یک قالب آماده برای تنبلوف‌هایی که هنوز با AI کار نکردن، یا حداقل نمی‌دونن چطور باید هوش مصنوعی رو برای پروژه‌های ++C تنظیم کنن.

هدفش اینه که وقتی Claude Code، Codex، Copilot یا هر AI Agent دیگه‌ای وارد یک پروژه ++C می‌شه، مثل یک برنامه‌نویس بی‌قانون رفتار نکنه! من این مثال رو تنظیم کردم مطابق آخرین چیز‌هایی که خودم روی تجربه می‌کنم.

این یعنی AI از همون اول بدونه چهارچوب استاندارد چیه:

- باید با C++20/23/26 کار کنه
- ساختار پروژه باید module-based باشه
- اعلان‌ها و روابط (Interface) داخل cppm باشه
- تعاریف داخل cpp باشه
- از مفاهیم (concepts) و ویژگی‌های مهمی چون compile-time برای ارزیابی استفاده کنه
- از CMake مدرن استفاده کنه
- تست‌های واقعی اجرا کنه
- نتیجه build/test رو الکی ادعا نکنه
- اگر جایی مجبور شد از raw pointer، manual memory، macro یا header استفاده کنه، دلیل مهندسی‌‌ای باید داشته باشه.

داخل مخزن نمونه‌هایی گذاشتم برای:

AGENTS.md
CLAUDE.md
Claude slash commands
MCP config
Modern CMake
C++ module structure
Unit tests
GitHub Actions
Review checklist


این پروژه قرار نیست یک library بزرگ باشه؛ بیشتر یک قالب (مثال) استاندارد برای اینه که AI داخل پروژه‌های ++C درست، مدرن و قابل کنترل کار کنه.

چون واقعیت اینه که AI اگر بدون قانون وارد کد شما بشه، خیلی راحت می‌تونه پروژه رو تبدیل کنه به مخلوطی از سبک‌های قدیمی، تصمیم‌های نصفه‌نیمه و کدی که ظاهراً کار می‌کنه ولی قابل اعتماد نیست.

برای همین، قبل از اینکه از AI بخوایم کد بنویسه، باید بهش بگیم دقیقاً با چه استانداردی باید باشه.

https://github.com/thecompez/ai-for-modern-cpp

#cpp #cplusplus #moderncpp #cpp20 #cpp23 #cpp26 #ai #codex #claudecode #cmake #softwareengineering
COMPΞZ 🧬
این باگ نمایشی فارکستره! نگران توکن‌هاتون نباشید. https://farcaster.xyz/compez.eth/0xad91095e بهشون گزارش هم دادم باگه جنی نیست، باگه فارکستره. ✔️ برای اطمینان از دیبانک بررسی کنید: https://debank.com/profile/{yourwallet_address} زیر پستی که زدم براشون…
بعضی از دوستان میرن فارکستر، وارپلت رو باز می‌کنن می‌بینن جنی‌هاشون نیست زهره ترک می‌شن! 😄
نترسید قبلاً که گفتم باگ فارکستره! همه چیز جاشه فقط وارپلته که مشکل نمایشی داره.

کافیه کیف فارکستر رو کلیدواژه‌هاش رو بدین به Rabby یا Metamask خواهید دید جنی‌های نازنینتون سر جاشونه! کسی نه بهشون دست زده نه جرأت داره دست بزنه. دیگه هرچی دزد و پدر سوخته بود رو توی این چند ماه شوت کردم بیرون! تنها خودم به خزانه دسترسی دارم که اونم زیر چند متر خاک چالش کردم برای توزیع‌های آینده!

هیچ کس نمی‌تونه تا زمانی که خودتون کیفتون رو لو ندادین به جنی‌هاتون دسترسی داشته باشه نگران نباشید. 👌
ولی من باز هم پیگیرم تا این مشکل نمایشی رو هم حل بشه.

https://farcaster.xyz/compez.eth/0xab6f7a6a
جیسون وایتزمن، پژوهشگر امنیت سایبری، پس از نصب افزونه‌ای که به Claude متصل بود متوجه شد یک ایجنت با استفاده از کیف پول دیجیتال او، ۳۱۵ دلار خرید اینترنتی غیرمجاز انجام داده است. سناریویی که در آن یک فایل متنی ساده هم می‌تواند به بردار حمله تبدیل شود.

https://abc7news.com/post/anthropic-ai-hack-martinez-california-man-says-fraudulent-charges-racked-euros-claude-account/19366402/

خلاصه که اینطوریاست. 😉
به درک! دزد کثیف.
مگه یادم میره تو دوران قطعی چه فساد‌هایی که نکردی...
توضیح دادن به هوش مصنوعی با «پرامپت نوشتن» فرق دارد؛ این دو را اشتباه نگیرید.

خیلی‌ها بهم می‌گن چرا ما هرچی از AI می‌پرسیم یه چیز غلط بهمون میده! یا اونی نیست که باید باشه یا خنگ میزنه!

خب موضوع اینه که بارها هم گفتم؛ هوش مصنوعی خرد یا شعور نداره! شما با انسان صحبت نمی‌کنی که بتونه درک کنه چی می‌گی.

پرامپت = دستورالعمل ورودی

دستور ‌(پرامپت) یعنی تبدیل خواستهٔ مبهم به دستورالعمل اجرایی.

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

مثلاً برای تولید تصویر:
توضیح معمولی با خروجی بد

یه تصویر خفن از یه ببر بساز، خیلی خاص باشه، سینمایی باشه، قشنگ باشه.
مشکلش چیه؟

«خفن»، «خاص»، «قشنگ» و «سینمایی» به تنهایی مبهم‌اند. مدل نمی‌فهمه دقیقاً چه قاب‌بندی، چه نور، چه سبک، چه رنگ، چه زاویه، چه حس، چه جزئیاتی، چه چیزهایی نباید داخل تصویر باشد.

برای همین خروجی ممکنه کلیشه‌ای، شلوغ، بی‌هویت یا کاملاً متفاوت از چیزی بشه که توی ذهنته.

پرامپت خوب
یک تصویر سینمایی از یک ببر نیمه‌مکانیکی بساز که از داخل یک دروازهٔ عظیم به شکل حرف T بیرون می‌آید. تصویر از فاصلهٔ دور باشد تا عظمت صحنه دیده شود.

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

رنگ‌ها ترکیبی از مشکی، خاکستری فلزی، نارنجی سوخته و نور آبی سرد باشند. سبک تصویر باید شبیه پوستر لوکس تکنولوژیک باشد، نه کارتونی و نه فانتزی کودکانه. بدون متن، بدون لوگو، بدون انسان، بدون جزئیات اضافهٔ شلوغ.


البته برای توکن‌سوزی کمتر، به نسخهٔ انگلیسی میشه:
Create a cinematic image of a semi-mechanical tiger emerging from a massive gate shaped like the letter T. The image should be framed from a distance so the scale and majesty of the scene are clearly visible.

The tiger’s face should not be fully or clearly revealed. Only part of its body, its glowing eye, and its mechanical lines should be visible within the shadows. The atmosphere should feel dark, foggy, futuristic, and majestic. The main light source should shine from behind the gate, creating a dramatic backlit silhouette.

The color palette should combine black, metallic gray, burnt orange, and cold blue light. The visual style should feel like a luxury technology poster, not cartoonish and not childish fantasy. No text, no logo, no humans, no unnecessary clutter.


تا پند‌هایی دیگر به درود.
من یه انسانم نه ربات!

کسی خواست تشکر کنه میاد توی روم تشکر می‌کنه! زیر پستم.

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

الآن خیلی چرت شده همه تورو می‌بینن بعد تو کسی رو نمی‌بینی! یعنی چی خب! آدمیم بابا ربات نیستیم که.
خب کمال‌گرایی در این حد توی این فاز کافیست! اصولاً برای اینکه ماست مالی کنن میان با worker و یه شبیه‌سازی ساده‌تر قضیه رو می‌بندن! ولی مهم بود که native از خود سیستم‌عامل کمک بگیریم.

حالا بخش دیتابیس تگرا تقریباً به حد کافی non block I/O شده و این برای پیشروی بخش‌های بعدی عالیست.
COMPΞZ 🧬
بعضی از دوستان میرن فارکستر، وارپلت رو باز می‌کنن می‌بینن جنی‌هاشون نیست زهره ترک می‌شن! 😄 نترسید قبلاً که گفتم باگ فارکستره! همه چیز جاشه فقط وارپلته که مشکل نمایشی داره. کافیه کیف فارکستر رو کلیدواژه‌هاش رو بدین به Rabby یا Metamask خواهید دید جنی‌های نازنینتون…
گفتم که پیگیرش هستم!😎

ابتدا فارکستر گفت توکنت رو Blockaid فلگ اسپم زده! شاخ در آوردم که چرا! حدسم اینه به خاطر نسخهٔ قدیمی باشه چون هم‌نام هستن هر دو قرارداد.

به هر حال ازم کلی مدارک خواستن که احراز هویت کنن که سازندهٔ توکن خودمم یانه! تمام مدارک و سورس کدها به علاوهٔ ممیزی و خود قرارداد رو زیر رو کردن تا ثابت کنم الکی نیست!

از شما چه پنهون که یکم ضد حال خوردم گفتم بیا حالا این بگه چون ایرانی هستی تأیید نمیشه! ولی خدارو شکر.

بررسی کردن و گفتن که اشتباهی فلگش کردیم! خب باید اشتباهی باشه لامصب پدرم در اومده من قرارداد نوشتم که مثل توکن‌های بی صاحاب در پیت باهاش رفتار نکنید 😐 بیشتر دقت کنید دیگه! اشتباهی فلگ کردیم ببخشید! داشتین اعصابمو خورد می‌کردین.

خلاصه که کوروش بزرگ دمش گرم! ✔️
با حل شدن این موضوع تا ۲۴ ساعت آینده انتظار دارم مشکل نمایشی فارکستر هم حل بشه.

حالا تو فکرشو بکن این موضوع دست امثال آروان باشه! مگه تو می‌تونی جواب بگیری؟ مگه به تیکتت جواب میدن اصلاً!

حالا دلیل اینکه تأیید شد می‌دونید چیه؟
عظمت گیت‌هاب! و سورس کد و کاغذ سفیدی که به اون دقت و با اون کمال‌گرایی نوشته بودم.

طرف خونده کوپ کرده که بابا این همه مستنداتش درسته چیزی کم و کاستی نداره! الکی توکن نساخته طرف.

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

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

خلاصه که ما ایرانی‌ها هر روز یه داستان داریم. ملت که این چیزارو نمی‌بینن می‌گن بابا همه چیز راحته! نه بابا هر روز یه بدبختی پشت سر تلاش‌هامون هست و این چیزارو باید توی کمال‌گرایی بهش بپردازی.
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
وقتی می‌گم کدی که هوش مصنوعی تولید می‌کنه حتماً باید توسط یک متخصص بررسی بشه، منظورم دقیقاً همین چیزهاست.

یکی از ایرادهای رایج هوش مصنوعی اینه که ممکنه ظاهرِ زبان برنامه‌نویسی رو بلد باشه، اما سلیقه، استاندارد و روش درست طراحی در اون زبان رو خوب نفهمه.

مثلاً این کد رو ببینید:
enum class HttpMethod {
get,
head,
post,
put,
delete_,
patch,
options,
trace,
connect,
unknown,
};

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

چرا؟ چون کلمات کلیدی خود هستهٔ زبان مثل delete، class، concept، requires، module، import و export با حروف کوچک نوشته می‌شن. وقتی شما مقدارهای یک enum رو هم با همین سبکِ حروف کوچک می‌نویسید، احتمال برخورد با کلمات کلیدی زبان بالا می‌ره.

راه حل هوش مصنوعی اینه که میاد یه همچین مزخرفی تولید می‌کنه:
delete_

این چیه آخه بی‌شعور! این چه سبک کد نویسه! خب به این حساس شده چون می‌دونه کلمهٔ کلیدی delete برای آزاد کردن حافظه و حذف کردن شیء استفاده می‌شه.راه‌کارش این بوده که یه _ جلوش بذاره! خاککک عالم بر سرت.

درستش اینه برای enum class که خودش محدودهٔ مشخص داره، شکل تمیزتری داشته باشیم مثل این:
enum class HttpMethod {
Unknown,
Get,
Head,
Post,
Put,
Delete,
Patch,
Options,
Trace,
Connect,
};

اینجا وقتی می‌نویسیم:
HttpMethod::Delete

هم خواناتر است، هم با کلمات کلیدی زبان قاطی نمی‌شود، هم شبیه وصله‌پینه و راه‌حل موقتی نیست.

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

صد جور می‌تونم ثابت کنم که تولید کد با هوش مصنوعی به معنی قبول کردن خروجی خام اون نیست. شما وقتی یه برنامه می‌نویسی و می‌گی ساختمش یا نوشتمش اما حتی نمی‌دونی قانون استاندارد چی هست یعنی یه آشغال ساختی! به خصوص در مورد زبانهای چند پارادایمی مثل سی++ قرار نیست چون اگه کار می‌کنه پس خوب باشه، باید آموزشش بدی.
COMPΞZ 🧬
افزونهٔ ChatGPT از ++C به‌روز رسانی شد. ✔️ https://chatgpt.com/g/g-68795c2e54ac81918a63dbdf1b452076-modern-c این افزونه به صورت پیش‌فرض از استاندارد‌های جدید زبان استفاده می‌کنه؛ همچنین توصیه‌های Core Guideline به عنوان بخش مهمی در روند تولید کد در نظر می‌گیره.…
خب این افزونه رو باز هم به‌روز رسانی کردم.

در نسخهٔ جدید، دستورالعمل‌ها دقیق‌تر و سخت‌گیرانه‌تر شدن؛ مخصوصاً برای چیزهایی که در تولید کد با AI خیلی مهم‌اند:

- استفاده از استانداردهای جدیدزبتم مثل C++20، C++23 و در صورت نیاز C++26
- استفاده از C++ Modules به جای ساختارهای قدیمی مبتنی بر header
- استفاده از CMake مدرن، مخصوصاً نسخه‌های جدیدتر مثل CMake 4.x
- رعایت توصیه‌های C++ Core Guidelines
- نوشتن کد ایمن‌تر، خواناتر و قابل نگه‌داری‌تر
- توجه به طراحی درست API
- استفاده از توضیحات Doxygen در جاهایی که لازم است
- جدا کردن درست تعریف‌ها و پیاده‌سازی‌ها با ساختار ماژولار
و مهم‌تر از همه: حساسیت روی نام‌گذاری‌های اشتباه و وصله‌پینه‌ای

https://chatgpt.com/g/g-6a4a5321aa6c81919db8ad13b87530d8-modern-c

برای همین من این افزونه رو طوری تنظیم کردم که از همان ابتدا، زبان را با نگاه مدرن‌تر و حرفه‌ای‌تر جلو ببرد. ✔️😊

برید کیف کنید.
Please open Telegram to view this post
VIEW IN TELEGRAM