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

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

We create because the world deserves better code.

https://linktr.ee/compez
Download Telegram
موضوع مکانیزم سیگنال و اسلات مشابه اما کمی متفاوت با سبک Qt درون موتور. 😒
COMPΞZ 🧬
موضوع مکانیزم سیگنال و اسلات مشابه اما کمی متفاوت با سبک Qt درون موتور. 😒
ک کلاس ThreadSafe تمیز برای به‌کار گیری در برنامه‌ها! این کلاس تضمین می‌کنه دسترسی مشترک به منابع ایمن و مطمئن هست. 😎
COMPΞZ 🧬
ک کلاس ThreadSafe تمیز برای به‌کار گیری در برنامه‌ها! این کلاس تضمین می‌کنه دسترسی مشترک به منابع ایمن و مطمئن هست. 😎
یکی از خفن‌ترین بخش‌هایی که تقریباً هیچ موتور برنامه‌سازی نداره، بخش ترجمهٔ نرم‌افزار در زمان اجراست.

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

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

چیزی که بدون این مجبورید هزاران لایه و هزاران فایل و کوفت و زهره‌مار رو بازنویسی کنید =)))
COMPΞZ 🧬
یکی از خفن‌ترین بخش‌هایی که تقریباً هیچ موتور برنامه‌سازی نداره، بخش ترجمهٔ نرم‌افزار در زمان اجراست. این کلاس به خودی خود یک واحدی از درون انجین حساب میشه. کاراییش این هست که به شما اجازه میده در آن واحد به هر زبانی که بخواین نرم‌افزار رو تبدیل کنید؛ یعنی…
علاوه بر پشتیبانی از ماژول‌های درونی یا خارجی؛ بخش‌هایی داریم زیر مجموعهٔ موتور به این صورت:

import engine.class.{WHAT}

یک سری کلاس‌های کمکی مثل همیت تبدیلات محتوا! مثلاً تبدیل یه متن به باینری، اسکی و انواع مختلف.
COMPΞZ 🧬
علاوه بر پشتیبانی از ماژول‌های درونی یا خارجی؛ بخش‌هایی داریم زیر مجموعهٔ موتور به این صورت: import engine.class.{WHAT} یک سری کلاس‌های کمکی مثل همیت تبدیلات محتوا! مثلاً تبدیل یه متن به باینری، اسکی و انواع مختلف.
عاشق این ویژگی داینامیکس هستم با عشق ساختمش! 😭

این امکان رو میده در زمان اجرا هر ویژگی‌ای که بخواین رو به نرم‌افزارتون اضافه کنید.

اونایی که با محصولات ادوبی کار کردن، مثل فتوشاپ و امثالش می‌دونن نصب یه افزونه یعنی چی!

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

البته سیمرغ نه تنها پلاگین (افزونه) داره، بلکه ماژول هم داره!

پلاگین‌ها ویژگی‌هایی با جزئیات ریز رو فراهم می‌کنن؛ ولی ماژول‌ها به خودی خود یه ویژگی گسترده هستن که بعداً بهش اضافه می‌کنیم.
COMPΞZ 🧬
عاشق این ویژگی داینامیکس هستم با عشق ساختمش! 😭 این امکان رو میده در زمان اجرا هر ویژگی‌ای که بخواین رو به نرم‌افزارتون اضافه کنید. اونایی که با محصولات ادوبی کار کردن، مثل فتوشاپ و امثالش می‌دونن نصب یه افزونه یعنی چی! یا در سطح وب نصب یه افزونه روی ورد‌پرس…
یه سری انواع خاص هم داریم مثل ‌BigNumber با حوزهٔ پشتیبانی ۶۴ و ۱۲۸ بیتی که در استاندارد سی++ وجود نداره و شما باید از کتابخانه خارجی استفاده کنید.

