Software Philosophy
3.42K subscribers
160 photos
41 videos
1.54K links
چکیده‌ای از مفاهیم به روز مهندسی نرم افزار برای مهندسین نرم‌افزار.
معماری نوین نرم‌افزار، تکنولوژی‌های برنامه نویسی جدید
Download Telegram
#پست_مجدد این پست تا به حال بیش از ۲۱۰۰ بار مشاهده شده و به نظر می‌رسد برای خوانندگان جدید کانال جذاب باشد.
Forwarded from Software Philosophy
تست نرم افزار موضوعی مهم برای برنامه‌های موبایل است. با وجود نسخه‌های متعدد از سیستم عامل‌ها و دستگاه‌های متفاوت، تحت پوشش قرار دادن همه آن‌ها وقت گیر است. به همین دلیل اجرای تست اتوماتیک برای همه سیستم عامل‌ها و دستگاه‌ها بصورت موازی به جای اجرای ترتیبی آن‌ها، صرفه زمانی و اقتصادی بیشتری دارد. Appium ابزاری open source برای تست خودکار و موازی نرم افزارهای موبایل native ،hybrid و تحت وب روی iOS و Android یا Windows است.
توضیحات بیشتر در لینک‌های زیر ارائه شده است.

http://www.softwaretestingmagazine.com/knowledge/parallel-mobile-testing-with-appium-part-1-android/

https://appium.io/introduction.html?lang=en

⁉️ برای بحث و تبادل نظر فنی در مورد این پست، بر روی لینک زیر کلیک کنید:

http://ow.ly/opgC30g2exl

#شراره_لطفی (http://ow.ly/xvC530dx8xL)

کانال تلگرام:
@SoftwarePhilosophy

___
همیشه انتخاب یک فریم ورک JavaScript برای Front End یک چالش است و هر از گاهی ظهور یک فریم ورک جدید کار را سخت‌تر می‌کند.

فریم‌ورکVue.js (ویو خوانده میشود مانندview) فریم ورکی JavaScript است که در فوریه 2014 ارایه شد. نکته جالب توجه این فریم ورک آن است که توسط یک نفر تولید شده است و نه یک تیم، هرچند که در حال حاضر افراد زیادی در توسعه آن مشارکت دارند که توسط Evan You تولید کننده Vue.js رهبری می‌شوند.

این فریم ورک تلفیقی است از بهترین فریم ورک‌های محبوب AngularJSو ReactJS. از مزایای Vue.js سادگی استفاده، انعطاف پذیری، کم حجم بودن و یکپارچگی ساده با پروژه‌های موجود است و کد آن بسیار قابل تست است. به دلایلی که اشاره شد استفاده از Vue.js در بین توسعه دهندگان نرم افزار به سرعت در حال افزایش است.

وبسایت Vue.js:

https://vuejs.org

لینک زیر مزایای استفاده از این فریم ورک را توضیح می‌دهد:

https://hackernoon.com/what-is-vue-js-and-what-are-its-advantages-4071b7c7993d

و این لینک نیز مقایسه‌ای است از سه فریم ورک ReactJS، Angular5 و Vue.js:

https://medium.com/@TechMagic/reactjs-vs-angular5-vs-vue-js-what-to-choose-in-2018-b91e028fa91d

⁉️ برای بحث و تبادل نظر فنی در مورد این پست، بر روی لینک زیر کلیک کنید:

http://ow.ly/czDp30mC86D

#محمد_محبتی (http://ow.ly/4ZMN30lzoxf)

کانال تلگرام:
@SoftwarePhilosophy

