uz
Feedback
COMPΞZ 🧬

COMPΞZ 🧬

Kanalga Telegram’da o‘tish

متخصص کامپیوتر و نرم‌افزار • سازنده • هنرمند و طراح • مجموعه‌دار • نویسنده • تحلیل‌گر • مشاور استارتاپی و ایده‌پرداز 𐎲𐎴𐎠𐎼𐎴𐎫𐎹 𐏃𐎢𐎶𐎠𐎫𐎹 We create because the world deserves better code. https://linktr.ee/compez

Ko'proq ko'rsatish
Mamlakat belgilanmaganToif belgilanmagan
394
Obunachilar
Ma'lumot yo'q24 soatlar
-47 kun
+2830 kun
Postlar arxiv
این هم مستندات موتور سیمرغ در قالب PDF. تعداد صفحه‌هات، ۲۴۴۸ صفحه تا به این لحظه! خودت حدس بزن ببین چی ساختم. 😎
+3
این هم مستندات موتور سیمرغ در قالب PDF. تعداد صفحه‌هات، ۲۴۴۸ صفحه تا به این لحظه! خودت حدس بزن ببین چی ساختم. 😎

همیشه یه جایی تو شخصیت نیگان (سریال مردگان متحرک) یه حسی بهم می‌گفت این بشر ممکن نیست اینهمه به هیچ و پوچ خشن باشه! مگه میشه؟! قطعاً یه دلیلی داره! تا وقتی که بعدش شخصیت لوسی رو دیدم و فهمیدم داستان چی بود! یادتونه همسر معروف نیگان رو؟! چه چیزی باعث شده بود که چنین مرد مهربون و بی‌آزاری تبدیل به کسی بشه که کل عالم ازش وحشت کنن حتی زامبی‌ها که خودشون عامل وحشت بودن. پیشنهاد می‌کنم اگه کسی این سریال رو ندیده حتماً ببینه، البته صحنه‌های دلخراش زیادی هم داره اگه با روحیتون سازگار نیست پیشنهاد نمی‌کنم؛ اما در دل این سریال چیز‌هایی هست که ثابت می‌کنه چطور یک مظلوم به یک انتقام‌جوی بی بدیل تبدیل می‌شه!

وضعیت وفاداریمون هم بدک نیست. 😉
وضعیت وفاداریمون هم بدک نیست. 😉

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

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

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

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

به قولی یکم زیبایی ببینیم. این تیکه کد‌های CMake به صورت خودکار تمام فایل‌های سرآیند و ماژول‌ها رو جمع‌آوری می‌کنه و تمام مست
+1
به قولی یکم زیبایی ببینیم. این تیکه کد‌های CMake به صورت خودکار تمام فایل‌های سرآیند و ماژول‌ها رو جمع‌آوری می‌کنه و تمام مستنداتی که حین کد نویسی نوشتم رو ارزیابی و به مستند تبدیل می‌کنه. نمونه مثال: کلاس جلسات (SESSIONS) هر جایی که شما به سبک داکسی‌جن توضیحات داشته باشی، سیستم به صورت خودکار اون‌ها رو به یک خروجی مستند شده تبدیلش می‌کنه.

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

چون سی‌پلاس‌پلاس این قابلیت رو میده که شما در سطوح پایین برنامه‌نویسی کنی تا افرادی که در سطوح‌بالاتر نزدیک به زبان انسان برن
چون سی‌پلاس‌پلاس این قابلیت رو میده که شما در سطوح پایین برنامه‌نویسی کنی تا افرادی که در سطوح‌بالاتر نزدیک به زبان انسان برنامه‌نویسی می‌کنن هم بتونن به جزئیات زیر لایه‌ای و سطوح پایین که تخصص چندانی براش ندارن دسترسی داشته باشن. برای مثال، پیدا کردن تعداد و یا شماره سریال دیسک سخت چقدر برای شما سخته؟ اگه بخوای روی برنامت همچین کاری کنی باید دانش عمیق و سطح‌پایینی داشته باشی، یعنی باید هم برای ویندوز هم لینوکس و هم مک جداگانه کلی کد بنویسی! تازه اگه جواب گرفتی!!! سیمرغ بهت می‌گه بفرما! فقط تابع زیر رو استفاده کن.
__simurgh_no_discard DiskList DiskStorage::getDisks() 
تابع به صورت خیلی تمیز و ساده getDisks تمام دیسک‌های سیستم رو فراخوانی می‌کنه فرقی هم نداره چه سیستم‌عاملی داشته باشید.

