مرجع مقالات كاربردي حوزه اپليكيشن مرجع مقالات كاربردي حوزه اپليكيشن .

مرجع مقالات كاربردي حوزه اپليكيشن

معرفي اشخاصي كه ما در اين مطلب نظر آنها را بيان مي كنيم

اولي نفر Daniel Jacobson است كه نائب رئيس طراحي اپليكيشن در مشهد گروه مهندسي Netflix ميباشد و مسئوليت گروه api اين مجموعه بر عهده وي ميباشد.

نفر دوم Stefan Estrada ميباشد كه سرپرست يك دسته پنج نفره از مهندسان كامپيوتر ميباشد كه در خدمت تلويزيوني OnCue فعاليت مي نمايند.

سو‌مين نفر از كساني كه ما درين مقاله با آن ها سخن ميكنيم Dave Sweeton تكنسين ارشد Stout Systems ميباشد كه مشورت هاي مختلفي را در موضوع تعمير پروژه هاي قابل انعطاف افزاري ارائه ميدهد.

وظيفه وصله كردن قسمت هاي يك پروژه قابل انعطاف افزاري
هر پروژه قابل انعطاف افزاري دارنده يك اپليكيشن بسيار اساسي ميباشد و آن وصل كردن قسمت هاي متعدد به يكديگر ميباشد كه به تيمي كه‌اين وظيفه را بر عهده ميگيرد و آن را انجام مي نمايد گسترش دهندگان 10x گفته مي گردد. بعضي اوقات شما در اعمال يك پروژه قابل انعطاف افزاري با مسائلي رو برو ميشويد كه مي بايست بتوانيد خودتان با به كارگيري از مهارت هايي كه داريد قسمت هاي گوناگون آن را حل نمائيد. در اينگونه مواقعي توفيق مي‌تواند كاري بسيار طاقت فرسا باشد. با سپري شد مجال اين كارايي شما كه امروزه براي هدف ها تجاري ضروري ميباشد به سر و صدا هاي بسيار بزرگي تبديل ميشود و كدها و قاب ورك هاي تودر تو و بغرنج اي را در چنگ شما قرار مي‌دهد و بدين ترتيب صرفا روش حلي كه براي شما باقي مي‌ماند اين ميباشد كه به يك شخص مجرب رجوع كنيد و اميدوار باشيد كه‌اين وضعيت را بهبود دهد.


برچسب: طراحي اپليكيشن در مشهد،
ادامه مطلب
امتیاز:
 
بازدید:

+ نوشته شده: ۱۰ خرداد ۱۴۰۱ساعت: ۱۰:۱۹:۲۶ توسط:علي پور موضوع: نظرات (0)

وجود مشكلات در معماري پروژه نرم افزاري

Sweeton از Stout Systems مي‌گويد: در طراحي اپليكيشن در مشهد اينگونه سناريوهايي مي اقتدار مقصران بسيار متعددي را پيدا كرد. در اينگونه مواقعي معمولا نقص‌ مهم در معماري نرم‌افزار ميباشد و به همين استدلال قاب وركي كه شما آيتم استعمال قرار داده ايد از آن چيزي كه مي‌خواهيد بسازيد دفاع نمي نمايد. اين قاب ورك قادر است يا اين كه براي شما خيلي خرد باشد و يا اين كه كادر ورك بزرگي براي كاري كه مي‌خواهيد اجرا دهيد باشد. بدين ترتيب او‌لين گام اين ميباشد كه قاب ورك قابل قبولي را براي ايجاد كرد پروژه قابل انعطاف افزاري خويش تعيين نماييد.

در صورتيكه شما خوش شانس باشيد و پشتكار نيكي را نيز داشته باشيد احتمالا ناچار نخواهيد بود در شكل بروز مشكلي در پروژه قابل انعطاف افزاري خويش مبادرت به ايجاد كرد دوباره پروژه نمائيد و ميتوانيد به راحتي آن را احيا فرماييد.