سیمرغ بدون وابستگی این ویژگی رو ارائه می‌کنه. برید کیف کنید! کجا به درد می‌خوره و چرا ساختمش؟ وقتی روی بلاک‌چین با سالیدیتی کار می‌کردم اعداد ارقامی که تجزیه می‌کردم روی سی++ اصلاً هم خونی نداشت! شما نمی‌تونید اعداد با بازهٔ بزرگ رو که خارج از حد و توان حافظه کامپیوتر واقعی هست رو محاسبه کنید.

این یک ضعف نیست؛ چون سی++ با دقت و توانایی واقعی سخت‌افزار محاسبه می‌کنه ولی زبان‌های اسکریپتی میان اینو به صورت رشته‌ای ومجازی به خصوص سالیدیتی روی ماشین مجازی اتریوم محاسبه می‌کنه.

سیمرغ این شبیه‌سازی رو انجام میده و شما نیازت نسبت به پردازش‌هایی با اعداد ماورایی ممکن میشه.
👏1
سیمرغ دو نوع ماژول داره!
یکی درونی و دیگری‌ها بیرونی! درونی‌ها چیز‌هایی هستند که از قبل می‌سازیمش و درون خود موتور وجود داره.

بیرونی‌ها ماژول‌هایی هستن که مردم یا شما یا دیگر توسعه‌دهنده‌ها بر حسب نیاز بهش اضافه می‌کنن.

این ماژول سخت‌افزاری یکی از بهترین‌هاست که هنوز کامل نیست اما جزئیات سخت‌افزار رو باهاش رنده خواهیم کرد.

ویژگی خفنشون اینه که چند-سکویی هستن! یعنی فرقی نمی‌کنه روی ویندوز باشی یا لینوکس یا مک یا اندروید یا آی‌او‌اس! به شدت به کارت میاد.
👍1
چون سی‌پلاس‌پلاس این قابلیت رو میده که شما در سطوح پایین برنامه‌نویسی کنی تا افرادی که در سطوح‌بالاتر نزدیک به زبان انسان برنامه‌نویسی می‌کنن هم بتونن به جزئیات زیر لایه‌ای و سطوح پایین که تخصص چندانی براش ندارن دسترسی داشته باشن.

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

سیمرغ بهت می‌گه بفرما! فقط تابع زیر رو استفاده کن.

__simurgh_no_discard DiskList DiskStorage::getDisks() 



تابع به صورت خیلی تمیز و ساده getDisks تمام دیسک‌های سیستم رو فراخوانی می‌کنه فرقی هم نداره چه سیستم‌عاملی داشته باشید.
این هم رفت روی گیت‌هاب.

وضعیت پروژه عمومی نیست و زوده برای انتشار نهایی چون وقتی تمومش کنم جای درستش تبلیغاتش هم شروع می‌شه.

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

چیزی که مد نظرم هست انتشار یک موتور با کیفیت بالا و سریع و البته جدی هست! نه مثل چیز‌هایی که این جوجه بسیجی‌های زپرتی می‌سازن که مایه خندهٔ دنیاست. شماها آبروی ایرانی جماعتو همه جا بردین بزدل‌های خائن.

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

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

بماند به تاریخ به وقتش چیز‌های خوبی باهاش می‌سازیم که خارجی‌هاش هم انگشت به دهن مونن.

هدف از این صحبتا اینه، هرکسی هر توانایی‌ای داره یه کمکی بکنه، در تخصص خودش! در حوزه‌ای که علاقه داره. گوش به حرف این لقمه حروم‌ها هم نباشید این همون پروژه‌ای بود که مهره‌های یقه بسته بهم گفتن اگه ما نخوایم تو نمی‌تونی ادعا کنی که تو ساختیش! ولی من می‌سازم چون یه ایرانیم نه یه اجنبی نون به نرخ روز خور مثل شما.
2
COMPΞZ 🧬
این هم رفت روی گیت‌هاب. وضعیت پروژه عمومی نیست و زوده برای انتشار نهایی چون وقتی تمومش کنم جای درستش تبلیغاتش هم شروع می‌شه. این فرآیند موقع کامپایل موتور شکل می‌گیره وخروجی وب از مستندات رو آماده می‌کنه. چیزی که مد نظرم هست انتشار یک موتور با کیفیت بالا…
به قولی یکم زیبایی ببینیم.

