Software Philosophy
3.45K subscribers
160 photos
41 videos
1.54K links
چکیده‌ای از مفاهیم به روز مهندسی نرم افزار برای مهندسین نرم‌افزار.
معماری نوین نرم‌افزار، تکنولوژی‌های برنامه نویسی جدید
Download Telegram
#خلاصه_مطالب «فلسفه نرم‌افزار» در هفته گذشته:

۱. آشنایی با پایگاه داده‌ی رویدادی EventStore
#database #eventsource
https://t.iss.one/SoftwarePhilosophy/1092

۲. دلایل تاریخی برای اتخاذ ایجاد Exception ها در هنگام ایجاد خطا در حالت‌های Parallel و Async

https://t.iss.one/SoftwarePhilosophy/1093

۳. آشنایی با شیوه رسیدن به یک تیم Agile
#agile
https://t.iss.one/SoftwarePhilosophy/1096

۴. راهکارهایی برای استفاده بهتر از Entity Framework‌ در N-Tier app development‌

https://t.iss.one/SoftwarePhilosophy/1098

۵. آشنایی با فریمورک ReactXP

https://t.iss.one/SoftwarePhilosophy/1100

ـــــــــــ

@SoftwarePhilosophy
Forwarded from فلسفه دیزاین
چه کسی پیروز این مسابقه سرعت است؟

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

در همین راستا، مدتی‌ست شرکت‌هایی مثل Facebook و Google دست به پیاده کردن مدلی از طراحی Loading زدند که به اسامی Non-Blocking UI، Progressive Loading و … معروف شد.
راستش را که بخواهید، از نظر من هم این دیزاین بسیار زیباتر و جذاب‌تر از آن عناصر چرخان که قبل‌تر در Loadingها استفاده می‌شد، است. ولی این اتفاق همیشه هم خوب نیست. می‌پرسید چرا؟
پاسخ ساده‌ست، به خاطره همین جذابیت کاربر با دقت و توجه بیشتری به صفحه نگاه کرده و حس می‌کند که زمان بارگذاری طولانی‌تر است. دلیل قرار دادن آینه در آسانسورها هم این است که ما سرگرم شده و کُندی سرعت رسیدن به طبقه مورد نظرمان را حس نکنیم،‌ ولی در این Loadingهای جدید، یه حرکت خاص مدام تکرار شده و به خاطر جلب توجه، باعث کلافه شدن کاربر می‌شود.

در مقاله امروز، Kathryn Faulkner و Katherine Olvera، دو طراح تجربه کاربری، تستی را ترتیب داده‌اند که بازخورد کاربران از حالت‌های مختلف Loading را تست کنند.
نتایج جالب و قابل تامل است:

https://www.viget.com/articles/a-bone-to-pick-with-skeleton-screens

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

#بررسی #چالش #Loading
@Dexign فلسفه دیزاین

____
Forwarded from Iran Agile
آموزش با کیفیت مقدمه‌ای برای پیاده سازی چابک

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

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

دو - مطمئن شوید فرد یا افراد آموزش دهنده خودشان چابک شده باشند، دانش کم میتواند بسیار خطرناک باشد. اگر ایده اشتباهی در ذهن افراد کاشته شود، پاک کردن آن بخاطر بدبینی یا ناامیدی افراد کار آسانی نخواهد بود.

سه - آموزش مدیران ارشد را جدی بگیرید، درک درست آنها از چابکی بسیار ضروری است. برخی از مدیران ارشد سازمانها و شرکت‌ها هنوز فکر می‌کنند اجایل همان عجول بودن است.

https://goo.gl/KZMdba

@iranagile
#پست_مجدد این پست تا به حال بیش از ۱۱۰۰ بار مشاهده شده و به نظر می‌رسد برای خوانندگان جدید کانال جذاب باشد.
Forwarded from Software Philosophy
تست نرم افزار موضوعی مهم برای برنامه‌های موبایل است. با وجود نسخه‌های متعدد از سیستم عامل‌ها و دستگاه‌های متفاوت، تحت پوشش قرار دادن همه آن‌ها وقت گیر است. به همین دلیل اجرای تست اتوماتیک برای همه سیستم عامل‌ها و دستگاه‌ها بصورت موازی به جای اجرای ترتیبی آن‌ها، صرفه زمانی و اقتصادی بیشتری دارد. Appium ابزاری open source برای تست خودکار و موازی نرم افزارهای موبایل native ،hybrid و تحت وب روی iOS و Android یا Windows است.
توضیحات بیشتر در لینک‌های زیر ارائه شده است.

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

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

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

