برنامه نویسی

ما پشته فناوری خود را به Rust، Java & Angular منتقل کردیم. در اینجا دلیل آن است.

Summarize this content to 400 words in Persian Lang

ما مهاجرت پشته فناوری سرور در Finotes را به پایان رساندیم.

برای کسانی که نمی دانند Finotes چیست (اوه! ما کارهای زیادی در زمینه بازاریابی داریم)، ​​این یک SDK سبک وزن است که وقتی با هر برنامه #iOS یا #Android یکپارچه می شود، باگ ها و مشکلات عملکرد مانند نشت حافظه، شبکه را ضبط می کند. مشکلات تماس، مسائل مربوط به نرخ فریم، ANR/App Hang، خرابی‌ها، تاخیر در بارگذاری صفحه و موارد دیگر.

Backend ما بار سنگینی را جذب می کند (اوه بله، تعداد باگ هایی که در برنامه های تلفن همراه وجود دارد بسیار بیشتر از آن چیزی است که بسیاری فکر می کنند و ما همه آنها را ضبط و گزارش می کنیم) و عملیات حافظه فشرده است. استفاده از CPU ما در سطوح قابل مدیریت است.

پشته قدیمی ما #Java + #NodeJS + #AngularJS (قدیمی) بود، که جاوا در ماژول‌های اصلی، NodeJS برای بک‌اند داشبورد و AngularJS برای فرانت‌اند استفاده می‌شد. و اکنون از #Rust برای عملیات بارگذاری سنگین هسته، از جاوا (#SpringBoot) برای باطن داشبورد و #Angular برای قسمت جلویی استفاده می‌کنیم. ما همچنین RDBMS خود را به یک معماری جدول توزیع شده برای درج کارآمد منتقل کردیم.

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

انتقال از NodeJS به Java Spring Boot کار بیهوده ای بود، زیرا ما می خواستیم یک زبان کامپایل شده برای ارائه راه حل های سازمانی مجاز بدون افشای کد ارائه دهد.

انتخاب Angular برای frontend بیشترین بحث داخلی بود. AngularJS قدیمی منسوخ شده بود و ما می خواستیم به یک چارچوب بهتر و مدرن تر برویم. مناظرات React (بیشتر یک کتابخانه تا یک چارچوب) در مقابل مناظرات Angular چندین روز به طول انجامید. در نهایت استدلال قابلیت نگهداری بهتر برنده شد و ما تصمیم گرفتیم با Angular برویم.

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

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

توضیحات تصویر

ما مهاجرت پشته فناوری سرور در Finotes را به پایان رساندیم.

برای کسانی که نمی دانند Finotes چیست (اوه! ما کارهای زیادی در زمینه بازاریابی داریم)، ​​این یک SDK سبک وزن است که وقتی با هر برنامه #iOS یا #Android یکپارچه می شود، باگ ها و مشکلات عملکرد مانند نشت حافظه، شبکه را ضبط می کند. مشکلات تماس، مسائل مربوط به نرخ فریم، ANR/App Hang، خرابی‌ها، تاخیر در بارگذاری صفحه و موارد دیگر.

Backend ما بار سنگینی را جذب می کند (اوه بله، تعداد باگ هایی که در برنامه های تلفن همراه وجود دارد بسیار بیشتر از آن چیزی است که بسیاری فکر می کنند و ما همه آنها را ضبط و گزارش می کنیم) و عملیات حافظه فشرده است. استفاده از CPU ما در سطوح قابل مدیریت است.

پشته قدیمی ما #Java + #NodeJS + #AngularJS (قدیمی) بود، که جاوا در ماژول‌های اصلی، NodeJS برای بک‌اند داشبورد و AngularJS برای فرانت‌اند استفاده می‌شد. و اکنون از #Rust برای عملیات بارگذاری سنگین هسته، از جاوا (#SpringBoot) برای باطن داشبورد و #Angular برای قسمت جلویی استفاده می‌کنیم. ما همچنین RDBMS خود را به یک معماری جدول توزیع شده برای درج کارآمد منتقل کردیم.

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

انتقال از NodeJS به Java Spring Boot کار بیهوده ای بود، زیرا ما می خواستیم یک زبان کامپایل شده برای ارائه راه حل های سازمانی مجاز بدون افشای کد ارائه دهد.

انتخاب Angular برای frontend بیشترین بحث داخلی بود. AngularJS قدیمی منسوخ شده بود و ما می خواستیم به یک چارچوب بهتر و مدرن تر برویم. مناظرات React (بیشتر یک کتابخانه تا یک چارچوب) در مقابل مناظرات Angular چندین روز به طول انجامید. در نهایت استدلال قابلیت نگهداری بهتر برنده شد و ما تصمیم گرفتیم با Angular برویم.

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

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

نوشته های مشابه

دیدگاهتان را بنویسید

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

دکمه بازگشت به بالا