COMPΞZ 🧬
الذهاب إلى القناة على Telegram
متخصص کامپیوتر و نرمافزار • سازنده • هنرمند و طراح • مجموعهدار • نویسنده • تحلیلگر • مشاور استارتاپی و ایدهپرداز 𐎲𐎴𐎠𐎼𐎴𐎫𐎹 𐏃𐎢𐎶𐎠𐎫𐎹 We create because the world deserves better code. https://linktr.ee/compez
إظهار المزيدلم يتم تحديد البلدالفئة غير محددة
393
المشتركون
لا توجد بيانات24 ساعات
-57 أيام
+2730 أيام
أرشيف المشاركات
393
یک موتور میتونه از فریمورکهای دیگه استفاده کنه اما یک فریمورک خودش چهارچوب محدود شده به خودش رو داره.
مثلاً ما میتونیم انتظار داشته باشیم سیمرغ یه انشعابی به سمت کیوت داشته باشه و باهاش برنامههای گرافیکی رو بسازه اما از کیوت نمیتونی انتظار داشته باشی برای شما یه وبسایت بالا بیاره! تفاوتشون اینجاست که موتور تقریباً ساختار رو از قبل آماده کرده اما فریمورک چهارچوبی از برنامهسازی رو برای شما ارائه میکنه.
اینا یکم خیلی تخصصی و پیچیده هستن اما در اصل ما به دنبال سادهسازی ساخت و سرویس دهی هستیم نه پیشنهاد یک ساختار.
393
اینم شاید سوأل پیش بیاد که یک فریمورک با یک موتور چه تفاوتی داره.
در نسخهٔ فعلی سیمرغ تا حدی نیمه فریمورک و نیمه موتور هست و چون هدف تولید یک خروجی محاسباتیه بنابراین از همین الآن من موتور خطابش میکنم.
خلاصش این میشه:
Engine = ابزار و سرویس
Framework = اسکلت و ساختار
393
+1
به قولی یکم زیبایی ببینیم.
این تیکه کدهای CMake به صورت خودکار تمام فایلهای سرآیند و ماژولها رو جمعآوری میکنه و تمام مستنداتی که حین کد نویسی نوشتم رو ارزیابی و به مستند تبدیل میکنه.
نمونه مثال: کلاس جلسات (SESSIONS) هر جایی که شما به سبک داکسیجن توضیحات داشته باشی، سیستم به صورت خودکار اونها رو به یک خروجی مستند شده تبدیلش میکنه.
393
+1
این هم رفت روی گیتهاب.
وضعیت پروژه عمومی نیست و زوده برای انتشار نهایی چون وقتی تمومش کنم جای درستش تبلیغاتش هم شروع میشه.
این فرآیند موقع کامپایل موتور شکل میگیره وخروجی وب از مستندات رو آماده میکنه.
چیزی که مد نظرم هست انتشار یک موتور با کیفیت بالا و سریع و البته جدی هست! نه مثل چیزهایی که این جوجه بسیجیهای زپرتی میسازن که مایه خندهٔ دنیاست. شماها آبروی ایرانی جماعتو همه جا بردین بزدلهای خائن.
اینو فراموش نکنیم، ما در موضوع فناوری باید اگه بالا نیستیم حداقل پایین هم نباشیم! نسازیم چیزهایی رو که واقعاً مایهٔ تمسخره! یا باید هم سطح بشی یا باید بالاتر باشی! زیر این باشه مایهٔ تمسخره و هرچی بگی ایران قوی چرند گفتی!
این چیزی که من ساختم الآن از دل تحریمها شکوفا شده هزاران دلیل و مشکل رو متحمل بودم که بتونم بسازمش! کار یکی دو روزه هم نیست الآن دیگه شد ۳ سال دارم روی این کار میکنم.
بماند به تاریخ به وقتش چیزهای خوبی باهاش میسازیم که خارجیهاش هم انگشت به دهن مونن.
هدف از این صحبتا اینه، هرکسی هر تواناییای داره یه کمکی بکنه، در تخصص خودش! در حوزهای که علاقه داره. گوش به حرف این لقمه حرومها هم نباشید این همون پروژهای بود که مهرههای یقه بسته بهم گفتن اگه ما نخوایم تو نمیتونی ادعا کنی که تو ساختیش! ولی من میسازم چون یه ایرانیم نه یه اجنبی نون به نرخ روز خور مثل شما.
393
چون سیپلاسپلاس این قابلیت رو میده که شما در سطوح پایین برنامهنویسی کنی تا افرادی که در سطوحبالاتر نزدیک به زبان انسان برنامهنویسی میکنن هم بتونن به جزئیات زیر لایهای و سطوح پایین که تخصص چندانی براش ندارن دسترسی داشته باشن.
برای مثال، پیدا کردن تعداد و یا شماره سریال دیسک سخت چقدر برای شما سخته؟ اگه بخوای روی برنامت همچین کاری کنی باید دانش عمیق و سطحپایینی داشته باشی، یعنی باید هم برای ویندوز هم لینوکس و هم مک جداگانه کلی کد بنویسی! تازه اگه جواب گرفتی!!!
سیمرغ بهت میگه بفرما! فقط تابع زیر رو استفاده کن.
__simurgh_no_discard DiskList DiskStorage::getDisks()تابع به صورت خیلی تمیز و ساده getDisks تمام دیسکهای سیستم رو فراخوانی میکنه فرقی هم نداره چه سیستمعاملی داشته باشید.
393
+2
سیمرغ دو نوع ماژول داره!
یکی درونی و دیگریها بیرونی! درونیها چیزهایی هستند که از قبل میسازیمش و درون خود موتور وجود داره.
بیرونیها ماژولهایی هستن که مردم یا شما یا دیگر توسعهدهندهها بر حسب نیاز بهش اضافه میکنن.
این ماژول سختافزاری یکی از بهترینهاست که هنوز کامل نیست اما جزئیات سختافزار رو باهاش رنده خواهیم کرد.
ویژگی خفنشون اینه که چند-سکویی هستن! یعنی فرقی نمیکنه روی ویندوز باشی یا لینوکس یا مک یا اندروید یا آیاواس! به شدت به کارت میاد.
393
ویژگی مشابه جلسات روی PHP یادتونه؟ همون SESSIONهای معروف!
حالا روی سیمرغ هم داریمش؛ کاربردش سمت وب بسیاره.
393
یه سری انواع خاص هم داریم مثل BigNumber با حوزهٔ پشتیبانی ۶۴ و ۱۲۸ بیتی که در استاندارد سی++ وجود نداره و شما باید از کتابخانه خارجی استفاده کنید.
سیمرغ بدون وابستگی این ویژگی رو ارائه میکنه. برید کیف کنید! کجا به درد میخوره و چرا ساختمش؟ وقتی روی بلاکچین با سالیدیتی کار میکردم اعداد ارقامی که تجزیه میکردم روی سی++ اصلاً هم خونی نداشت! شما نمیتونید اعداد با بازهٔ بزرگ رو که خارج از حد و توان حافظه کامپیوتر واقعی هست رو محاسبه کنید.
این یک ضعف نیست؛ چون سی++ با دقت و توانایی واقعی سختافزار محاسبه میکنه ولی زبانهای اسکریپتی میان اینو به صورت رشتهای ومجازی به خصوص سالیدیتی روی ماشین مجازی اتریوم محاسبه میکنه.
سیمرغ این شبیهسازی رو انجام میده و شما نیازت نسبت به پردازشهایی با اعداد ماورایی ممکن میشه.
393
عاشق این ویژگی داینامیکس هستم با عشق ساختمش! 😭
این امکان رو میده در زمان اجرا هر ویژگیای که بخواین رو به نرمافزارتون اضافه کنید.
اونایی که با محصولات ادوبی کار کردن، مثل فتوشاپ و امثالش میدونن نصب یه افزونه یعنی چی!
یا در سطح وب نصب یه افزونه روی وردپرس و ... امکان گسترش محصول رو میده.
البته سیمرغ نه تنها پلاگین (افزونه) داره، بلکه ماژول هم داره!
پلاگینها ویژگیهایی با جزئیات ریز رو فراهم میکنن؛ ولی ماژولها به خودی خود یه ویژگی گسترده هستن که بعداً بهش اضافه میکنیم.
393
علاوه بر پشتیبانی از ماژولهای درونی یا خارجی؛ بخشهایی داریم زیر مجموعهٔ موتور به این صورت:
import engine.class.{WHAT}
یک سری کلاسهای کمکی مثل همیت تبدیلات محتوا! مثلاً تبدیل یه متن به باینری، اسکی و انواع مختلف.393
یکی از خفنترین بخشهایی که تقریباً هیچ موتور برنامهسازی نداره، بخش ترجمهٔ نرمافزار در زمان اجراست.
این کلاس به خودی خود یک واحدی از درون انجین حساب میشه.
کاراییش این هست که به شما اجازه میده در آن واحد به هر زبانی که بخواین نرمافزار رو تبدیل کنید؛ یعنی فارسی و راست به چپ، و زبانهای لاتین و چپ به راست.
چیزی که بدون این مجبورید هزاران لایه و هزاران فایل و کوفت و زهرهمار رو بازنویسی کنید =)))
393
ک کلاس ThreadSafe تمیز برای بهکار گیری در برنامهها! این کلاس تضمین میکنه دسترسی مشترک به منابع ایمن و مطمئن هست. 😎
393
یه بخش خالص که دهنم صاف شد، ساختن یک کتابخانهٔ سبک درون موتور هست برای JSON.
در حالت فعلی سیمرغ هم از JsonCPP استفاده میکنه هم از boost::json و در حالت پیشفرض از کتابخانهٔ داخلی خودش که وابستگی خارجی ندارد. (سبک و شیک).
393
خوبی این ساختار این هست که کاملاً بر مبنای ماژولها ساخته شده.
برای مثال کلاس سادهای از فارکستر که اجازه میده به واسطهٔ موتور با دستورات فارکستر ارتباط برقرار کنیم.
این مستندات سادهترین نسخه ممکن هست که بعداً به مثالها و جزئیات بهتری تبدیل خواهند شد البته به علاوهٔ بازطراحی پوستهٔ خروجی.
393
+5
دانیش دا بهههههه!
این هم مستندات موتور سیمرغ که به صورت خودکار در هربار کامپایل در یک فایل HTML شیک و مجلسی تولید میشه. 😎🫡
393
کی فکرش رو میکرد با شرم زندگی کردن اینهمه سنگین باشه!
همیشه طرفی وایستا که شرمندهٔ وجدانت نشی، وجدانت رو که بفروشی خیلی چیزها به دست میاری جز شرافت.
393
این هم از دامپ طلا با استقبال از رئیس جدید فدرال رزرو. 🥇 نقره هم همینه. معناش هم مشخصه! 😒
393
داشتم یکم میرفتم تو دل جزئیات باینریهای ویندوز و معماری جدید وسطاش رسیدم به ARM64EC!
یه ABI مخصوص ویندوزه که اجازه میده کد ARM64 و x64 توی یه فرایند کنار هم اجرا بشن؛
یعنی هم سرعت بومی رو داری، هم میتونی وابستگیهای قدیمی x64 رو نگه داری.
خبر خوبش اینه که قراره از Qt 6.11 به بعد، ARM64EC رسماً پشتیبانی بشه و این یعنی مهاجرت اپهای بزرگ کیوت روی ویندوز خیلی منطقیتر و کمدردسرتر میشه.
امروز اگه اینترنت اجازه بده، سعی میکنم این معماری رو به موتور سیمرغ اضافه کنم.
393
شاید بتونید پُز بدین برای یه مشت نادون که هیچی از فناوری سرش نمیشه؛ ولی برای من که برنامهنویسهای گندهگوزتونو دیدم و کدهاشونم بارها خوندم و میدونم چقدر بیسواد و شخمی هستن تو ککم نمیره که چیزی حالیتونه!
همونقدر که با HTML سیستمعامل مینوشتین این آتآشغالایی هم که هر روز پزشو میدین هم قطعاً در همون حد و اندازه مسخرست.
