Software Philosophy
3.45K subscribers
160 photos
41 videos
1.54K links
چکیده‌ای از مفاهیم به روز مهندسی نرم افزار برای مهندسین نرم‌افزار.
معماری نوین نرم‌افزار، تکنولوژی‌های برنامه نویسی جدید
Download Telegram
ممکن است در فرایند توسعه‌ی برنامه‌های SPA که UI‌ آن‌ها با screen‌های با اندازه‌های متفاوت موبایل تا دسکتاپ سازگار است٬ نیاز به تست برنامه روی Device ها داشته باشید. Browsersync ابزاری قدرتمند است که در ترکیب با Webpack و Hot Reloading این امکان را به شما می‌دهد تا به جای تست app روی شبیه ساز های device بتوانید مستقیما روی device تست و debug را انجام دهید.
برای توضیحات بیشتر به لینک زیر مراجعه کنید.

https://manavsehgal.com/browsersync-and-webpack-for-testing-web-apps-across-multiple-devices-64e7f7fa62f2


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

https://ow.ly/3dge30eCtwT

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


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

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

لینک زیر راه های ساده و کارآمدی را برای داشتن کد مرتب CSS معرفی می‌کند که استفاده از آنها توصیه می‌شود.

https://cssguidelin.es/

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

https://ow.ly/IdOy30aYW4S

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

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

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

۱. آیا ترکیب WebAssembly و .Net آینده برنامه‌نویسی front-end است؟

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

۲. مفهوم Touch Point و نقش آن در تعریف محصولات نرم‌افزاری

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

۳. وقتی فرهنگ استراتژی را بعنوان صبحانه می‌بلعد (Iran Agile)

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

۴. سرویس Figma 2.0: ابزاری برای تمام فصول (دیزاین)

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

۵. آشنایی با Browsersync

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

۶. راه های ساده و کارآمد برای داشتن کد مرتب CSS
#css #cleancode
https://t.iss.one/SoftwarePhilosophy/918


@SoftwarePhilosophy

____
Forwarded from Iran Agile
📈 پروژه مدیریت مستردیتا به روش چابک

اطلاعات موجود در دنیای دیجیتال تا سال 2020 به 44 زتابایت یا 44 تریلیون گیگابایت خواهد رسید (الان تقریبا 5 زتابایت است)، این حجم دیتا باعث می شود که سازمانها به فکر پروژه های مدیریت مستردیتا یا Master Data Management بیفتند. زیرا MDM نقش بسزایی در تحلیل یا گزارش یا حتی سیستم های تراکنشی دارد.

خروجی پروژه های MDM ایجاد دیتابیس مستر خواهد بود که توسط سیستمهای دیگر استفاده می شود.

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

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

@iranagile

گویند شخصی با کاسه‌ای ماست در کنار دریا نشسته بود و با قاشقی ماست را به دریا می‌ریخت.
از او پرسیدند چه کار می‌کنی، گفت دارم دوغ درست می‌کنم. به او گفتند با این کاسه ماست که نمی‌شود آب دریا را دوغ کرد. باز پاسخ داد که می‌دانم نمی‌شود اما اگه بشود چه می‌شود.

اما پروژه MDM به سبک چابک، به جای ایجاد رکورد کامل، دنبال پیروزی های کوچک در راستای رسیدن به اهداف تجاری است. اگر داده های مشتریان مهمتر است، ابتدا تمرکز پروژه بر روی این داده ها خواهد بود.
به جای رکورد کامل، تاکید بر روی رکورد طلایی است، داده هایی که مهمتر هستند و دائم در حال آپدیت شدن هستند.

در این مورد بیشتر بخوانید:

https://goo.gl/azSP4x

@iranagile
Forwarded from فلسفه دیزاین (Ramin Khatibi)
جادوی سیاهی به نام نوتیفیکیشن

