Software Philosophy – Telegram
Software Philosophy
3.45K subscribers
160 photos
41 videos
1.54K links
چکیده‌ای از مفاهیم به روز مهندسی نرم افزار برای مهندسین نرم‌افزار.
معماری نوین نرم‌افزار، تکنولوژی‌های برنامه نویسی جدید
Download Telegram
Forwarded from Software Philosophy
سایت StackOverflow به تازگی بخشی با عنوان Documentation اضافه کرده‌است که بسیار جذاب است و در چند روز اولیه شروع آن با استقبال خوبی از طرف کاربران مواجه شده‌است. در این بخش به شیوه بسیار جالب و پویایی مستندات هر زبان و یا تکنولوژی توسط کاربران ساخته می‌شود. در یک اقدام جالب شرکت مایکروسافت نیز خبر داده‌است به زودی محتوای مستندات مرجع API ها در docs.mirosoft.com با این بخش یکپارچه خواهد شد.
لینک زیر چگونگی کارکرد این بخش Documentation را شرح داده‌است.

https://docs.microsoft.com/teamblog/stackoverflow-documentation-for-microsoft-developers

#مهران_داودی
لینکدین:
https://ir.linkedin.com/in/mehrandvd

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


___
امروزه استفاده از Task Runnerها امری الزامی در پروژه‌ها به حساب می‌آید تا بتوان کارهایی را به سیستم بسپاریم تا آنها را یکی پس از دیگری و به صورت خودکار انجام دهد.
در زمینه پروژه‌های تحت وب Gulp یکی از اعضای این خانواده می باشد که به دلیل سرعت بالاتر و سادگی بیشتر از محبوبیت بیشتری نیز برخوردار است.
گالپ به تنهایی شامل چهار دستور اصلی به همراه ساختاری ساده برای نوشتن Taskها می‌باشد که بستری برای استفاده از pluginهای نوشته شده است. درواقع pluginها هستند که انجام کارهای اصلی مورد نظر ما، از قبیل minification ، bundling ، image optimize و ... را به عهده دارند. و همینطور بسته به frameworkهای استفاده شده باید plugin صحیح را دریافت کنید که gulpjs.com/plugins بهترین مرجع برای دریافت و آموزش طریقه استفاده آنها می‌باشد.
گالپ نیز مانند grunt مبتنی بر nodejs است و تمام کتابخانه ها و pluginها را باید از طریق npm نصب کنیم.
خوشبختانه در Visual Studio 2015 امکان استفاده از npm بدون نیاز به bash اضافه شده است که می‌توانیم از تمام کتابخانه‌های موجود استفاده کنیم و حتی می‌توانیم زمان اجرای task های ساخته شده توسط gulp را به بعد یا قبل از Build پروژه و ... bind کنیم.
لینک زیر نحوه استفاده از gulp در ویژوال استودیو را آموزش می‌دهد.

https://docs.asp.net/en/latest/client-side/using-gulp.html

#محمدرضا_جلیلوند
لینکدین:
http://ir.linkedin.com/in/mohammad-reza-jalilvand-0a5572b1

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

___
#خلاصه_مطالب «فلسفه نرم‌افزار» در هفته‌ی گذشته:

۱. «کتابخانه Audit.net»
https://telegram.me/SoftwarePhilosophy/499

۲. «هفت ابزار جدید برای خطایابی و Debugging در ویژوال استودیو»
https://telegram.me/SoftwarePhilosophy/501

۳. «طراحی لایه سرویس و انتخاب تکنولوژی مناسب»
https://telegram.me/SoftwarePhilosophy/502

۴. «آینده C# به چه سمتی می‌رود؟»
https://telegram.me/SoftwarePhilosophy/504

۵. «هرم شیطان در کد نویسی»
https://telegram.me/SoftwarePhilosophy/506

۶. «نکاتی برای ارائه دو دقیقه‌ای ایده‌ها»
https://telegram.me/SoftwarePhilosophy/508

۷. «ارائه مستندات در StackOverflow»
https://telegram.me/SoftwarePhilosophy/511

۸. «معرفی gulp به عنوان یک task runner»
https://telegram.me/SoftwarePhilosophy/512