مرحله ابتدايي براي حل اشتباهات پروژه قابل انعطاف افزاري
Sweeton مي‌گويد در اينگونه مواقعي شما بايستي مبادرت به refactoring پروژه خويش فرماييد و اين او‌لين قدم براي حل ايرادات قابل انعطاف افزاري شما ميباشد.

Sweeton همينطور ادامه ميدهد: اينجانب نيازمندي هاي پروژه خويش را شعور مي‌كنم بعد از آن سپس كوشش مي‌كنم كد خويش را مرور كنم تا ببينم آيا اين نيازمندي ها در پروژه اينجانب برطرف گرديده اند يا اين كه نه؟ ( ولي به مواقعي همانند طريق مراقبت از كدها و چگونگي كدها نيز اعتنا مي‌كنم). در‌صورتي‌كه كه در پروژه قابل انعطاف افزاري اينجانب اشتباهات مرتبط با معماري برنامه وجود داشته باشد فرصت آن ميباشد كه در پروژه خويش معماري صدق را گزينش نماييد و منش استخراج به اينگونه معماري را نيز بيابيد و مبادرت به پياده سازي آن نمائيد.


برچسب: طراحي اپليكيشن در مشهد،
ادامه مطلب
امتیاز:
 
بازدید:

+ نوشته شده: ۸ خرداد ۱۴۰۱ساعت: ۱۰:۲۱:۵۵ توسط:علي پور موضوع: نظرات (0)

هميشه نياز به جايگزيني تمامي كدها نيست

نكته اي كه براي تعمير پروژه هاي نرم افزاري طراحي اپليكيشن در مشهد بايد به آن دقت كنيد اين است كه هميشه نياز نيست كه كل كدهاي خود را حذف كرده و جايگزين كنيد. در واقع زماني كه قصد تعمير داريد بايد بدانيد كه نياز به اصلاح كل كدهايي كه اشخاص قبلي نوشته اند نيست و شما مي توانيد تنها وضعيت كلي كدها را بهبود دهيد تا به هدف خود دست پيدا كنيد. Sweeton مي گويد: به صورت افزايشي كدهاي خود را ويرايش كنيد و هر بار كه كدهاي شما نيازمند ويرايش و كار كردن است سعي كنيد حتما كد خود را در اين بازه بهبود دهيد و باز هم تاكيد مي كنم كه refactor كردن را فراموش نكنيد.

اگر اين يك پروژه نرم افزاري است كه تنها به عنوان يك محصول براي مصرف كنندگان از آن استفاده مي كنيد بهتر است كه آن را به بخش هاي كوچكتر تبديل كنيد و بعد از ويرايش هر بخش دوباره اين بخش هاي كوچك را به يكديگر متصل كنيد.

 


برچسب: طراحي اپليكيشن در مشهد،
ادامه مطلب
امتیاز:
 
بازدید:

+ نوشته شده: ۷ خرداد ۱۴۰۱ساعت: ۰۳:۰۳:۱۲ توسط:علي پور موضوع: نظرات (0)

چند دستور مهم Git كه هر توسعه‌دهنده‌اي بايد بداند

Git نصيب مهمي از اپليكيشن‌نويسي روزمره ميباشد طراحي اپليكيشن در مشهد (به خصوص در‌صورتي‌كه با دسته عمل مي كنيد) و به صورت وسيع در صنعت اپ آيتم استعمال قرار ميگيرد.


از آن‌جا كه دستورها متفاوت متعددي وجود داراست كه ميتوانيد از آنها به كارگيري نماييد، اشراف بر Git مجال ميبرد. البته بعضا امرها بسيار زياد استعمال ميشوند. به اين ترتيب در‌اين نوشته‌علمي 10 امر آيتم به كار گيري در Git را كه هر پيشرفت‌دهنده‌اي بايستي بلد باشد را به اشتراك ميگذاريم و راجع‌به آنها توضيح ميدهيم.

اعتنا: براي فهم و شعور اين نوشته‌علمي، مي بايست اصول اول گيت را بلد باشيد.

Git clone .1

Git clone دستوري براي دانلود سورس كد مو جود از يك ريپازيتوري از منش به دور (از جمله گيت‌هاب) مي باشد. به عبارت ديگر، Git clone اساسا يك ورژن شبيه از واپسين ورژن پروژه در ريپازيتوري مي‌سازد و بر روي كامپيوتر شما ذخيره مي‌نمايد.

