Daria Tech

آژانس خلاقیت داریاتکنولوژی

چند سال پیش ما یک استارتاپ کوچک بودیم، بدون سرمایه، پشتوانه مالی، نیروی‌انسانی و … اما امروز به لطف خدا در تمامی عرصه‌های تخصصی کسب و کار خودمان توانسته‌ایم پرچمدار باشیم . رمز موفقیت آژانس خلاقیت داریاتکنولوژی در این سالها را می توان در این شش عبارت خلاصه نمود.

صداقت با مشتریان و همکاران، نظم سازمانی و ایجاد رویه‌های استاندارد سازمانی، عشق به پروژه‌ها و محصولات، سرسختی و پشتکار بالا، تلاش در جهت حصول نتایج عالی، اهمیت به خلاقیت به عنوان یک مزیت رقابتی غیر قابل رقابت.

در پایان، صمیمانه امیدوارم پذیرای حضور شما در جمع مشتریان عزیزمان باشیم.

تیم داریا
تیم داریا

نمونه کار

رایبد

رایبُد - Riabod

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

ورود به پلتفرم رایبد
چجوری خروجی API تمیز داشته باشیم
DariaTech

مهدی نعمتی

چجوری خروجی API تمیز داشته باشیم

داشتن یه استاندارد تو ارائه API به دیگر برنامه نویسان میتونه علاوه بر حرفه ای و کامل نشون دادن کار، باعث بشه کسایی هم که دارن از این API استفاده میکنن کمترین ابهام و سوال رو داشته باشن که خود این موضوع هم باعث کمتر شدن مشکلات و افزایش سرعت توسعه پروژه میشه. تو این پست ما چند مورد از استاندارد های کلی برای ارائه API رو بررسی میکنیم. 1. اولین و مهمترین مورد؛ داکیومنت مناسب داشتن داکیومنت مناسب باعث راحت تر شدن خوندن و تست سیستم میشه و هر کسی که هم داره از سیستم استفاده میکنه میتونه خودش بره بخش های مورد نیازش رو ببینه، یکی از مهمترین ابزار های داکیومنت سازی که متن باز ( open source ) هم هست، swagger هست. که داکیومنت کاملی برای پیاده سازی داره و میتونین از سایتش بخونین. 2. پسوند فایل رو تو اسم متد نزار یه سری از برنامه نویس ها پسوند فایل رو هم تو اسم متد میارن مثلا: /users/{id}/pending-orders.json به جاش از این استفاده بهش: /users/{id}/pending-orders 3. عدم خلاصه نویسی اسم ها تا جای امکان اسم ها کامل نوشته بشه تا هر کسی که داره متد هارو میبینه کامل به عملکرد متد ها آشنا بشه 4. از اصطلاحات تخصصی استفاده نشه کسی که داره متد هارو میبینه شاید کسی هست که میخواد قالب وب سایتی رو داینامیک کنه یا اپی رو بنویسه و هیچ شناختی از اصطلاحات کاری شما نداره، که همین موضوع باعث میشه برنامه نویس API نیاز باشه مجددا متد هارو توضیح بده مثلا به جای استفاده از : /users/{id}/pan از این استفاده بشه : /users/{id}/user-number 5. از اسم جمع برای لیست استفاده بشه اگه جایی قرار یه لیستی به کاربر برگردونده بشه، بهتره از اسم جمع برای متد استفاده بشه که استفاده کننده ها هم بدونن قراره لیست بگیرن از این متد. 6. تو خروجی جیسون از camelCase استفاده کنین به جای این : { user_name: "Mehdi" } شیوه درست : { userName: "Mehdi" } 7. نسخه بندی (versioning) رو فراموش نکن فقط به الان فکر نکن، به توسعه و آینده هم فکر کن. استفاده از نسخه بندی باعث میشه هیچ کدوم از کلاینت ها چه قدیمی و چه جدید موقع ارتقا سیستم براشون مشکلی پیش نیاد. https://api.dariatech.com/v1/users با این روش وقتی که بخش کاربرا به روز رسانی داشت، هنوز هم نسخه قدیمی برای کاربران فعلی فعاله میتونن بدون مشکل استفاده کنن و هم اینکه میشه نسخه جدید رو از اپلیکیشن به کاربران عرضه کرد. 8. صفحه بندی رو فراموش نکن از صفحه بندی برای ارسال دیتا به کلاینت استفاده کنین، تا حجم زیادی از اطلاعات برای کلاینت ارسال نشه. 9. از پروتکل رمزنگاری شده استفاده کنین به جای استفاده از http از https استفاده کنین، چون علاوه بر امنیت بیشتر ، رو بعضی از کلاینت ها مثل نسخه های جدید اندروید از http برای زدن درخواست به سرور جلوگیری میشود.

