Software Philosophy – Telegram
Software Philosophy
3.45K subscribers
160 photos
41 videos
1.54K links
چکیده‌ای از مفاهیم به روز مهندسی نرم افزار برای مهندسین نرم‌افزار.
معماری نوین نرم‌افزار، تکنولوژی‌های برنامه نویسی جدید
Download Telegram
همانند سمت سرور، سمت کلینت نیز storage هایی جهت ذخیره اطلاعات وجود دارد که با توجه به نیاز می توان از آنها استفاده کرد.
از جمله این storage ها، می‌توان به session storage, local storage و cookie اشاره کرد.
دانستن تفاوت بین این سه storage و میزان دسترسی به اطلاعات آنها می‌تواند به انتخاب مناسب در موقعیت‌های متفاوت کمک کند.
باید بدانید که Session storage مربوط به هر تب از browser است بنابراین در تب جدید دیگر وجود ندارد.
و نیز Local storage حافظه‌ای مربوط به browser است، بنابراین اطلاعات مربوط به آن در تمام تب های browser در دسترس خواهد بود و حتی با باز و بسته شدن browser نیز پاک نخواهد شد. اطلاعات موجود در local storage در browser تا زمانی که به طور دستی history مربوط به browser پاک شود یا از طریق جاوا اسکریپت این حافظه خالی شود وجود خواهد داشت.
در انتها Cookie حافظه ای است که مانند local storage عمل می کند با این تفاوت که اطلاعات موجود در cookie از سمت سرور نیز در دسترس بوده و در واقع در سمت سرور می توان از اطلاعات cookie استفاده کرد.
مقاله زیر به طور کامل تفاوت این سه حافظه را ذکر مثال بیان کرده است.

http://www.c-sharpcorner.com/uploadfile/cd7c2e/difference-between-local-storage-session-storage-ans-cookie

#مریم_داودی

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

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

___
گرافیک سه بعدی کامپیوتری و ساخت بازی‌های کامپیوتری جز تکنولوژی‌های پیچیده محسوب می‌شود. اینکه یک ویدئو ساخته شده سه بعدی بتواند کاملا واقعی به نظر برسد کاری بسیار سخت است. در حقیقت ۳ عامل خیلی مهم وجود دارد که باعث واقعی شدن یک نمایش گرافیکی سه بعدی می‌شود.
۱. حرکت‌های طبیعی (Motion)
۲. سایه‌ها (Shadow)
۳. بافت‌ها (Texture)
مفهوم سایه فقط به سایه جسم روی زمین ختم نمی‌شود. به عنوان مثال، برای اینکه موهای یک شخص طبیعی دیده شود سایه تک تک تارهای مو باید به درستی روی بقیه تارهای مو بیفتد و این یعنی حجم وحشتناکی از محاسبات در ثانیه! مفهوم بافت مفهومی است که به یک مدل سه بعدی معنای قابل لمس می‌دهد و آن را برای ما ملموس می‌کند.

ویدئوی زیر که توسط شرکت Method Studios ساخته شده‌است یکی از نمونه‌های فوق‌العاده است که سه مفهوم بالا در آن به زیبایی نمایش داده شده‌است.

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

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

___
نحوه تعریف متغییرها در یک برنامه می تواند تاثیر زیادی بر کارآیی برنامه داشته باشد. مقاله زیر با زبانی ساده نشان می دهد که چگونه boxing و unboxing می تواند بر بهینه سازی برنامه تاثیر داشته باشد و شش مفهوم Stack ، Heap ، Value type ، Reference Type ، boxing و unboxing را توضیح داده است. همچنین در این مقاله مشاهده می‌کنید که چگونه Cast کردن‌های بیهوده می‌تواند سرعت برنامه ما را تحت تاثیر قرار دهد.

http://www.codeproject.com/Articles/76153/Six-important-NET-concepts-Stack-heap-value-types

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

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

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

___
کتابخانه Audit.Net کتابخانه فوق‌العاده‌ای است که امکان هندل کردن تمامی سناریو‌های مربوط به لاگ کردن و Audit را با معماری بسیار زیبایی در اختیار معماران نرم‌افزار می‌گذارد. این کتابخانه از فلسفه Convenction over Configuration استفاده کرده و برای تنظیم کردن آن علاوه بر روش‌های متداول، به زیبایی از Fluent API استفاده شده‌‌است.
مساله Audit کردن عملیات برنامه همیشه انرژی زیادی از برنامه‌نویسان سیستم‌های بزرگ می‌گیرد. ساخت Audit در مکان‌های مختلف برنامه می‌توانید اتفاق بیافتد. برای مثال در بستر Object، EntityFramework، WebApi، WCF و بسترهای دیگر می‌توان فرایند Audit را فعال کرد. پیچیدگی دیگر مربوط به نحوه ذخیره‌سازی Audit است. می‌توان آنها را در File، Event Log، Sql Database، NoSQL Database، Azure Blob Store و بسترهای مختلف دیگر ذخیره کرد.