سالیان زیادی‌ست که نوتیفیکیشن‌ها به انسان‌ها کمک می‌کنند. وقتی زنگ در و یا زنگ تلفن به صدا در می‌آید و یا حتی وقتی کسی نام ما را صدا می‌کند، در حال دریافت اعلان یا Notification هستیم.
این روزها شنیدن واژه نوتیفیکیشن ما را به یاد نقطه قرمز در اپلیکیشن‌های Instagram یا Facebook می‌اندازد. نقطه‌هایی که با تغییر مغزهای ما در گذر زمان، حالا مجبورمان می‌کنند که آن بخش را چک کنیم.
تمامی ما روزانه تعداد زیادی نوتیفیکیشن دریافت می‌کنیم که به ما یادآوری می‌کنند که سربازهایمان در Clash of Clans آماده‌اند، یا رکورد تعداد قدم‌های روزانه خود را رد کرده‌ایم؛ و البته به دریافت آن‌های عادت کرده‌ایم.

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

نویسنده مقاله امروز، آقای Andrew Wilshere به این سوال می‌پردازد و با بررسی معروف‌ترین سرویس‌های دنیا مانند Instagram، Facebook و یا Twitter به ما نشان می‌دهد که هر کسب‌و‌کار و هر سرویسی، حدی متفاوت از استفاده از نوتیفیکیشن را برای خود تعریف کرده‌است.
سوال مهم این است که سرویس طراحی شده توسط شما در کجای این مرز قرار می‌گیرد؟

https://trydesignlab.com/blog/are-notifications-a-dark-pattern-ux-ui/

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

پ. ن.
در این مقاله مفهومی به اسم Dark Patterns توضیح داده شده است که به معنای کلی برای گول زدن کاربر برای انجام کاری که تمایلی به آن ندارد است. نمونه‌های جالبی هم معرفی شده‌است.

#مفاهیم #چالش #اعلان #نوتیفیکیشن
@Dexign دیزاین

___
#پست_مجدد این پست تا به حال بیش از ۱۱۰۰ بار مشاهده شده و به نظر می‌رسد برای خوانندگان جدید کانال جذاب باشد.
Forwarded from Software Philosophy
تنظیم محیط برنامه‌نویسی Linux روی Windows 10 عنوان مقاله‌ای است که اسکات هانسلمن در بلاگش در مورد آن توضیح داده‌است. یکی از نکات جالب مورد اشاره او در این پست این جمله بود: «بعضی‌ها دوست دارند با ماوس و کلیک کار کنند، بعضی‌ها ترجیح می‌دهند با کیبورد و تایپ کردن کار کنند، اشکال ندارد برای همه جا هست!»
دو عادت کاملا متفاوت برنامه‌نویسان، محیط‌های کارمندی و محیط‌های گرافیکی است. در این مقاله نحوه استفاده از bash روی linux که روی windows 10 بالا آمده‌است توضیح داده شده.

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

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

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

https://ow.ly/FD3X30b4Kyd

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

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


___
تبدیل کدهای C# به JavaScript در بسیاری از شرایط می‌توان مفید باشد. معمولا قسمت قابل توجهی از کدهای بین سرور و کلاینت که شبیه هم هستند می‌توانند در یک جا نوشته شوند. برای مثال مدل‌های انتقال اطلاعات DTO و یا Validation ها همه کدهایی هستند که پس از تعریف در سمت سرور می‌توانند در سمت کلاینت هم دوباره استفاده شوند.
هدف پروژه Bridge.NET اینجا امکان تبدیل کدهای C# به کدهای TypeScript و یا JavaScript است. در سایت این پروژه به صورت آنلاین می‌توانید آن را آزمایش کنید تا از نحوه کار آن مطلع شوید.

https://bridge.net/

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

https://ow.ly/yrVs30eL96Y

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


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

___
Forwarded from Iran Agile
🔭 هفت روش کاربردی برای گرفتن بازخورد کاربران در اسکرام

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

در ادامه هفت روش گرفتن این بازخوردها برای تیم‌های اسکرامی معرفی شده است:

1. Involve users during the Sprint Review
2. Go on a User Safari
3. Organize a Product Bazaar
4. Do Guerrilla Testing
5. Use (short) surveys
6. Investigate usage Metrics
7. Use A/B-testing

توضیحات هرکدام از روش‌ها را در لینک زیر مشاهده کنید:
🌐 https://goo.gl/A3ApnZ

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

۱. پروژه مدیریت مستردیتا به روش چابک (Iran Agile)
#agile #masterdata
https://t.iss.one/SoftwarePhilosophy/920