افزونه های VS code مورد نیاز برای فلاتر
DariaTech

مهدی نعمتی

افزونه های VS code مورد نیاز برای فلاتر

تو این پست میخوام یه سری افزونه (Extension) برای ویژوال استدیو کد (Visual Studio Code) رو معرفی کنیم که یه سری از این افزونه ها برای پروژه های فلاتر هست و یه سریشون هم کلا برای کد نویسی به زبان های دیگه هست تا کد نویسی ساده تر و سریعتر بشه. 1 . ساخت ویجت ها تو فلاتر به سریعترین شکل با Awesome Flutter Snippets این ویجت مجموعه ای از ویجت ها، کلاس ها و متد های پر استفاده رو تو خودش نگه میداره که میتونین خیلی سریع و با نوشتن چند حرف از اون ها استفاده کنین. ( لینک ) 2 . بدون رفتن به مرورگر مستقیم پکیج به پروژه اضافه کن با Pubspec Assist دیگه نیازی نیست برای پیدا کردن یه پکیج بری و مرورگر رو باز کنی و دنبال پکیجت بگردی و اسمش و کپی کنی و بیاری تو اپ، با کمک این پکیج خیلی ساده تر میتونی پکیج مورد نظر رو پیدا کنی و خودکار به اپ اضافه بشه. برای اینکار از کلید های Ctrl + Shift + P رو میگیریم بعدش میگیم که Pubspec Assist رو میخوایم ، مرحله بعدش نوع ش رو میگیم که چی باشه که یکی از دو مورد normal یا dev هست و بعدش هم اسم پکیجمون و دکمه انتر و تمام. ( لینک ) 3 . استفاده ساده تر از کتابخانه Reverpod با افزونه Flutter Riverpod Snippets اگه خواستین از کتابخونه reverpod راحتتر استفاده کنین این افزونه دقیقا برای همین کار ساخته شده ( لینک ) 4 . منظم کردن ایمپورت های dart-import با دو جرکت ایپورت های صفحه رو مرتب کن ، اول با گرفتن کلید های Ctrl + Shift + P و بعدش هم تایپ Fix Imports و زدن دکمه انتر ( لینک ) 5 . دادن آیکون مرتبط با هر فولدر به جای آیکون ساده فولدر یا Material Icon Theme فقط کافیه این افزونه رو نصب کنید، خودش بقیه کارا رو انجام میده ( لینک ) 6 . حذف فضای خالی بیهوده از کدها با افزونه Remove empty lines برای اینکه تو سریعترین حالت ممکن فضای خالی اضافه را حذف کنین از این افزونه میتونید استفاده کنید، کار باهاش هم راحته دکمه های Ctrl+ Shift + P و عبارت Remove empty lines را بنویسید. 7 . گرفتن اسکرین شات تو یه زیبا با CodeSnap برای این کار کلید های ترکیبی Ctrl + Shift + P رو میگیریم و عبارت CodeSnap رو تایپ میکنیم، کدی که میخوایم رو انتخاب میکنیم و بعدش آیکونی که برای ما به نمایش در میاد رو میزینم ،اسکرین شات آماده میشه

تفاوت های نسخه پنجم و ششم React Router Dom
DariaTech

نیما خاکی

تفاوت های نسخه پنجم و ششم React Router Dom

