1403/03/01
یکی
از مهمترین تفاوتهای نرمافزارهای بورسی با سایر حوزهها، نقش حیاتی زمان در
تمامی مراحل آن میباشد. برای مثال اگر در سایر نرم افزارها درخواستی که میفرستید
و پاسخی که میگیرید، 5 ثانیه تفاوت داشته باشد و درخواستتان 5 ثانیه دیرتر پردازش
شود، شاید مقداری کیفیت کار را برای مشتری پایین بیاورد ولی آسیب جدیای به مشتری
وارد نخواهد کرد. درحالی که در نرمافزارهای بورسی به دلیل اینکه قیمت یک ثانیه
گذشته با 5 ثانیه آینده تفاوت دارد، قطعا فرصت را برای معامله از مشتری خواهد
گرفت.
پس
میتوان گفت که در فرایند تولید نرم افزارهای بورسی زمین بازی متفاوت با سایر حوزهها
است.شاید در این نوع بازی و با توجه به قوانین متفاوت و خاص آن، مجبور شوید دست به
ابداعات خاصی بزنید و در مواقعی، برخلاف جریان شنا کنید.
در
نرم افزارهای بورسی علاوه بر اینکه نگاهی بر معماری داریم، تمرکزمان بر روی کارایی
نرمافزار(Performance) است. زیرا معماری و کارایی(Performance)، همواره مقابل
یکدیگرند. هرچه شما بیشتر روی کارایی(Performance) تمرکز کنید، کمتر میتوانید از پس چارچوبهای
معماری برآیید.
پروژههای
نرمافزاری در بستر یک معماری طراحی میشوند تا با تعریف کردن یک چارچوب یا یک معادلهی
ساده، بتوانیم تمامی حرکات را در بستر این چارچوب برنامه ریزی کنیم.
در
معماری، هنگامی که ایدهی جدیدی به ذهنمان آمد، بدون ارزیابی، آینده نگری و بدون
در نظر گرفتن اینکه این ایده(هرچقدر هم جذاب) چه تاثیری بر پروژه، روند حرکتی،
توسعه و حتی آینده آن داشته باشد، به هیچ عنوان تغییری در قوانین و چارچوب از پیش
تعیین شده آن اعمال نخواهیم کرد. به نحوی دست و پای خودمان را میبندیم تا فقط در
چارچوب حرکت کنیم.
اگر
قرار باشد به این چارچوب، قانون جدیدی اضافه کنیم، باید تمامی جوانب را بسنجیم و
در نظر داشته باشیم با یک تغییر کوچک، احتمالا بسیاری از معادلهها و موازین پیشین
ما تغییر خواهند کرد.
اگر
بخواهیم به نحوی سرعت کار خود را بالا ببریم، معماری در بسیاری اوقات سد راه ما
خواهد شد. به همین دلیل کارایی نرمافزار(Performance) را در اولویت
قرار میدهیم.
اما
این به این معنی نیست که به بهانهی بالابردن سرعت و استفاده از کارایی نرمافزار(Performance)، به کلی معماری
را فراموش کنیم. پس باید معماری به نحوی چیده شود تا فضایی برای استفاده از کارایی
نرمافزار(Performance) از پیش در آن درنظر گرفته شده باشد.
یکی
از مهمترین نکتهها و درعین حال سختترین قسمتهای برنامه نویسی در حوزه بازارهای
مالی، پیداکردن نقطعه تعادل میان معماری و کارایی نرمافزار(Performance) میباشد.
در
نرم افزارهای بورسی برخلاف سایر نرمافزارها که بر پایه گرفتن درخواست(Request) و پاسخ دادن(Response) بنا شدهاند،
بخشی از فرایند، ارسال درخواست بوده و بخش زیادی هم دائما به سمت شما فرستاده میشود.
این
به این معناست که شما همواره تغییرات را بر روی صفحه میبینید و این امر کار را
بسیار سختتر میکند؛ مخصوصا در زمینه فرانتاند.
اصولا
در طراحی و توسعه سایر نرمافزارها، سعی میکنیم همه چیز را در سمت بکاند حل کنیم
تا کمترین منطق کد(Logic) در سمت فرانتاند پیاده سازی شود اما این
مورد در نرمافزارهای بورسی امکان پذیر نیست، چرا که دائما همه چیز به سمت بخش
فرانتاند فرستاده میشود.
همچنین
ما نمیتوانیم مسئلهای را پردازش کنیم و بعد آماده شدهی آن را سمت فرانتاند ارسال
کنیم. چرا که بخاطر بحث Latency و عملکردی(Performance) ، مجبوریم تمامی
موارد دریافتی را با اعمال یک سری تغییرات کوچک به سمت بخش فرانتاند ارسال کنیم؛
به همین دلیل بخشی از منطق کد(Logic) هم سمت بخش فرانتاند اعمال میشود.
یکی
دیگر از تفاوتهای مهم برنامه نویسی در بورس با سایر حوزهها، ظرف زمانی(Scale) آن است.
در سایر پروژهها معمولا از ثانیه و یا میلی ثانیه استفاده میشود. اما در حوزه بورس، ما با میکرو ثانیه و میلی ثانیه طرف هستیم و ثانیه خیلی مطرح نیست. به طوری که هسته معاملات هم سفارشات را برحسب میکرو ثانیه دریافت میکند.
در
آخر میتوان نتیجه گرفت که حساسیت در برنامه نویسی بورسی بسیار بالاست، چرا که ممکن
است با گذشتن ثانیه ها و حتی میلی ثانیهها، قیمت یک سهم تغییر کرده و دیگر ارزش
خرید یا فروش نداشته باشد.
میتوان
گفت، در برنامه نویسی بورسی نبض مشتری در دستان شماست و همین موضوع، مسئولیت
سنگینی را بر دوش شما قرار میدهد.