تعدادي منش براي دانلود سورس كد وجود دارااست، ولي ما معمولا به كارگيري از clone با https را ترجيح ميدهيم:

git clone
براي مثال در صورتيكه ميخواهيد پروژه را از گيت‌هاب دانلود فرمائيد، فقط كاري كه بايستي ايفا دهيد اين ميباشد كه بر روي دكمه سبز (clone or download) كليك كرده، URL را نسخه برداري كرده و آن را پس از امر git clone كه در صدر نماد داديم قرار دهيد.

 

اين شغل يك اسكن از پروژه را در فضاي كاري لوكال شما مي‌سازد تا بتوانيد با آن آغاز به فعاليت نمائيد.

2. Git branch

Branchها در دنياي گيت بسيار اصلي ميباشند. با استعمال از برنچ‌ها، يك‌سري پيشرفت‌دهنده مي توانند به طور همز‌مان بر روي يك پروژه شغل نمايند. ما قادر خواهيم بود از امر git branch براي توليد، ليست كردن و حذف برنچ‌ها استعمال كنيم.

ساخت يك branch نو:

git branch
اين امر يك برنچ را به طور محلي يا اين كه به عبارتي لوكال توليد خواهد كرد. براي قرار دادن برنچ نو در ريپازيتوري منش به دور، بايستي از امر ذيل به كارگيري فرماييد:

git push -u
مشاهده brancheها:

git branch or git branch --list
حذف branche:

git branch -d
برنچ‌ها يك قضيه بسيار پهناور و اصلي مي باشند كه شما بايستي بهتر آن ها را فهم و شعور نماييد.

3. Git checkout

اين امر هم يكي پركاربردترين اوامر گيت ميباشد. براي عمل در يك برنچ، آغاز بايستي به آن برنچ برويد. ما غالبا براي جابه‌جايي از يك برنچ به برنچ ديگر از git checkout استعمال مي كنيم. همينطور خواهيم توانست از آن براي checkout كردن پوشه‌ها و كاميت‌ها به كار گيري كنيم.

git checkout
براي جابه‌جايي توفيق‌آميز في مابين برنچ‌ها، بايستي يكسري مرحله را جاري ساختن دهيد:

پيش از جابه‌جايي مي بايست تغييرات برنچ فعلي خويش را كاميت نماييد يا اين كه ذخيره نماييد.

برنچي‌ كه مي خواهيد به آن وارد گرديد مي بايست در سيستم لوكال شما مو جود باشد.

همينطور يك امر ميانبر وجود داراست كه به شما اذن مي دهد هم‌زمان يك برنچ را ساخت‌و‌ساز كرده و به آن برويد:

git checkout -b
اين امر يك برنچ تازه در لوكال شما ساخت و ساز مي‌نمايد (-b مخفف branch ميباشد) و برنچ را بعداز ساخت checkout مي‌نمايد (وارد آن مي گردد).

4. Git status

فرمان Git status همگي داده ها ضروري در ارتباط برنچ فعلي را به ما مي دهد.

git status
ما مي توانيم اطلاعاتي مانند مفاد ذيل را به دست آوريم:

آيا برنچ فعلي آپديت ميباشد

آيا چيزي براي commit، push يا اين كه pull وجود دارااست

آيا پوشه stage گرديده يا اين كه unstage گرديده‌اي وجود دارااست

آيا پوشه‌هاي توليد گرديده، اصلاح‌گرديده يا اين كه حذف‌گرديده‌اي وجود داراست

 

5. Git add

هنگامي فايلي را ساخت‌و‌ساز كرده، تغيير تحول داده يا اين كه حذف ميكنيم،‌ اين تغييرات در لوكال رخداد ميفتند و در كاميت آينده نيستند (مگر اينكه پيكربندي را تغيير تحول دهيم).

ما بايستي از فرمان git add استعمال كنيم تا تغييرات پوشه‌ها را در كاميت آجل بگنجانيم.