تفاوت های React Router نسخه 6 و نسخه 5: کتابخانه React Router یک کتابخانه Server Side و Client Side است که برای مسیریابی در کتابخانه React استفاده میشود. React Router در جاهای مختلفی استفاده میشود، مثل سمت فرانت، سمت سرور و حتی در React Native. توی نسخه ششم این کتابخانه تغییرات زیادی در پس زمینه اتفاق افتاده، مثل بهینه سازی الگوریتم های مسیریابی اضافه شدن چندین Component جدید و همچنین کاهش 58 درصدی سایز باندل. تو این مقاله تلاش میکنیم تا چند مورد از تغییرات بین نسخه پنجم و ششم این کتابخانه رو ذکر کنیم. کلمه Switch با Routes جایگزین شد در نسخه ششم دیگه Switch رو نمیشه از react-router-dom ااکسپرت کرد. در نسخه های قبلی میتونستیم از Switch استفاده کنیم که Route ها رو درونش قرار بدیم. ولی در نسخه ششم به جای Switch از Routes استفاده میکنیم که Route ها رو درونش قرار میدیم. نحوه تعریف کردن Route تغییر کرده است کامپوننتی که باید بر اساس یه Route در مسیریابی render شود دیگه نمیتونه به عنوان یک فرزند به Route پاس داده شود و باید به عنوان یک prop با نام element به Route پاس داده شود دیگه نیازی به کلمه exact نیست با نسخه ششم React Router دیگه نیازی به کلمه exact نیست. همون طور که در این مقاله ذکر شده، به علت بهینه شدن الگوریتم نسخه ششم router به راحتی میتوانیم یک Component رو در یک مسیر خاص render کنیم بدون اینکه به کلمه exact نیازی داشته باشیم. در نسخه های قبلی router از بالا به پایین به ترتیب route ها رو چک میکرد ولی در نسخه ششم الگوریتم بهتری برای لود کردن route ها داره و نیازی نیست که نگران ترتیب route ها باشیم چون دیگه ترتیب route ها دیگه مهم نیست. برای اینکه درک بهتری از سه مبحثی که گفته شد داشته باشید میتونید به تیکه کدهای پایین یه نگاه بندازید. نسخه پنجم: نسخه ششم: دیگه نیازی به نصب react-router-config به صورت جداگانه نیست کتابخانه react-router-config به ما قابلیت تعریف کردن route ها رو به صورت آبجکت های جاوا اسکریپتی به جای المان های ری اکتی میداد، که تمامی توابع این کتابخانه به هسته نسخه ششم اضافه شده است. نسخه پنجم: نسخه ششم: کلمه useNavigate جایگزین useHistory شده است. در نسخه ششم router مسیریابی تغییراتی داشته که useHistory در بیشتر جاها جایگزین useHistory شده است. بعضی از قابلیت های پر استفاده تابع useHistory مثل go, goBack و goForward را هم میتوان با useNavigate پیاده سازی کرد فقط باید به router بگیم که چند مرحله جلو یا عقب بره. که برای جلو رفتن از اعداد مثبت و برای برگشت به عقب از اعداد منفی استفاده میکنیم. نسخه پنجم : نسخه ششم: دیگه NavLink هیچ prop ای به عنوان activeClassName و activeStyle نداره در نسخه های قبلی میتونستیم کلاس یا استایل جداگانه ای به NavLink بدیم زمانی که NavLink مورد نظرمون فعال بود، ولی در نسخه ششم router، این دو prop حذف شده و برای دستیاب به نتیجه قبلی باید از روشی متفاوت عمل کنیمد. در نسخه ششم NavLink یک تابع که به ما یک سری اطلاعات میده رو به صورت ورودی میگیره که راحت تر و بهتر استایل ها رو کنترل کنیم. جایگزینی Redirect با Navigate در نسخه ششم دیگه Redirect در کتابخانه react-router-dom وحود نداره و به جاش از Navigate استفاده میکنیم. امیدوارم این مقاله برای استفاده از نسخه ششم react-router-dom بهتون کمک کرده باشه.

درخواست مشاوره

پس از ثبت درخواست ،پشتیبان های مجموعه با شما تماس حاصل میکنند. پیشاپیش از صبر و شکیبایی شما تشکر میکنیم

ثبت درخواست