Software Philosophy – Telegram
Software Philosophy
3.45K subscribers
160 photos
41 videos
1.54K links
چکیده‌ای از مفاهیم به روز مهندسی نرم افزار برای مهندسین نرم‌افزار.
معماری نوین نرم‌افزار، تکنولوژی‌های برنامه نویسی جدید
Download Telegram
#پست_مجدد این پست تا به حال بیش از ۱۲۰۰ بار مشاهده شده و به نظر می‌رسد برای خوانندگان جدید کانال جذاب باشد.
Forwarded from Software Philosophy
با توجه به افزایش استفاده از تلفن همراه بسیاری از افراد برای دستیابی به اطلاعات دنیای وب از تلفن همراه خود استفاده می‌کنند و آمار استفاده از موبایل روند صعودی خود را می‌پیماید. گوگل در اوایل سال 2016 یکی از ابزارهای جدید خود، به نام AMP(Accelerated Mobile Pages) را منتشر کرده است. هدف از ارائه این ابزار بهبود عملکرد صفحات وب حاوی متن, تصویر، فیلم، انیمیشن و…. در موبایل می‌باشد که در نتیجه آن سرعت لود صفحات در موبایل افزایش می‌یابد، خصوصا سایت‌هایی که دارای متن زیادی می‌باشند )مانند سایت‌های خبری.(
پروژه AMP یک فریم‌ورک جدید و متن باز است که به طور کامل از فناوری‌های موجود در وب ساخته شده است. این پروژه که به وسیله گوگل و توییتر انجام شده است، به برنامه نویسان کمک می کند صفحات HTML با حجم کم ایجاد کنند. شما به عنوان یک برنامه نویس فقط تگ‌های خاصی از HTML را می‌توانید استفاده کنید و مجاز به استفاده از همه تگ‌ها نیستید. همچنین شما فقط می‌توانید کدهای ساده CSS و آن‌هایی که دارای کاربرد بسیار هستند را استفاده کنید. استفاده از کدهای جاوا اسکریپت نیز در همه جا مجاز نمی‌باشد. در واقع AMP استاندارد خاصی را برای کدهای شما در نظر می‌گیرند و کدهایی که حجم صفحات را افزایش می‌دهد، به عنوان عامل غیرمجاز در نظر می‌گیرد.
با مراجعه به لینک زیر علاوه بر آشنایی بیشتر با این زیرساخت قدرتمند می‌توانید در راستای استاندارد کردن سایت خود بر مبنای AMP گام بردارید.

https://www.ampproject.org/docs/get_started/create

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

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

___
#پست_مجدد این پست تا به حال بیش از ۱۴۰۰ بار مشاهده شده و به نظر می‌رسد برای خوانندگان جدید کانال جذاب باشد.
Forwarded from Software Philosophy
فریم ورک JoinJs یک کتابخانه جاوا اسکریپتی قوی برای ایجاد دیاگرام، چارت درختی، گراف و ... است. این کتابخانه با بکارگیریHTML5 و SVG، نمایش و ایجاد گراف به شکل های مختلف را فراهم کرده است.
لینک زیر، مربوط به همین کتابخانه بوده، که شامل دمو از قابلیت‌ها و آموزش نحوه استفاده از آن است.

http://jointjs.com/

#مریم_داودی

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

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

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

طبق تحقیقات انجام شده به علت عدم وجود Onboarding در سازمان‌ها 16% از نیروهای تازه استخدام شده در همان هفته اول و 17% نیز در ماه اول از ادامه همکاری با شما منصرف می‌شوند. قاعدتا در ماه اول استخدام برای نیروهای جدید یک دروه‌ی آموزشی برگزار میشود. اگر این نیروی جدید بعد از یک ماه منصرف شود چه زیانی به سازمان وارد شده است:
• بدون شک فردی که مسئول آموزش به نیروی جدید است در آن 1 ماه راندمان سابق را ندارد به 2 دلیل: زیرا زمانی از روز را به آموزش تخصیص داده است و همچنین به علت سوالات نیروی جدید نمی‌تواند تمرکز لازم را روی کار خود داشته باشد.
• نتیجه‌ای که بعد از 1 ماه حاصل میشود چیزی بجز ضرر برای شما نیست. ۱- وظایفی که مسئول آموزش می‌توانست در 1 ماه انجام دهد به طور کامل انجام نشده است. ۲- شما بابت کاری که هیچ فایده‌ای برای سازمان نداشته است به مسئول آموزش حقوق داده‌اید.

از مزایای Onboarding می‌توان به موارد زیر اشاره کرد:

افزایش:
• رضایت شغلی
• عملکرد شغلی
• تعهد سازمانی
و همچنین کاهش:
• استرس شغلی
• ترک کار

لینک زیر به صورت شماتیک به مزایای Onboarding اشاره می‌کند.

https://business.linkedin.com/talent-solutions/blog/2014/06/what-do-new-hires-want-from-onboarding-infographic

#افشین_علیزاده
لینکدین:
https://ir.linkedin.com/in/afshinalizadehbehjati

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

___
#پست_مجدد این پست تا به حال بیش از ۱۱۰۰ بار مشاهده شده و به نظر می‌رسد برای خوانندگان جدید کانال جذاب باشد.
Forwarded from Software Philosophy
مدیریت نسخه‌ها در طراحی RESTFul Web Api ها در معماری نرم‌افزارهای نسل جدید به یک مفهوم مهم تبدیل شده‌است. از آنجاییکه «تغییر» و بهبود یکی از فاکتور‌های جدا نشدنی در نرم‌افزار است و در نسل جدید نرم‌افزارها تغییر بسیار سریعتر اتفاق می‌افتند، مدیریت آن بسیار مهم است.
مدیریت نسخه‌ها در Web Api حتی می‌تواند در طراحی آن تاثیر بگذارد. برای مثال طراحی api ممکن است به روش‌های زیر باشد:
• /api/foo?api-version=1.0
• /api/foo?api-version=2.0-Alpha
• /api/foo?api-version=2015-05-01.3.0
• /api/v1/foo
• /api/v2.0-Alpha/foo
• /api/v2015-05-01.3.0/foo

در لینک زیر «اسکات هانسلمن» کتابخانه‌ای را برای مدیریت versioning در .NET را معرفی کرده‌است که معماری بسیار خوبی دارد و به راحتی می‌توان از آن استفاده کرد.

http://www.hanselman.com/blog/ASPNETCoreRESTfulWebAPIVersioningMadeEasy.aspx

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

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

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

۱. تکنولوژی Xamarin.Forms برای ساخت برنامه‌های موبایل
#xamarin #mobile #crossplatform

https://news.1rj.ru/str/SoftwarePhilosophy/735

۲. فریم‌ورک AMP و فرآیند هماهنگ‌سازی سایت با مرورگرهای موبایل
#javanoscript #mobile

https://news.1rj.ru/str/SoftwarePhilosophy/737

۳. معرفی فریم‌ورک JoinJS
#javanoscript #framework

https://news.1rj.ru/str/SoftwarePhilosophy/739

۴. مفهوم Onboarding و تاثیر آن در عملکرد تیم‌ها
#management

https://news.1rj.ru/str/SoftwarePhilosophy/741

۵. معرفی کتابخانه‌ای در .NET برای مدیریت versioning
#dotnet #webapi #versioning

https://news.1rj.ru/str/SoftwarePhilosophy/743

ـــــــــــ
@SoftwarePhilosophy
#پست_مجدد این پست تا به حال بیش از ۱۳۰۰ بار مشاهده شده و به نظر می‌رسد برای خوانندگان جدید کانال جذاب باشد.
Forwarded from Software Philosophy
هنگام استفاده از ORM ها در پروژه‌های بزرگ سرعت یکی از عوامل مهم در انتخاب ORM است. غالبا «سرعت» و «امکانات» در مقابل یکدیگر قرار دارند. هر چه به امکانات و قدرت یک ORM اضافه شود از سرعت آن کم می‌شود و بر عکس. البته اکثر ORM های امروز از سرعت قابل قبولی برخوردارند و مقایسه سرعت آنها فقط در داده‌های با حجم زیاد و تناوب بالا مطرح می‌شود. Dapper یکی از Micro ORM های بسیار سریع و مطرح در پلتفرم .net است. این فریم‌ورک بسیار ساده و کوچک نگه داشته شده است و بین برنامه نویسان بسیار محبوب است. جالب است بدانید سایت StackOverflow از این ORM استفاده می‌کند. لینک زیر این Micro ORM را به طور مختصر معرفی کرده و به مقایسه آن با سایر ORM ها پرداخته‌است.

http://www.c-sharpcorner.com/UploadFile/e4e3f7/dapper-king-of-micro-orm-C-Sharp-net/

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

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

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

http://www.agilebuddha.com/agile/agile-estimation-8-steps-to-successful-story-point-estimation/

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

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

___
امضا کنندگان مانیفست Agile امضایشان را پس گرفتند. مارتین فاولر نیز از امضای این مانیفست اعلام ندامت کرد. مشکل از آنجا شروع شده که پروژه‌هایی که تحت این مانیفست اجرا می‌شده‌اند با مشکلات عمده‌ای روبرو شدند و ۸۳.۶٪ آنها شکست خوردند.
این درحالی است که شرکت‌های بزرگی مانند Microsoft و Atlassian سرمایه‌گذاری زیادی روی این مانیفست در محصولات خود مانند TFS و JIRA کرده‌اند. همچنین شرکت‌های نرم‌افزاری زیادی در حال استفاده از این محصولات هستند که این تغییر باعث افت شدید سهام آنها می‌شود.

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

سیزده به در مبارک!!

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

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

___
نسخه ۴.۰ فریم‌ورک Angular!؟ مدتها بود برنامه‌نویسان منتظر نسخه ۲.۰ این فریم‌ورک محبوب بودند که ناگهان صحبت از نسخه ۴.۰ این فریم‌ورک شده‌است.
علت این تغییر نسخه سریع و عجیب در حقیقت هماهنگ شدن این محصول با Semantic Versioning است. تیم Angular برای هماهنگی با استاندارد Semantic Versioning و اطلاع‌رسانی بهتر در مورد محتوای هر ریلیز، این استاندارد را پیاده‌سازی کرده‌است. در این روش از هر نسخه می‌توان موارد زیر را فهمید:
- Signaling content of releases
- Time-based release cycles
- Deprecation Policy
- Distinction between stable and experimental releases

برای توضیحات بیشتر می‌توانید پست زیر از Igor Minar را در بلاگ رسمی تیم Angular بخوانید.

http://angularjs.blogspot.com/2016/10/versioning-and-releasing-angular.html

⁉️ برای بحث و تبادل نظر فنی در مورد این پست، بر روی لینک زیر کلیک کنید:
http://ow.ly/tiQx30avyhr

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

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


___
امکانات اضافه شده در C# 7.0 در نسخه Visual Studio 2017 قابل استفاده شدند. از جمله این امکانات می‌توان به موارد زیر اشاره کرد.
- Pattern Matching
- Out Variables
- Locals and Ref Returns
- Generalized Async Return Types

بیشتر این مفاهیم قبلا هم معرفی شده‌بودند ولی در این میان مفهوم Generalized Async Return Types از بقیه جدیدتر به نظر می‌رسد. در لینک زیر با استفاده از این مفهوم به جای Task<T> از یک تایپ جدید با نام ValueTask<T> استفاده شده که کاربردهای بسیار زیادی می‌تواند داشته باشد. همچنین برنامه‌نویسان می‌توانند خودشان تایپ‌های جدیدی را به این منظور طراحی کنند.

لینک زیر امکانات جدید اضافه شده را به همراه مثال توضیح داده‌است.

https://docs.microsoft.com/en-us/dotnet/articles/csharp/csharp-7

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

http://ow.ly/3bpp30ay2f3

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

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


___
پیش‌بینی ۱۰ ترند اصلی Web Design در سال ۲۰۱۷ عنوان مقاله‌ای است که توسط Grace Jia نوشته شده‌است. او در سال‌های قبل هم پیش‌بینی‌هایی را برای دنیای UX ارائه داده بود. ترندهای اصلی از دید این نویسنده در لیست زیر آمده‌اند:
1. Bold Typography
2. Bright Gradient
3. Vivid Color Layer
4. Conversation Interface
5. Virtual Reality
6. Micro Interaction
7. Emotional Intelligence Design
8. Better Collaboration with Design and Development
9. Merging of UX and Service Design
10. Credibility is the King

https://www.linkedin.com/pulse/top-10-web-design-trend-predictions-2017-grace-jia

⁉️ برای بحث و تبادل نظر فنی در مورد این پست، بر روی لینک زیر کلیک کنید:
http://ow.ly/qNGe30aArnm


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

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


___
Forwarded from فلسفه دیزاین
خداحافظی با یک مفهوم اصیل:
بدرود منوی برگر

احتمالا همگی با منوی برگر (Burger Menu) یا همون سه خط افقیِ موازی که در خیلی از اپلیکیشن‌ها و وب‌سایت‌ها به عنوان آیکن منو استفاده میشه آشنایی دارید. این نوع منو تقریبا اولین نوع منویی بوده که به طراحی راه پیدا کرده. این آیکن توسط آقای Norm Cox در سال ۱۹۸۱، برای Xerox Star، اولین رابط کاربری گرافیکی برای کامپیوترها، طراحی شده. بعدها با گسترش رابط‌های کاربری گرافیکی، این آیکن و نوع تفکر دیزاین پشت‌ش به وفور در اپلیکیشن‌های بزرگی مثل Spotify، Youtube و Facebook استفاده شد.
پلتفرم iOS از ابتدا راهنماها و Guidelineهایی برای طراحی رابط کاربری تعیین کرد و با اپلیکیشن‌هایی که در خود سیستم‌عامل بصورت Embed نصب بود، نشون داد که ترجیح میده اپلیکیشن‌ها با منوی راهبری در قسمت پایین اپلیکیشن (Tab Bar Navigation) طراحی و پیاده‌سازی بشن ولی در Android به خاطر نبود سیستم طراحی منسجم و مشخص، و البته امکان تغییر طراحی برای نسخه‌های مختلف این سیستم‌عامل روی گوشی‌های مختلف، طراحی اکثر اپلیکیشن‌ها به سمت منوی برگر میرفت.
یکی از عمده‌ترین دلایلی که iOS برای اصرار به استفاده از Tab Bar در اصول طراحی‌ش ذکر کرده اینه که وقتی کاربر بطور مداوم امکانات موجود در اپلیکیشن و آیتم‌های موجود در منو رو نبینه (که در منوی برگر آیتم‌ها تا قبل از لمس کردن آیکن برگر، مخفی هستند)، نمی‌تونه به راحتی با اپلیکیشن کار کنه و در دراز مدت به تمامی بخش‌های اون تسلط پیدا کنه.
خیلی از طراحان اپلیکیشن‌های iOS هم به خاطر راحتی استفاده از منوی برگر و سختی طراحی Bottom Navigation، از اون استفاده کردند. البته ناگفته نمونه که در همون زمان هم اپلیکیشن‌هایی مثل Instagram منوی برگر رو استفاده نکردند و حتی در نسخه Android خودشون، از Guidelineهای طراحی در iOS استفاده کردند که همین موضوع انتقادهای زیادی رو بهمراه داشت و خیلی معتقد بودند باید طراحی Android، به چیزی که در سایر اپلیکیشن‌های این پلتفرم معمول هست، تغییر کنه.
خلاصه این منوی برگر همینطور بیشتر و بیشتر مورد استفاده قرار می‌گرفت تا اینکه چندی قبل گوگل در اصول Material Design، مفهوم Bottom Navigation رو معرفی کرد و چالش‌های طراحان اپلیکیشن‌های Android رو کمی کاهش داد.

با اینکه منوی برگر بهترین راه حلی نبود که می‌شد برای Navigation در محصولات ارائه کرد و در خیلی از موارد باعث سردرگمی کاربران شده، ولی در ۳۶ سالی که از معرفی این منو می‌گذره، سال‌های زیادی به کاربران محصولات خدمت کرده و به نوعی از اصیل‌ترین مفاهیم طراحی رابط کاربری محسوب میشه.
حالا بعد از ۳۶ سال و معرفی Bottom Navigation در Material Design، می‌تونه کم‌کم از طراحی Navigation اصلی اپلیکیشن‌ها کنار بره و در بخش‌های دیگه‌ای به خدمت خودش ادامه بده.

با این مقدمه می‌خوام ازتون دعوت کنم که نوشته آقای Sebastian Lindemann رو درباره تجربه تیم‌شون در تغییر منوی برگر به Bottom Navigation مطالعه کنید.
اگر شما هم در طراحی‌هاتون از منوی برگر استفاده کردید، شاید این نوشته بتونه در تغییر و بهبود طراحی، کمکی‌تون کنه.

https://medium.com/startup-grind/bye-bye-burger-5bd963806015

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

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

۱. امضا کنندگان مانیفست Agile امضایشان را پس گرفتند.
#agile #aprilfool
https://news.1rj.ru/str/SoftwarePhilosophy/749

۲. نسخه ۴.۰ فریم‌ورک Angular!؟
#angularjs
https://news.1rj.ru/str/SoftwarePhilosophy/750

۳. امکانات اضافه شده در C# 7.0 در نسخه Visual Studio 2017 قابل استفاده شدند.
#csharp #visualstudio
https://news.1rj.ru/str/SoftwarePhilosophy/751

۴. پیش‌بینی ۱۰ ترند اصلی Web Design در سال ۲۰۱۷
#ui #ux
https://news.1rj.ru/str/SoftwarePhilosophy/752

۵. خداحافظی با یک مفهوم اصیل: بدرود منوی برگر (دیزاین)
#ui #ux
https://news.1rj.ru/str/SoftwarePhilosophy/753


ـــــــــــ
@SoftwarePhilosophy
یک فیچر کوچک، ولی بسیار بزرگ در Visual Studio 2017 که طرفداران زیادی پیدا کرده نحوه برخورد با NullReferenceException است. این فیچر در نحوه نمایش این نوع خطا در IDE خود را نشان می‌دهد. به این صورت که اگر برای مثال در عبارت person.Parent.FirstName مقدار Parent برابر با null باشد و باعث خطای NullReferenceException شود، در خطایی که نمایش داده می‌شود دقیقا اشاره می‌شود کدام قسمت null بوده. برای مثال دقیقا گفته می‌شود که person.Parent برابر null بوده و باعث بروز خطا شده‌است.

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

https://blogs.msdn.microsoft.com/devux/2017/03/18/the-small-big-feature-in-visual-studio-2017/

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

http://ow.ly/dnIZ30aGM7L

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

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


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

مقاله زیر ۱۰ نکته‌ مهمی که برنامه نویسان باید در مورد این فایل بدانند را شرح داده‌است.

https://weblogs.asp.net/jongalloway/10-things-asp-net-developers-should-know-about-web-config-inheritance-and-overrides

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

http://ow.ly/Ojts30aISN8

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

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


___