___
#پست_مجدد این پست تا به حال بیش از ۱۹۰۰ بار مشاهده شده و به نظر می‌رسد برای خوانندگان جدید کانال جذاب باشد.
Forwarded from Software Philosophy
یکی از روش‌هایی که می‌توان اطلاعات را ذخیره نمود ثبت داده‌ها بر اساس رویداد است. برای مثال کاربر یک آیتم به سبد خریدش اضافه می‌کند. سپس آنرا حذف می‌نماید و پس از آن دو آیتم دیگر به آن می‌افزاید، خریدش را تایید می‌نماید و با پرداخت مبلغ فاکتور تسویه می‌کند. هر کدام از جملات فوق یک رویداد را نشان می‌دهد. با ثبت رویدادها در نرم افزار می‌توان اطلاعات جامعی را ثبت نمود، می‌توان رویدادها و علت آنها را مورد بررسی و آنالیز قرار داد، اطلاعات تاریخی کاملی را در سیستم مشاهده نمود. همچنین از بعد فنی، در صورت بروز رسانی و یا بازگشت به نسخه‌های قبل، انتقال داده‌ها به ساختار جدید و یا بازگشت به ساختار قدیم بسیار ساده‌تر خواهد بود.

در لینک زیر گرگ یانگ به تفصیل به این موضوع پرداخته است:

https://www.youtube.com/watch?v=8JKjvY4etTY

⁉️ برای بحث و تبادل نظر فنی در مورد این پست، بر روی لینک زیر کلیک کنید:

http://ow.ly/p0JF30g96FC

#علیرضا_وفی (http://ow.ly/Vna930dsUGr)

کانال تلگرام:
@SoftwarePhilosophy

___
#پست_مجدد این پست تا به حال بیش از ۵۱۰۰ بار مشاهده شده و به نظر می‌رسد برای خوانندگان جدید کانال جذاب باشد.
Forwarded from Software Philosophy
برنامه‌نویسان NASA یکی از چالشی‌ترین کارهای برنامه‌نویسی در جهان را دارند. عمده برنامه‌هایی که آنها می‌نویسند بسیار حساس و اصطلاحا Mission Critical هستند.
برنامه‌هایی که در ناسا نوشته می‌شوند نباید هیچ خطایی داشته باشند. کوچکترین خطا در برنامه باعث نابود شدن کل پروژه می‌شود (برای مثال سقوط شاتل یا نرسیدن به مقصد).
به همین دلیل روشی که آنها طبق آن کد نویسی می‌کنند می‌تواند بسیار آموزنده باشد.
در لینک زیر ۱۰ قانون حیاتی که تیم برنامه‌نویسی «آزمایشگاه نیروی متحرکه جت» یا Jet Propolution Labratovary از آن استفاده می‌کنند آمده است.
با اینکه این قوانین عمدتا برای زبان C تدوین شده‌اند ولی بیشتر آنها در همه زبان‌ها کاربرد دارند و خواندن این قوانین می‌تواند بسیار آموزنده باشد.

در انتها جمله‌ای که ناسا در مورد این قوانین نوشته جمله جالبی است: «قوانین مانند کمربند ایمنی ماشین هستند. در ابتدا ممکن است خیلی راحت نباشند، ولی استفاده از آنها پس از مدتی طوری غریزی می‌شود که استفاده نکردنشان غیر قابل تصور خواهد بود»

https://fossbytes.com/nasa-coding-programming-rules-critical/


⁉️ برای بحث و تبادل نظر فنی در مورد این پست، بر روی لینک زیر کلیک کنید:

http://ow.ly/UkMY30gO6Si

#مهران_داودی (http://ow.ly/GwIl309lFEm)

کانال تلگرام:
@SoftwarePhilosophy

___
Forwarded from DotNetZoom (محمد جواد ابراهیمی)
وبینار یک روزه API نویسی اصولی و حرفه ای در ASPNET Core

برخی سرفصل ها :
- پیکربندی و استفاده از Swagger در ASPNET Core
- تست نویسی و داکیومنت نویسی حرفه ای (Testing & Documenting)
- اعتبار سنجی خودکار (Validation)
- مدیریت استثنا ها (Exception Handeling)
- نسخه گذاری اصولی (Versioning)
- رعایت Best Practice های API نویسی
- رعایت اصول امینیتی (Security)
- پیاده سازی یک معماری حرفه ای و اصولی برای API نویسی
- و...

برگزار کننده : کامیونیتی دات نت تاک (DotNetTalk)

زمان : پنج شنبه 8 آذرماه - ساعت 09:00 الی 17:00

کد تخفیف 20 درصدی مخصوص اعضای کانال :
iranaspmvc20
فقط برای 15 نفر ثبت نام کننده اول