ـــــــــ
@SoftwarePhilosophy
#پست_مجدد این پست تا به حال بیش از ۱۱۰۰ بار مشاهده شده و به نظر میرسد برای خوانندگان جدید کانال جذاب باشد.
Forwarded from Software Philosophy
اگر به برنامه نویسی با HoloLens علاقه دارید، ولی دستگاه آن را ندارید (که طبیعتا در ایران نداریم!) می‌توانید از HoloLens Emulator استفاده کنید. شما در این شبیه‌ساز می‌توانید نتیجه برنامه‌های خود را ببینید.
در این شبیه‌ساز چند نوع اتاق پیش‌فرض وجود دارد که می‌توانید از آنها استفاده کنید. همچنین حرکات دست کاربر در فضا و قابلیت‌های دیگر قابل استفاده هستند.
لینک زیر به طور خلاصه امکانات این شبیه‌ساز را توضیح داده‌است.

https://developer.microsoft.com/en-us/windows/holographic/using_the_hololens_emulator

#مهران_داودی
لینکدین:
https://ir.linkedin.com/in/mehrandvd

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


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

«چگونه استراتژی (و نه تکنولوژی) عامل اصلی تحول دیجیتالی سازمان شماست» این عنوان مقاله‌ زیر است که توضیح می‌دهد چگونه استراتژی تاثیرگذاری زیادی در فرایند دیجیتالی شدن یک سازمان دارد.

https://datafloq.com/read/how-strategy-not-technology-driver-transformation/2105?ref=quuu&utm_content=buffer6b7ab&utm_medium=social&utm_source=linkedin.com&utm_campaign=buffer

#مهران_داودی
لینکدین:
https://ir.linkedin.com/in/mehrandvd

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


___
محصولی مانند BMW واقعا چگونه در ذهن ما به عنوان یک محصول با کیفیت شکل گرفته است؟ آیا ما تخصص بررسی عملکرد موتور و گیربکس آن را داریم؟ آیا مقایسه‌ای فنی روی آن انجام داده‌ایم تا بفهمیم ماشین BMW یک محصول با کیفیت است؟
در حقیقت یک محصول را مفهومی به نام «نقاط تماس» یا Touch Points تعریف می‌کند. نقاط تماس مجموعه لحظاتی است که مشتری محصول را تجربه می‌کند. یک نقطه تماس می‌تواند لحظاتی باشد که مشتری با آن کار می‌کند، یا لحظاتی که مشتری پوستر محصول را می‌بیند و یا زمانی که صدای تیم پشتیبانی شما را از پشت تلفن می‌شوند.

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

http://mehrandvd.me/2016/10/02/touch-point-real-percepction-product/

#مهران_داودی
لینکدین:
https://ir.linkedin.com/in/mehrandvd

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

___
Forwarded from Software Philosophy
اگر دوستانی دارید که نه تنها برنامه نویس هستند، بلکه اعتقاد دارید «مهندس نرم‌افزار» هم هستند، آنها را به کانال @SoftwarePhilosophy دعوت کنید.
این پیغام را برای آنها Forward کنید.
#پست_مجدد این پست تا به حال بیش از ۱۰۰۰ بار مشاهده شده و به نظر میرسد برای خوانندگان جدید کانال جذاب باشد.
Forwarded from Software Philosophy
تخمین یا برآورد هزینه نرم افزار همیشه یکی از دغدغه‌های اصلی شرکت‌های نرم افزار و برنامه نویسان بوده است. و مشتریان همیشه از قیمت ارائه شده توسط خالقان نرم افزار در تعجب بوده‌اند و گاهی آن‌ها را به ارائه قیمت‌های بدون معیار متهم کرده‌اند. مقاله زیر برخی از پارامترهای مهم در تخمین هزینه نرم افزارها (موبایل) را به زیبایی بررسی کرده است.

https://yalantis.com/blog/how-much-does-it-cost-to-develop-an-app/

#کاروان_جافی

لینکدین:
https://uk.linkedin.com/in/karvan-jafi-96897027

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


___
#پست_مجدد این پست تا به حال بیش از ۱1۰۰ بار مشاهده شده و به نظر میرسد برای خوانندگان جدید کانال جذاب باشد.
Forwarded from Software Philosophy
فریم‌ورک Aurelia یکی از فریم‌ورک‌هایی است که به نظر می‌رسد آینده خیلی خوبی در بازار داشته باشد. معماری این فریم‌ورک بسیار با رویکردهای جدید معماری فریم‌ورک‌های کلاینت‌ساید تطابق دارد. یکی از نقاط قوت این فریم‌ورک نسبت به Angular 2 سر راست بودن مفاهیم در آن و خوانایی بسیار زیاد Binding Syntax در آن است.
مقاله زیر از Aurelia HUB کمک می‌کند در زمان بسیار کوتاهی یک برنامه To Do List با این زیرساخت بنویسید و با امکانات قدرتمند و در عین حال ساده آن آشنا شوید.