براي افزودن يك پوشه واحد:

git add
براي افزودن يك‌ باره كليه چيز:

git add -A
هنگامي تصوير بالا در زمينه‌ي چهارم را مشاهده ميكنيد، اسم پوشه‌هايي را مي بينيد كه به رنگ قرمز رنگ مي‌باشند؛ اين يعني اينكه آنها پوشه‌هاي unstage مي باشند. پوشه‌هاي unstage در كاميت‌هاي شما قرار نمي‌گيرند.

براي گنجاندن آنان، بايستي از git add استعمال كنيم:

 

نكته حائض اهميت: فرمان git add ريپازيتوري را تغيير‌و تحول نمي‌دهد و تا‌وقتي‌كه از git commit به كارگيري نكنيم، تغييرات ذخيره نمي شوند.

6. Git commit

اين فرمان شايد مالامال كاربردترين امر گيت باشد. زماني به يك مرحله خاص در گسترش مي‌رسيم، مي خواهيم تغييرات را ذخيره كنيم (شايد پس از يك وظيفه يا اين كه خلل خاص).

Git commit مانند تهيه يك نقطه نظارت (checkpoint) در فرايند پيشرفت ميباشد كه در شكل نياز مي توانيد بعدا به آن بازگرديد.

git commit -m "commit mesغير مجاز مي باشدe"
نكته قابل توجه: Git commit تغييرات شما‌را صرفا به طور لوكال ذخيره مي‌نمايد.

7. Git push

پس از كاميت كردن تغييرات، عمل آجل كه ميخواهيد جاري ساختن دهيد ارسال تغييرات به سرور رويكرد به دور ميباشد. Git push كاميت‌هاي شمارا براي ريپازيتوري رويكرد به دور آپلود مي‌نمايد.

git push
با اين درحال حاضر، در حالتي‌كه برنچ شما اخيرا ساخت و ساز گرديده باشد، شما همينطور بايستي برنچ را با امر ذيل آپلود نمائيد:

git push --set-upstream
يا اين كه

git push -u origin
نكته حائض اهميت: Git push صرفا تغييراتي را آپلود مي‌نمايد كه كاميت گرديده‌اند.

8. Git pull

امر git pull براي اخذ آپديت رساني از ريپازيتوري شيوه بدور به كارگيري ميشود. اين امر تركيبي از git fetch و git merge ميباشد كه يعني، زماني از git pull استعمال مي كنيم، آپ تو ديت رساني‌ها را از ريپازيتوري خط مش بدور اخذ مي‌نمايد (git fetch) و بالافاصله واپسين تغييرات را در لوكال شما ايفا مي‌نمايد (git merge).

git pull
اين كار ممكن ميباشد سبب تضادومغايرت‌هايي (conflict) گردد كه بايستي آنها را به طور دستي حل نمائيد.

9. Git revert

بعضي وقت ها بايستي تغييراتي كه ساخت و ساز كرده‌ايم را برگردانيم (undo). شيوه‌هاي مختلفي براي بازگرداندن تغييرات به طور لوكال يا اين كه از خط مش به دور وجود داراست (بستگي به نياز ما داراست)، البته مي بايست از اين اوامر به اعتنا استعمال كنيم تا از حذف كردن ناخواسته خودداري گردد.

يك طرز مطمئن كه بتوانيم كاميت‌ها را به وضعيت گذشته برگردانيم استعمال از git revert ميباشد. براي ديدن تاريخچه كاميت آغاز مي بايست از git log -- oneline استعمال كنيم:

 

آنگاه مي بايست hash code آينده را براي كاميتي كه مي خواهيم undo كنيم را معين كنيم:

git revert 3321844
بعداز اين، برگه‌اي را مشاهده خواهيد كرد؛ تنها shift + q را براي خروج بزنيد:

 

امر Git revert كاميت مشخصي را undo مي‌نمايد، ولي يك كاميت تازه را فارغ از حذف گزينه پيشين ساخت‌و‌ساز مي‌نمايد:

 

