Forwarded from Software Philosophy
ضد الگوی Blind Developer یا «برنامه نویس کور» یک ضد الگوی شایع در تیمهای نرمافزاری است که معمولا از زبان معمار نرمافزار با این جمله تشریح میشود: «هیچوقت به برنامهنویس اجازه ندهید با مشتری صحبت کند». این مفهوم به این دلیل به وجود آمده که معمولا افراد غیر برنامهنویس بهتر نیازمندی کاربر را درک میکنند. البته این واقعیت اغلب صادق است ولی نکتهای که به آن توجه نشدهاست تغییرات است. تغییرات در نیازمندی باعث افزایش هزینه توسعه میشود. در جریان نبودن برنامهنویسان از بیزنس معمولا باعث میشود این تغییرات هزینه بسیار بیشتری داشته باشد. همچنین باعث میشود بسیاری از ریسکها خیلی دیر و حتی هنگام تحویل محصول نمایان شوند.
در لینک زیر این ضد الگو بیشتر توضیح داده شدهاست.
https://sourcemaking.com/antipatterns/mushroom-management
#مهران_داودی
لینکدین:
https://ir.linkedin.com/in/mehrandvd
کانال تلگرام:
@SoftwarePhilisophy
___
در لینک زیر این ضد الگو بیشتر توضیح داده شدهاست.
https://sourcemaking.com/antipatterns/mushroom-management
#مهران_داودی
لینکدین:
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
نسل جدید بازیها و همچنین نرمافزارها در راه است. این نسل جدید بر پایه VR یا «واقعیت مجازی» بنا شدهاست. از آنجایی که این مفهوم هنوز خیلی جدید است خیلی مطالب هنوز در مورد آن دقیق و مشخص نشده است. از جمله این مفاهیم استانداردهای UX است که امروزه در محیطهای دیگر خیلی به آن پرداخته شدهاست. واقعیت مجازی محیطی کاملا متفاوت با محیطهای قبلی است و نیازمند باز طراحی این استانداردها است. لینک زیر استراتژیهایی را برای UX بهتر در بازیهای کامپیوتری مبتنی بر VR ارائه دادهاست.
https://uxmag.com/articles/4-strategies-for-mastering-ux-in-virtual-reality-games
#مهران_داودی
لینکدین:
https://ir.linkedin.com/in/mehrandvd
کانال تلگرام:
@SoftwarePhilisophy
___
https://uxmag.com/articles/4-strategies-for-mastering-ux-in-virtual-reality-games
#مهران_داودی
لینکدین:
https://ir.linkedin.com/in/mehrandvd
کانال تلگرام:
@SoftwarePhilisophy
___
Uxmag
4 Strategies for Mastering UX in Virtual Reality Games
Because VR is such a different playing field, UX for virtual products has yet to be clearly defined.
Forwarded from Software Philosophy
همیشه یکی از مهمترین کارهایی که باید توسط یک معمار نرمافزار انجام شود و معمولا هم اصلا انجام نمیشود(!) فکر کردن به نحوه انتقال به نسخه جدید است. در این فرایند معمولا با کلماتی مانند Deployment یا Migration سر و کار دارید. پست زیر توسط یکی از برنامهنویسان سایت StackOverflow نوشتهشده است و توضیح میدهد فرایند Deployment این سایت در سال 2016 چگونه طراحی شدهاست. نحوه برخورد با سورس کدها، مراحلی که نیاز به یک انسان دارد، مدیریت Branch ها، Database Migration، مدیریت Translation ها و نکات بسیاری را برای یادگیری دارد.
https://nickcraver.com/blog/2016/05/03/stack-overflow-how-we-do-deployment-2016-edition/
#مهران_داودی
لینکدین:
https://ir.linkedin.com/in/mehrandvd
کانال تلگرام:
@SoftwarePhilisophy
___
https://nickcraver.com/blog/2016/05/03/stack-overflow-how-we-do-deployment-2016-edition/
#مهران_داودی
لینکدین:
https://ir.linkedin.com/in/mehrandvd
کانال تلگرام:
@SoftwarePhilisophy
___
Nickcraver
Nick Craver - Stack Overflow: How We Do Deployment - 2016 Edition
This is #3 in a very long series of posts on Stack Overflow’s architecture.Previous post (#2): Stack Overflow: The Hardware - 2016 EditionWe’ve talked abou...
ساخت یک لیست Generic متشکل از Anonymous Type، آیا تا به حال به این فکر کردهاید که چگونه میتواند چنین کاری انجام داد؟ البته این کار اگر انجام شود احتمالا نشانه یک طراحی اشتباه است. ولی جالب است که این سوال در StackOverflow مطرح شدهبود و یکی از طراحان زبان C# (Kirill Osenkov) این کار را نشدنی دانسته بود. سپس از طرف چند نفر جواب جالبی برای این کار ارائه شد که به تکنیک Casting By Example شناخته میشود. بعد از این اتفاق Osenkov این روش را در بلاگ خود شرح دادهاست.
https://kirillosenkov.blogspot.fr/2008/01/how-to-create-generic-list-of-anonymous.html
#مهران_داودی
لینکدین:
https://ir.linkedin.com/in/mehrandvd
کانال تلگرام:
@SoftwarePhilosophy
___
https://kirillosenkov.blogspot.fr/2008/01/how-to-create-generic-list-of-anonymous.html
#مهران_داودی
لینکدین:
https://ir.linkedin.com/in/mehrandvd
کانال تلگرام:
@SoftwarePhilosophy
___
Forwarded from Software Philosophy
معماریهای نوین نرمافزار برای حل مسائلی به وجود آمدهاند که قبلا وجود نداشتند. برای مثال شبکههای اجتماعی که در آن میلیونها لایک و کامنت در ثانیه را هندل میکنند و همیشه با بیلیونها رکورد سر و کار دارند مسائلی است که جدید هستند و با معماری و ابزارهای قبل قابل حل نیستند. دیتابیسهای NoSql و PolyGlot ابزارهای جدیدی هستند که در معماریهای جدید از آنها استفاده میشود. مقاله زیر از Dino Esposito معمار با سابقه نرمافزار، توضیح میدهد که چگونه با استفاده از Historical CRUD و Event Sourcing میتوان راهحلی برای این گونه مسائل ارائه داد.
https://msdn.microsoft.com/en-us/magazine/mt703431
#مهران_داودی
لینکدین:
https://ir.linkedin.com/in/mehrandvd
کانال تلگرام:
@SoftwarePhilisophy
___
https://msdn.microsoft.com/en-us/magazine/mt703431
#مهران_داودی
لینکدین:
https://ir.linkedin.com/in/mehrandvd
کانال تلگرام:
@SoftwarePhilisophy
___
Forwarded from Software Philosophy
یکی از مباحثی که همیشه در تشکیل تیمهای نرمافزاری مطرح است، انتخاب زبان برنامهنویسی و یا تکنولوژیهای مورد استفاده است. مقایسه محصولات موفق و نا موفق نشان میدهد هیچکدام از آنها صرفا با یک تکنولوژی و یا یک زبان خاص نوشته نشدهاند. برای مثال سیستمهای موفق زیادی وجود دارند که با Java و یا C# نوشته شدهاند. همچنین سیستمهای بی کیفیت زیادی نیز وجود دارد که با Java و یا C# نوشته شدهاند. این حقیقت نشان میدهد دلیل موفقیت یا شکست سیستمها نمیتواند زبان برنامهنویسی باشد. مقاله زیر توضیح میدهد که چطور طرز فکر برنامهنویسها موفقیت و یا شکست یک سیستم را رقم میزند.
https://mehrandvd.me/2015/10/15/software-quality-comes-from-people-not-languages/
#مهران_داودی
https://ir.linkedin.com/in/mehrandvd
کانال تلگرام:
@SoftwarePhilosophy
___
https://mehrandvd.me/2015/10/15/software-quality-comes-from-people-not-languages/
#مهران_داودی
https://ir.linkedin.com/in/mehrandvd
کانال تلگرام:
@SoftwarePhilosophy
___
با شدت گرفتن روند تغییرات در درخواستهای مشتریان، نیازمندیهای پروژهها و مسائل مربوط به پشتیبانی محصولات در دهههای اخیر، بسیاری از شرکت ها پی بردند که هماهنگ شدن با بازار با استفاده از فرآیند های تجاری قدیمی امکان پذیر نیست. لذا بسیاری از توسعه دهندگان و مدیران محصولات به متدلوژیهای جدید مانند 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 Software Philosophy
اگر دوستانی دارید که نه تنها برنامه نویس هستند، بلکه اعتقاد دارند «مهندس نرمافزار» هم هستند، آنها را به کانال @SoftwarePhilosophy دعوت کنید و این پیغام را برای آنها Forward کنید.
Forwarded from Software Philosophy
تا امروز فیدبکهای خیلی خوبی از شما دوستان گرفتیم. بر اساس فیدبکهای شما تصمیم گرفتیم که پستهای این کانال را در سه دسته بندی پست کنیم:
۱) مطالب مهندسی و معماری نرمافزار و مدیریت تیمهای نرمافزاری
۲) مطالب مربوط به آخرین تکنولوژیها
۳) مطالب مربوط به تکنولوژیهای مرسوم که در شرکتها استفاده میشود.
هر هفته مطالبی که پست میشود شامل تمامی دستههای بالا خواهد بود. به این ترتیب اگر به یکی یا چندتا از دستهبندیها علاقه دارید، هر هفته حتما چند پست مورد علاقه شما در این کانال «فلسفه نرمافزار» وجود دارد.
لطفا اگر نظر، پیشنهاد، انتقاد و یا هرگونه فیدبکی نسبت به این کانال دارید، در توئیتر بنویسید. مطمئن باشید ما آنها را میخوانیم. (در توئیتر https://twitter.com/mehrandvd را منشن کنید و از هشتگ #SoftwarePhilosophy استفاده کنید)
۱) مطالب مهندسی و معماری نرمافزار و مدیریت تیمهای نرمافزاری
۲) مطالب مربوط به آخرین تکنولوژیها
۳) مطالب مربوط به تکنولوژیهای مرسوم که در شرکتها استفاده میشود.
هر هفته مطالبی که پست میشود شامل تمامی دستههای بالا خواهد بود. به این ترتیب اگر به یکی یا چندتا از دستهبندیها علاقه دارید، هر هفته حتما چند پست مورد علاقه شما در این کانال «فلسفه نرمافزار» وجود دارد.
لطفا اگر نظر، پیشنهاد، انتقاد و یا هرگونه فیدبکی نسبت به این کانال دارید، در توئیتر بنویسید. مطمئن باشید ما آنها را میخوانیم. (در توئیتر https://twitter.com/mehrandvd را منشن کنید و از هشتگ #SoftwarePhilosophy استفاده کنید)
Forwarded from Software Philosophy
در مورد WebApi مطالب زیادی وجود دارد. ولی پست زیر با جزئیات خیلی زیادی کل چرخه پیغامهای HTTP را در WebApi Pipeline به طور کاملا عملی بررسی کردهاست. خواندن این مقاله میتواند خیلی به درک مفهوم Pipeline در این معماریها کمک کند. نکته خوب این مقاله این است که در آن OWIN که یک معماری بسیار عالی برای استفاده و پیاده سازی WebApi است توضیح داده شدهاست. معماری OWIN کمک میکند بتوانید WebApi را مستقل از جایی که قرار است در آن Host شود طراحی کنید و برای مثال بتوانید آن را حتی در یک برنامه Console Application استفاده کنید.
https://www.c-sharpcorner.com/article/webapi-pipeline-revealed-a-true-practical-approach/
#مهران_داودی
لینکدین:
https://ir.linkedin.com/in/mehrandvd
کانال تلگرام:
@SoftwarePhilisophy
___
https://www.c-sharpcorner.com/article/webapi-pipeline-revealed-a-true-practical-approach/
#مهران_داودی
لینکدین:
https://ir.linkedin.com/in/mehrandvd
کانال تلگرام:
@SoftwarePhilisophy
___
C-Sharpcorner
Web API Pipeline Revealed: A True Practical Approach
In this article you will see a practical approach to Web API Pipeline.
Forwarded from Iran .Net
با گسترش روز افزون استفاده از اپلیکشن های موبایل و یا وب اپلیکشن های تک صفحه ای مواجه هستیم. در این نوع از نرم افزار ها طبیعتا خبری از ارسال کوکی و Session نخواهد بود. پس چطور این نرم افزار ها در سمت سرور مورد تصدیق هویت و دسترسی قرار می گیرند!
در این جاست که با مفهوم Token و علی الخصوص JWT Token ها رو به رو خواهیم شد. این Token ها که جایگزین کوکی ها می شوند، مزایایی را برای ما به همراه خواهند آورد که با کوکی ها مقدور نبود. مزایایی مانند مقیاس پذیر شدن نرم افزار سمت سرور، عدم نیاز به ذخیره سازی Session های کاربران در حافظه یا پایگاه داده، Stateless بودن و سرعت بیشتر، استفاده از Claim ها و ....
در مقاله زیر به زبانی شیوا Token ها و تفاوت شان با کوکی ها توضیح داده شده است.
https://auth0.com/blog/2016/05/31/cookies-vs-tokens-definitive-guide
در این جاست که با مفهوم Token و علی الخصوص JWT Token ها رو به رو خواهیم شد. این Token ها که جایگزین کوکی ها می شوند، مزایایی را برای ما به همراه خواهند آورد که با کوکی ها مقدور نبود. مزایایی مانند مقیاس پذیر شدن نرم افزار سمت سرور، عدم نیاز به ذخیره سازی Session های کاربران در حافظه یا پایگاه داده، Stateless بودن و سرعت بیشتر، استفاده از Claim ها و ....
در مقاله زیر به زبانی شیوا Token ها و تفاوت شان با کوکی ها توضیح داده شده است.
https://auth0.com/blog/2016/05/31/cookies-vs-tokens-definitive-guide
Auth0 - Blog
Cookies vs Tokens: The Definitive Guide
The cookie vs token debate favors token-based authentication. Learn the advantages and get answers to common concerns regarding token authentication.
پروژه اوپن-سورس شدن محصولات مایکروسافت از سال ۲۰۱۴ شروع شدهاست. پروژههای مهمی مانند .Net Framework، .Net Core، کامپایلر C# و بسیاری دیگر در GitHub توسعه داده میشوند. یکی از چیزهای جذابی که در این میان بسیار آموزنده است، مستنداتی است که در این پروژهها اوپن-سورس شده. مستنداتی مانند «جلسات طراحی»، «Code Review» از این قبیل هستند. مطالعه این مستندات از این جهت جالب است که مثلا میتوانید بفهمید چرا در زبان C# تصمیم گرفتهشده است قابلیت X اینطوری باشد و در جلسات چه گذشته. همچنین برای مثال میتوانید ببینید که جلساتی که برای طراحی C# 7.0 برگزار میشود چگونه پیش میرود و کدام فیچرها در چه وضعیتی قرار دارند.
لینک زیر در مورد پروژههای اوپن-سورس مایکروسافت صحبت کرده و لینکهای خوبی به مستندات طراحی آنها معرفی کرده است.
https://www.c-sharpcorner.com/article/a-deeper-look-into-open-source-net-development
#مهران_داودی
لینکدین:
https://ir.linkedin.com/in/mehrandvd
کانال تلگرام:
@SoftwarePhilosophy
___
لینک زیر در مورد پروژههای اوپن-سورس مایکروسافت صحبت کرده و لینکهای خوبی به مستندات طراحی آنها معرفی کرده است.
https://www.c-sharpcorner.com/article/a-deeper-look-into-open-source-net-development
#مهران_داودی
لینکدین:
https://ir.linkedin.com/in/mehrandvd
کانال تلگرام:
@SoftwarePhilosophy
___
C-Sharpcorner
A Deeper Look into Open Source .NET Development
In this article, we will look into Open Source .NET Development.
Forwarded from Software Philosophy
یکی دیگر از موارد مهم در طراحی UI برنامههای موبایل توجه به Landscape و یا Portrait بودن است. که هر کدام از این حالتها ویژگیهای خاص خود را دارند که طراح میتواند به خوبی از این ویژگیها استفاده کند.
مثلا برنامهای را در نظر بگیرد که برای بورس نوشته شده است. در حالت Portrait یک گرید نمایش داده میشود که شاخص بورس در هفته جاری را نشان میدهد. یک UI معمولی همین گرید را در حالت Landscape نمایش میدهد ولی یک UI خوب یک نمودار میلهای را نمایش میدهد.
در پست زیر Patternهای مختلفی را که برنامههای مختلف در نمایش Landscape استفاده کردهاند را بررسی کرده است.
https://www.smashingmagazine.com/2012/08/designing-device-orientation-portrait-landscape/
#افشین_علیزاده
لینکدین:
https://ir.linkedin.com/in/afshinalizadehbehjati
کانال تلگرام:
@SoftwarePhilisophy
___
مثلا برنامهای را در نظر بگیرد که برای بورس نوشته شده است. در حالت Portrait یک گرید نمایش داده میشود که شاخص بورس در هفته جاری را نشان میدهد. یک UI معمولی همین گرید را در حالت Landscape نمایش میدهد ولی یک UI خوب یک نمودار میلهای را نمایش میدهد.
در پست زیر Patternهای مختلفی را که برنامههای مختلف در نمایش Landscape استفاده کردهاند را بررسی کرده است.
https://www.smashingmagazine.com/2012/08/designing-device-orientation-portrait-landscape/
#افشین_علیزاده
لینکدین:
https://ir.linkedin.com/in/afshinalizadehbehjati
کانال تلگرام:
@SoftwarePhilisophy
___
Smashing Magazine
Designing For Device Orientation: From Portrait To Landscape — Smashing Magazine
Designing for device orientation brings various challenges and requires careful thinking. The experience must be as unobtrusive and transparent as possible, and we must understand the context of use for this functionality.
Forwarded from Software Philosophy
به نظر میرسد که تکنولوژی آنقدرها هم که به نظر میرسد به موفقیت پروژهها کمک نمیکند! برای مثال در کتاب «Peopleware: Productive Projects and Teams» عامل مهمتری را برای موفقیت یک پروژه معرفی کردهاست: «اعتماد افراد به یکدیگر». در تیمی که افراد به یکدیگر اعتماد نداشته باشند ریسک خیلی بالایی متوجه پروژه میشود و آینده آن به شدت در خطر خواهد بود.
Better technology seemed unlikely to be much help. If a group of people who had to work together didn’t trust each other.
از کتاب
Peopleware: Productive Projects and Teams
نوشته:
Tom DeMarco & Timothy Lister
#افشین_علیزاده
لینکدین:
https://ir.linkedin.com/in/afshinalizadehbehjati
کانال تلگرام:
@SoftwarePhilisophy
___
Better technology seemed unlikely to be much help. If a group of people who had to work together didn’t trust each other.
از کتاب
Peopleware: Productive Projects and Teams
نوشته:
Tom DeMarco & Timothy Lister
#افشین_علیزاده
لینکدین:
https://ir.linkedin.com/in/afshinalizadehbehjati
کانال تلگرام:
@SoftwarePhilisophy
___
Linkedin
Afshin Alizadeh Behjati | LinkedIn
View Afshin Alizadeh Behjati’s professional profile on LinkedIn. LinkedIn is the world's largest business network, helping professionals like Afshin Alizadeh Behjati discover inside connections to recommended job candidates, industry experts, and business…
Forwarded from Software Philosophy
موقعیتهای زیر را در نظر بگیرید:
۱) رانندهای که اگر به موقع به فرودگاه نرسد، پرواز را از دست میدهد.
۲) عابر پیادهای که عجله دارد.
۳) خانم خانهداری که مهمانها یک ساعت زودتر آمدهاند و گرسنه هستند.
احتمالا هر یک از ما حالت مشابهی را تجربه کردیم که در آن یک محدودیت زمانی وجود دارد و ناخواسته قوانینی را که رعایت میکردیم، دیگر رعایت نمیکنیم.
۱) به احتمال زیاد دیگر به تابلو ورود ممنوع و یا حق تقدیم توجهی نمیکند .
۲) به چراغ قرمز توجه نمیکند و از پل عابر پیاده نیز استفاده نمیکند .
۳) از کیفیت غذا کاسته شده است.
برنامهنویس نیز از این قاعده مستثنی نیست. اگر تحت فشار زمانبندی پروژه باشد سریعتر کار میکند ولی به خاطر اینکه سر وقت بتواند پروژه را تحویل دهد قوانینی را نادیده میگیرد و در نتیجه از کیفیت کد کاسته میشود.
People under time pressure don’t work better—they just work
faster.
از کتاب:
Peopleware: Productive Projects and Teams (Tom DeMarco & Timothy Lister)
#افشین_علیزاده
لینکدین:
https://ir.linkedin.com/in/afshinalizadehbehjati
کانال تلگرام:
@SoftwarePhilisophy
___
۱) رانندهای که اگر به موقع به فرودگاه نرسد، پرواز را از دست میدهد.
۲) عابر پیادهای که عجله دارد.
۳) خانم خانهداری که مهمانها یک ساعت زودتر آمدهاند و گرسنه هستند.
احتمالا هر یک از ما حالت مشابهی را تجربه کردیم که در آن یک محدودیت زمانی وجود دارد و ناخواسته قوانینی را که رعایت میکردیم، دیگر رعایت نمیکنیم.
۱) به احتمال زیاد دیگر به تابلو ورود ممنوع و یا حق تقدیم توجهی نمیکند .
۲) به چراغ قرمز توجه نمیکند و از پل عابر پیاده نیز استفاده نمیکند .
۳) از کیفیت غذا کاسته شده است.
برنامهنویس نیز از این قاعده مستثنی نیست. اگر تحت فشار زمانبندی پروژه باشد سریعتر کار میکند ولی به خاطر اینکه سر وقت بتواند پروژه را تحویل دهد قوانینی را نادیده میگیرد و در نتیجه از کیفیت کد کاسته میشود.
People under time pressure don’t work better—they just work
faster.
از کتاب:
Peopleware: Productive Projects and Teams (Tom DeMarco & Timothy Lister)
#افشین_علیزاده
لینکدین:
https://ir.linkedin.com/in/afshinalizadehbehjati
کانال تلگرام:
@SoftwarePhilisophy
___
Forwarded from Software Philosophy
جملات زیر غالبا به مقدار زیاد شنیده میشوند:
• من صبح زود و قبل از اینکه کسی دیگری در شرکت باشد خیلی بهتر کار میکنم.
• در یک روز تعطیل میتوانم به اندازه ۲ یا ۳ روز کاری، کار انجام بدهم.
جملاتی از قبیل جملات بالا نشانه این هستند که محیط کاری مناسبی وجود ندارد. و مدیران با اتخاذ تصمیمات مناسب میتوانند آرامش را به محیط کار برگردانند. ولی متاسفانه هیچ کس کاری انجام نمیدهد.
Staying late or arriving early or staying home to work in peace is a damning indictment of the office environment.
The amazing thing is not that it’s so often impossible to work in the workplace; the amazing thing is that everyone
knows it and nobody ever does anything about it.
از کتاب:
Peopleware: Productive Projects and Teams (Tom DeMarco & Timothy Lister)
#افشین_علیزاده
لینکدین:
https://ir.linkedin.com/in/afshinalizadehbehjati
کانال تلگرام:
@SoftwarePhilisophy
___
• من صبح زود و قبل از اینکه کسی دیگری در شرکت باشد خیلی بهتر کار میکنم.
• در یک روز تعطیل میتوانم به اندازه ۲ یا ۳ روز کاری، کار انجام بدهم.
جملاتی از قبیل جملات بالا نشانه این هستند که محیط کاری مناسبی وجود ندارد. و مدیران با اتخاذ تصمیمات مناسب میتوانند آرامش را به محیط کار برگردانند. ولی متاسفانه هیچ کس کاری انجام نمیدهد.
Staying late or arriving early or staying home to work in peace is a damning indictment of the office environment.
The amazing thing is not that it’s so often impossible to work in the workplace; the amazing thing is that everyone
knows it and nobody ever does anything about it.
از کتاب:
Peopleware: Productive Projects and Teams (Tom DeMarco & Timothy Lister)
#افشین_علیزاده
لینکدین:
https://ir.linkedin.com/in/afshinalizadehbehjati
کانال تلگرام:
@SoftwarePhilisophy
___
Forwarded from Software Philosophy
در یک بازی شطرنج با محدودیت زمانی ۵ دقیقه (شطرنج سریع یا بلیتس)، بازیکنان در یک زمان کم تصمیم میگیرند و حرکت را انجام میدهد ولی در حالت بدون محدودیت زمانی بازیکنان به اندازه کافی وقت برای فکر کردن و تصمیم گرفتن را دارند. در نتیجه شطرنج سریع از لحاظ کیفیت قابل مقایسه با شطرنج بدون محدودیت زمانی نیست.
یک رابطه مستقیم بین کیفیت و زمان انجام کار وجود دارد. هرچه که زمان بیشتر باشد کیفیت کار نیز بیشتر است. این قاعده در پروژههای نرمافزاری نیز صادق است. اگر مدیر پروژه به هر دلیلی مدت زمان انجام پروژه را کم در نظر بگیرد ناخواسته از کیفیت برنامه کاسته میشود، و این عدم کیفیت در سایت مشتری خودش را نشان میدهد.
بروز خطا در سایت مشتری به مراتب اثر منفی بیشتری دارد تا دیر تحویل دادن یک پروژه با کیفیت عالی.
Managers jeopardize product quality by setting unreachable deadlines.
Workers kept under extreme time pressure will begin to sacrifice quality. They will push problems under the rug to be dealt with later or foisted off onto the product’s end user. They will deliver products that are unstable and not really complete. They will hate what they’re doing, but what other choice
do they have?
از کتاب:
Peopleware: Productive Projects and Teams (Tom DeMarco & Timothy Lister)
#افشین_علیزاده
لینکدین:
https://ir.linkedin.com/in/afshinalizadehbehjati
کانال تلگرام:
@SoftwarePhilisophy
___
یک رابطه مستقیم بین کیفیت و زمان انجام کار وجود دارد. هرچه که زمان بیشتر باشد کیفیت کار نیز بیشتر است. این قاعده در پروژههای نرمافزاری نیز صادق است. اگر مدیر پروژه به هر دلیلی مدت زمان انجام پروژه را کم در نظر بگیرد ناخواسته از کیفیت برنامه کاسته میشود، و این عدم کیفیت در سایت مشتری خودش را نشان میدهد.
بروز خطا در سایت مشتری به مراتب اثر منفی بیشتری دارد تا دیر تحویل دادن یک پروژه با کیفیت عالی.
Managers jeopardize product quality by setting unreachable deadlines.
Workers kept under extreme time pressure will begin to sacrifice quality. They will push problems under the rug to be dealt with later or foisted off onto the product’s end user. They will deliver products that are unstable and not really complete. They will hate what they’re doing, but what other choice
do they have?
از کتاب:
Peopleware: Productive Projects and Teams (Tom DeMarco & Timothy Lister)
#افشین_علیزاده
لینکدین:
https://ir.linkedin.com/in/afshinalizadehbehjati
کانال تلگرام:
@SoftwarePhilisophy
___
بالاخره jQuery 3.0 ریلیز شد. این نسخه از نسخه قبلی «سبکتر» و «سریعتر» است و Backward compatiblity نیز در آن در مد نظر قرار داده شده است. تمام workaround ها برای پشتیبانی نسخههای قدیمی IE حذف شده و تا حد امکان از امکانات جدید مرورگرهای پیشرفته استفاده شده. یکی از تغییرات مهم این نسخه تغییر jQuery.Differed برای سازگار شدن با استاندارد Promise/A+ است.
https://blog.jquery.com/2016/06/09/jquery-3-0-final-released
#مهران_داودی
لینکدین:
https://ir.linkedin.com/in/mehrandvd
کانال تلگرام:
@SoftwarePhilosophy
___
https://blog.jquery.com/2016/06/09/jquery-3-0-final-released
#مهران_داودی
لینکدین:
https://ir.linkedin.com/in/mehrandvd
کانال تلگرام:
@SoftwarePhilosophy
___
Jquery
jQuery 3.0 Final Released! | Official jQuery Blog
jQuery: The Write Less, Do More, JavaScript Library
Forwarded from Software Philosophy
اگر دوستانی دارید که نه تنها برنامه نویس هستند، بلکه اعتقاد دارند «مهندس نرمافزار» هم هستند، آنها را به کانال @SoftwarePhilosophy دعوت کنید و این پیغام را برای آنها Forward کنید.
امکانات مورد انتظار در C# 7.0
مقاله زیر به طور خیلی خلاصه و مفید، جذابترین امکاناتی را که قرار است به نسخه جدید سیشارپ اضافه شوند را توضیح میدهد. امکاناتی مانند Pattern Matching، Record Syntax، Tuple as return type و امکاناتی برای Null Safety در نسخه جدید این زبان، برنامهنویسی را بسیار شیرینتر و البته Robust تر میکند. همچنین در این مقاله توضیح داده شدهاست که چگونه Record ها میتوانند به پیادهسازی یک immutable class کمک کند.
https://www.dotnetcurry.com/csharp/1286/csharp-7-new-expected-features
#مهران_داودی
لینکدین:
https://ir.linkedin.com/in/mehrandvd
کانال تلگرام:
@SoftwarePhilosophy
___
مقاله زیر به طور خیلی خلاصه و مفید، جذابترین امکاناتی را که قرار است به نسخه جدید سیشارپ اضافه شوند را توضیح میدهد. امکاناتی مانند Pattern Matching، Record Syntax، Tuple as return type و امکاناتی برای Null Safety در نسخه جدید این زبان، برنامهنویسی را بسیار شیرینتر و البته Robust تر میکند. همچنین در این مقاله توضیح داده شدهاست که چگونه Record ها میتوانند به پیادهسازی یک immutable class کمک کند.
https://www.dotnetcurry.com/csharp/1286/csharp-7-new-expected-features
#مهران_داودی
لینکدین:
https://ir.linkedin.com/in/mehrandvd
کانال تلگرام:
@SoftwarePhilosophy
___
Dotnetcurry
C# 7 - What's New | DotNetCurry
C# 7 is the next version of C#. This article provides an overview of the new features in C# 7.0.
مفاهیم Promise و Deffered Objects در برنامهنویسی جاوااسکریپت بسیار مهم و حیاتی هستند. این مفاهیم کمک میکنند روش برنامه نویسی async در این زبان استاندارد و یکسان شود. مقاله زیر این مفهوم را به طور خیلی خلاصه و مفید توضیح دادهاست و سه کتابخانه q.js, when.js و jQuery.js را از لحاظ performance برای پیاده سازی promise مقایسه کردهاست.
https://blog.mediumequalsmessage.com/promise-deferred-objects-in-javascript-pt1-theory-and-semantics
#مهران_داودی
لینکدین:
https://ir.linkedin.com/in/mehrandvd
کانال تلگرام:
@SoftwarePhilosophy
___
https://blog.mediumequalsmessage.com/promise-deferred-objects-in-javascript-pt1-theory-and-semantics
#مهران_داودی
لینکدین:
https://ir.linkedin.com/in/mehrandvd
کانال تلگرام:
@SoftwarePhilosophy
___
Chris Webb on Svbtle
Promise & Deferred objects in JavaScript Pt.1: Theory and Semantics.
Introduction # In the not too distant past the primary tool available to JavaScript programmers for handling asynchronous events was the callback. A callback is a piece of executable code that is passed as an argument to other code, which is... | Chris Webb…