http://aurelia.io/hub.html#/doc/article/aurelia/framework/latest/quick-start/6

#مهران_داودی
لینکدین:
https://ir.linkedin.com/in/mehrandvd

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


___
یکی از مراحل مهم در چرخه تولید نرم افزار، تست آن است که باعث بهبود نرم افزار و بالا رفتن قابلیت اطمینان آن می شود.
اهمیت این مرحله به قدری است که پیشنهاد می شود فرایند تست از همان مراحل ابتدایی چرخه تولید مشخص و اجرا شود تا نواقص و مشکلات از همان ابتدا نمایان و برای رفع آنها اقدام شود.
برای برنامه ریزی اینکه تست نرم افزار چگونه باید انجام شود تا تمام سیستم و تمام امکانات آن تست شود، test case هایی نوشته میشود که هر کدام روش تست یک قسمت خاص از سیستم را مشخص می کند. جهت تکمیل این test case ها و با توجه به توسعه روز به روز محصول و همچنین تعریف test plan ها برای تست دوره ای کامل سیستم، نیاز به مدیریت دقیق و کارآمد هست.
نرم افزار Microsoft Test Manager یکی از نرم افزارهای قدرتمند در این زمینه است که امکان ایجاد Test case و همچنین دسته بندی و مدیریت آسان test planها را فراهم می کند.
لینک زیر quick start guide برای این استفاده از این نرم افزار است.

https://msdn.microsoft.com/en-us/library/dd380763(v=vs.110).aspx

#مریم_داودی

لینکدین:
https://www.linkedin.com/in/maryam-davoudi-7913565a

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

___
#پست_مجدد این پست تا به حال بیش از ۱۲۰۰ بار مشاهده شده و به نظر میرسد برای خوانندگان جدید کانال جذاب باشد.
Forwarded from Software Philosophy
این روزها نوشتن «بات» به یکی از کارهای هیجان انگیز تبدیل شده و بات‌های زیادی در بستر‌های مختلف ارتباطی در حال ظهور هستند. نوشتن یک بات کامل و پیشرفته معمولن نیاز به حجم زیادی از برنامه نویسی دارد. مخصوصا اگر قرار باشد تا حدود زیادی قدرت تشخیص زبان را داشته باشد و فقط محدود به یک سری کلمات از پیش تعریف شده نباشد. همچنین این که یک بات قابلت کار بر روی بسترهای ارتباطی مختلفی مانند اسکایپ، تلگرام، فیسبوک و غیره را نیز دارا باشد.
لینک زیر نحوه‌ی برنامه نویسی با فریم ورک جدید مایکروسافت برای نوشتن بات (Microsoft Bot Framework) را توضیح داده‌است.
این بات در ادامه توانایی اتصال به سرویس‌های هوش مصنوعی Microsoft Research مانند «تشخیص گفتار» و «تشخیص عکس» را نیز دارد.

https://www.microsoft.com/en-gb/developers/articles/week05july16/an-introduction-to-the-microsoft-bot-framework

#مهران_داودی
لینکدین:
https://ir.linkedin.com/in/mehrandvd

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


___
#خلاصه_مطالب «فلسفه نرم‌افزار» در هفته گذشته:

۱. معرفی شبیه‌ساز HoloLens Emulator
https://telegram.me/SoftwarePhilosophy/516

۲. انتخاب استراتژی درست برای تحول دیجیتالی سازمان
https://telegram.me/SoftwarePhilosophy/518

۳. مفهوم Touch Point و نقش آن در تعریف محصولات نرم‌افزاری
https://telegram.me/SoftwarePhilosophy/519

۴. پارامترهای مهم در تخمین هزینه نرم‌افزارهای موبایل
https://telegram.me/SoftwarePhilosophy/522

۵. فریم ورک Aurelia
https://telegram.me/SoftwarePhilosophy/524

۶. نحوه مدیریت تست‌ها با Microsoft test manager
https://telegram.me/SoftwarePhilosophy/525

۷. برنامه نویسی با Microsoft Bot Framework
https://telegram.me/SoftwarePhilosophy/527