مزيت به كار گيري از git revert اين ميباشد كه به تاريخچه كاميت دست نمي‌زند. اين يعني شما هنوز هم مي توانيد تمامي كاميت‌ها را در تاريخچه خويش ملاحظه كنيد، حتي موردها بازگشت داده گرديده را.

يكي از ديگر از اقدامات امن در اينجا اين ميباشد كه كليه چيز در سيستم لوكال ما رخداد ميفتد مگر اينكه آنها‌را براي ريپازيتوري رويه بدور push كرده باشيم. به همين ادله به كارگيري از git revert امن‌خيس ميباشد و شيوه ارجح براي undo كردن كاميت‌ها ميباشد.

10. Git merge

زماني كه پيشرفت در برنچ‌تان بي نقص شد و همگي چيز به نيكي عمل كرد، مرحله پايان مخلوط برنچ با برنچ والد (dev يا اين كه master) ميباشد. اين شغل با امر git merge جاري ساختن ميگردد.

Git merge اصولا برنچ feature شمارا همدم با آحاد كاميت‌هاي آن به برنچ dev (يا اين كه master) برمي‌گرداند. اساسي ميباشد كه به حافظه داشته باشيد كه آغاز بايستي در برنچ خاصي كه مي خواهيد با برنچ feature تركيب نمائيد باشيد.

براي مثال زماني ميخواهيد برنچ feature را با برنچ dev تركيب فرماييد:

اوليه مي بايست به برنچ dev سوئيچ فرماييد:

git checkout dev
پيش از مخلوط، مي بايست برنچ dev لوكال خويش را به روز فرمائيد:

git fetch
در غايت، مي توانيد برنچ feature خويش را با dev تركيب نمائيد:

git merge
ياد‌آوري: پيش از اينكه برنچ‌ها را مخلوط فرمائيد، مطمئن گرديد كه برنچ dev تان واپسين نسخه را داراست، در غير اين شكل ممكن ميباشد تداخل يا اين كه اشتباهات ناخواسته‌اي پيش آيد.

مطالب متعددي در ارتباط با گيت براي يادگيري وجود داراست، ولي اين 10 امر از پر كاربرد‌ترين امرها گيت مي‌باشند كه ما روزمره در نرم‌افزار‌نويسي از آنان به كارگيري مي كنيم.


برچسب: طراحي اپليكيشن در مشهد،
ادامه مطلب
امتیاز:
 
بازدید:

+ نوشته شده: ۵ خرداد ۱۴۰۱ساعت: ۰۹:۴۳:۰۵ توسط:علي پور موضوع: نظرات (0)

تفاوت بين ()forEach و ()map كه هر توسعه‌دهنده‌اي بايد بداند

جاوااسكريپت متدهاي مفيدي دارااست كه به ما طراحي اپليكيشن در مشهد ياري مي‌نمايد تا از روش آرايه‌هايمان شغل تكرار را اجرا دهيم. دو گزينه متداول كه براي تكرار به كارگيري ميگردد ()Array.prototype.map و ()Array.prototype.forEach ميباشد.


ولي اين دو ممكن ميباشد براي مبتديان مقداري نامعلوم باشد. چون هر دوي آنها شغل تكرار را جاري ساختن ميدهند. پس تفاوت اين دو چيست؟

تعريف و تمجيد

مشي map يك تابع را تحت عنوان پارامتر اخذ مي‌نمايد. بعد آن را بر روي هر عنصر ايفا كرده و يك آرايه تماما تازه با نتيجه ها فراخواني تابع ارائه گرديده را گشوده مي‌گرداند.

اين يعني يك آرايه نو را گشوده مي‌گرداند كه مشتمل بر تصويري از هر عنصر آرايه ميباشد. مدام به عبارتي تعداد گزينه را برمي‌گرداند.

const myAwesomeArray = [5, 4, 3, 2, 1]

myAwesomeArray.map(x => x * x)

// >>>>>>>>>>>>>>>>> Output: [25, 16, 9, 4, 1]
مانند map، سياق forEach() يك تابع را تحت عنوان آرگومان اخذ مي‌نمايد و يك توشه آن را براي هر عنصر آرايه جاري ساختن مي‌نمايد. با اين درحال حاضر، به مكان رجوع و برگشت يك آرايه نو مثل map، undefined را برمي‌گرداند.