https://github.com/thepirat000/Audit.NET

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

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

___
👍1
#پست_مجدد این پست تا به حال بیش از ۱۱۰۰ بار مشاهده شده و به نظر میرسد برای خوانندگان جدید کانال جذاب باشد.
Forwarded from Software Philosophy
یکی از مهمترین قسمت های برنامه نویسی خطا یابی یا همان debugging است. در گذشته برای خطا یابی از دستور print() استفاده می شد که بسیار زمان بر و طاقت فرسا بود. امروزه ابزارهایی برای debug طراحی شده که با ساده کردن خطا یابی باعث سرعت بیشتر برنامه نویسی شده اند. آشنایی و استفاده از این ابزارها لذت برنامه نویسی را برای شما صد چندان می کند.
در Visual Studio هفت ابزار برای خطا یابی وجود دارد.
• DataTip
• Autos Window
• Local Window
• Watch Windows
• QuickWatch dialog
• Parallel Watch Windows
• Immediate Window
مقاله زیر به روشی مناسب این 7 ابزار را معرفی کرده و شرح داده است.

https://blogs.msdn.microsoft.com/visualstudioalm/2016/07/15/7-ways-to-look-at-the-values-of-variables-while-debugging-in-visual-studio

#مریم_داودی

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

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


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

http://www.infoworld.com/article/2905918/microsoft-net/choosing-the-right-technology-for-building-your-service-layer-in-net.html

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

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

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

___
#پست_مجدد این پست تا به حال بیش از ۱۲۰۰ بار مشاهده شده و به نظر میرسد برای خوانندگان جدید کانال جذاب باشد.
Forwarded from Software Philosophy
آینده زبان C# به چه سمتی می‌رود؟ این زبان از نسخه ۳ به بعد، در هر نسخه خود امکانات جدیدی را به دنیای برنامه‌نویسی شی‌گرای مدرن معرفی کرد. از زمانی که کامپایلر Roslyn به صورت اوپن-سورس معرفی شد و همچنین پلتفرم Xamarin به صورت رایگان در اختیار برنامه‌نویسان قرار گرفت، اتفاقات جالب زیر محقق شده‌است:
• You can write C# in any editor you want
• C# is open source now
• C# runs on Windows, Mac, and Linux
• C# can be used to build Windows client apps, Windows Store apps, iOS apps, and Android aps and can also be used to build backend and middle-tier frameworks and libraries.
• Supports all IDEs and editors
• All the linters and analysis tools
• All the fixing and refactoring and code generation tools
• All the noscripting and all the REPLs

مقاله زیر سیر تکامل این زبان را بررسی کرده است و کمی درباره سمت سوی آینده این زبان صحبت کرده‌است.

http://www.c-sharpcorner.com/article/what-is-the-future-of-C-Sharp

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

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


___
#پست_مجدد این پست تا به حال بیش از ۲۰۰۰ بار مشاهده شده و به نظر میرسد برای خوانندگان جدید کانال جذاب باشد.
Forwarded from Software Philosophy
هرم شیطان یا Pyramid of Doom یک مشکل معروف در دنیای برنامه‌نویسی است. این مشکل معمولا وقتی پیش می‌آید که برنامه‌نویس مجبور است تعداد زیادی if تو در تو بنویسد، در این صورت با رعایت تو رفتگی‌های کد، کد شما از دور یک هرم خیلی بزرگ به نظر می‌رسد. یک نمونه متداول چک کردن مقادیر null به وسیله if های تو در تو است. این هرم هنگام استفاده از callback های متوالی نیز پیش می‌آید. در برنامه نویسی به زبان JavaScript حتما این هرم را در کدها دیده‌اید. لینک زیر نحوه تشکیل این هرم در کد را نشان می‌دهد و برای رفع آن در برخی حالت‌ها راه حل هایی ارائه داده است.

https://en.wikipedia.org/wiki/Pyramid_of_doom_(programming)

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

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


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

https://medium.com/the-startup-magazine-collection/what-to-include-in-your-2-minute-startup-pitch-b166f529f388?ref=quuu#.wp67z53jl

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

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


___
#پست_مجدد این پست تا به حال بیش از ۱۷۰۰ بار مشاهده شده و به نظر میرسد برای خوانندگان جدید کانال جذاب باشد.
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


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