https://ow.ly/opgC30g2exl

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

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

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

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

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

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

https://ow.ly/p0JF30g96FC

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

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

___
#پست_مجدد این پست تا به حال بیش از ۱۵۰۰ بار مشاهده شده و به نظر می‌رسد برای خوانندگان جدید کانال جذاب باشد.
Forwarded from Software Philosophy
یکی از مشکلاتی که همیشه برنامه نویسان موبایل با آن درگیر بوده اند بروز رسانی نرم افزارهای موبایل می‌باشد. هر بروز رسانی نرم افزار نیاز به طی شدن مراحل تایید App Store ها دارد که این امر در بروز رسانی نرم افزارها تاخیر ایجاد می‌کند و امکان رفع سریع مسایل نرم افزار را به تولید کنندگان نمی‌دهد. Code Push سرویسی ابری است که مایکروسافت ارائه می‌دهد تا با آن نرم افزارهای موبایل نصب شده برای کاربران بدون نیاز به طی شدن این مراحل بروزرسانی شود. این سرویس برای نرم افزارهای موبایل مبتنی بر React Native و Cordova طراحی شده است که در آن بخش HTML و JavaScript نرم افزار به لحظه بروزرسانی می‌شود.

https://github.com/Microsoft/code-push

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

https://ow.ly/eMUV30ghdrj

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


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

___
#پست_مجدد این پست تا به حال بیش از ۱۱۰۰ بار مشاهده شده و به نظر می‌رسد برای خوانندگان جدید کانال جذاب باشد.
Forwarded from Software Philosophy
فیسبوک علاوه بر توسعه React برای وب و موبایل قدم به حوزه‌ی دیگری نیز نهاده است. با استفاده از React VR می‌توان با استفاده از جاوا اسکریپت نرم افزارهای واقعیت مجازی تولیدی نمود.

https://facebook.github.io/react-vr

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

https://ow.ly/sjGB30gAX3w

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


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


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

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

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


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

https://ow.ly/UkMY30gO6Si

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

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

___
👍1
Forwarded from فلسفه دیزاین
چگونه تمام ستاره‌ها را در یک آسمان جمع کنیم؟

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

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

- وانمود نکنید که کامل هستید: برای مثال وقتی شما مدیر واحد طراحی هستید به این معنی نیست که باید بهترین طراح باشید. مثل یک مربی دو که لازم نیست سریعترین دونده باشد! نقش مربی دو، سریعترین دونده بودن نیست. دونده بودن و مربی دو بودن دو نقش کاملا جدا هستند. همانطور که منتقد سینما بودن، لازمه‌ش کارگردان بسیار خوبی بودن نیست.

- از یاد گرفتن از افراد Senior استقبال کنید: وجود افراد حرفه‌ای، تیم شما را حرفه‌ای می‌کند. از طرفی استخدام افرادی که Junior هستند، با این هدف که بتوانید آنها را کنترل کنید بزرگترین اشتباه است. یکی از سوالاتی که در مصاحبه‌ها از خودم می‌پرسم این است که «آیا این آدم می‌تونه یه روزی رئیس من بشه؟ آیا من حاضرم تو تیم این شخص کار کنم؟» اگر جواب بله باشد این شخص یک کاندیدای ارزشمند است و می‌تواند ارزش زیادی در تیم خلق کند.

نکات بالا فقط دو نکته از این مقاله جذاب بود. مطالعه کامل این مقاله نقاط بسیار مهمی را در ذهنتان روشن می‌کند که مطمئنا در زندگی حرفه‌ای بسیار کارامد خواهد بود.

https://medium.com/the-year-of-the-looking-glass/managing-more-experienced-people-9893f9903649

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

#بررسی #چالش #مدیریت_تیم

#مهران_داودی

@Dexign فلسفه دیزاین