const myAwesomeArray = [
{ id: 1, name: "john" },
{ id: 2, name: "Ali" },
{ id: 3, name: "Mass" },
]

myAwesomeArray.forEach(element => console.log(element.name))
// >>>>>>>>> Output : john
// Ali
// Mass
1. مقدار بازگشتي

او‌لين تفاوت دربين map() و forEach() مقدار بازگشتي ميباشد. اسلوب forEach()، undefined را برمي‌گرداند و map() يك آرايه نو را با موادسازنده تبديل‌‌گرديده گشوده مي‌گرداند. حتي در صورتيكه آن ها به عبارتي شغل را ايفا دهند، مقدار بازگشتي متعدد ميباشد.

const myAwesomeArray = [1, 2, 3, 4, 5]
myAwesomeArray.forEach(x => x * x)
//>>>>>>>>>>>>>return value: undefined

myAwesomeArray.map(x => x * x)
//>>>>>>>>>>>>>return value: [1, 4, 9, 16, 25]
2. قابليت و امكان زنجيروار كردن متدهاي ديگر

دومي تفاوت در بين متدهاي آرايه اين ميباشد كه map() زنجيره‌اي ميباشد. اين يعني شما مي توانيد پس از اجراي سياق map() بر روي آرايه، reduce()، sort()، filter() و موردها ديگر را به آن متصل فرماييد.

اين كاري ميباشد كه شما نمي‌توانيد با forEach() ايفا دهيد، چون به عبارتي‌طور كه ممكن ميباشد پيش بيني بزنيد، اين روال undefined را برمي‌گرداند.

const myAwesomeArray = [1, 2, 3, 4, 5]
myAwesomeArray.forEach(x => x * x).reduce((total, value) => total + value)
//>>>>>>>>>>>>> Uncaught TypeError: Cannot read property 'reduce' of undefined
myAwesomeArray.map(x => x * x).reduce((total, value) => total + value)
//>>>>>>>>>>>>>return value: 55
3. تغييرپذيري

كلاً، تغييرپذيري يعني تغيير‌و تحول، جايگزين، اصلاح يا اين كه تبديل، و در دنياي جاوااسكريپت نيز همين معنا را داراست.

يك آبجكت قابل تغيير تحول آبجكتي ميباشد كه وضعيت آن قادر است پس از توليد تغيير تحول يابد. بدين ترتيب تغييرپذيري در ارتباط با forEach و map چه گونه ميباشد؟

عالي، طبق مستندات MDN:

forEach() نمي‌تواند آرايه‌اي را كه روي آن فراخواني گرديده را تغيير تحول دهد. (با اين اكنون، callback ممكن ميباشد اين عمل را جاري ساختن دهد).

map() نمي‌تواند آرايه‌اي را كه بر روي آن فراخواني گرديده است را تغيير و تحول دهد. (اگرچه callback، در شكل فراخواني شدن، ممكن ميباشد اين شغل را اجرا دهد).

در اينجا تعريف‌و‌تمجيد بسيار شبيه‌اي را مي بينيم، و ميدانيم كه هر دوي آن ها يك callback را تحت عنوان آرگومان اخذ مي‌نمايند. براين اساس كدام يك متكي به تغييرناپذيري ميباشد؟

عالي، به لحاظ ما اين تمجيد هنوز بديهي وجود ندارد. و براي درك كردن اينكه كدام يك آرايه اساسي را تغيير‌و تحول نمي‌دهد، آغاز مي بايست طريق عمل اين دو سياق را نظارت كنيم.

سياق map() يك آرايه تماما نو با اركان تبديل‌گرديده و به عبارتي مقدار داده را برمي‌گرداند. در زمينه ي forEach()، حتي در صورتي undefined را برگرداند، با callback آرايه اساسي را تغيير تحول ميدهد.

براين اساس ما به وضوح مي بينيم كه map() به تغييرناپذيري متكي ميباشد و forEach() يك مشي تغييردهنده ميباشد.

4. سرعت كارايي

