Software Philosophy
3.45K subscribers
160 photos
41 videos
1.54K links
چکیده‌ای از مفاهیم به روز مهندسی نرم افزار برای مهندسین نرم‌افزار.
معماری نوین نرم‌افزار، تکنولوژی‌های برنامه نویسی جدید
Download Telegram
Forwarded from Software Philosophy
کدهایی که اجرای آنها زمانبر است ممکن است همیشه به درستی انجام نشوند. ریستارت سرور، قطع ناگهانی شبکه و خطای کد می‌توانند باعث توقف و عدم اجرای کد مورد نظر شوند. با Hangfire می‌توان در .NET کارهای طولانی مدت در نرم افزار را بسادگی بصورت Fire and Forget و یا بصورت زمانبندی شده اجرا نمود. با بسته شدن نرم افزار، ریستارت شدن و یا هر اتفاقی که باعث انجام موفقیت آمیز آن کار نشود، Job مورد نظر دوباره اجرا خواهد شد. البته ذکر نکته نیز مهم می باشد که Job ها به شکلی نوشته شوند که در صورت عدم اجرای موفقیت آمیز بتوانند بطور کامل از آغاز مجدداً اجرا گردند.

https://docs.hangfire.io/en/latest/quick-start.html


https://docs.hangfire.io/en/latest/configuration/using-sql-server.html

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

https://ow.ly/aqMD30dBgdj


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

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

___
#پست_مجدد این پست تا به حال بیش از ۱۳۰۰ بار مشاهده شده و به نظر می‌رسد برای خوانندگان جدید کانال جذاب باشد.
Forwarded from Software Philosophy
یکی از مسایلی که برنامه نویسان با آن درگیر هستند فهمیدن نحوه استفاده از یک وب سرویس (Web API) و نوشتن کد برای استفاده از آن می‌باشد. با Swagger می‌توان برای هر Web API مستندات تهیه نمود و در پلتفورم دلخواه از Java گرفته تا Xamarin کد استفاده از وب سرویس را ایجاد کرد. مکانیزم عملکرد Swagger مانند ایجاد WSDL و ایجاد کد استفاده از وب سرویس در Visual Studio می‌باشد ولی با این تفاوت که قابلیت ایجاد کد کلاینت بر روی کلیه پلتفرم‌ها وجود دارد.

https://blog.rsuter.com/nswag-tutorial-integrate-the-nswag-toolchain-into-your-asp-net-web-api-project/

https://github.com/RSuter/NSwag/wiki/T4

https://editor.swagger.io/

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

https://ow.ly/8aKh30dGLEB


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

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

___
Forwarded from Iran Agile
🔴 آیا برنامه‌نویس‌ها باید در فرآیند طراحی کانسپت محصول حضور داشته باشند؟

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

البته بعد آن نیز سوال می کنن که چرا نیروهای ما هیچ حس خاص یا تعصبی بر روی محصول ندارند.

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

🌐 https://goo.gl/qQHnR6

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

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

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

۲. نامگذاری به روش کباب!
#naming
https://t.iss.one/SoftwarePhilosophy/989

۳. خطای دید انسانی و دیزاین (فلسفه دیزاین) https://t.iss.one/SoftwarePhilosophy/990

۴. استفاده از Hangfire در در .NET برای زمان بندی کارهای طولانی
#dotnet #scheduler #framework #jobrunner
https://t.iss.one/SoftwarePhilosophy/992

۵. نحوه استفاده از Swagger برای تهیه مستندات در Web API ها
#rest #webapi #documentation
https://t.iss.one/SoftwarePhilosophy/994

۶. آیا برنامه‌نویس‌ها باید در فرآیند طراحی کانسپت محصول حضور داشته باشند؟ (Iran Agile)
#sdlc #scrum
https://t.iss.one/SoftwarePhilosophy/995

ـــــــــــ


@SoftwarePhilosophy
Forwarded from Software Philosophy
اگر دوستانی دارید که نه تنها برنامه نویس هستند، بلکه اعتقاد دارید «مهندس نرم‌افزار» هم هستند، آنها را به کانال @SoftwarePhilosophy دعوت کنید.
این پیغام را برای آنها Forward کنید.
تست نرم افزار موضوعی مهم برای برنامه‌های موبایل است. با وجود نسخه‌های متعدد از سیستم عامل‌ها و دستگاه‌های متفاوت، تحت پوشش قرار دادن همه آن‌ها وقت گیر است. به همین دلیل اجرای تست اتوماتیک برای همه سیستم عامل‌ها و دستگاه‌ها بصورت موازی به جای اجرای ترتیبی آن‌ها، صرفه زمانی و اقتصادی بیشتری دارد. 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 فلسفه دیزاین
کتابخانه‌ها به شما بال میدن:
بررسی نسخه ۴۷ نرم‌افزار Sketch

چند وقت قبل با یکی از دوستانم که حالا به عنوان Android Engineer در شرکت Spotify کار می‌کند گپ می زدیم. Spotify بعد از منتشر کردن ویدئویی از نحوه کار تیم‌هایش، توجه خیلی‌ها از جمله من را به ساختار تیمی خود جلب کرد. برایم خیلی جالب بود بدانم در شرکتی با این تعداد تیم و این تعداد نیروی انسانی، دیزاینرها چطور دیزاین‌های خود را بصورت یکپارچه نگه می‌دارند؟

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

گرچه فرصت کم هردوی ما اجازه نداد بیشتر با یکدیگر صحبت کنیم ولی با مقدمه بالا می‌خواهم به معرفی نسخه جدید اپلیکیشن دوست‌داشتنی Sketch و ویژگی جدید و هیجان‌انگیزش بپردازم.

