Forwarded from Software Philosophy
با شدت گرفتن روند تغییرات در درخواستهای مشتریان، نیازمندیهای پروژهها و مسائل مربوط به پشتیبانی محصولات در دهههای اخیر، بسیاری از شرکت ها پی بردند که هماهنگ شدن با بازار با استفاده از فرآیند های تجاری قدیمی امکان پذیر نیست. لذا بسیاری از توسعه دهندگان و مدیران محصولات به متدلوژیهای جدید مانند Agile روی آوردند. در حال حاضر این متدلوژی با وجود نواقصی که به آن وارد است بیشترین طرفدار و بازدهی را به خصوص در میان شرکت های کامپیوتری داشته است.
اما لزوما استفاده از یک متدلوژی، روش یا ابزار موفق، دلیل بر موفق شدن ما نیست، لذا آشنایی با متدلوژی ها و رویکردهایی مانند Lean، Scrum یا Kanban و انتخاب بهترین روش بین آن ها با توجه به نوع محصول، مشتری و شرایط شرکتی که در آن مشغول به فعالیت هستیم یک ضرورت است.
مطالعه لینک زیر می تواند در انتخاب هوشمندانهتر این متدولوژی ها بسیار کمک کننده باشد.
https://realtimeboard.com/blog/how-to-choose-between-agile-lean-scrum-and-kanban-which-methodology-is-the-best/#.V18eTlUrLDe
#کاروان_جافی
لینکدین:
https://uk.linkedin.com/in/karvan-jafi-96897027
کانال تلگرام:
@SoftwarePhilosophy
___
اما لزوما استفاده از یک متدلوژی، روش یا ابزار موفق، دلیل بر موفق شدن ما نیست، لذا آشنایی با متدلوژی ها و رویکردهایی مانند Lean، Scrum یا Kanban و انتخاب بهترین روش بین آن ها با توجه به نوع محصول، مشتری و شرایط شرکتی که در آن مشغول به فعالیت هستیم یک ضرورت است.
مطالعه لینک زیر می تواند در انتخاب هوشمندانهتر این متدولوژی ها بسیار کمک کننده باشد.
https://realtimeboard.com/blog/how-to-choose-between-agile-lean-scrum-and-kanban-which-methodology-is-the-best/#.V18eTlUrLDe
#کاروان_جافی
لینکدین:
https://uk.linkedin.com/in/karvan-jafi-96897027
کانال تلگرام:
@SoftwarePhilosophy
___
RealtimeBoard Blog
Agile, Scrum, Lean & Kanban: Methodologies, Definitions & Concepts
Definitive guide for optimized and happy work. Learn about the history, theory and practice of Agile and Lean, Scrum and Kanban and choose approaches that work for you. This visual guide is structured to help you see the intricacies of each approach yet presented…
Forwarded from فلسفه دیزاین
انتخاب رنگ با Palettable.io
احتمالا همگی موافق هستیم که یکی از کارهای نسبتا زمانگیر هر پروژهای، انتخاب رنگ هست.
اگر این کار در ابتدای روند پروژه با دقت صورت نگیره، علاوه بر از دست رفتن یکپارچگی، تغییر مجددشون در پایان پروژه، کار بسیار فرسایشی و آزاردهندهای میشه.
از طرف دیگه انتخاب رنگ مقداری سلیقهای هست و ممکنه بعد از پایان پروژه همچنان برخی از اعضای تیم از انتخابها ناراضی بوده و معتقد باشن که امکان انتخاب رنگهای بهتری وجود داشته.
سرویس Palettable امکان انتخاب رنگ رو بصورتی کاملا خلاصه شده و راحت بهتون میده. از هر رنگی خوشتون بیاد میتونید کلید "L" رو به معنی Like بزنید تا ذخیره بشه و برید سراغ رنگ بعدی. اگر هم که دوست نداشتید با کلید "D" احساس Dislike خودتون رو ابراز کنید تا رنگ بعدی نشونتون داده بشه.
متاسفانه هیچ منبع خاصی پیدا نکردم که ترکیب این رنگها چطور پیشنهاد میشه ولی چون پروژه روی Git قرار داره، اگر علاقهمند بودید میتونید پیگیرش بشید و نتیجه رو به ما اطلاع بدید تا همینجا اعلام کنیم.
Palettable.io
#تئوری_رنگ #پیشنهاد_سرویس #رابط_کاربری
@HamDesign هَم دیزاین
احتمالا همگی موافق هستیم که یکی از کارهای نسبتا زمانگیر هر پروژهای، انتخاب رنگ هست.
اگر این کار در ابتدای روند پروژه با دقت صورت نگیره، علاوه بر از دست رفتن یکپارچگی، تغییر مجددشون در پایان پروژه، کار بسیار فرسایشی و آزاردهندهای میشه.
از طرف دیگه انتخاب رنگ مقداری سلیقهای هست و ممکنه بعد از پایان پروژه همچنان برخی از اعضای تیم از انتخابها ناراضی بوده و معتقد باشن که امکان انتخاب رنگهای بهتری وجود داشته.
سرویس Palettable امکان انتخاب رنگ رو بصورتی کاملا خلاصه شده و راحت بهتون میده. از هر رنگی خوشتون بیاد میتونید کلید "L" رو به معنی Like بزنید تا ذخیره بشه و برید سراغ رنگ بعدی. اگر هم که دوست نداشتید با کلید "D" احساس Dislike خودتون رو ابراز کنید تا رنگ بعدی نشونتون داده بشه.
متاسفانه هیچ منبع خاصی پیدا نکردم که ترکیب این رنگها چطور پیشنهاد میشه ولی چون پروژه روی Git قرار داره، اگر علاقهمند بودید میتونید پیگیرش بشید و نتیجه رو به ما اطلاع بدید تا همینجا اعلام کنیم.
Palettable.io
#تئوری_رنگ #پیشنهاد_سرویس #رابط_کاربری
@HamDesign هَم دیزاین
Forwarded from Software Philosophy
اگر دوستانی دارید که نه تنها برنامه نویس هستند، بلکه اعتقاد دارید «مهندس نرمافزار» هم هستند، آنها را به کانال @SoftwarePhilosophy دعوت کنید.
این پیغام را برای آنها Forward کنید.
این پیغام را برای آنها Forward کنید.
فریمورک 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…
معماری حافظه در .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
___
نوشتن یک رزومه خوب برای پستهای برنامهنویسی و یا 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
ما به عنوان مهندسین نرمافزار عادت کردیم که نرمافزار بسازیم، در حقیقت به آن معتاد شدهایم. به خاطر همین موضو است که اغلب دوست نداریم به این فکر کنیم که تغییری که در نرمافزار میدهیم چطور باید در نسخه لایو اجرایی شود. خیلی وقتها نرمافزار را به صورت بسیار عالی تغییر میدهیم، ولی برنامهای برای اینکه این تغییر چطور باید در نسخهاجرایی اعمال شود نداریم.
یکی از دغدغه اصلی یک مهندس نرمافزار خوب، تمرکز بر Software Migration است. هر قطعه کدی که توسط یک مهندس نرمافزار نوشته میشود باید با دید یک Change دیده شود که باید روی نسخه لایو اعمال شود، نه صرفا یک کد جدید که Create شدهاست.
https://mehrandvd.me/2015/09/06/be-a-developer-not-a-programmer/
@SoftwarePhilosophy
___
یکی از دغدغه اصلی یک مهندس نرمافزار خوب، تمرکز بر Software Migration است. هر قطعه کدی که توسط یک مهندس نرمافزار نوشته میشود باید با دید یک Change دیده شود که باید روی نسخه لایو اعمال شود، نه صرفا یک کد جدید که Create شدهاست.
https://mehrandvd.me/2015/09/06/be-a-developer-not-a-programmer/
@SoftwarePhilosophy
___
مفهوم Technical Debt یا «بدهی فنی» مفهومی است که اخیرا زیاد از آن در پروژههای نرمافزاری استفاده میشود. وقتی شما کدی مینویسید که کار میکند ولی نیاز به بازنویسی و Refactoring دارد و فعلا آن را کامیت میکنید، کار خود را انجام دادهاید و تسک شما تمام شدهاست. ولی در حقیقت یک بدهی به نام شما به سیستم به وجود آمده است و باید در وقت مناسب بدهی خود را صاف کنید! شما باید در اولین فرصتی که میتوانید با انجام بازنویسی و Refactoring بدهی خود را به سیستم بپردازید. همچنین، همیشه باید حواستان باشد که بدهیهایتان به اندازهای زیاد نشود که از پس آن بر نیایید.
پست زیر روشی را در TFS ارائه داده است که بتوانید مفهوم Technical Debt و چرخه کاری آن را در فرایند توسعه نرمافزار خود بگنجانید.
https://www.c-sharpcorner.com/article/managing-technical-debt-using-vsts
#مهران_داودی
لینکدین:
https://ir.linkedin.com/in/mehrandvd
کانال تلگرام:
@SoftwarePhilosophy
___
پست زیر روشی را در TFS ارائه داده است که بتوانید مفهوم Technical Debt و چرخه کاری آن را در فرایند توسعه نرمافزار خود بگنجانید.
https://www.c-sharpcorner.com/article/managing-technical-debt-using-vsts
#مهران_داودی
لینکدین:
https://ir.linkedin.com/in/mehrandvd
کانال تلگرام:
@SoftwarePhilosophy
___
C-Sharpcorner
Managing Technical Debt Using VSTS
In this article, you will learn all about Technical Debt and how to manage it using VSTS.
#پست_مجدد این پست تا به حال بیش از ۳۱۰۰ بار مشاهده شده و به نظر میرسد برای خوانندگان جدید کانال جذاب باشد.
Forwarded from Software Philosophy
اتفاقی که باید در وب میافتاد بالاخره افتاد! گوگل، مایکروسافت و موزیلا در یک تیم مشترک تصمیم گرفتهاند تا بر روی یک باینری فرمت جدید برای وب کار کنند. این فرمت WebAssembly نام داره و تکنولوژی آن بر بستر C++ سوار شده همچنین گفته شده سرعت Decode در آن ۲۳ برابر سریعتر است.
https://techcrunch.com/2015/06/17/google-microsoft-mozilla-and-others-team-up-to-launch-webassembly-a-new-binary-format-for-the-web/
@SoftwarePhilosophy
___
https://techcrunch.com/2015/06/17/google-microsoft-mozilla-and-others-team-up-to-launch-webassembly-a-new-binary-format-for-the-web/
@SoftwarePhilosophy
___
TechCrunch
Google, Microsoft, Mozilla And Others Team Up To Launch WebAssembly, A New Binary Format For The Web
Google, Microsoft, Mozilla and some of the engineers on the WebKit project today announced that they have teamed up to launch WebAssembly, a new binary format for compiling applications for the web.
زبان 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…
Forwarded from Software Philosophy
اگر دوستانی دارید که نه تنها برنامه نویس هستند، بلکه اعتقاد دارند «مهندس نرمافزار» هم هستند، آنها را به کانال @SoftwarePhilosophy دعوت کنید و این پیغام را برای آنها Forward کنید.
پیاده سازی 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.
فلسفه Spacive Design جایگزینی برای Responsive Design
چند سالی است که طراحی Responsive به عنوان یکی از مهمترین فلسفههای طراحی برنامههای جدید شناخته میشود. اگر به علت ظهور این مدل تفکر در طراحی فکر کنید ظهور دستگاههایی با اندازههای مختلف و با امکانات شبیه هم باعث خلق چنین تفکری شده، نوعی طراحی که بتوان کاربری مناسبی روی دستگاههای با اندازه مختلف داشته باشد.
بنابراین ظهور یک دستگاه میتواند باعث ایجاد فلسفههای جدید طراحی شود. در یک سال اخیر به نظر میرسد یک مدیای جدید در راه است. دستگاههایی که امکان ایجاد واقعیت مجازی دارند. شرکتهای بزرگی مانند گوگل، سونی و مایکروسافت در حال هدایت این بازار هستند. به نظر من ورود این دستگاهها به بازار باعث ایجاد فلسفههای جدیدی در طراحی میشود.
هنوز خیلی زود است که بتوان در مورد آینده طراحی UI/UX اظهار نظر کرد. ولی به نظر من یکی از آینده های محتمل برای طراحی UI/UX نسل آینده نرمافزارها طراحی «فضاگرا» است. طراحی فضاگرا نوعی طراحی نرمافزار است که به آن این امکان را میدهد تا قسمتهای مختلف خود را در فضای اطراف کاربر پخش کند. برای مثال فرض کنید هنگام کار با فیسبوک، تایملاین را روی دیوار روبروی خود ببینید و نوتیفیکیشنها رو روی ساعد خود ببینید. به این ترتیب نرمافزار فیسبوک توانسته در فضای اطراف شما مستقر شود.
https://mehrandvd.me/2016/07/12/hololens-spacive-design-new-era-uiux/
#مهران_داودی
لینکدین:
https://ir.linkedin.com/in/mehrandvd
کانال تلگرام:
@SoftwarePhilosophy
___
چند سالی است که طراحی Responsive به عنوان یکی از مهمترین فلسفههای طراحی برنامههای جدید شناخته میشود. اگر به علت ظهور این مدل تفکر در طراحی فکر کنید ظهور دستگاههایی با اندازههای مختلف و با امکانات شبیه هم باعث خلق چنین تفکری شده، نوعی طراحی که بتوان کاربری مناسبی روی دستگاههای با اندازه مختلف داشته باشد.
بنابراین ظهور یک دستگاه میتواند باعث ایجاد فلسفههای جدید طراحی شود. در یک سال اخیر به نظر میرسد یک مدیای جدید در راه است. دستگاههایی که امکان ایجاد واقعیت مجازی دارند. شرکتهای بزرگی مانند گوگل، سونی و مایکروسافت در حال هدایت این بازار هستند. به نظر من ورود این دستگاهها به بازار باعث ایجاد فلسفههای جدیدی در طراحی میشود.
هنوز خیلی زود است که بتوان در مورد آینده طراحی UI/UX اظهار نظر کرد. ولی به نظر من یکی از آینده های محتمل برای طراحی UI/UX نسل آینده نرمافزارها طراحی «فضاگرا» است. طراحی فضاگرا نوعی طراحی نرمافزار است که به آن این امکان را میدهد تا قسمتهای مختلف خود را در فضای اطراف کاربر پخش کند. برای مثال فرض کنید هنگام کار با فیسبوک، تایملاین را روی دیوار روبروی خود ببینید و نوتیفیکیشنها رو روی ساعد خود ببینید. به این ترتیب نرمافزار فیسبوک توانسته در فضای اطراف شما مستقر شود.
https://mehrandvd.me/2016/07/12/hololens-spacive-design-new-era-uiux/
#مهران_داودی
لینکدین:
https://ir.linkedin.com/in/mehrandvd
کانال تلگرام:
@SoftwarePhilosophy
___
مفهوم Tow way bindig یکی از مهمترین امکاناتی است که فریم ورک AngularJS در اختیار برنامهنویسان قرار میدهد. این امکان به این صورت است که با تغییر view model، scope model نیز تغییر میکند و بلعکس. کاری که این فریم ورک برای ایجاد ارتباط بین view و scope model انجام میدهد به این صورت است که زمانیکه scop model تغییر می کند، به صورت خودکار $scope.$apply() صدا زده می شود که متعاقب آن $rootScope.$digest() فراخوانی میشود. با فراخوانی این سرویس، سیکل digest روی $scopeRoot شروع به کار کرده و تمام سرویسهای $watch را اجرا می کند. سرویس $watch مقدار view Model را با scope model مقایسه و مقادیر جدید را جایگزین میکند.
مقاله زیر توضیحات کاملی درباره سرویس های $apply و $digest داده و چرخه وصل کردن view به scope را به طور کامل شرح داده است.
https://www.sitepoint.com/understanding-angulars-apply-digest
#مریم_داودی
لینکدین:
https://www.linkedin.com/in/maryam-davoudi-7913565a
کانال تلگرام:
@SoftwarePhilosophy
___
مقاله زیر توضیحات کاملی درباره سرویس های $apply و $digest داده و چرخه وصل کردن view به scope را به طور کامل شرح داده است.
https://www.sitepoint.com/understanding-angulars-apply-digest
#مریم_داودی
لینکدین:
https://www.linkedin.com/in/maryam-davoudi-7913565a
کانال تلگرام:
@SoftwarePhilosophy
___
Sitepoint
Understanding Angular's $apply() and $digest() - SitePoint
This article explores Angular's $apply() function and the $digest cycle. The reader will learn when $apply() must be called manually.
کپی کردن کامل یک object معمولا یا از طریق Serialization انجام میشود یا از طریق Reflection. همیشه Serialization محدودیتهای خاص خود را دارد. برای مثال در XmlSerialization ارجاعات حلقهای (Circular References) باعث مشکل میشوند. همچنین سرعت کپی از طریق سریالایزیشن نسبت به Reflection بسیار کمتر است. از طرفی سرعت کپی شدن از طریق Reflection هنوز نسبت به کپی دستی (manually copy functions) کمتر است.
مقاله جدید روش جدیدی را برای کپی اشیا از طریق Expression Trees در زبان C# ارائه دادهاست که هم قدرت Reflection را دارد و سرعت آن تقریبا برابر با روش «کپی دستی» است. خواندن این مقاله روشی که Expression Tree از آن استفاده میکند را بسیار خوب توضیح داده است و در مثالهای عملی قدرت این ساختار را نمایش داده است.
https://www.codeproject.com/Articles/1111658/Fast-Deep-Copy-of-Objects-by-Expression-Trees-Csha
#مهران_داودی
لینکدین:
https://ir.linkedin.com/in/mehrandvd
کانال تلگرام:
@SoftwarePhilosophy
___
مقاله جدید روش جدیدی را برای کپی اشیا از طریق Expression Trees در زبان C# ارائه دادهاست که هم قدرت Reflection را دارد و سرعت آن تقریبا برابر با روش «کپی دستی» است. خواندن این مقاله روشی که Expression Tree از آن استفاده میکند را بسیار خوب توضیح داده است و در مثالهای عملی قدرت این ساختار را نمایش داده است.
https://www.codeproject.com/Articles/1111658/Fast-Deep-Copy-of-Objects-by-Expression-Trees-Csha
#مهران_داودی
لینکدین:
https://ir.linkedin.com/in/mehrandvd
کانال تلگرام:
@SoftwarePhilosophy
___
Codeproject
Fast Deep Copy by Expression Trees (C#)
Deep cloning code made with Linq.Expressions. Tests and test classes are enclosed.
#پست_مجدد این پست تا به حال بیش از ۴۳۰۰ بار مشاهده شده و به نظر میرسد برای خوانندگان جدید کانال جذاب باشد.
Forwarded from Software Philosophy
یک پروژه برای تحلیل جهان هستی!
در حال حاضر ۱۲ ترابایت اطلاعات در یک دیتابیس به نام SkyServer ذخیره شده است که اطلاعات وضعیت کهشکانها رو با جزئیات بالا نگه میداره و به روز میشه. این مقاله نشون میده که چطور اطلاعات کهکشانها در این دیتابیس ذخیره شده و معماری فیزیکی دیتابیسها و سختافزار آنها چطور طراحی شده.
https://blogs.technet.microsoft.com/dataplatforminsider/2016/03/10/mapping-the-universe-with-sql-server/
@SoftwarePhilosophy
___
در حال حاضر ۱۲ ترابایت اطلاعات در یک دیتابیس به نام SkyServer ذخیره شده است که اطلاعات وضعیت کهشکانها رو با جزئیات بالا نگه میداره و به روز میشه. این مقاله نشون میده که چطور اطلاعات کهکشانها در این دیتابیس ذخیره شده و معماری فیزیکی دیتابیسها و سختافزار آنها چطور طراحی شده.
https://blogs.technet.microsoft.com/dataplatforminsider/2016/03/10/mapping-the-universe-with-sql-server/
@SoftwarePhilosophy
___
Microsoft SQL Server Blog
Mapping the Universe with SQL Server - Microsoft SQL Server Blog
This blog post was co-authored by Joseph Sirosh, Corporate Vice President, and Rimma V. Nehme, Principal Software Engineer, at the Data Group at Microsoft. Figure 1: Visible objects of the Sloan Digital Sky Survey (SDSS) DR7 dataset. Over the last 15 years…
عبارت Transpiler این روزها در دنیای مدرن برنامهنویسی زیاد استفاده میشود. عمل Transpiling در حقیقت تبدیل یک کد از یک زبان به یک زبان هم سطح دیگر است.
این در حالی است که مفهوم Compiling یک مفهوم کلیتر است و به معنی تبدیل یک زبان به هر چیز دیگری (مثل یک زبان نزدیک به ماشین یا زبان همسطح) است. برای مثال عمل تبدیل یک کد TypeScript به JavaScript توسط یک Transpiler انجام میشود. زیرا این دو زبان از لحاظ سطح انتزاع شبیه هم هستند. ولی عمل تبدیل کد C# به IL یا تبدیل کد C++ به binary code و یا تبدیل Java به byte code یک کامپایل محسوب میشود. زیرا این تبدیل به یک زبان نزدیک به ماشین است.
در لینک زیر میتوانید این مفاهیم را با جزئیات بیشتری مطالعه کنید.
https://www.stevefenton.co.uk/2012/11/compiling-vs-transpiling
#مهران_داودی
لینکدین:
https://ir.linkedin.com/in/mehrandvd
کانال تلگرام:
@SoftwarePhilosophy
___
این در حالی است که مفهوم Compiling یک مفهوم کلیتر است و به معنی تبدیل یک زبان به هر چیز دیگری (مثل یک زبان نزدیک به ماشین یا زبان همسطح) است. برای مثال عمل تبدیل یک کد TypeScript به JavaScript توسط یک Transpiler انجام میشود. زیرا این دو زبان از لحاظ سطح انتزاع شبیه هم هستند. ولی عمل تبدیل کد C# به IL یا تبدیل کد C++ به binary code و یا تبدیل Java به byte code یک کامپایل محسوب میشود. زیرا این تبدیل به یک زبان نزدیک به ماشین است.
در لینک زیر میتوانید این مفاهیم را با جزئیات بیشتری مطالعه کنید.
https://www.stevefenton.co.uk/2012/11/compiling-vs-transpiling
#مهران_داودی
لینکدین:
https://ir.linkedin.com/in/mehrandvd
کانال تلگرام:
@SoftwarePhilosophy
___
Forwarded from Iran .Net
"به خومان اهمیت بدهیم"
کسانی که در حوزه توسعه نرم افزار کار می کنند عموما از سبک زندگی مناسبی برخوردار نیستند. فشار کاری زیاد، انتظارات بالای سایرین از ما، رقابت شدید، نیاز به یادگیری مداوم و به روز ماندن، ساعت ها خیره شدن به مانیتور و فعالیت فیزیکی بسیار پایین، عدم تعامل موثر با سایرین و ... از ویژگی های "حرفه" ماست. این ها در کنار مشکلات جدی تر زندگی مانند مسائل مالی، رابطه و دغدغه های زندگی بسیار سنگین تر هم خواهند شد.
اسکات هنسلمن در وبلاگ اش راهکار هایی را که خودش برای حل این مسائل به کار بسته را به اشتراک گذاشته است.
https://www.hanselman.com/blog/SelfcareMattersPayYourselfFirst.aspx
کسانی که در حوزه توسعه نرم افزار کار می کنند عموما از سبک زندگی مناسبی برخوردار نیستند. فشار کاری زیاد، انتظارات بالای سایرین از ما، رقابت شدید، نیاز به یادگیری مداوم و به روز ماندن، ساعت ها خیره شدن به مانیتور و فعالیت فیزیکی بسیار پایین، عدم تعامل موثر با سایرین و ... از ویژگی های "حرفه" ماست. این ها در کنار مشکلات جدی تر زندگی مانند مسائل مالی، رابطه و دغدغه های زندگی بسیار سنگین تر هم خواهند شد.
اسکات هنسلمن در وبلاگ اش راهکار هایی را که خودش برای حل این مسائل به کار بسته را به اشتراک گذاشته است.
https://www.hanselman.com/blog/SelfcareMattersPayYourselfFirst.aspx
Hanselman
Self-care matters: Pay yourself first
I was meeting with a mentee today and she was commenting how stressed out she ...