در ارتباط با سرعت همت، آنان يه خرده گوناگون مي باشند. البته آيا اصلي ميباشد؟ بهتر، اين فرمان به موردها مختلفي بستگي دارااست مثل رايانه شما، ترازو داده‌هايي كه با آن رمز و عمل داريد و غيره.

ميتوانيد با به كارگيري از مثالي كه در تحت آمده ميباشد يا اين كه با jsPerf خودتان آن را نظارت فرمائيد تا مشاهده كنيد كدام سريع‌خيس ميباشد.

const myAwesomeArray = [1, 2, 3, 4, 5]

const startForEach = performance.now()
myAwesomeArray.forEach(x => (x + x) * 10000000000)
const endForEach = performance.now()
console.log(`Speed [forEach]: ${endForEach - startForEach} miliseconds`)

const startMap = performance.now()
myAwesomeArray.map(x => (x + x) * 10000000000)
const endMap = performance.now()
console.log(`Speed [map]: ${endMap - startMap} miliseconds`)
كلام نهايي

مثل مدام، تعيين ميان map() و forEach() بستگي به مورد ها استعمال شما داراست. در صورتي‌كه مي خواهيد داده‌ها را تغيير‌و تحول دهيد، جايگزين نماييد يا اين كه از آن ها استعمال فرمائيد، شما بايستي map() را گزينش فرمائيد، چون يك آرايه تازه را با داده‌هاي تبديل‌گرديده برمي‌گرداند.

البته در صورتي‌كه به آرايه بازگشتي نياز نداريد، از map() به كارگيري نكنيد، در ازاي از forEach() يا اين كه حتي رينگ for به كارگيري فرماييد.

اميد داريم اين نوشته ي علمي تفاوت في مابين اين دو مشي را براي شما روشن ساخته باشد.


برچسب: طراحي اپليكيشن در مشهد،
ادامه مطلب
امتیاز:
 
بازدید:

+ نوشته شده: ۲ خرداد ۱۴۰۱ساعت: ۰۹:۴۶:۲۰ توسط:علي پور موضوع: نظرات (0)

Microsoft Azure

در مقايسه با ديگر سرويس ها رايانش ابري واحد سنجش طراحي اپليكيشن در مشهد رويش Microsoft Azure يه خرده سريعتر بوده ميباشد. اگرچه سالها بعداز به خط مش افتادن پلتفرم گوگل كلود و آمازون اينترنت خدمت ظهور كرده ، البته براي استحصال درجه اوليه در ليست شايسته ترين سرويس ها رايانش ابري رقابت دورازشوخي اي تا كنون داشته ميباشد.

همينطور در سالهاي اخير سرويس ها ابري مايكروسافت تفاهم نامه بزرگي با دولت ايالت متحده به بها 10 ميليارد دلار امضا نموده است.

در حاليكه حدس منفعت Microsoft Azure كاملا طاقت فرسا ميباشد، آنان در آمد سه ماهه پايان خويش را به 3 گروه تقسيم كرده اند: 1.محاسبات فردي 2. فرآيندهاي منفعت وري و تجاري 3. ابر هوشمند، سودهاي انحصاري به دست آمده از اين ها 11.3 ميليارد دلار، 11.0 ميليارد دلار و 11.4 ميليارد دلار بوده ميباشد.

در هم اكنون حاظر تنها درآمد وجود ندارد كهAzure را تحت عنوان يك خدمت هوشمند و جالب تبديل نموده است بلكه شماري از توليدات توسعه يافته مانند Power BI وSharepoint ارائه گرديده است.

 

بعضي از مزاياي ارائه گرديده بوسيله Microsoft Azure :

منعطف و مقرون به صرفه بودن

دسترسي به منابع و ابزارها براي كارايي مستحكم

ارائه راه‌حل هاي مفيد مرتبط به بيزنس


برچسب: طراحي اپليكيشن در مشهد،
ادامه مطلب
امتیاز:
 
بازدید:

+ نوشته شده: ۱ خرداد ۱۴۰۱ساعت: ۱۰:۲۸:۵۳ توسط:علي پور موضوع: نظرات (0)