۲. جادوی سیاهی به نام نوتیفیکیشن (دیزاین)
#design #ux #notification
https://t.iss.one/SoftwarePhilosophy/921

۳. تنظیم محیط برنامه‌نویسی Linux روی Windows 10
#linux #dotnet #windows
https://t.iss.one/SoftwarePhilosophy/923

۴. تبدیل کدهای C# به JavaScript و پروژه Bridge.NET
#javascript #csharp #bridgenet #framework
https://t.iss.one/SoftwarePhilosophy/924

۵. هفت روش کاربردی برای گرفتن بازخورد کاربران در اسکرام (Iran Agile)
#scrum
https://t.iss.one/SoftwarePhilosophy/925

ـــــــــــ

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

در مقاله زیر تجربه استفاده از دو ابزار Team Foundation Server و یکپارچگی آن با سرویس‌های Azure در یک پروژه عملی شرح داده شده است. در این فرایند Feature‌ ها به عنوان زبان مشترک بین تیم فنی و بیزنس طراحی می‌شوند. سپس این Feature ها به Backlog Item ها شکسته می‌شوند. یک Backlog Item در حقیقت یک نیازمندی‌است است که آنقدری کوچک شده که بتوان آن را به تنهایی تست کرد. به طوری که اگر تست تمام Backlog Item های یک Feature پاس شود، به معنی قابل تحویل بودن آن به تیم بیزنس باشد. سپس Task ها مجموعه کارهایی (فنی و غیر فنی) است که باید انجام شود تا بتوان تست یک Backlog Item را پاس کرد.

در مقاله زیر به طور خلاصه توضیح داده شده‌است که چگونه Sprint ها انجام می‌شوند.

https://mehrandvd.me/2017/02/24/azure-experience-handling-requirements/

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

https://ow.ly/3NGm30b5IjZ

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

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


___
در صورتی که از کندی Visual Studio رنج می‌برید و علاقه مند هستید سرعت کار ویژوال استدیو را بالاخص در زمان دیباگ و اجرای برنامه‌ها تا چندین برابر بهبود دهید، راهکارهای ارایه شده در این مقاله را که همگی تست شده اند و بعضا دارای PowerShell Script آماده به اجرا هستند استفاده کنید و از بهبود به دست آمده لذت ببرید.

https://docs.bit-framework.com/docs/good-to-know/visual-studio-speedup.html



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

https://ow.ly/GrJ430eStMy

#یاسر_مرادی (https://ow.ly/Ph6w30ebM21)

با سپاس از آقای سعید صالحی برای مشارکت در تهیه این مطلب
https://github.com/1saeedsalehi


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

___
Forwarded from فلسفه دیزاین (Ramin Khatibi)
پنجمین نسخه از Swarm دوست‌داشتنی

احتمالا اپلیکیشن Foursquare همچنین Swarm را می‌شناسید. برای من Foursquare نمونه یک محصول بسیار موفق‌ست (حتی بالاتر از Instagram و Facebook)‌ که پیشرفت و پا گرفتنش را در ایران، لحظه به لحظه پیگیری کرده‌ام. هوشمندی بینظیری که در Gamification داشت و روش‌های اغواگرانه‌ای که برای وادار کردن کاربر به فعالیت استفاده می‌کرد از مهمترین دلایلی بود که من را به این محصول علاقمند می‌کرد.

بعدها که اپلیکیشن Swarm با هدف جدا کردن تکه‌ی شبکه اجتماعی Foursquare معرفی شد، فعالیت و پیگیری‌های من هم کمی کمتر شد ولی این تیم همیشه تاثیر خود را در کار حرفه‌ای من داشته‌ست. بطوریکه وقتی خواندم که اپلیکیشن جدید Foursquare بطور کامل در Sketch App طراحی شده، مهاجرت به این ابزار را برای خود یک الزام می‌دیدم.