____
فریم‌ورک React یکی از فریم‌ورک‌هایی است که محبوبیت بسیار زیادی بین برنامه‌نویسان وب (و موبایل) پیدا کرده‌است. معماری این فریم‌ورک بسیار زیبا، سبک و قابل گسترش است. مفهوم Immutable طوری در این فریم‌ورک دیده شده که به نظر من یکی از مهمترین دلایل تمایز این زیرساخت با سایر زیرساخت‌ها است. هر اکوسیستمی که در community محبوب شود، باید منتظر کتابخانه‌‌های جذابی باشید که توسط برنامه‌نویسان دیگر برای آن ساخته می‌شود.
لینک زیر ۱۰ کتابخانه جذاب روی GitHub را که برای React توسعه داده شده‌اند را معرفی کرده‌است.


https://hackernoon.com/top-10-react-libraries-on-github-ebf730e7ac25


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

https://ow.ly/MX9B30hGWbQ

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

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

___
Forwarded from Agile Product Management (مدیریت محصول چابک)
💢 چگونه حذف ویژگی های اضافی در محصول موجب متمایز بودن آن در بازار می شود؟!

برای اغلب مدیران و مالکان محصول اضافه کردن ویژگی های بیشتر به محصول برای متمایز جلوه دادن آن از رقبا، تبدیل به یک وسوسه شده است. با این که در نگاه اول این کار یک استراتژی خوب برای محصول به نظر می رسد اما در واقع مدیر محصول چابک با افزودن ویژگی های بیشتر نه تنها ریسک محصول را از طریق ارائه ارزش پیشنهادی ضعیف افزایش می دهد، بلکه موجب ساخت محصولی با تجربه کاربری ضعیف می شود. ادامه در لینک زیر:

👇👇👇👇

🔗 https://goo.gl/Hz7RbN

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

۱. سرویسی برای به روز رسانی لحظه‌ای بخش‌های HTML و JavaScript نرم‌افزارهای موبایل

https://t.iss.one/SoftwarePhilosophy/1110

۲. استفاده از React VR و جاوا اسکریپت برای تولید نرم افزارهای واقعیت مجازی

https://t.iss.one/SoftwarePhilosophy/1112

۳. آشنایی با قانون حیاتی که تیم برنامه‌نویسی «آزمایشگاه نیروی متحرکه جت» ناسا

https://t.iss.one/SoftwarePhilosophy/1058

۴. چگونه تمام ستاره‌ها را در یک آسمان جمع کنیم؟ (فلسفه دیزاین)

https://t.iss.one/SoftwarePhilosophy/1115

۵. معرفی ۱۰ کتابخانه جذاب روی GitHub را که برای React

https://t.iss.one/SoftwarePhilosophy/1116

۶. چگونه حذف ویژگی های اضافی در محصول موجب متمایز بودن آن در بازار می شود؟! (Agile Product Management)

https://t.iss.one/SoftwarePhilosophy/1117

ـــــــــــ

@SoftwarePhilosophy
#پست_مجدد این پست تا به حال بیش از ۲۵۰۰ بار مشاهده شده و به نظر می‌رسد برای خوانندگان جدید کانال جذاب باشد.
Forwarded from Software Philosophy
عنوان URLs are UI، عنوانی بسیار جذاب برای مقاله جدید scott hanselman است. نکته خیلی جالبی که بسیاری از برنامه‌های امروزی ندارند. او در این مقاله توضیح می‌دهد که خود URL ها به قسمتی از UI برنامه تبدیل شده‌اند و خوانا بودن آن و قابل خواندن بودن آنها بسیار مهم است.
برای مثال لینک یک فایل در OneDrive شبیه
https://onedrive.live.com/?id=CD0633A7367371152C%21172&cid=CD06A73371152C
است. در حالیکه لینک یک فایل مشابه در DropBox شبیه
https://www.dropbox.com/home/Games
است.
در مقاله زیر توضیح داده شده‌است که برای مثال مدلی که در StackOverflow استفاده می‌شود چقدر خوب و خلاقانه است.
https://stackoverflow.com/users/1831530/mehrandvd
در این مدل هم از کد و هم از نام استفاده شده ولی قسمت نام بی‌اثر است و با حذف آن هنوز لینک کار می‌کند.

https://www.hanselman.com/blog/URLsAreUI.aspx

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

https://ow.ly/YHoU30e1jDD

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

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


___
#پست_مجدد این پست تا به حال بیش از ۲۳۰۰ بار مشاهده شده و به نظر می‌رسد برای خوانندگان جدید کانال جذاب باشد.