لینک ثبت نام :
https://evnd.co/Zr32J
________________
@IranAspMvc
Forwarded from فلسفه دیزاین
مروری بر ۶ سال طراحی پورتفولیو

پروژه‌های شخصی و پورتفولیو (Portfolio)ها بهترین حیاط خلوت‌های دیزاینرها هستند. دنیایی که هم سفارش‌دهنده خود ما هستیم و هم اجراکننده. شما چند وقت یکبار رزومه و پوتفولیوی خود را بروزرسانی می‌کنید؟

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

نویسنده مقاله امروز آقای Shawn Park از تجربه ۶ سال بروزرسانی پورتفولیو خود می‌گوید. Shawn هر سال یکبار کل پورتفولیوی خود را بازطراحی کرده و به دلایل بسیار خوبی برای اینکار اشاره می‌کند که به تفصیل می‌توانید در مقاله مطالعه کنید.

مقاله امروز را از دست ندهید:
https://uxdesign.cc/how-and-why-i-redesign-my-portfolio-every-year-bf3bba3833fc

(زمان حدودی مطالعه، ۱۲ دقیقه)

#بازطراحی #پورتفولیو #رزومه
@Dexign فلسفه دیزاین

___
#پست_مجدد این پست تا به حال بیش از ۲۱۰۰ بار مشاهده شده و به نظر می‌رسد برای خوانندگان جدید کانال جذاب باشد.
Forwarded from Software Philosophy
یکی از دغدغه‌های همیشگی برنامه‌نویسان، تولید نرم‌افزار با سرعت بیشتر و کیفیت بالاتر می‌باشد. یکی از زبان‌های جدید پرطرفدار که به این امر کمک می کند F# است. با F# می‌توان بصورت Functional کد نوشت. تعداد خطوط نوشته شده در زبانهای Functional نسبت به سایر زبان‌ها کم می‌باشد. بطور مثال ۲۰ خط کد در C# با حدود ۵ خط کد در F# قابل بازنویسی است. ویدیو زیر به معرفی F# برای برنامه نویسان C# پرداخته است.

https://www.youtube.com/watch?v=KPa8Yw_Navk

⁉️ برای بحث و تبادل نظر فنی در مورد این پست، بر روی لینک زیر کلیک کنید:

http://ow.ly/KfWV30h1wUK

#علیرضا_وفی (http://ow.ly/Vna930dsUGr)

کانال تلگرام:
@SoftwarePhilosophy

___
امکانات جدید C# 8.0 با بوی هوش مصنوعی!

نسخه major بعدی C# 7.3 که C# 8.0 خواهد طبق برنامه‌ریزی به همراز .Net Core 3.0 ریلیز خواهد شد و امکان آزمایش آن در Visual Studio 2019 Preview وجود خواهد داشت.
امکانات جذابی که به این زبان اضافه شده در لینک زیر شرح داده‌شده که به عنوان خلاصه می‌توان به امکانات زیر اشاره کرد:

- Nullable Reference Types
string? s = null;


- Async Streams
await foreach (var result in GetResultsAsync()) 
{
if (result > 20) yield return result;
}


- Ranges and Indices
Index i1 = 3; // number 3 from beginning 
Index i2 = ^4; // number 4 from end
int[] a = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 };
Console.WriteLine($"{a[i1]}, {a[i2]}"); // "3, 6"
var slice = a[i1..i2]; // { 3, 4, 5 }


- Recursive Patterns
if (p is Student { Graduated: false, Name: string name })


- Target-Typed New Expressions
Point[] ps = { new (1, 4), new (3,-2), new (9, 5) }; // all Points

وقتی نام تایپ قابل استنتاج است نیازی نیست نام کلاس هنگام new کردن مشخص شود!


به نظر می‌رسد با توجه به تمرکز جدید مایکروسافت روی هوش مصنوعی، امکاناتی که در این نسخه به زبان اضافه شده، بیشتر با هدف ساده‌سازی کار برای برنامه‌نویسان Data Science است. همانطور که می‌بینید ویژگی‌هایی از زبان Python که موجب جذابیت این زبان برای متخصصان Data Science بوده در این لیست دیده می‌شوند.

