Forwarded from Software Philosophy
اندیشه طراحی یا «Design Thinking» یک مفهوم جدید در طراحی نرمافزار است که توسط IBM معرفی شدهاست. این روش به فرایند تولید نرمافزار به دید خلق یک سرویس نگاه میکند، سرویسی که قرار است به مشتریان ارائه شود تا نیاز واقعی آنها را برطرف کند. این روش با روش Agile متفاوت دارد ولی از ویژگیهای آن استفاده میکند. به نظر میرسد این روش محبوبیت خیلی زیادی به دست آورد و مطالعه آن واقعا لذتبخش است.
https://www.ibm.com/design/thinking/
ویدئوی زیر این روش را به اختصار شرح میدهد:
https://bit.ly/1WzM4dQ
#مهران_داودی
لینکدین:
https://ir.linkedin.com/in/mehrandvd
کانال تلگرام:
@SoftwarePhilosophy
https://www.ibm.com/design/thinking/
ویدئوی زیر این روش را به اختصار شرح میدهد:
https://bit.ly/1WzM4dQ
#مهران_داودی
لینکدین:
https://ir.linkedin.com/in/mehrandvd
کانال تلگرام:
@SoftwarePhilosophy
Ibm
IBM Enterprise Design Thinking
Discover IBM's Enterprise Design Thinking framework—a scalable, human-centered framework that helps teams align on user outcomes, accelerates collaboration, and drives innovation at speed and scale.
Forwarded from Software Philosophy
همیشه هر چیز خوبی، میتواند بد استفاده شود و نتیجه عکس دهد. این قضیه در مورد تکنولوژی هم صادق است. مقاله زیر توضیح میدهد که چه عادتهای اشتباهی هنگام کار با LINQ میتواند شما را به اشتباه بیندازد و باعث ایجاد کد بد شود.
یکی از خطرناکترین ویژگیهای LINQ این است که وقتی با آن کار میکنید احساس میکنید خیلی باهوشید که غالبا باعث میشود کد احمقانه و پیچیدهای با آن بنویسید. فهمیدن مفهوم Provider ها نیز مسئله مهمی است که باید با آن آشنا باشید.
مقاله زیر این نکات را شرح میدهد.
https://mehrandvd.me/2016/03/28/linq-the-bad-parts/
#مهران_داودی
لینکدین:
https://ir.linkedin.com/in/mehrandvd
کانال تلگرام:
@SoftwarePhilosophy
___
یکی از خطرناکترین ویژگیهای LINQ این است که وقتی با آن کار میکنید احساس میکنید خیلی باهوشید که غالبا باعث میشود کد احمقانه و پیچیدهای با آن بنویسید. فهمیدن مفهوم Provider ها نیز مسئله مهمی است که باید با آن آشنا باشید.
مقاله زیر این نکات را شرح میدهد.
https://mehrandvd.me/2016/03/28/linq-the-bad-parts/
#مهران_داودی
لینکدین:
https://ir.linkedin.com/in/mehrandvd
کانال تلگرام:
@SoftwarePhilosophy
___
Forwarded from Software Philosophy
اگر دوستانی دارید که نه تنها برنامه نویس هستند، بلکه اعتقاد دارید «مهندس نرمافزار» هم هستند، آنها را به کانال @SoftwarePhilosophy دعوت کنید.
این پیغام را برای آنها Forward کنید.
این پیغام را برای آنها Forward کنید.
Forwarded from Software Philosophy
یکی از مباحث مهم در Exception Handling در زبان Java، استفاده درست از انواع Checked Excections و Unchecked Exceptions است. مطلب زیر هر کدام از این نوع Exception ها و کاربرد آنها را توضیح میدهد. سپس «مزایا» و «معایب» هر یک را شرح میدهد.
در این مقاله تاکید شدهاست که در نرمافزار خود حتما یک رویکرد واحد را انتخاب کنید و از آن پیروی کنید. چرا که انتخاب دو رویکرد همزمان غالبا موجود پیچیدگی بیشتر میشود.
https://tutorials.jenkov.com/java-exception-handling/checked-or-unchecked-exceptions.html
#مهران_داودی
لینکدین:
https://ir.linkedin.com/in/mehrandvd
کانال تلگرام:
@SoftwarePhilisophy
___
در این مقاله تاکید شدهاست که در نرمافزار خود حتما یک رویکرد واحد را انتخاب کنید و از آن پیروی کنید. چرا که انتخاب دو رویکرد همزمان غالبا موجود پیچیدگی بیشتر میشود.
https://tutorials.jenkov.com/java-exception-handling/checked-or-unchecked-exceptions.html
#مهران_داودی
لینکدین:
https://ir.linkedin.com/in/mehrandvd
کانال تلگرام:
@SoftwarePhilisophy
___
Jenkov
Checked or Unchecked Exceptions?
This tutorial covers the arguments for and against checked and unchecked exceptions in Java.
آیا شما هم از آن دسته از برنامه نویس/توسعه دهندگان هستید که ترجیح میدهند به تنهایی کار کنند. جواب هر چه باشد شکی در این نیست که هیچ پروژه بزرگی بدون وجود یک تیم خوب، به نتیجه نرسیده است.
انتخاب افراد مناسب بخشی از فرآیند تیم سازی است، اما قسمت مهم در هدایت یک تیم، به کارگیری هر فرد در جایگاه مناسب است. تعریف های مختلف و متنوعی از پارامتر های یک تیم موفق وجود دارد که یکی از جالب ترین این تعاریف مدلBelbin است. بلبین معتقد است در هر تیم موفق (گروهی که برای رسیدن به یک هدف مشترک فعالیت می کنند) مجموعه ای از نقش ها باید وجود داشته باشد.
لینک زیر این نقشها و خصوصیات هر یک را شرح می دهد. شما تا کنون کدامیک از این نقش ها را در گروه خود ایفا کرده اید؟
https://www.belbin.com/about/belbin-team-roles/
#مهدی_نظری
لینکدین
https://ir.linkedin.com/in/mohammad-mahdi-nazari-90097b58
توییتر
https://twitter.com/ShamehdiN
کانال تلگرام:
@SoftwarePhilosophy
___
انتخاب افراد مناسب بخشی از فرآیند تیم سازی است، اما قسمت مهم در هدایت یک تیم، به کارگیری هر فرد در جایگاه مناسب است. تعریف های مختلف و متنوعی از پارامتر های یک تیم موفق وجود دارد که یکی از جالب ترین این تعاریف مدلBelbin است. بلبین معتقد است در هر تیم موفق (گروهی که برای رسیدن به یک هدف مشترک فعالیت می کنند) مجموعه ای از نقش ها باید وجود داشته باشد.
لینک زیر این نقشها و خصوصیات هر یک را شرح می دهد. شما تا کنون کدامیک از این نقش ها را در گروه خود ایفا کرده اید؟
https://www.belbin.com/about/belbin-team-roles/
#مهدی_نظری
لینکدین
https://ir.linkedin.com/in/mohammad-mahdi-nazari-90097b58
توییتر
https://twitter.com/ShamehdiN
کانال تلگرام:
@SoftwarePhilosophy
___
Belbin
The Nine Belbin Team Roles
Using Belbin throughout your organisation will help individuals to fulfil their potential by identifying their key strengths, and enable the right people to be brought together to form high-performing teams.
Forwarded from Software Philosophy
مفهوم Pattern Matchning یکی از مفاهیمی است که قدرت بسیار زیادی به زبانهای Functional مانند Haskell داده است. این مفهوم را با Regex اشتباه نگیرید! این یک مفهوم زبان میباشد و ارتباط چندانی با Regex ندارد.
از آنجایی که مدتیست امکانات زبانهای Functional بسیار مورد علاقه طراحان زبانهای شیگرا مانند C# شده است بد نیست با این مفهوم آشنا شوید. پس از اضافه شده مفهوم Lambda Expressions در C# 3.0 امکان پیادهسازی بسیاری از مفاهیم پیچیده مهیا شده است.
جالب است بدانید که Pattern Matching یکی از جنجالبرانگیزترین امکاناتی است که قرار است به C# 7.0 اضافه شود.
لینک زیر به طور مختصر ایده را در زبان سیشارپ توضیح میدهد. همچنین لینک Specification دقیق که توسط طراحان زبان در حال نگارش است را ارائه داده است. به این ترتیب میتوانید ببینید مثلا همین امروز پیشنویس این استاندارد در چه وضعیتی است!
https://www.infoq.com/news/2014/08/Pattern-Matching
#مهران_داودی
لینکدین:
https://ir.linkedin.com/in/mehrandvd
کانال تلگرام:
@SoftwarePhilosophy
___
از آنجایی که مدتیست امکانات زبانهای Functional بسیار مورد علاقه طراحان زبانهای شیگرا مانند C# شده است بد نیست با این مفهوم آشنا شوید. پس از اضافه شده مفهوم Lambda Expressions در C# 3.0 امکان پیادهسازی بسیاری از مفاهیم پیچیده مهیا شده است.
جالب است بدانید که Pattern Matching یکی از جنجالبرانگیزترین امکاناتی است که قرار است به C# 7.0 اضافه شود.
لینک زیر به طور مختصر ایده را در زبان سیشارپ توضیح میدهد. همچنین لینک Specification دقیق که توسط طراحان زبان در حال نگارش است را ارائه داده است. به این ترتیب میتوانید ببینید مثلا همین امروز پیشنویس این استاندارد در چه وضعیتی است!
https://www.infoq.com/news/2014/08/Pattern-Matching
#مهران_داودی
لینکدین:
https://ir.linkedin.com/in/mehrandvd
کانال تلگرام:
@SoftwarePhilosophy
___
InfoQ
Pattern Matching in C# and VB
Another concept from functional programming languages making its way to C# and VB is what’s known as pattern matching. At first glance pattern matching looks like a switch/select block, but it is much more powerful.
طراحی تایملاین در برنامههای وب یکی از روشهای جذاب نمایش اتفاقات زمانی است. برای مدتی فیسبوک نیز از این مفهوم برای نمایش صفحات استفاده میکرد. مقاله زیر نحوه پیاده سازی مفهوم تایملاین را با استفاده از CSS و JavaScript را آموزش داده است. شیوه آموزشی که در این مقاله به کار برده شده بسیار جالب است و کاملا به صورت قدم به قدم امکانات را به کنترل اضافه کرده تا فهم برنامهنویسی آن ساده شود.
https://webdesign.tutsplus.com/tutorials/building-a-vertical-timeline-with-css-and-a-touch-of-javascript--cms-26528
#مهران_داودی
لینکدین:
https://ir.linkedin.com/in/mehrandvd
کانال تلگرام:
@SoftwarePhilosophy
___
https://webdesign.tutsplus.com/tutorials/building-a-vertical-timeline-with-css-and-a-touch-of-javascript--cms-26528
#مهران_داودی
لینکدین:
https://ir.linkedin.com/in/mehrandvd
کانال تلگرام:
@SoftwarePhilosophy
___
Web Design Envato Tuts+
Building a Vertical Timeline With CSS and a Touch of JavaScript...
Let’s learn how to build a responsive vertical timeline from scratch. First, we’ll create the basic structure, then, we’ll use some JavaScript to add some transitional effects to our timeline.
استفاده از Batch Insert و Batch Update در عملیات دیتابیسی نقش مهمی در Performance عملیات با تعداد سطر بالا دارد. هنگام استفاده از EntityFramework به صورت پیشفرض از این عملیات پشتیبانی نمیشود. پروژه EntityFramework.Extended یکی از پروژههایی است که این قابلیت را به EF اضافه میکند. این پروژه قابلیتهای زیر را به EF اضافه میکند:
- Batch Update and Delete
- Future Queries
- Query Result Cache
- Audit Log
https://github.com/loresoft/EntityFramework.Extended
#مهران_داودی
لینکدین:
https://ir.linkedin.com/in/mehrandvd
کانال تلگرام:
@SoftwarePhilosophy
___
- Batch Update and Delete
- Future Queries
- Query Result Cache
- Audit Log
https://github.com/loresoft/EntityFramework.Extended
#مهران_داودی
لینکدین:
https://ir.linkedin.com/in/mehrandvd
کانال تلگرام:
@SoftwarePhilosophy
___
GitHub
GitHub - zzzprojects/EntityFramework.Extended: Add-on feature for Entity Framework
Add-on feature for Entity Framework. Contribute to zzzprojects/EntityFramework.Extended development by creating an account on GitHub.
Forwarded from Software Philosophy
ضد الگو یا Anti Pattern «روحهای سرگردان» یکی از مواردی است که باعث دردسر در نرمافزارها میشود. این ضد الگو وقتی اتفاق میافتد که در کد، کلاسهای بیموردی که تقریبا هیچ مسئولیتی ندارند به وجود باید. به عبارتی بیش از حد مورد نیاز همه چیز abstract شده است. یکی شایعترین علتهای بروز این ضد الگو افرادی در پروژه هستند که دانش فرایندی بالا و دانش شیگرایی کم دارند. معمولا افرادی که یا در شیگرایی و Object Oriented جدید هستند و این دنیا برایشان خیلی جذاب است به شدت عاشق ساخت «کلاسهای روح سرگردان» میشوند! نبود نقش تخصصی معمار نرمافزار در تیم نیز یکی دیگر از دلایل این ضد الگو است.
https://sourcemaking.com/antipatterns/poltergeists
#مهران_داودی
لینکدین:
https://ir.linkedin.com/in/mehrandvd
کانال تلگرام:
@SoftwarePhilisophy
___
https://sourcemaking.com/antipatterns/poltergeists
#مهران_داودی
لینکدین:
https://ir.linkedin.com/in/mehrandvd
کانال تلگرام:
@SoftwarePhilisophy
___
Sourcemaking
Design Patterns and Refactoring
Design Patterns and Refactoring articles and guides. Design Patterns video tutorials for newbies. Simple descriptions and full source code examples in Java, C++, C#, PHP and Delphi.
Forwarded from Software Philosophy
همیشه مبحث DateTime در زبانهای برنامهنویسی چالش برانگیز بودهاست. مخصوصا اگر پای Calendar های مختلف و TimeZone های متفاوت در میان باشد. یکی از کتابخانههای بسیار محبوب در Java، کتابخانه JodaTime میباشد که این مفاهیم را کامل پوشش دادهاست. در Java 8 مفهوم DataTime بطور کامل بازنویسی شدهاست است و طبق JSR-310 به JDK اضافه شدهاست. یکی از سوالاتی که برای خیلیها پیش آمده بود این بود که اگر JodaTime خوب و موفق بود، چرا خودش به JDK اضافه نشده. در پست زیر Stephen Colebourne که برنامه نویس اصلی هر دو پروژه بوده توضیح داده علت این طراحی مجدد چه بوده است.
https://blog.joda.org/2009/11/why-jsr-310-isn-joda-time_4941.html
#مهران_داودی
لینکدین:
https://ir.linkedin.com/in/mehrandvd
کانال تلگرام:
@SoftwarePhilisophy
___
https://blog.joda.org/2009/11/why-jsr-310-isn-joda-time_4941.html
#مهران_داودی
لینکدین:
https://ir.linkedin.com/in/mehrandvd
کانال تلگرام:
@SoftwarePhilisophy
___
Forwarded from Iran .Net
همانطور که مطلع هستید نسخه نهایی SQL Server 2016 منتشر شده است و در صورتی که در برنامه Visual Studio Dev Essentials عضو باشید می توانید به طور رایگان نسخه ای معادل با نسخه Enterprise را دریافت کنید. به این نسخه Developer Edition گفته می شود.
یکی از قابلیت های جدید و جذاب این نسخه Temporal Table می باشد.
این قابلیت کمک می کند که تمامی تغییراتی که در داده های یک جدول حادث می شود، در جدولی جداگانه به نام History Table ذخیره شود. در این جدول همچنین زمانِ تغییرات و مدت زمانی که یک داده Valid بوده است به طور خودکار ضبط می شوند.
از این ویژگی می توانید به جهت Auditing و مانیتورینگ تغییرات استفاده کنید و یا به مدیران کمک کنیم که با تحلیل نحوه تغییرات داده ها در طول زمان تصمیم گیری های بهتری داشته باشند.
1. آشنایی با Temporal Tables
https://msdn.microsoft.com/en-us/library/dn935015.aspx
2. نگاهی دقیق تر و آشنایی با محدودیت ها
https://www.mssqltips.com/sqlservertip/3680/introduction-to-sql-server-2016-temporal-tables/
این ویژگی از لحاظ ماهوی به قابلیت Change Data Tracking یا CDC اشتراکاتی دارد. این قابلیت هم در پست های قبلی معرفی شده بود.
@irandotnet
یکی از قابلیت های جدید و جذاب این نسخه Temporal Table می باشد.
این قابلیت کمک می کند که تمامی تغییراتی که در داده های یک جدول حادث می شود، در جدولی جداگانه به نام History Table ذخیره شود. در این جدول همچنین زمانِ تغییرات و مدت زمانی که یک داده Valid بوده است به طور خودکار ضبط می شوند.
از این ویژگی می توانید به جهت Auditing و مانیتورینگ تغییرات استفاده کنید و یا به مدیران کمک کنیم که با تحلیل نحوه تغییرات داده ها در طول زمان تصمیم گیری های بهتری داشته باشند.
1. آشنایی با Temporal Tables
https://msdn.microsoft.com/en-us/library/dn935015.aspx
2. نگاهی دقیق تر و آشنایی با محدودیت ها
https://www.mssqltips.com/sqlservertip/3680/introduction-to-sql-server-2016-temporal-tables/
این ویژگی از لحاظ ماهوی به قابلیت Change Data Tracking یا CDC اشتراکاتی دارد. این قابلیت هم در پست های قبلی معرفی شده بود.
@irandotnet
MSSQLTips.com
Introduction to SQL Server Temporal Tables
Temporal tables is a new feature introduced with SQL Server 2016 and allow automatic history tracking of data in a table.
اگر با زبان Python کار میکنید، حتما اسم فریمورکهای Django, Flask و Pyramid را شنیدهاید و با آنها کار کردهاید. فریمورک Django معروفترین این فریمورکهاست و معمولا در پروژههای بزرگ از آن استفاده میشود. فریمورک Pyramid بسیار منعطف طراحی شده و از میتوان از آن در پروژههای کوچک به راحتی استفاده کرد. از طرفی از آن در پروژههای بزرگی مانند Dropbox استفاده شده. فریمورک Flask یک فریمورک خوشدست است که کمک میکند بتوان برنامههای کوچک را با آن بسیار سریع ساخت.
مقاله زیر این سه فریمورک را با جزئیات بیشتری مقایسه کردهاست.
https://www.airpair.com/python/posts/django-flask-pyramid
#مهران_داودی
لینکدین:
https://ir.linkedin.com/in/mehrandvd
کانال تلگرام:
@SoftwarePhilosophy
___
مقاله زیر این سه فریمورک را با جزئیات بیشتری مقایسه کردهاست.
https://www.airpair.com/python/posts/django-flask-pyramid
#مهران_داودی
لینکدین:
https://ir.linkedin.com/in/mehrandvd
کانال تلگرام:
@SoftwarePhilosophy
___
Forwarded from Software Philosophy
ضد الگو یا Anti Pattern «چکش طلایی» موردی است که در بسیاری از راهحلها دیده میشود. این ضد الگو از این ایده آمده است: «من یک چکش دارم، پس همه چیز برای من مثل یک میخ است»
وقتی از یک ابزار استفاده میکنیم به آن عادت میکنیم و سعی میکنیم از آن به بعد همه مسائل را با آن حل کنیم. مثلا این ایده که همه کارها را باید با دیتابیس انجام داد، یا هر پروژهای را باید با این زبان خاص نوشت. یکی از دلایل این ضد الگو موفقیتهای قبلی در استفاده از یک تکنولوژی است. البته این ضد الگو استثناهایی هم دارد. برای مثال ممکن است شرکت برنامهریزی بلند مدتی داشته باشد و در این برنامهریزی یک فریمورک نرمافزاری با یک معماری و تکنولوژی خاص خلق کرده باشد. در این صورت این این فریمورک طوری طراحی شده که بتواند یک طیف خاص از مسائل را با هزینه کمتر حل کند.
لینک زیر این ضد الگو را با جزئیات بیشتری توضیح دادهاست.
https://sourcemaking.com/antipatterns/golden-hammer
#مهران_داودی
لینکدین:
https://ir.linkedin.com/in/mehrandvd
کانال تلگرام:
@SoftwarePhilisophy
___
وقتی از یک ابزار استفاده میکنیم به آن عادت میکنیم و سعی میکنیم از آن به بعد همه مسائل را با آن حل کنیم. مثلا این ایده که همه کارها را باید با دیتابیس انجام داد، یا هر پروژهای را باید با این زبان خاص نوشت. یکی از دلایل این ضد الگو موفقیتهای قبلی در استفاده از یک تکنولوژی است. البته این ضد الگو استثناهایی هم دارد. برای مثال ممکن است شرکت برنامهریزی بلند مدتی داشته باشد و در این برنامهریزی یک فریمورک نرمافزاری با یک معماری و تکنولوژی خاص خلق کرده باشد. در این صورت این این فریمورک طوری طراحی شده که بتواند یک طیف خاص از مسائل را با هزینه کمتر حل کند.
لینک زیر این ضد الگو را با جزئیات بیشتری توضیح دادهاست.
https://sourcemaking.com/antipatterns/golden-hammer
#مهران_داودی
لینکدین:
https://ir.linkedin.com/in/mehrandvd
کانال تلگرام:
@SoftwarePhilisophy
___
Sourcemaking
Design Patterns and Refactoring
Design Patterns and Refactoring articles and guides. Design Patterns video tutorials for newbies. Simple descriptions and full source code examples in Java, C++, C#, PHP and Delphi.
نوشتن برنامههای REPL یا Read-Evaluate-Print-Loop در زبانهای برنامهنویسی کار سادهای نیست. برای نوشتن این برنامهها نیاز به کتابخانهای است که بتواند یک string حاوی قطعه کدی از آن زبان (مثلا Java یا C#) را ترجمه و اجرا کند. معمولا در هر زبان برنامه نویسی کتابخانههایی وجود دارد که کمک میکنند بتوان رشتههای حاوی یک برنامه از همان زبان را ترجمه و اجرا کرد.
مقاله زیر نشان میدهد که چطور میتوان با استفاده از کامپایلر خود زبان C#، رشتههای حاوی کدهای سیشارپ یا csx را کامپایل و اجرا کرد و در نهایت یک برنامه REPL را فقط با چند خط نوشت.
https://blogs.msdn.microsoft.com/cdndevs/2015/12/01/adding-c-scripting-to-your-development-arsenal-part-1/
#مهران_داودی
لینکدین:
https://ir.linkedin.com/in/mehrandvd
کانال تلگرام:
@SoftwarePhilosophy
___
مقاله زیر نشان میدهد که چطور میتوان با استفاده از کامپایلر خود زبان C#، رشتههای حاوی کدهای سیشارپ یا csx را کامپایل و اجرا کرد و در نهایت یک برنامه REPL را فقط با چند خط نوشت.
https://blogs.msdn.microsoft.com/cdndevs/2015/12/01/adding-c-scripting-to-your-development-arsenal-part-1/
#مهران_داودی
لینکدین:
https://ir.linkedin.com/in/mehrandvd
کانال تلگرام:
@SoftwarePhilosophy
___
Forwarded from Software Philosophy
ساخت انیمیشن با JavaScript یکی از کارهای جذاب این روزهای دنیای وب است. بازی سه بعدی زیر که در وب اجرا میشود توسط کتابخانه ThreeJs نوشته شدهاست. کمی بازی کردن با آن به شما نشان میدهد که قدرت این کتابخانه چقدر بالاست. جالبی این بازی این است که نه تنها تمام سورس آن روی اینترنت است بلکه نویسنده آن نحوه نوشتن این بازی را کاملا در لینک زیر توضیح داده و شما با خواندن آن به راحتی میتوانید مجددا این بازی را خودتان بنویسید.
لینک خود بازی:
https://tympanus.net/Tutorials/TheAviator/
لینک توضیح سورس:
https://tympanus.net/codrops/2016/04/26/the-aviator-animating-basic-3d-scene-threejs/
https://tympanus.net/Tutorials/TheAviator/
#مهران_داودی
لینکدین:
https://ir.linkedin.com/in/mehrandvd
کانال تلگرام:
@SoftwarePhilisophy
___
لینک خود بازی:
https://tympanus.net/Tutorials/TheAviator/
لینک توضیح سورس:
https://tympanus.net/codrops/2016/04/26/the-aviator-animating-basic-3d-scene-threejs/
https://tympanus.net/Tutorials/TheAviator/
#مهران_داودی
لینکدین:
https://ir.linkedin.com/in/mehrandvd
کانال تلگرام:
@SoftwarePhilisophy
___
tympanus.net
The Aviator: The Game | Codrops
Demo of the game: The Making of 'The Aviator': Animating a Basic 3D Scene with Three.js
نسل جدید فریمورکهای JavaScript برای ساخت برنامههای SPA در راه هستند. فریمورکهای Angular 2.0، React و Aurelia فریمورکهای نسل بعدی هستند که عمدتا بر پایه ES6 نوشتهشدهاند. فریمورک Angular 2.0 نسخه جدید این فریمورک محبوب است هنوز قبل از ریلیز بیشترین طرفدار را دارد. این فریمورک توسط گوگل و مایکروسافت پشتیبانی میشود. فریمورک React که توسط فیسبوک پشتیبانی میشود بسیار قوی است ولی ذاتا هدف آن انجام تمام وظایف یک SPA نیست و بیشتر روی HTML Rendering تمرکز دارد.
فریمورک Aurelia نسخه بعدی Durandal است که قبلا رقیب کمتر شناخته شده Angular بود. خالق این فریمورک قبلا در تیم Angular 2.0 بود که بعدها به دلایلی تصمیم گرفت از این تیم جدا شود و فریم ورک رویای خود را خلق کند. یکی از مزایای این فریمورک Syntax بسیار ساده و روان آن است که تقریبا در هر مقایسهای به آن اشاره شدهاست.
مقاله زیر این فریمورکها را با جزئیات بیشتری با هم مقایسه کردهاست.
https://blog.ae.be/comparing-angular-aurelia-react-js-framework/
#مهران_داودی
لینکدین:
https://ir.linkedin.com/in/mehrandvd
کانال تلگرام:
@SoftwarePhilosophy
___
فریمورک Aurelia نسخه بعدی Durandal است که قبلا رقیب کمتر شناخته شده Angular بود. خالق این فریمورک قبلا در تیم Angular 2.0 بود که بعدها به دلایلی تصمیم گرفت از این تیم جدا شود و فریم ورک رویای خود را خلق کند. یکی از مزایای این فریمورک Syntax بسیار ساده و روان آن است که تقریبا در هر مقایسهای به آن اشاره شدهاست.
مقاله زیر این فریمورکها را با جزئیات بیشتری با هم مقایسه کردهاست.
https://blog.ae.be/comparing-angular-aurelia-react-js-framework/
#مهران_داودی
لینکدین:
https://ir.linkedin.com/in/mehrandvd
کانال تلگرام:
@SoftwarePhilosophy
___
www.ae.be
Comparing Angular, Aurelia and React: Is there a next-gen JS framework that rules them all?
اگر دوستانی دارید که نه تنها برنامه نویس هستند، بلکه اعتقاد دارند «مهندس نرمافزار» هم هستند، آنها را به کانال @SoftwarePhilosophy دعوت کنید و این پیغام را برای آنها Forward کنید.
Forwarded from Software Philosophy
تا امروز فیدبکهای خیلی خوبی از شما دوستان گرفتیم. بر اساس فیدبکهای شما تصمیم گرفتیم که پستهای این کانال را در سه دسته بندی پست کنیم:
۱) مطالب مهندسی و معماری نرمافزار و مدیریت تیمهای نرمافزاری
۲) مطالب مربوط به آخرین تکنولوژیها
۳) مطالب مربوط به تکنولوژیهای مرسوم که در شرکتها استفاده میشود.
هر هفته مطالبی که پست میشود شامل تمامی دستههای بالا خواهد بود. به این ترتیب اگر به یکی یا چندتا از دستهبندیها علاقه دارید، هر هفته حتما چند پست مورد علاقه شما در این کانال «فلسفه نرمافزار» وجود دارد.
لطفا اگر نظر، پیشنهاد، انتقاد و یا هرگونه فیدبکی نسبت به این کانال دارید، در توئیتر بنویسید. مطمئن باشید ما آنها را میخوانیم. (در توئیتر https://twitter.com/mehrandvd را منشن کنید و از هشتگ #SoftwarePhilosophy استفاده کنید)
۱) مطالب مهندسی و معماری نرمافزار و مدیریت تیمهای نرمافزاری
۲) مطالب مربوط به آخرین تکنولوژیها
۳) مطالب مربوط به تکنولوژیهای مرسوم که در شرکتها استفاده میشود.
هر هفته مطالبی که پست میشود شامل تمامی دستههای بالا خواهد بود. به این ترتیب اگر به یکی یا چندتا از دستهبندیها علاقه دارید، هر هفته حتما چند پست مورد علاقه شما در این کانال «فلسفه نرمافزار» وجود دارد.
لطفا اگر نظر، پیشنهاد، انتقاد و یا هرگونه فیدبکی نسبت به این کانال دارید، در توئیتر بنویسید. مطمئن باشید ما آنها را میخوانیم. (در توئیتر https://twitter.com/mehrandvd را منشن کنید و از هشتگ #SoftwarePhilosophy استفاده کنید)
مورد توافقترین تعریفی که در ارتباط با مدیریت محصول وجود دارد، تعریفی بسیار ساده و قابل درک است: «ارائه محصولی درست به شیوه ای درست به مشتری». اما مدیریت محصول کماکان یکی از سخترین شرح وظایفهایی است که میتوان در هر سازمان تصور کرد. این ابهام در چیستی و چگونگی مدیریت محصول در شرکت های نرم افزاری که تجربهای درست در داشتن مدیر محصول ندارند بسیار بیشتر است.
لینک زیر می تواند یک شروع خوب برای آشنا شدن با این مفهوم باشد.
https://medium.com/@joshelman/a-product-managers-job-63c09a43d0ec#.i6pcfk9wa
#کاروان_جافی
لینکدین:
https://uk.linkedin.com/in/karvan-jafi-96897027
کانال تلگرام:
@SoftwarePhilosophy
___
لینک زیر می تواند یک شروع خوب برای آشنا شدن با این مفهوم باشد.
https://medium.com/@joshelman/a-product-managers-job-63c09a43d0ec#.i6pcfk9wa
#کاروان_جافی
لینکدین:
https://uk.linkedin.com/in/karvan-jafi-96897027
کانال تلگرام:
@SoftwarePhilosophy
___
Medium
A Product Manager’s Job
Product management is one of the hardest jobs to define in any organization, partially because it’s different in every company. I’ve had several recent conversations about “what is a product…
تجربه کاربری یا UX یکی از مفاهیمی است که تاثیر زیادی در محبوب شدن یک محصول دارد. مفهوم DX یا Developer Experience نیز مفهوم جدیدی است که تجربه یک برنامهنویس هنگام استفاده از یک پلتفرم یا فریمورک را بررسی میکند. چرا یک پلتفرم یا فریمورک محبوب میشود و دیگری نه؟ این سوالی است که عوامل زیادی در پاسخ دادن به آن موثر هستند. اینکه یک برنامه نویس هنگام کار با آن پلتفرم چه تجربهای احساس میکند یکی از عوامل مهم موفقیت یک پلتفرم است. در مقاله زیر مفهوم جدیدی به نام Dotability معرفی شده که میتوان به وسیله آن کتابخانهها و فریمورکهای مختلف را از لحاظ DX بررسی کرد.
https://mehrandvd.me/2016/05/31/developer-experience-dotability/
https://mehrandvd.me/2016/05/31/developer-experience-dotability/
#مهران_داودی
لینکدین:
https://ir.linkedin.com/in/mehrandvd
کانال تلگرام:
@SoftwarePhilosophy
___
https://mehrandvd.me/2016/05/31/developer-experience-dotability/
https://mehrandvd.me/2016/05/31/developer-experience-dotability/
#مهران_داودی
لینکدین:
https://ir.linkedin.com/in/mehrandvd
کانال تلگرام:
@SoftwarePhilosophy
___
Dot Philosophy
Developer Experience: Dotability - Dot Philosophy
Again, this famous 'X', as in UX. It's all about experience. The good experience is the key that makes a product valuable. We are always talking about user experience, but here in this post, I am going to talk about developer experience. As a developer, you…
نامگذاری در برنامهنویسی شاید یکی از مهمترین کارهایی باشد که یک برنامهنویس انجام میدهد. یک برنامهنویس با نامگذاری متغییرها، کلاسها، فایلها و ... در حقیقت مفاهیم جدید خلق میکند که در آینده برنامهنویسان دیگر معنی آن را از روی «نام» آنها حدس خواهند زد!
فصل زیر از کتاب Framework Design Guidlines (که به FDG معروف است) به طور اختصاصی استانداردهای نامگذاری را که در طراحی .Net Framework استفاده شدهاست را شرح میدهد. این کتاب برای ساخت تمامی سیستمها در مایکروسافت به عنوان یک مرجع استفاده میشود. به همین دلیل هم در سایت msdn به صورت رایگان و قابل دسترس برای همه وجود دارد و هم کتاب چاپی آن وجود دارد که بسیار محبوب است.
https://msdn.microsoft.com/en-us/library/ms229002%28v=vs.110%29.aspx
#مهران_داودی
لینکدین:
https://ir.linkedin.com/in/mehrandvd
کانال تلگرام:
@SoftwarePhilosophy
___
فصل زیر از کتاب Framework Design Guidlines (که به FDG معروف است) به طور اختصاصی استانداردهای نامگذاری را که در طراحی .Net Framework استفاده شدهاست را شرح میدهد. این کتاب برای ساخت تمامی سیستمها در مایکروسافت به عنوان یک مرجع استفاده میشود. به همین دلیل هم در سایت msdn به صورت رایگان و قابل دسترس برای همه وجود دارد و هم کتاب چاپی آن وجود دارد که بسیار محبوب است.
https://msdn.microsoft.com/en-us/library/ms229002%28v=vs.110%29.aspx
#مهران_داودی
لینکدین:
https://ir.linkedin.com/in/mehrandvd
کانال تلگرام:
@SoftwarePhilosophy
___