در مقاله امروز از زبان تیم Sketch می‌خوانیم که این نسخه شامل ۲ ویژگی مشخص به نام Library و Smooth Corner و چند بهینه‌سازی و بهبود کوچکتر است.
ویژگی Library دقیقا همان چیزی است که می‌تواند روند کاری تیم‌های دیزاین که بر روی یک محصول کار می‌کنند را کاملا تغییر داده و مشابه Spotify کند. اگر با Symbolها در Sketch کار کرده باشید، می‌دانید که با استفاده از آن‌ها می‌توان عناصری را ساخته و در جاهای مختلف دیزاین خود استفاده کنید؛ حال با تغییر یکی از نمونه‌های استفاده شده، تمامی آن‌ها به‌روز شده و تغییر اعمال شده را می‌پذیرند.
حالا در نسخه جدید Sketch، شما Symbolهایی دارید که می‌توانید آن‌ها در یک فایل جدا ذخیره کرده و از آن‌ها در فایل‌های مختلف استفاده کنید. با تغییر در یکی از نمونه‌ها، تمامی فایل‌ها تغییر عنصر مورد نظر را به شما اطلاع داده و به‌روز می‌شوند.
خیلی جالب است نه؟

در ادامه ویدئویی از کارکرد این ویژگی خواهیم دید.
پیشنهاد می‌کنم پس از دیدن ویدئو، باقی توضیحات را از زبان خود مقاله بخوانید.

https://blog.sketchapp.com/introducing-libraries-and-smooth-corners-in-sketch-47-2abc5dfc1fb3

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

#بررسی #معرفی #ابزار #Sketch
@Dexign دیزاین

_
#پست_مجدد این پست تا به حال بیش از ۲۵۰۰ بار مشاهده شده و به نظر می‌رسد برای خوانندگان جدید کانال جذاب باشد.
Forwarded from Software Philosophy
لینوکس Ubuntu در Windows Store قرار گرفت! نتیجه همکاری Microsoft و Canonical امکان اجرای لینوکس روی سیستم عامل Windows 10 بدون استفاده از VM شده‌است. طبق گفته Scott Hanselman به زودی امکان اجرای موازی و مستقیم n نسخه لینوکس روی ماشین‌های Windows 10 (و بدون استفاده از VM) فراهم می‌شود.

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

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

https://ow.ly/EeFG30dIsnz

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

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


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

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


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

https://searchengineland.com/tested-googlebot-crawls-javascript-heres-learned-220157

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

https://ow.ly/4Ihc30dPA9G

#سبحان_خوش_سیرت (https://ow.ly/IFRT30dLbaW)

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

___
Forwarded from Iran Agile
🔴 روش واترفال هیچ گاه وجود نداشته و بزرگترین اشتباه تاریخ

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

“I believe in this concept, but the implementation described above is risky and invites failure.” -Royce

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

لینک مقاله اصلی رویس:
https://goo.gl/aAiTqU

در سال 1985 وزارت دفاع آمریکا، که بدنبال یک روش استاندارد برای توسعه پروژه های خود بوده، با استناد به همین عکس دوم مقاله رویس، این روش را به عنوان یک روش استاندارد معرفی می کند و به همین راحتی روش واترفال بدنیا می آید و در آن زمان که توضیح روش واترفال آسان تر بوده، به سرعت مورد استقبال قرار می گیرد.

مقاله وزارت دفاع:
https://goo.gl/yhX1SK

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

لینک شرح کامل داستان:
https://goo.gl/KCk41W

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

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

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

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

https://ow.ly/p0JF30g96FC

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

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

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

۱. آشنایی با Appium ابزاری برای تست خودکار و موازی نرم افزارهای موبایل

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

۲. بررسی نسخه ۴۷ نرم‌افزار Sketch (فلسفه دیزاین)

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

۳. لینوکس Ubuntu در Windows Store قرار گرفت!

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

۴. آیا گوگل آبجکت‌هایی که به صورت دینامیک در یک صفحه اینسرت می‌شوند را هم ایندکس می‌کند؟

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

۵. روش واترفال هیچ گاه وجود نداشته است (Iran Agile)

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

۶. آشنایی با ثبت داده‌ها بر اساس رویداد.

https://t.iss.one/SoftwarePhilosophy/1005
https://t.iss.one/SoftwarePhilosophy/1006

ـــــــــــ

@SoftwarePhilosophy
Forwarded from فلسفه دیزاین
سرویس Dropbox، خوشحال‌تر از همیشه

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

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

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

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


https://dropsox.style

که طراحی آن کنایه‌ست به:

https://dropbox.design

#بررسی #بازطراحی #Dropbox

@Dexign دیزاین

___________
#پست_مجدد این پست تا به حال بیش از ۱۴۰۰ بار مشاهده شده و به نظر می‌رسد برای خوانندگان جدید کانال جذاب باشد.
Forwarded from Software Philosophy
یکی از مسایلی که برنام‌ نویسان در ASP.NET MVC و یا ASP.NET Web Api با آن روبرو هستند مدیریت کدها در کنترلر می‌باشد. کدهای کنترلر ممکن است پس از مدتی پیچیده و دارای خطوط زیادی باشند. با استفاده از MediatR که یک پیاده سازی ساده از الگوی طراحی Mediator است می‌توان در کنترلرها کدهای منظم و کمی داشت.

https://blogs.msdn.microsoft.com/cdndevs/2016/01/26/simplifying-development-and-separating-concerns-with-mediatr/

https://jonhilton.net/2016/06/06/simplify-your-controllers-with-the-command-pattern-and-mediatr/


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

https://ow.ly/heDz30dQmqO

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


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

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

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

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

https://ow.ly/e40v30dRMZU

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

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


___