ـــــــــــ
@SoftwarePhilosophy
اگر با Owin آشنایی داشته باشید، یکی از مهمترین تعاریف آن ساختار Middleware می باشد که این امکان را به ما می‌دهد تا requestو response که بین نرم افزار و سرور تبادل می‌شود را به صورت Pipeline و سریالی از این لایه های میانی عبور دهیم تا پردازش‌های مورد نظر خود مانند authentication، authorization و... را قبل از رسیدن request به سرور انجام دهیم.
در لینک زیر اضافه کردن middleware به Owin Pipeline آموزش داده شده است و در صورتی که با Owin آشنایی لازم را ندارید ، لینک زیر در مورد استاندارد Owin و پروژه Katana که بر اساس این استاندارد پیاده سازی شده است به صورت کامل توضیح داده است.

http://www.codeproject.com/Articles/864725/ASP-NET-Understanding-OWIN-Katana-and-the-Middlewa

#محمدرضا_جلیلوند
لینکدین:
http://ir.linkedin.com/in/mohammad-reza-jalilvand-0a5572b1

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

___
Forwarded from فلسفه دیزاین
طراحی رابط کاربری برای «من» یا برای «شما»؟

به رسم همیشه که تلاش من در «هَم دیزاین» به طرح کردن مقاله‌ها و موضوعات چالشی و هیجان‌انگیز بوده و هست، معرفی مقاله امروز رو با سوالی شروع میکنم که احتمالا بارها و بارها با اون مواجه شدیم.
«پروفایل من» یا «پروفایل شما»؟ «سبد خرید من» یا «سبد خرید شما»؟ «سفارش‌های من» یا «سفارش‌های شما»؟ و ...

اصول و Guidelineهای مختلفی که از طرف شرکت‌های مختلف نرم‌افزاری مطرح میشه بعضا باهم متفاوت هستند، بعلاوه اینکه در دیزاین تقریبا هیچ اصلی نیست که در تمامی مواقع قابل استفاده و اتکا باشه.
برای مثال در بخشی از مستندات Material Design آورده شده که در طراحی رابط کاربری محصولات، بهتره از زوایه دید سوم شخص (مثال: «سفارش‌های شما») با کاربر صحبت کنیم.
از طرف دیگه بسیاری از محصولات دیگر که میدونیم تیم‌های طراحی بسیار قوی‌ای دارند، همین حالا در اپلیکیشن‌ها و وب‌سایت‌هاشون با لفظ اول شخص (مثال: «سفارش‌های من») با کاربرهاشون ارتباط برقرار می‌کنند.

احتمالا به خاطر دارید که در نسخه‌های قبلی ویندوز بخش شخصی اطلاعات شما، My Computer نام داشت. مایکروسافت در نسخه‌های بعدی این اسم رو به Computer و سپس به This PC تغییر داد. این تغییر نشان‌دهنده این است که در هر مرحله، دیزاینرها سعی در کاهش فاصله بین «برداشت کاربر» از نام یک بخش و «کارکرد واقعی و اصلی» اون بخش داشتند. چیزی که در انتخاب هرکدام از این رویکردها، اصلی‌ترین نقش رو ‌ایفا می‌کنه.

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

https://medium.com/@jsaito/is-this-my-interface-or-yours-b09a7a795256

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

#معرفی_مقاله #چالش #طراحی_بصری
@HamDesign هَم دیزاین
#پست_مجدد این پست تا به حال بیش از ۱۶۰۰ بار مشاهده شده و به نظر میرسد برای خوانندگان جدید کانال جذاب باشد.
Forwarded from Software Philosophy
نوشتن «بات‌» هوشمند در دنیای رقابتی بات‌ها می‌تواند خیلی جذاب باشد. مدتی است مایکروسافت چند پروژه‌ هوش مصنوعی را تحت عنوان Cognitive Science شروع کرده که به تشخیص عکس و تشخیص گفتار کمک می‌کند. همچنین امکان یکپارچه کردن آن با زیر ساخت Bot Framework می‌تواند منجر به تولید بات‌های بسیار کارایی شود.
در لینک زیر نحوه استفاده از هوش مصنوعی پروژه‌های Cognitive در بات‌ها آموزش داده شده است.

http://www.dotnetcurry.com/csharp/1281/simple-bot-using-microsoft-bot-framework-cognitive-services

#مهران_داودی
لینکدین:
https://ir.linkedin.com/in/mehrandvd

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


___