برای آشنایی کامل‌تر این امکانات می‌توانید لینک زیر را که توسط Mads Torgersen نوشته شده‌است را مطالعه کنید.

https://blogs.msdn.microsoft.com/dotnet/2018/11/12/building-c-8-0/

⁉️ برای بحث و تبادل نظر فنی در مورد این پست، بر روی لینک زیر کلیک کنید:

http://ow.ly/36cL30mMFJK

#مهران_داودی (http://ow.ly/GwIl309lFEm)

کانال تلگرام:
@SoftwarePhilosophy

___
I'm going to have a talk at TEDx about "Mirror Neurons" and how it affects on having an effective team, or even a pioneer country.
Forwarded from Iran Agile
سه روش برای محاسبه سرعت تیم با در نظر گرفتن تعطیلات و مرخصی

http://bit.ly/2P6rqBV

@iranagile
هوش مصنوعی، از آنچه شما فکر می‌کنید به شما نزدیک‌تر است!

پروژه onnxjs نام یک پروژه جذاب جاواسکریپتی است که امکان اجرا کردن مدل‌های ONNX روی بروزر با استفاده از WebAssembly و WebGL را ایجاد می‌کند. به این ترتیب تمامی مدل‌های ساخته شده از طریق Machine Learning‌ که در قابل ONNX باشد در سمت کلاینت قابل اجرا خواهد بود.

https://github.com/Microsoft/onnxjs

⁉️ برای بحث و تبادل نظر فنی در مورد این پست، بر روی لینک زیر کلیک کنید:

http://ow.ly/zuWq30mQrmr


#مهران_داودی (http://ow.ly/GwIl309lFEm)

کانال تلگرام:
@SoftwarePhilosophy

___
Forwarded from فلسفه دیزاین
بازی یا بازی‌نمایی، مساله این است

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

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

مقاله امروز از آقای David Teodorescu، طراح ارشد محصول در شرکت Fitbit است که عمده فعالیت‌ش در حوزه تولید گجت‌های سلامتی‌ست. David با بررسی دقیق عناصر پایه‌ای یک ساختار بازی‌نمایی شده و سپس با مثال‌هایی کاربردی از محصولات Fitbit سعی در انتقال دقیق و کاربردی مفاهیم Gamification دارد.

اگر به کاربرد بازی‌نمایی در محصولات و کسب‌و‌کارها علاقمند هستید، مقاله امروز را از دست ندهید:

https://uxdesign.cc/gamification-aguide-for-designers-to-a-misunderstood-concept-4de5bef0c5d9

(زمان حدودی مطالعه، ۱۲ دقیقه)

#بازینمایی #مفاهیم #گیمیفیکیشن
@Dexign فلسفه دیزاین

___
#پست_مجدد این پست تا به حال بیش از ۱۱۰۰ بار مشاهده شده و به نظر می‌رسد برای خوانندگان جدید کانال جذاب باشد.
Forwarded from Software Philosophy
مدیریت خطا هنگام کار با Task در برنامه‌های Parallel یا Async بسیار حساس و گاهاً پیچیده است. در .Net 4.0 هنگام معرفی کتابخانه TPL نوع جدیدی از Exception به نام AggregateException معرفی شد تا بتواند حالت‌های خطا در هنگام برنامه‌نویسی موازی را مدیریت کند.
از طرفی هنگام معرفی .Net 4.5 با انجام تغییراتی در ExceptionDispatchInfo امکان استفاده روش جدیدی در مدیریت خطا را ایجاد کرد.
مقاله زیر دلایل تاریخی و تصمیماتی که در نحوه ایجاد Exception ها در هنگام ایجاد خطا در حالت‌های Parallel و Async گرفته شده‌است را شرح می‌دهد.

https://blogs.msdn.microsoft.com/pfxteam/2011/09/28/task-exception-handling-in-net-4-5/

⁉️ برای بحث و تبادل نظر فنی در مورد این پست، بر روی لینک زیر کلیک کنید:

http://ow.ly/g2m930hpUbG

#مهران_داودی (http://ow.ly/GwIl309lFEm)

کانال تلگرام:
@SoftwarePhilosophy


___