اگر دوستانی دارید که نه تنها برنامه نویس هستند، بلکه اعتقاد دارند «مهندس نرمافزار» هم هستند، آنها را به کانال @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
___
امکاناتی که در Java 8 اضافه شده بسیار جذاب و دوست داشتنی هستند. عمده این امکانات حول محور مفهوم Lambda Expression میچرخند که باعث میشوند برنامهنویسی با استفاده از مفاهیم Functional Programming بسیار لذتبخشتر شود. سایت زیر یک Cheat Sheet خیلی مختصر و مفید از مثالهایی است که میتوانید در نسخه جدید جاوا از آنها استفاده کنید.
https://www.java8.org/
#مهران_داودی
لینکدین:
https://ir.linkedin.com/in/mehrandvd
کانال تلگرام:
@SoftwarePhilosophy
___
https://www.java8.org/
#مهران_داودی
لینکدین:
https://ir.linkedin.com/in/mehrandvd
کانال تلگرام:
@SoftwarePhilosophy
___
خواندن لاگها و فهمیدن آنها معمولا کار سخت و زمانبری است، مخصوصا اگر این لاگ مربوط به فرایند بیلد یک سیستم در فرایند CI باشد. اخیرا Kirill Osenkov (یکی از برنامهنویسان کلیدی تیم داتنت) یک برنامه برای Visualization لاگهای MSBuild منتشر کردهاست که خواندن این لاگها را بسیار راحت میکند. این برنامه لاگها را به صورت درختی نمایش میدهد.
https://www.hanselman.com/blog/MSBuildStructuredLogRecordAndVisualizeYourBuilds.aspx
#مهران_داودی
لینکدین:
https://ir.linkedin.com/in/mehrandvd
کانال تلگرام:
@SoftwarePhilosophy
___
https://www.hanselman.com/blog/MSBuildStructuredLogRecordAndVisualizeYourBuilds.aspx
#مهران_داودی
لینکدین:
https://ir.linkedin.com/in/mehrandvd
کانال تلگرام:
@SoftwarePhilosophy
___
Hanselman
MSBuild Structured Log: record and visualize your builds
MSBuild has been open source for a while (over a year now!) and is used to build .NET and .NET Core projects. In fact, ...
Forwarded from Iran .Net
روش Partitioned Table جهت افزایش کارایی SQL Server
پایگاه داده SQL Server روش های متعددی را به جهت Scale-Up کردن در اختیار ما قرار می دهد. یکی از این روش ها که برای بالابردن بهره وری و سرعت ذخیره و بازیابی داده ها استفاده می شود، استفاده از جداول خاصی به نام Partitioned Table ها می باشد. پیش از توضیح مطلب لازم به ذکر است که اساس این روش بر این فرضیه استوار است که یکی از مهمترین گلوگاه های کاراییِ پایگاه داده هارددیسک و مسائل مربوط به I/O می باشد. استفاده از این روش برای جداولی با تراکنش های بسیار بالا و با حجمی بیشتر از 50 گیگابایت توصیه می شود.
اساس این روش بر این استوار است که داده های یک جدول به جای قرار گرفتن در یک فایل، در چندین فایل پراکنده می شود. مثلا می توانیم داده ها را با توجه به ماه های سال تقسیم بندی کنیم و به ازای هر ماه یک Partition ایجاد کنیم. در نتیجه به جای تحمیل بار سیستم به یک فایل بزرگ و البته کند، ما چندین فایل با سایز های بسیار کوچک تر مواجه خواهیم بود.
این موجب خواهد شد که سرعت I/O افزایش پیدا کند، داده های مربوط به Indexing کوچک تر شده جستجو سریع تر خواهد شد. همچنین چون فایل های هر Partition جداست، می توانیم هر Partition در دیسکی مجزا قرار دهیم.
لازم به ذکر است که این جداسازی در سطح Database Engine انجام می گیرد و ما در دستورات T-SQL فقط و فقط با یک جدولِ کلی کار خواهیم کرد. این مسئولیت SQL Server است که داده ها را با توجه به Partiton شان پیدا کرده و یا ذخیره می کند.
به همین جهت می توانیم با Entity Framework هم از جداول Partitioned استفاده کنیم، چون این جداسازی از لایه Application پنهان می باشد.
* این تکنیک در شرایطی بهتر است استفاده شود که کوئری های ما به گونه ای نوشته شده اند که فقط لازم است داده ها از یک یا تعداد کمی پارتیشن خوانده شوند. مثلا شرکتی را در نظر بگیرید که هر ماه تعداد زیادی تراکنش داشته و در هر ماه گزارش گیری و تسویه مالیِ سنگینی را بر روی داده های همان ماه انجام می دهد. در این صورت با گزاردن فایل های هر ماه بر روی یک Partiton جدا به سرعت بسیار بالایی دست پیدا خواهیم کرد.
https://www.mssqltips.com/sql-server-tip-category/65/partitioning/
https://www.brentozar.com/archive/2012/03/how-decide-if-should-use-table-partitioning/
ویزارد:
https://www.mssqltips.com/sqlservertip/2856/sql-server-partition-wizard/
@irandotnet
پایگاه داده SQL Server روش های متعددی را به جهت Scale-Up کردن در اختیار ما قرار می دهد. یکی از این روش ها که برای بالابردن بهره وری و سرعت ذخیره و بازیابی داده ها استفاده می شود، استفاده از جداول خاصی به نام Partitioned Table ها می باشد. پیش از توضیح مطلب لازم به ذکر است که اساس این روش بر این فرضیه استوار است که یکی از مهمترین گلوگاه های کاراییِ پایگاه داده هارددیسک و مسائل مربوط به I/O می باشد. استفاده از این روش برای جداولی با تراکنش های بسیار بالا و با حجمی بیشتر از 50 گیگابایت توصیه می شود.
اساس این روش بر این استوار است که داده های یک جدول به جای قرار گرفتن در یک فایل، در چندین فایل پراکنده می شود. مثلا می توانیم داده ها را با توجه به ماه های سال تقسیم بندی کنیم و به ازای هر ماه یک Partition ایجاد کنیم. در نتیجه به جای تحمیل بار سیستم به یک فایل بزرگ و البته کند، ما چندین فایل با سایز های بسیار کوچک تر مواجه خواهیم بود.
این موجب خواهد شد که سرعت I/O افزایش پیدا کند، داده های مربوط به Indexing کوچک تر شده جستجو سریع تر خواهد شد. همچنین چون فایل های هر Partition جداست، می توانیم هر Partition در دیسکی مجزا قرار دهیم.
لازم به ذکر است که این جداسازی در سطح Database Engine انجام می گیرد و ما در دستورات T-SQL فقط و فقط با یک جدولِ کلی کار خواهیم کرد. این مسئولیت SQL Server است که داده ها را با توجه به Partiton شان پیدا کرده و یا ذخیره می کند.
به همین جهت می توانیم با Entity Framework هم از جداول Partitioned استفاده کنیم، چون این جداسازی از لایه Application پنهان می باشد.
* این تکنیک در شرایطی بهتر است استفاده شود که کوئری های ما به گونه ای نوشته شده اند که فقط لازم است داده ها از یک یا تعداد کمی پارتیشن خوانده شوند. مثلا شرکتی را در نظر بگیرید که هر ماه تعداد زیادی تراکنش داشته و در هر ماه گزارش گیری و تسویه مالیِ سنگینی را بر روی داده های همان ماه انجام می دهد. در این صورت با گزاردن فایل های هر ماه بر روی یک Partiton جدا به سرعت بسیار بالایی دست پیدا خواهیم کرد.
https://www.mssqltips.com/sql-server-tip-category/65/partitioning/
https://www.brentozar.com/archive/2012/03/how-decide-if-should-use-table-partitioning/
ویزارد:
https://www.mssqltips.com/sqlservertip/2856/sql-server-partition-wizard/
@irandotnet
Mssqltips
SQL Server Partitioning Tips
Learn about SQL Server Partitioning from these valuable tips, tutorials, how-to's, scripts, and more for SQL Server DBAs.
نحوه استفاده از الگوریتمهای Hash در .net core نسبت به .net تفاوتهای محسوسی کردهاست. پیادهسازی و API مربوط به عملیات امنیتی در .net core مجددا طراحی شدهاند. مقاله زیر به آزمایش و آموزش استفاده از این الگوریتمها پرداخته است. جالب است که این آزمایشها و آموزشها روی Ubuntu انجام شدهاند.
https://www.c-sharpcorner.com/article/hashing-passwords-in-net-core-with-tips
#مهران_داودی
لینکدین:
https://ir.linkedin.com/in/mehrandvd
کانال تلگرام:
@SoftwarePhilosophy
___
https://www.c-sharpcorner.com/article/hashing-passwords-in-net-core-with-tips
#مهران_داودی
لینکدین:
https://ir.linkedin.com/in/mehrandvd
کانال تلگرام:
@SoftwarePhilosophy
___
C-Sharpcorner
Hashing Passwords In .NET Core With Tips
In this article you will learn about how to hash passwords in .NET Core with tips.
«شما می توانید عناوبن را خرید و فروش کنید، در یک دوره کوتاه مدت شرکت کنید و یک واژه به عنوان شغلی خود اضافه کنید. اما نمی توانید تجربه را بخرید. تنها می توانید آن را بیاموزید». این جملات بخشی از بلاگ “Agile is Dead” است که در سال 2014 توسط یکی از تئوریسین هایAgile نوشته است. خواندن این مطلب هم برای عاشقان این متد و هم برای دیگر دوستان خالی از لطف نیست.
https://pragdave.me/blog/2014/03/04/time-to-kill-agile
#کاروان_جافی
لینکدین:
https://uk.linkedin.com/in/karvan-jafi-96897027
کانال تلگرام:
@SoftwarePhilosophy
___
https://pragdave.me/blog/2014/03/04/time-to-kill-agile
#کاروان_جافی
لینکدین:
https://uk.linkedin.com/in/karvan-jafi-96897027
کانال تلگرام:
@SoftwarePhilosophy
___
اگر تا به حال با ASP.NET Core RC1 کار میکردید و الان میخواهید با نسخه جدید یعنی RC2 کار کنید نیاز دارید به نسخه جدید مهاجرت کنید. مهاجرت به نسخه جدید معمولا از اینکه آن را از ابتدا نصب کنید سختتر است. لینک زیر به صورت قدم به قدم مراحل مهاجرت به نسخه جدید و شروع توسعه سیستم با آن را توضیح دادهاست.
https://ievangelist.github.io/blog/migrating-to-rc2
#مهران_داودی
لینکدین:
https://ir.linkedin.com/in/mehrandvd
کانال تلگرام:
@SoftwarePhilosophy
___
https://ievangelist.github.io/blog/migrating-to-rc2
#مهران_داودی
لینکدین:
https://ir.linkedin.com/in/mehrandvd
کانال تلگرام:
@SoftwarePhilosophy
___
Forwarded from Iran .Net
در مورد فرهنگ سازمانی، توسعه چابک و با کیفیت، ایجاد کشش های قوی بین تیم توسعه، سازمان و مشتری حرف های خوب و قشنگی می شود زد و با آن ها شعار داد. ما هم که مملکت شاعر مسلک و شعار زده ای هستیم و مستعد!
محیط کار و تمام اجزای تشکیل دهنده آن به نوعی نشان دهنده فرهنگ سازمانی حاکم می تواند باشد. از میز ها و محل کار کارکنان، فاصله فیزیکی کارکنان و تیم ها، فاصله طبقات و اتاق های مدیریت با واحد های دیگر گرفته تا وسایلی که در محیط قرار گرفته تا به نوعی چیدمان ساختمان را شکل دهند، همه و همه نشات گرفته از فرهنگ سازمانی هستند البته فرهنگ سازمانی هم از ساختار فیزیکی و اجزای فیزیکی ساختمان و محیط کار تاثیر خواهد پذیرفت.
اینکه چگونه چابک شویم، چگونه محیط کاری فراهم کنیم تا رضایت حداکثری کارکنان مان را جذب کنیم و بتوانیم با ایجاد حب و علاقه در کارکنان، فرهنگی را به وجود بیاوریم که همه سازمان به گونه ای یکپارچه خود را بپندارد و اهداف سازمان همان اهداف نفرات شود، کار دشواری است. مایکروسافت از معدود شرکت هایی است که چابکی یا Agility در سطح Enterprise پیاده سازی کرده است و معتقد است برای دستیابی به این اهداف، یکی از ضروریات معماری داخلی ساختمان و اجزا و امکانات موجود در محیط می باشد.
در ساختمان های 16 و 17 مقر Redmond که تیم های Cloud و Enterprise مایکروسافت قرار گرفته اند، معماری به غایت مدرنی به کار گرفته شده که می توانید تصاویر و توضیحات و چرایی ها را در مطلب زیر ببینید.
دقت کنید که در محیط کار مدرن مایکروسافت، یکی از اهداف سرعت در گردش اطلاعات و همکاری حداکثری می باشد. به همین خاطر محیط کار آن ها Office Free یا بدون اتاق می باشد و تیم های مختلف در محیط های بزرگی به نام "همسایگی و Neigboorhoods" در کنار هم قرار گرفته اند. همچنین مدیران و کارکنان تفاوتی در امکانات و فاصله فیزیکیِ محلِ کارشان با سایرین ندارند و همه کنار هم کار می کنند.
https://news.microsoft.com/stories/b16/
محیط کار و تمام اجزای تشکیل دهنده آن به نوعی نشان دهنده فرهنگ سازمانی حاکم می تواند باشد. از میز ها و محل کار کارکنان، فاصله فیزیکی کارکنان و تیم ها، فاصله طبقات و اتاق های مدیریت با واحد های دیگر گرفته تا وسایلی که در محیط قرار گرفته تا به نوعی چیدمان ساختمان را شکل دهند، همه و همه نشات گرفته از فرهنگ سازمانی هستند البته فرهنگ سازمانی هم از ساختار فیزیکی و اجزای فیزیکی ساختمان و محیط کار تاثیر خواهد پذیرفت.
اینکه چگونه چابک شویم، چگونه محیط کاری فراهم کنیم تا رضایت حداکثری کارکنان مان را جذب کنیم و بتوانیم با ایجاد حب و علاقه در کارکنان، فرهنگی را به وجود بیاوریم که همه سازمان به گونه ای یکپارچه خود را بپندارد و اهداف سازمان همان اهداف نفرات شود، کار دشواری است. مایکروسافت از معدود شرکت هایی است که چابکی یا Agility در سطح Enterprise پیاده سازی کرده است و معتقد است برای دستیابی به این اهداف، یکی از ضروریات معماری داخلی ساختمان و اجزا و امکانات موجود در محیط می باشد.
در ساختمان های 16 و 17 مقر Redmond که تیم های Cloud و Enterprise مایکروسافت قرار گرفته اند، معماری به غایت مدرنی به کار گرفته شده که می توانید تصاویر و توضیحات و چرایی ها را در مطلب زیر ببینید.
دقت کنید که در محیط کار مدرن مایکروسافت، یکی از اهداف سرعت در گردش اطلاعات و همکاری حداکثری می باشد. به همین خاطر محیط کار آن ها Office Free یا بدون اتاق می باشد و تیم های مختلف در محیط های بزرگی به نام "همسایگی و Neigboorhoods" در کنار هم قرار گرفته اند. همچنین مدیران و کارکنان تفاوتی در امکانات و فاصله فیزیکیِ محلِ کارشان با سایرین ندارند و همه کنار هم کار می کنند.
https://news.microsoft.com/stories/b16/
Microsoft
Productivity by design
Microsoft’s inspired new workspaces boost creativity and collaboration.
Forwarded from Software Philosophy
شرکت اوراکل اعلام کرد زمان ارائه Java 9 تا سال ۲۰۱۷ به تعویق انداخته شدهاست. علت این تصمیم پروژه Jigsaw اعلام شدهاست. هدف پروژه Jigsaw ماژولار کردن و شکستن JRE به Interoperable Components است. به این ترتیب با انجام این پروژه هر برنامه میتواند JRE شخصیسازی شدهتری داشته باشد که در نتیجه میتوان برنامههای جاوا را به راحتی به قطعات کوچک محساباتی Scale کرد که منجر به بهبود سرعت و امنیت میشود. در این زمینه Mark Reinhold معمار ارشد پلتفرم جاوا در شرکت اوراکل گفته است که برنامهنویسان علاقه بسیار زیادی به این رویکرد از طریق فیدبکها ارائه دادهاند.
https://blog.takipi.com/jigsaw-delays-push-java-9-launch-date-to-2017/
#مهران_داودی
لینکدین:
https://ir.linkedin.com/in/mehrandvd
کانال تلگرام:
@SoftwarePhilisophy
___
https://blog.takipi.com/jigsaw-delays-push-java-9-launch-date-to-2017/
#مهران_داودی
لینکدین:
https://ir.linkedin.com/in/mehrandvd
کانال تلگرام:
@SoftwarePhilisophy
___
Takipi Blog
Jigsaw Delays Push Java 9 Launch Date to 2017 | Takipi Blog
The Java 9 release date is postponed to 2017 because of delays in Project Jigsaw
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 کنید.