Forwarded from Software Philosophy
دیتابیسهای NoSQL امروزه در معماریهای نوین نرمافزار جایگاه ویژهای پیدا کردهاند. در سالهای قبل از این نوع دیتابیسها فقط در پروژههای خاصی استفاده میشد ولی به مرور نقش این نوع دیتابیسها با ظهورمعماریهای نوین یا مفاهیمی مانند CQRS پر رنگ تر شدهاست. مفاهیم این دیتابیسها به طور کلی با مدل فکری دیتابیسهای رابطهای یا Relational متفاوت است.
https://www.c-sharpcorner.com/article/introduction-to-no-sql-and-working-with-mongodb-part-one/
#مهران_داودی
لینکدین:
https://ir.linkedin.com/in/mehrandvd
کانال تلگرام:
@SoftwarePhilosophy
___
https://www.c-sharpcorner.com/article/introduction-to-no-sql-and-working-with-mongodb-part-one/
#مهران_داودی
لینکدین:
https://ir.linkedin.com/in/mehrandvd
کانال تلگرام:
@SoftwarePhilosophy
___
#پست_مجدد این پست تا به حال بیش از ۱۰۰۰ بار مشاهده شده و به نظر میرسد برای خوانندگان جدید کانال جذاب باشد.
Forwarded from Software Philosophy
اصطلاح Full Stack Developer عبارتی است که در چند سال اخیر بسیار رایج شدهاست. این برنامهنویسان معمولا درک خوبی از برنامهنویسی، زیرساخت، طراحی و حتی فهم بیزنسها دارند. چند سالی هم هست که «متخصص UX» به عنوان یک تخصص مهم در تیمها جا افتاده است. مقاله زیر اصطلاح جدیدی را با عنوان Full Stack UXer را معرفی میکند و نشان میدهد که این نقش و تخصص در یک تیم چقدر میتواند به موفقیت کمک کند. در این مقاله تخصصهایی که از یک Full Stack UXer انتظار میرود توضیح داده شده است. در این تعریف معمولا این فرد بیشتر درگیر تخصصهای زیادی خواهد بود که از Gamification تا حتی برنامهنویسی را شامل میشود.
مقاله زیر تجربه تعریف و استفاده از نقش توضیح داده شده است.
https://uxmag.com/articles/the-full-stack-uxer
#مهران_داودی
لینکدین:
https://ir.linkedin.com/in/mehrandvd
کانال تلگرام:
@SoftwarePhilosophy
___
مقاله زیر تجربه تعریف و استفاده از نقش توضیح داده شده است.
https://uxmag.com/articles/the-full-stack-uxer
#مهران_داودی
لینکدین:
https://ir.linkedin.com/in/mehrandvd
کانال تلگرام:
@SoftwarePhilosophy
___
Uxmag
The Full Stack UXer : A New Breed
The formal position of the UX designers is being bumped up to include more areas of expertise, and will continue to do so.
Forwarded from LiTuX
⚒⚒⚒
- معرفی ابزار برنامه سازی: ویرایشگر متن (vim)
ابزار vim در واقع یک Clone از ویرایشگر یونیکسی vi بوده و توانایی و کارایی آن فراتر از یک ویرایشگر عادی متن است.
آن در دو حالت متنی (CLI) و گرافیکی (GUI) قابل استفاده است. مانند ویرایشگر vi رابط کاربری vim بر اساس Menu و Toolbar نبوده و در حالت متنی عمل میکند. پوسته gvim رابط گرافیکی کاربری را به آن میدهد اما همچنان همه توان عملکرد آن در حالت متنی است.
همچنین در طراحی و پیاده سازی vim دستیابی به حداکثر سرعت و دقت در تایپ (از طریق حفظ گرایش انگشتان بر موضع سطر خانگی بر روی صفحه کلید) در نظر گرفته شده است.
این ابزار جهت سهولت کار کاربران در شروع بکار با آن، از طریق خط فرمان (فرمان vimtutor) دفترچه راهنمای آن را که بصورت بر خط (On-Line) نیز در دسترس میباشد را فراهم نموده است.
همچنین راهنمای (Help) آن از طریق خط فرمان (فرمان help:) در دسترس است.
قدرت و انعطاف عمده vim در شخصی سازی آن در ویرایشگری است. همچنین افزونه های (Plugins) بسیاری جهت افزایش دامنه کارایی آن در دسترس است.
این اسکریپتهای پیچیده در حقیقت با زبان اسکریپتی درونی vim نوشته شدهاند. همچنین در این رابطه vim از زبانهای اسکریپتی زیر پشتیبانی میکند:
Perl, Python, Racket, Ruby & TCL
- سبکی و چالاکی نسبت به رقبای انحصاری که موجب کوتاه شدن زمان بالا آمدن نرمافزار (Startup)، ذخیره شدن فضای دیسک، کارایی (Performance) بهینه تر در زمان اجرا میگردد.
- پشتیبانی از Unicode
- تکمیل کننده کد
- مقایسه کننده و ترکیب کننده فایلها
- پشتیبانی کامل از Regexp پیشرفته (و البته زبان Perl)
- پشتیبانی از عملیات مربوط به فایلها از طریق پروتکلهای شبکه مانند:
SSH, FTP & HTTP
- پشتیبانی از Spell Checking
...
پوسته gvim این ابزار بر پایه کتابخانه GTK ساخته شده است.
در سیستمهای بر پایه دبیان، در مخازن رسمی در دسترس بوده و با دستور زیر در ترمینال نصب میشود:
$ sudo apt install vim
#Development_Tools
#vi
#vim
👁🗨👁🗨👁🗨
+ @Litux (Reference applications of GNU/Linux)
- معرفی ابزار برنامه سازی: ویرایشگر متن (vim)
ابزار vim در واقع یک Clone از ویرایشگر یونیکسی vi بوده و توانایی و کارایی آن فراتر از یک ویرایشگر عادی متن است.
آن در دو حالت متنی (CLI) و گرافیکی (GUI) قابل استفاده است. مانند ویرایشگر vi رابط کاربری vim بر اساس Menu و Toolbar نبوده و در حالت متنی عمل میکند. پوسته gvim رابط گرافیکی کاربری را به آن میدهد اما همچنان همه توان عملکرد آن در حالت متنی است.
همچنین در طراحی و پیاده سازی vim دستیابی به حداکثر سرعت و دقت در تایپ (از طریق حفظ گرایش انگشتان بر موضع سطر خانگی بر روی صفحه کلید) در نظر گرفته شده است.
این ابزار جهت سهولت کار کاربران در شروع بکار با آن، از طریق خط فرمان (فرمان vimtutor) دفترچه راهنمای آن را که بصورت بر خط (On-Line) نیز در دسترس میباشد را فراهم نموده است.
همچنین راهنمای (Help) آن از طریق خط فرمان (فرمان help:) در دسترس است.
قدرت و انعطاف عمده vim در شخصی سازی آن در ویرایشگری است. همچنین افزونه های (Plugins) بسیاری جهت افزایش دامنه کارایی آن در دسترس است.
این اسکریپتهای پیچیده در حقیقت با زبان اسکریپتی درونی vim نوشته شدهاند. همچنین در این رابطه vim از زبانهای اسکریپتی زیر پشتیبانی میکند:
Perl, Python, Racket, Ruby & TCL
- سبکی و چالاکی نسبت به رقبای انحصاری که موجب کوتاه شدن زمان بالا آمدن نرمافزار (Startup)، ذخیره شدن فضای دیسک، کارایی (Performance) بهینه تر در زمان اجرا میگردد.
- پشتیبانی از Unicode
- تکمیل کننده کد
- مقایسه کننده و ترکیب کننده فایلها
- پشتیبانی کامل از Regexp پیشرفته (و البته زبان Perl)
- پشتیبانی از عملیات مربوط به فایلها از طریق پروتکلهای شبکه مانند:
SSH, FTP & HTTP
- پشتیبانی از Spell Checking
...
پوسته gvim این ابزار بر پایه کتابخانه GTK ساخته شده است.
در سیستمهای بر پایه دبیان، در مخازن رسمی در دسترس بوده و با دستور زیر در ترمینال نصب میشود:
$ sudo apt install vim
#Development_Tools
#vi
#vim
👁🗨👁🗨👁🗨
+ @Litux (Reference applications of GNU/Linux)
#پست_مجدد این پست تا به حال بیش از ۱۳۰۰ بار مشاهده شده و به نظر میرسد برای خوانندگان جدید کانال جذاب باشد.
Forwarded from Software Philosophy
فریمورک Aurelia یکی از فریمورکهای خوشساخت برنامههای وب نسل جدید است. این فریمورک که در حقیقت معادل و رقیب Angular 2 است معمولا به معماری خوب و Syntax بهتر از رقیب خود شناخته میشود. مدتی است که در مقایسه فریمورکهای جاوا اسکریپتی یکی از نکاتی که بسیار مورد توجه قرار میگیرد یکپارچگی آنها با TypeScript است. از این نظر نیز Aurelia بسیار خوب عمل کرده است و نه تنها کاملا با تایپ اسکریپت سازگار است، بلکه تمامی مستندات آن برای این زبان نیز وجود دارد و اصولا یکی از روشهای اصلی توسعه سیستم در آن استفاده از زبان TypeScript است.
مقاله زیر که توسط Mike Graham نوشته شده، توضیح میدهد که چگونه با این دو تکنولوژی میتوان شروع به توسعه نرمافزار کرد.
https://blog.durandal.io/2015/05/06/getting-started-with-aurelia-and-typescript
#مهران_داودی
لینکدین:
https://ir.linkedin.com/in/mehrandvd
کانال تلگرام:
@SoftwarePhilosophy
___
مقاله زیر که توسط Mike Graham نوشته شده، توضیح میدهد که چگونه با این دو تکنولوژی میتوان شروع به توسعه نرمافزار کرد.
https://blog.durandal.io/2015/05/06/getting-started-with-aurelia-and-typescript
#مهران_داودی
لینکدین:
https://ir.linkedin.com/in/mehrandvd
کانال تلگرام:
@SoftwarePhilosophy
___
Aurelia
Getting Started with Aurelia and TypeScript
Today, Core Aurelia Team member, Mike Graham, teaches us about combining Aurelia and TypeScript. About The Author Mike Graham (@cmichaelgraham) is a software architect with 25 years of experience designing and building extensible visualization platforms and…
#پست_مجدد این پست تا به حال بیش از ۱۰۰۰ بار مشاهده شده و به نظر میرسد برای خوانندگان جدید کانال جذاب باشد.
Forwarded from Software Philosophy
معماری حافظه در .Net یکی از مفاهیم مهمی است که هنگام کار، مخصوصا هنگام نوشتن برنامههایی که از Parallel Programming استفاده میکنند بسیار اهمیت دارد. کلمه کلیدی volatile دستوری در زبان C# است معمولا کمتر شناخته شدهاست، ولی در خیلی از شرایط موازی، عدم استفاده از آن باعث ایجاد خطاهای عجیب میشود. مقاله زیر از Igor Ostrovsky (یکی از برنامه نویسان تیم ابزارسازی داتنت) در مورد مدل معماری حافظه در .Net صبحت کرده است. در این مقاله در مورد مفاهیمی مانند Lazy Initialization که بسیار پر کاربرد هستند نیز صحبت کرده است.
https://msdn.microsoft.com/en-us/magazine/jj863136.aspx
#مهران_داودی
لینکدین:
https://ir.linkedin.com/in/mehrandvd
کانال تلگرام:
@SoftwarePhilosophy
___
https://msdn.microsoft.com/en-us/magazine/jj863136.aspx
#مهران_داودی
لینکدین:
https://ir.linkedin.com/in/mehrandvd
کانال تلگرام:
@SoftwarePhilosophy
___
#پست_مجدد این پست تا به حال بیش از ۱۴۰۰ بار مشاهده شده و به نظر میرسد برای خوانندگان جدید کانال جذاب باشد.
Forwarded from Software Philosophy
نوشتن یک رزومه خوب برای پستهای برنامهنویسی و یا UI/UX بسیار مهم است. رزومه باید بتواند قابلیتهای شما را در یک تعامل ذهنی به خواننده منتقل کند. شما باید بتوانید در رزومه خود، یک خط پنهان طراحی کنید تا کسی که رزومه شما را میخواند ناخودآگاه به ترتیبی که شما میخواهید رزومه شما را ببیند. به عبارت دیگر، اگر برای پست UI/UX رزومه مینویسید باید در آن اصول UI/UX را رعایت کنید.
نمونه جالب زیر، رزومه یک طراح است که به صورت یک شبه بازی رزومه خود را طراحی کردهاست و روند آن طوری است که شما را مشتاق نگه میدارد که تا آخر رزومه را مطالعه کنید.
https://www.rleonardi.com/interactive-resume
#مهران_داودی
لینکدین:
https://ir.linkedin.com/in/mehrandvd
کانال تلگرام:
@SoftwarePhilosophy
___
نمونه جالب زیر، رزومه یک طراح است که به صورت یک شبه بازی رزومه خود را طراحی کردهاست و روند آن طوری است که شما را مشتاق نگه میدارد که تا آخر رزومه را مطالعه کنید.
https://www.rleonardi.com/interactive-resume
#مهران_داودی
لینکدین:
https://ir.linkedin.com/in/mehrandvd
کانال تلگرام:
@SoftwarePhilosophy
___
#پست_مجدد این پست تا به حال بیش از ۱۳۰۰ بار مشاهده شده و به نظر میرسد برای خوانندگان جدید کانال جذاب باشد.
Forwarded from Software Philosophy
زبان C++ کماکان یکی از قویترین زبانهایی است که تا به امروز ساخته شده است. خالق این زبان Bjarne Stroustrup اخیرا یک پیشنویس ارائه داده است که در آن در مورد اهداف نسخه بعدی یعنی C++ 17 صبحت کردهاست. مهمترین اهداف طراحی در این نسخه عبارتند از:
• بهبود پشتیبانی از large-scale dependable software
• بهرهمند شدن از ماژولهای سطح بالاتر برای concurrency
• ساده سازی هسته زبان
لینک زیر مصاحبهای است که با Stroustrup در مورد این پیشنویس انجام شده است.
https://www.infoq.com/news/2015/04/stroustrup-cpp17-interview
#مهران_داودی
لینکدین:
https://ir.linkedin.com/in/mehrandvd
کانال تلگرام:
@SoftwarePhilosophy
___
• بهبود پشتیبانی از large-scale dependable software
• بهرهمند شدن از ماژولهای سطح بالاتر برای concurrency
• ساده سازی هسته زبان
لینک زیر مصاحبهای است که با Stroustrup در مورد این پیشنویس انجام شده است.
https://www.infoq.com/news/2015/04/stroustrup-cpp17-interview
#مهران_داودی
لینکدین:
https://ir.linkedin.com/in/mehrandvd
کانال تلگرام:
@SoftwarePhilosophy
___
InfoQ
Stroustrup: Thoughts on C++17 - An Interview
Bjarne Stroustrup, designer and original implementor of C++, has recently circulated a draft aimed at “stimulating a discussion” about C++17 design goals and possible new features,. such as modules, concepts, and ranges. InfoQ has taken the opportunity to…
مفهوم Parameter Binding در ASP.NET Web Api وظفیه نگاشت و پر کردن پارامترهای مورد نیاز در متد تعریف شده به عنوان Action را دارد. این کار به وسیله اطلاعاتی که در پارامترها در URI و اطلاعاتی که در Body آمدهاست انجام میشود.
به صورت پیشفرض پارامترهای از نوعهای پایه (int, string, …) از طریق URI پر میشوند و پارامترهای Complex از طریق Body ساخته میشود. برای تغییر این رویه روشهای خاصی وجود دارد که در مقاله زیر به طور کامل توضیح داده شدهاست.
https://www.asp.net/web-api/overview/formats-and-model-binding/parameter-binding-in-aspnet-web-api
#مهران_داودی
لینکدین:
https://ir.linkedin.com/in/mehrandvd
کانال تلگرام:
@SoftwarePhilosophy
___
به صورت پیشفرض پارامترهای از نوعهای پایه (int, string, …) از طریق URI پر میشوند و پارامترهای Complex از طریق Body ساخته میشود. برای تغییر این رویه روشهای خاصی وجود دارد که در مقاله زیر به طور کامل توضیح داده شدهاست.
https://www.asp.net/web-api/overview/formats-and-model-binding/parameter-binding-in-aspnet-web-api
#مهران_داودی
لینکدین:
https://ir.linkedin.com/in/mehrandvd
کانال تلگرام:
@SoftwarePhilosophy
___
Microsoft
ASP.NET Core, an open-source web development framework | .NET
Build web apps and services that run on Windows, Linux, and macOS using C#, HTML, CSS, and JavaScript. Get started for free on Windows, Linux, or macOS.
پیاده سازی Owin Authorization در برنامههایی که از Owin WebApi استفاده میکنند معمولا بسیار کاربردی است. استفاده از Owin در معماری برنامههای تحت وب مزایای زیادی دارد. مفهوم Middleware در این معماری باعث خوانایی بسیار زیادی در معماری میشود. در معماری Owin فضاهای بسیار مشخصی برای نوشتن کدها تعریف شدهاست.
مقاله زیر به خوبی نشان میدهد چطور Claim based authentication را با استفاده از Owin روی ASP.NET WebApi تنظیم کنید.
https://brockallen.com/2013/10/24/a-primer-on-owin-cookie-authentication-middleware-for-the-asp-net-developer
#مهران_داودی
لینکدین:
https://ir.linkedin.com/in/mehrandvd
کانال تلگرام:
@SoftwarePhilosophy
___
مقاله زیر به خوبی نشان میدهد چطور Claim based authentication را با استفاده از Owin روی ASP.NET WebApi تنظیم کنید.
https://brockallen.com/2013/10/24/a-primer-on-owin-cookie-authentication-middleware-for-the-asp-net-developer
#مهران_داودی
لینکدین:
https://ir.linkedin.com/in/mehrandvd
کانال تلگرام:
@SoftwarePhilosophy
___
Microsoft
ASP.NET Core, an open-source web development framework | .NET
Build web apps and services that run on Windows, Linux, and macOS using C#, HTML, CSS, and JavaScript. Get started for free on Windows, Linux, or macOS.
برنامه نویس ارشد یا مدیر تیم شدن اتفاقی است که ممکن است برای هر برنامه نویسی پیش بیاید، اتفاقی جذاب و پر استرس. شما یک برنامه نویس خوب هستید، اما این لزوما به معنی توانایی بالا در ارتباط برقرار کردن با دیگران، مدیریت امور و رفع تناقضها نیست. شما از این به بعد مسئولیت کل تیم را به عهده دارید که شامل افراد فنی و افراد غیر فنی است. مقاله زیر پنج نکته مفید در مورد یک مدیر فنی موثر را توضیح داده است.
https://www.thoughtworks.com/insights/blog/5-tips-being-effective-tech-lead
#کاروان_جافی
لینکدین:
https://uk.linkedin.com/in/karvan-jafi-96897027
کانال تلگرام:
@SoftwarePhilosophy
___
https://www.thoughtworks.com/insights/blog/5-tips-being-effective-tech-lead
#کاروان_جافی
لینکدین:
https://uk.linkedin.com/in/karvan-jafi-96897027
کانال تلگرام:
@SoftwarePhilosophy
___
Thoughtworks
5 Tips for Being an Effective Tech Lead
Becoming a Tech Lead is a tough transition for any developer, because only part of the skills and experience you had as a developer prepares you for the expectations of a new role. Instead of simply designing and writing code, a Tech Lead is suddenly responsible…
به احتمال خیلی زیاد همه ما، خصوصا برنامه نویسان موبایل، بعد از شهرت یافتن بازی پوکومن با مفهوم واقعیت افزوده یا Augmented Reality آشنا شده ایم. تکنولوژی که می تواند تمامی معادلات آینده را دستخوش تغییر کند. اما تفاوتهای آن با مفهوم Virtual Reality (واقعیت مجازی)، یکی از مبهمترین مسائل می باشد. مقاله زیر تفاوت این دو مفهوم را به سادگی توضیح داده است.
https://www.augment.com/blog/virtual-reality-vs-augmented-reality/
#کاروان_جافی
لینکدین:
https://uk.linkedin.com/in/karvan-jafi-96897027
کانال تلگرام:
@SoftwarePhilosophy
___
https://www.augment.com/blog/virtual-reality-vs-augmented-reality/
#کاروان_جافی
لینکدین:
https://uk.linkedin.com/in/karvan-jafi-96897027
کانال تلگرام:
@SoftwarePhilosophy
___
Augment
3D and augmented reality product visualization platform
The platform for 3D and augmented reality product visualization
#پست_مجدد این پست تا به حال بیش از ۱۱۰۰ بار مشاهده شده و به نظر میرسد برای خوانندگان جدید کانال جذاب باشد.
Forwarded from Software Philosophy
پیاده سازی Multi-Tenant Application و مدیریت دادههای مشتریان مختلف در یک بانک اطلاعاتی، پیچیدگیهای فراوانی دارد. در نسخه SQL Server 2016 امکانی به نام RLS (Row-Level Security) اضافه شده که این موضوع را بسیار سادهتر کرده است. لینک زیر توضیح میدهد که چگونه با استفاده از این امکان میتوان امنیت دادهها را در سطح رکورد فراهم کرد. با استفاده از این قابلیت میتوان برنامههایی برای چندین مشتری که اطلاعات آنها در یک بانک اطلاعاتی نگهداری می شوند، تولید کرد.
https://www.mssqltips.com/sqlservertip/4004/sql-server-2016-row-level-security-introduction
#محمدمحبتی
لینکدین :
https://www.linkedin.com/in/mohabbati
کانال تلگرام:
@SoftwarePhilosophy
___
https://www.mssqltips.com/sqlservertip/4004/sql-server-2016-row-level-security-introduction
#محمدمحبتی
لینکدین :
https://www.linkedin.com/in/mohabbati
کانال تلگرام:
@SoftwarePhilosophy
___
Mssqltips
SQL Server 2016 Row Level Security Introduction
Learn how to use the new feature Row Level Security in SQL Server 2016.
Forwarded from Software Philosophy
اگر دوستانی دارید که نه تنها برنامه نویس هستند، بلکه اعتقاد دارید «مهندس نرمافزار» هم هستند، آنها را به کانال @SoftwarePhilosophy دعوت کنید.
این پیغام را برای آنها Forward کنید.
این پیغام را برای آنها Forward کنید.
ظهور فناوریهای جدید در طراحی بازیهای جدید کامپیوتری تاثیر زیادی دارد. یکی از مهمترین تغییراتی در حال متحول کردن بازیهای کامپیوتری است، «واقعیت مجازی» یا حتی «واقعیت ساختگی» است. ویدئوی زیر یکی از بازیهایی را نشان میدهد که روی تخته سنگ واقعی که صخره نوردان از آن بالا میروند پیادهسازی شدهاست. این بازی از طریق یک Kinect سنگنورد را روی تخته سنگ شناسایی و دنبال میکند و در نهایت از طریق پروژکتور بازی را روی تخته سنگ نمایش میدهد. این سبک بازیها نشان میدهند که به راحتی میتوان با یک زبان برنامه نویسی مانند C# به دستگاه Kinect وصل شد. برای خلق محصولات خاص و جدیدی مانند این بازی، میتوانید از Kinect SDK استفاده کنید.
#مهران_داودی
لینکدین:
https://ir.linkedin.com/in/mehrandvd
کانال تلگرام:
@SoftwarePhilosophy
___
#مهران_داودی
لینکدین:
https://ir.linkedin.com/in/mehrandvd
کانال تلگرام:
@SoftwarePhilosophy
___