این تیکه کد‌های CMake به صورت خودکار تمام فایل‌های سرآیند و ماژول‌ها رو جمع‌آوری می‌کنه و تمام مستنداتی که حین کد نویسی نوشتم رو ارزیابی و به مستند تبدیل می‌کنه.

نمونه مثال: کلاس جلسات (SESSIONS) هر جایی که شما به سبک داکسی‌جن توضیحات داشته باشی، سیستم به صورت خودکار اون‌ها رو به یک خروجی مستند شده تبدیلش می‌کنه.
COMPΞZ 🧬
به قولی یکم زیبایی ببینیم. این تیکه کد‌های CMake به صورت خودکار تمام فایل‌های سرآیند و ماژول‌ها رو جمع‌آوری می‌کنه و تمام مستنداتی که حین کد نویسی نوشتم رو ارزیابی و به مستند تبدیل می‌کنه. نمونه مثال: کلاس جلسات (SESSIONS) هر جایی که شما به سبک داکسی‌جن…
اینم شاید سوأل پیش بیاد که یک فریم‌ورک با یک موتور چه تفاوتی داره.

در نسخهٔ فعلی سیمرغ تا حدی نیمه‌ فریم‌ورک و نیمه موتور هست و چون هدف تولید یک خروجی محاسباتیه بنابراین از همین الآن من موتور خطابش می‌کنم.

خلاصش این میشه:

Engine = ابزار و سرویس
Framework = اسکلت و ساختار
COMPΞZ 🧬
اینم شاید سوأل پیش بیاد که یک فریم‌ورک با یک موتور چه تفاوتی داره. در نسخهٔ فعلی سیمرغ تا حدی نیمه‌ فریم‌ورک و نیمه موتور هست و چون هدف تولید یک خروجی محاسباتیه بنابراین از همین الآن من موتور خطابش می‌کنم. خلاصش این میشه: Engine = ابزار و سرویس Framework…
یک موتور می‌تونه از فریم‌ورک‌های دیگه استفاده کنه اما یک فریم‌ورک خودش چهارچوب محدود شده به خودش رو داره.

مثلاً ما می‌تونیم انتظار داشته باشیم سیمرغ یه انشعابی به سمت کیوت داشته باشه و باهاش برنامه‌های گرافیکی رو بسازه اما از کیوت نمی‌تونی انتظار داشته باشی برای شما یه وب‌سایت بالا بیاره! تفاوتشون اینجاست که موتور تقریباً ساختار رو از قبل آماده کرده اما فریم‌ورک چهارچوبی از برنامه‌سازی رو برای شما ارائه می‌کنه.

اینا یکم خیلی تخصصی و پیچیده هستن اما در اصل ما به دنبال ساده‌سازی ساخت و سرویس دهی هستیم نه پیشنهاد یک ساختار.
COMPΞZ 🧬
اینم شاید سوأل پیش بیاد که یک فریم‌ورک با یک موتور چه تفاوتی داره. در نسخهٔ فعلی سیمرغ تا حدی نیمه‌ فریم‌ورک و نیمه موتور هست و چون هدف تولید یک خروجی محاسباتیه بنابراین از همین الآن من موتور خطابش می‌کنم. خلاصش این میشه: Engine = ابزار و سرویس Framework…
تفاوت عمدهٔ سیمرغ با آنریل اینجاست.

من سیمرغ رو در سطح محصولات کاربردی در نظر گرفتم نه بازی‌سازی.
یعنی شما فرض کنید UE بتونه محصول نرم‌افزاری برای شما بسازه! یک چهارچوب از قبل تعریف شده داشته باشه که شما فقط ایده‌هاتون رو توش اجرا کنید و نه اینکه بشینید از اول به فکر این باشید که چطوری باید یه درخواست به فلان api بفرستید! 😐

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

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

سبک و نحوش هم کاملاً مدیرنیزه از استاندارد ۲۰ بعد تبعیت می‌کنه.
😍2