سیمرغ دو نوع ماژول داره! یکی درونی و دیگری‌ها بیرونی! درونی‌ها چیز‌هایی هستند که از قبل می‌سازیمش و درون خود موتور وجود داره.
+2
سیمرغ دو نوع ماژول داره! یکی درونی و دیگری‌ها بیرونی! درونی‌ها چیز‌هایی هستند که از قبل می‌سازیمش و درون خود موتور وجود داره. بیرونی‌ها ماژول‌هایی هستن که مردم یا شما یا دیگر توسعه‌دهنده‌ها بر حسب نیاز بهش اضافه می‌کنن. این ماژول سخت‌افزاری یکی از بهترین‌هاست که هنوز کامل نیست اما جزئیات سخت‌افزار رو باهاش رنده خواهیم کرد. ویژگی خفنشون اینه که چند-سکویی هستن! یعنی فرقی نمی‌کنه روی ویندوز باشی یا لینوکس یا مک یا اندروید یا آی‌او‌اس! به شدت به کارت میاد.

ویژگی مشابه جلسات روی PHP یادتونه؟ همون SESSION‌های معروف! حالا روی سیمرغ هم داریمش؛ کاربردش سمت وب بسیاره.
ویژگی مشابه جلسات روی PHP یادتونه؟ همون SESSION‌های معروف! حالا روی سیمرغ هم داریمش؛ کاربردش سمت وب بسیاره.

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

عاشق این ویژگی داینامیکس هستم با عشق ساختمش! 😭 این امکان رو میده در زمان اجرا هر ویژگی‌ای که بخواین رو به نرم‌افزارتون اضافه
عاشق این ویژگی داینامیکس هستم با عشق ساختمش! 😭 این امکان رو میده در زمان اجرا هر ویژگی‌ای که بخواین رو به نرم‌افزارتون اضافه کنید. اونایی که با محصولات ادوبی کار کردن، مثل فتوشاپ و امثالش می‌دونن نصب یه افزونه یعنی چی! یا در سطح وب نصب یه افزونه روی ورد‌پرس و ... امکان گسترش محصول رو میده. البته سیمرغ نه تنها پلاگین (افزونه) داره، بلکه ماژول هم داره! پلاگین‌ها ویژگی‌هایی با جزئیات ریز رو فراهم می‌کنن؛ ولی ماژول‌ها به خودی خود یه ویژگی گسترده هستن که بعداً بهش اضافه می‌کنیم.

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

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

ک کلاس ThreadSafe تمیز برای به‌کار گیری در برنامه‌ها! این کلاس تضمین می‌کنه دسترسی مشترک به منابع ایمن و مطمئن هست. 😎
ک کلاس ThreadSafe تمیز برای به‌کار گیری در برنامه‌ها! این کلاس تضمین می‌کنه دسترسی مشترک به منابع ایمن و مطمئن هست. 😎

موضوع مکانیزم سیگنال و اسلات مشابه اما کمی متفاوت با سبک Qt درون موتور. 😒
+1
موضوع مکانیزم سیگنال و اسلات مشابه اما کمی متفاوت با سبک Qt درون موتور. 😒

یه بخش خالص که دهنم صاف شد، ساختن یک کتابخانهٔ سبک درون موتور هست برای JSON. در حالت فعلی سیمرغ هم از JsonCPP استفاده می‌کنه
یه بخش خالص که دهنم صاف شد، ساختن یک کتابخانهٔ سبک درون موتور هست برای JSON. در حالت فعلی سیمرغ هم از JsonCPP استفاده می‌کنه هم از boost::json و در حالت پیش‌فرض از کتابخانهٔ داخلی خودش که وابستگی خارجی ندارد. (سبک و شیک).

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