تیم دیزاین این مجموعه، هم‌اکنون نسخه 5.0 از اپلیکیشن Swarm را منتشر کردند که دستخوش تغییراتی بسیاری شده‌است.
مقاله امروز، داستانی‌ست از زبان یکی از طراحان محصول این تیم که به بررسی روند این بازطراحی می‌پردازد و نکات جالبی در آن نهفته‌ست:
- می‌توان متوجه دید و دغدغه‌های یک تیم دیزاین در این سطح، در روند بازطراحی محصول شد.
- می‌توانید نمونه‌ای از Style Guideهایی را که در تیم‌های دیزاین دیگر ساخته می‌شود، ببینید.
- متوجه می‌شوید که یکی از وظایف شما به عنوان دیزاینر، به اشتراک‌گذاری ایده‌ها و طرح‌ها و گرفتن بازخوردهاست. در هر سطحی که باشید.
و …

پیشنهاد می‌کنم همین حالا این داستان زیبا را مطالعه کنید.

https://medium.com/foursquare-direct/how-we-designed-foursquare-swarm-5-0-d774b3164f3f

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

#تیم #بازطراحی #محصول #Swarm
@Dexign دیزاین

___
Forwarded from Iran Agile
🎩 هیچ کس حاضر به استفاده از MVP ناقص شما نیست!

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

مشتریان با محصول ساده مشکلی ندارند، ولی ناقصی که کار نمی کند را نخواهد پذیرفت. ایجاد MVP به معنی ایجاد یکسری قابلیت ناقص نیست...

ادامه مقاله را در لینک زیر مشاهده کنید:

🌐 https://goo.gl/Q6bHMW

@iranagile
#پست_مجدد این پست تا به حال بیش از ۱۲۰۰ بار مشاهده شده و به نظر می‌رسد برای خوانندگان جدید کانال جذاب باشد.
Forwarded from Software Philosophy
مفهوم Concurrent Programming و تفاوت آن با Parallel Programming همیشه یکی از مباحث چالش برانگیز برای برنامه نویسان بوده است. مفهوم اجرای همزمان یا Concurrent حتی قابل اجرا روی یک نخ یا یک cpu است. در حالی که اجرای موازی یا Parallel نیاز به چند نخ دارد. مقاله زیر به زیبایی و بسیار خلاصه این دو مدل برنامه‌نویسی را توضیح داده‌است. همچنین نحوه استفاده از امکانات .net core را برای پیاده‌سازی این مفاهیم را به همراه مثال‌هایی خوانا شرح داده‌است.

مفاهیم TPL, PLINQ, Async, Immutable Collection و مفاهیم دیگر در این مقاله با ذکر مثال‌هایی جالب شرح داده شده‌اند.

https://www.dotnetcurry.com/dotnet/1360/concurrent-programming-dotnet-core

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

https://ow.ly/xoWQ30bbJFn

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

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


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

۱. شرح استفاده از دو ابزار Team Foundation Server و یکپارچگی آن با سرویس‌های Azure در یک پروژه عملی

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

۲. راهکارهایی برای افزایش سرعت Visual Studio

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

۳. نسخه پنجم Swarm (دیزاین)

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

۴. هیچ کس حاضر به استفاده از MVP ناقص شما نیست (Iran Agile)

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

۵. توضیحاتی در رابطه با مفاهیم مفاهیم TPL, PLINQ, Async, Immutable Collection

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

ـــــــــــ

@SoftwarePhilosophy
#پست_مجدد این پست تا به حال بیش از ۱۴۰۰ بار مشاهده شده و به نظر می‌رسد برای خوانندگان جدید کانال جذاب باشد.
Forwarded from Software Philosophy
حذف حجم زیادی از سطرها از دیتابیس با اجرای دستور DELETE می‌تواند بسیار پر هزینه و زمان‌بر باشد. برای بهبود عملکرد و سرعت عملیات حذف باید Foreign Key ها، Index ها را هم بررسی کرد. ولی پس از بررسی و بهبود توسط این عوامل، راه بعدی استفاده از Delete Chunks است. شکستن DELETE های بزرگ به تکه‌های کوچک‌تر می‌تواند کمک زیادی به بهبود سرعت کند.

مقاله زیر ضمن آموزش این روش، نتایج اجرای این روش را با روش‌های دیگر مقایسه کرده‌است.


https://sqlperformance.com/2013/03/io-subsystem/chunk-deletes

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

https://ow.ly/CcQz30bhNiQ


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

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


___