Software Philosophy
3.45K subscribers
160 photos
41 videos
1.54K links
چکیده‌ای از مفاهیم به روز مهندسی نرم افزار برای مهندسین نرم‌افزار.
معماری نوین نرم‌افزار، تکنولوژی‌های برنامه نویسی جدید
Download Telegram
Forwarded from SQL Server
در این بلاگ پست یادمیگیرد که چطور با کمترین هزینه و با استفاده از مقدار اضافی حافظه اصلی سرعت بازدهی بانکهای اطلاعاتی خود را به بیش از 40% افزایش بدید. حتما این مطلب را مطالعه کنید!
توجه: محتوای این بلاگ نباید در دوره های آموزشی گنجانده شود (البته دوره های آموزشی با هزینه) و استفاده از محتوای این بلاگ (ترجمه شده به هر زبان) با ذکر منبع موردی ندارد.
https://fard-solutions.com/boost-sql-server-performance-minimal-investment/

امیدوارم استفاده کامل را ببرید. سوالات خود را در گروه پرسش و پاسخ ما به آدرس زیر درمیان بگذارید
https://telegram.me/joinchat/BTQQtzy50j-IxIAOKHWwVg
همیشه نبودن قابلیت‌هایی مثل Variables, Functions, Mixins، دستورات شرطی و حلقه‌ها و… یا نبودن یک ساختار منسجم، توسعه دهنگان وب را آزار می‌داد تا اینکه تکنولوژی‌هایی به نام Preprocessor ها مانند LESS و SASS و Stylus و … معرفی شدند که دارای Syntax سوای از CSS بودند و از راه‌ها و Syntax های دیگری برای اضافه کردن این قابلیت‌ها استفاده می‌کنند.
برای رفع این مشکلات و حتی بهبود کدنویسی، PostCSS معرفی شد که به عنوان ابزاری برای تبدیل CSS شما به CSS بهینه‌تر به کمک Module هایی بر پایه JS شناخته می‌شود برای مثال کد شما را فشرده می‌کند، پیشوندهای مروگر را اضافه می‌کند، قابلیتهایی مثل متغیر ها و… را به شما می‌دهد، قابلیت‌هایی که در آینده به CSS اضافه خواهند شد را اکنون در اختیار شما قرار می‌دهد و ده‌ها قابلیت دیگر که همگی اینها به عهده Module ها می‌باشد.از جمله Module های معروف می‌توان به autoprefixer و stylelint اشاره کرد که انتظارات را از یک Preprocessor یا Postprocessor نیز فراتر می‌برد.
در مقاله زیر به شرح امکانات و ویژگی های دیگر PostCSS و همینطور شناخت دقیق‌تر آن پرداخته شده است.

https://julian.io/some-things-you-may-think-about-postcss-and-you-might-be-wrong

#محمدرضا_جلیلوند
لینکدین:
https://ir.linkedin.com/in/mohammad-reza-jalilvand-0a5572b1

کانال تلگرام:
@SoftwarePhilosophy

___
#پست_مجدد این پست تا به حال بیش از ۱۲۰۰ بار مشاهده شده و به نظر می‌رسد برای خوانندگان جدید کانال جذاب باشد.
Forwarded from Software Philosophy
در زبان SQL، درک منطق اجرای یک کوئری برای خطایابی و نوشتن کد بهینه از اهمیت بالایی برخوردار است. شاید تا‌کنون برای شما هم پیش آمده است که در هنگام نوشتن یک کوئری، از اینکه کوئری بر خلاف انتظارتان عمل می کند دچار سردرگمی شده باشید. مثلا اینکه چرا با وجود اینکه‌alias ‌ها را درSELECT Clause تعریف کرده اید، درWHERE Clause ‌ نمی‌توانید از آنها استفاده کنید.
درSQL ، کوئری به ترتیبی که دستورات آن نوشته می‌شود اجرا نمی‌شود، بلکه به ترتیب زیر است:
۱) FROM clause
۲) WHERE clause
۳) GROUP BY clause
۴) HAVING clause
۵) SELECT clause
۶) ORDER BY clause
۷) TOP
در طراحی زبان SQL، مِلاکِ ترتیب اجرای دستورات کوئری، شبیه بودن به زبان انگلیسی بوده است. فرض کنید که به شما گفته می‌شود :"برو از قفسه سوم کتابخانه، کتاب قمارباز را بیاور!". در این مثال مهم‌ترین بخش محل است، پس شما اول به کتابخانه می‌روید (FROM)، بعد قفسه‌های دیگر را فیلتر می کنید و نگاهتان در قفسه سوم به دنبال کتاب مورد نظر می‌گردد(WHERE) ‌و تازه در این قسمت کتابی که می‌خواهید را بیرون می‌کشید‌‌‌(SELECT) و به شخصی که آن را درخواست کرده می دهید.
در مقاله زیر درباره‌ی Logical Query Processing بیشتر بخوانید.

https://sqlmag.com/sql-server/logical-query-processing-what-it-and-what-it-means-you

#زهره_مرادی

لینکدین:
https://ir.linkedin.com/in/zohre-moradi

کانال تلگرام:
@SoftwarePhilosophy

___
یکی از مسائل مهمی که هر وبسایت نوپایی با آن مواجه است، شناخته شدن وبسایت توسط موتورهای جستجوگر یا همان search engine هاست.
به طور کلی باید گفت هرچقدر مطالب، موضوعات و متن وب سایت قویتر باشد، تعداد مراجعات به وبسایت و ارجاعات به سایت در شبکه‌های اجتماعی بیشتر خواهد بود و به این ترتیب است که موتورهای جستجوگر وبسایت شما را به عنوان سایتی که برای مردم جالب و جذاب است، می شناسند.
روش هایی برای بهبود فرایند گفته شده وجود دارد که به نام Search Engine Optimization یا همان SEO مرسوم شده‌اند.
سئو یا همانSEO، به مجموعه فعالیت‌هایی اطلاق می شود که در نتیجه آنها میتوان اطمینان داشت که نام وبسایت با جستجوی کلمات مرتبط با بیزنس و کاربری آن، در صفحات اصلی خروجی موتورهای جستجوگر وجود دارد.
مقاله زیر مجموعه فعالیت های SEO و روشهای آنرا شرح داده است.

https://www.wordstream.com/blog/ws/2012/01/17/seo-content-beginners-guide

#مریم_داودی

لینکدین:
https://www.linkedin.com/in/maryam-davoudi-7913565a

کانال تلگرام:
@SoftwarePhilosophy


___
#پست_مجدد این پست تا به حال بیش از ۱۱۰۰ بار مشاهده شده و به نظر می‌رسد برای خوانندگان جدید کانال جذاب باشد.
Forwarded from Software Philosophy
مفهوم Parameter Binding در ASP.NET Web Api وظفیه نگاشت و پر کردن پارامترهای مورد نیاز در متد تعریف شده به عنوان Action را دارد. این کار به وسیله اطلاعاتی که در پارامترها در URI و اطلاعاتی که در Body آمده‌است انجام می‌شود.
به صورت پیش‌فرض پارامترهای از نوع‌های پایه (int, string, …) از طریق URI پر می‌شوند و پارامترهای Complex از طریق Body ساخته می‌شود. برای تغییر این رویه روش‌های خاصی وجود دارد که در مقاله زیر به طور کامل توضیح داده شده‌است.

https://www.asp.net/web-api/overview/formats-and-model-binding/parameter-binding-in-aspnet-web-api

#مهران_داودی
لینکدین:
https://ir.linkedin.com/in/mehrandvd

کانال تلگرام:
@SoftwarePhilosophy

___
#خلاصه_مطالب «فلسفه نرم‌افزار» در هفته گذشته:

۱. تکنولوژی Xamarin.Forms برای ساخت برنامه‌های موبایل
#xamarin #mobile #crossplatform

https://telegram.me/SoftwarePhilosophy/561


۲. افزایش بازدهی سرعت بانک‌های اطلاعاتی با استفاده از حافظه اضافه (SQL Server)
#sqlserver

https://telegram.me/SoftwarePhilosophy/562


۳. امکانات و ویژگی‌های PostCSS
#css #postcss #less #sass

https://telegram.me/SoftwarePhilosophy/563


۴.مفهوم Logical Query Processing
#sql

https://telegram.me/SoftwarePhilosophy/565


۵. مفهوم SEO و عملکرد آن
#seo

https://telegram.me/SoftwarePhilosophy/566


۶. مفهوم Parameter Binding در ASP.NET Web Api
#webapi #aspnet

https://telegram.me/SoftwarePhilosophy/568


ـــــــــــ

@SoftwarePhilosophy
#پست_مجدد این پست تا به حال بیش از ۱۳۰۰ بار مشاهده شده و به نظر می‌رسد برای خوانندگان جدید کانال جذاب باشد.
Forwarded from Software Philosophy
برنامه نویس ارشد یا مدیر تیم شدن اتفاقی است که ممکن است برای هر برنامه نویسی پیش بیاید، اتفاقی جذاب و پر استرس. شما یک برنامه نویس خوب هستید، اما این لزوما به معنی توانایی بالا در ارتباط برقرار کردن با دیگران، مدیریت امور و رفع تناقض‌ها نیست. شما از این به بعد مسئولیت کل تیم را به عهده دارید که شامل افراد فنی و افراد غیر فنی است. مقاله زیر پنج نکته مفید در مورد یک مدیر فنی موثر را توضیح داده است.

https://www.thoughtworks.com/insights/blog/5-tips-being-effective-tech-lead

#کاروان_جافی

لینکدین:
https://uk.linkedin.com/in/karvan-jafi-96897027

کانال تلگرام:
@SoftwarePhilosophy

___
#پست_مجدد این پست تا به حال بیش از ۱۲۰۰ بار مشاهده شده و به نظر می‌رسد برای خوانندگان جدید کانال جذاب باشد.
Forwarded from Software Philosophy
ظهور فناوری‌های جدید در طراحی بازی‌های جدید کامپیوتری تاثیر زیادی دارد. یکی از مهمترین تغییراتی در حال متحول کردن بازی‌های کامپیوتری است، «واقعیت مجازی» یا حتی «واقعیت ساختگی‌» است. ویدئوی زیر یکی از بازی‌هایی را نشان می‌دهد که روی تخته سنگ واقعی که صخره نوردان از آن بالا می‌روند پیاده‌سازی شده‌است. این بازی از طریق یک Kinect سنگنورد را روی تخته سنگ شناسایی و دنبال می‌کند و در نهایت از طریق پروژکتور بازی را روی تخته سنگ نمایش می‌دهد. این سبک‌ بازی‌ها نشان می‌دهند که به راحتی می‌توان با یک زبان برنامه نویسی مانند C# به دستگاه Kinect وصل شد. برای خلق محصولات خاص و جدیدی مانند این بازی، می‌توانید از Kinect SDK استفاده کنید.

#مهران_داودی
لینکدین:
https://ir.linkedin.com/in/mehrandvd

کانال تلگرام:
@SoftwarePhilosophy

___
#پست_مجدد این پست تا به حال بیش از ۱۱۰۰ بار مشاهده شده و به نظر می‌رسد برای خوانندگان جدید کانال جذاب باشد.
Forwarded from Software Philosophy
پیش بینی می شود که تکنولوژی‌های واقعیت مجازی و واقعیت افزوده تا سال 2020 بتوانند 150 میلیارد دلار درآمد داشته باشند که بیشترین سهم را واقعیت مجازی یا Augmented Reality دارد. در نتیجه یادگیری استفاده از این تکنولوژی و یا تولید برنامه‌هایی برپایه این تکنولوژی به برنامه نویسان موبایل توصیه می‌شود. در این راستا خیلی از شرکت ها،SDK هایی برای سیستم عامل های Android و IOS تولید کرده اند که بین آن ها Wikitude از همه پر طرفدارتر بوده است. توضیحات تکمیلی و نسخه آزمایشی آن را می توانید در لینک زیر پیدا کنید.

https://www.wikitude.com/products/wikitude-sdk/

#کاروان_جافی

لینکدین:
https://uk.linkedin.com/in/karvan-jafi-96897027

کانال تلگرام:
@SoftwarePhilosophy

___
#پست_مجدد این پست تا به حال بیش از ۱۱۰۰ بار مشاهده شده و به نظر می‌رسد برای خوانندگان جدید کانال جذاب باشد.
Forwarded from Software Philosophy
فرایند رفع Bug و یکپارچه کردن آن با فرایند توسعه نرم‌افزار معمولا یکی از چالش‌هایی است که تیم‌های برنامه‌نویسی با آن مواجه می‌شوند. معمولا اسپرینت‌ها بر اساس نیازمندی‌ها برنامه‌ریزی می‌شوند) و باگ‌ها استثناهایی هستند که در اجرای معمولی اسپرینت اختلال ایجاد می‌کنند (در متدولوژی‌های مختلف نیازمندی به عنوان استوری یا Backlog یا Requirement شناخته می‌شود). در قبال یکپاچه کردن فرایند رفع باگ‌ها می‌توان از دو رویکرد استفاده کرد.
۱. در یک اسپرینت می‌توان با باگ‌ها همانند یک نیازمندی برخورد کرد.
۲. در اسپرینت می‌توان با باگ‌ها همانند تسک‌هایی برخورد کرد که مربوط به یک نیازمندی خاص هستند و اصولا هر باگ حتما باید به عنوان فرزند یک نیازمندی تعریف شود.

هرکدام از این روش‌ها مزایایی دارد. در لینک زیر این مفاهیم شرح داده‌شده و نمودار فرایند چرخش باگ در فرایند‌های Agile, Scrum و CMMI مقایسه شده است.

https://www.visualstudio.com/docs/work/backlogs/manage-bugs

#مهران_داودی
لینکدین:
https://ir.linkedin.com/in/mehrandvd

کانال تلگرام:
@SoftwarePhilosophy

___
Forwarded from Software Philosophy
اگر دوستانی دارید که نه تنها برنامه نویس هستند، بلکه اعتقاد دارید «مهندس نرم‌افزار» هم هستند، آنها را به کانال @SoftwarePhilosophy دعوت کنید.
این پیغام را برای آنها Forward کنید.
با توجه به افزایش استفاده از تلفن همراه بسیاری از افراد برای دستیابی به اطلاعات دنیای وب از تلفن همراه خود استفاده می‌کنند و آمار استفاده از موبایل روند صعودی خود را می‌پیماید. گوگل در اوایل سال 2016 یکی از ابزارهای جدید خود، به نام AMP(Accelerated Mobile Pages) را منتشر کرده است. هدف از ارائه این ابزار بهبود عملکرد صفحات وب حاوی متن, تصویر، فیلم، انیمیشن و…. در موبایل می‌باشد که در نتیجه آن سرعت لود صفحات در موبایل افزایش می‌یابد، خصوصا سایت‌هایی که دارای متن زیادی می‌باشند )مانند سایت‌های خبری.(
پروژه AMP یک فریم‌ورک جدید و متن باز است که به طور کامل از فناوری‌های موجود در وب ساخته شده است. این پروژه که به وسیله گوگل و توییتر انجام شده است، به برنامه نویسان کمک می کند صفحات HTML با حجم کم ایجاد کنند. شما به عنوان یک برنامه نویس فقط تگ‌های خاصی از HTML را می‌توانید استفاده کنید و مجاز به استفاده از همه تگ‌ها نیستید. همچنین شما فقط می‌توانید کدهای ساده CSS و آن‌هایی که دارای کاربرد بسیار هستند را استفاده کنید. استفاده از کدهای جاوا اسکریپت نیز در همه جا مجاز نمی‌باشد. در واقع AMP استاندارد خاصی را برای کدهای شما در نظر می‌گیرند و کدهایی که حجم صفحات را افزایش می‌دهد، به عنوان عامل غیرمجاز در نظر می‌گیرد.
با مراجعه به لینک زیر علاوه بر آشنایی بیشتر با این زیرساخت قدرتمند می‌توانید در راستای استاندارد کردن سایت خود بر مبنای AMP گام بردارید.

https://www.ampproject.org/docs/get_started/create

#محمدرضا_جلیلوند
لینکدین:
https://ir.linkedin.com/in/mohammad-reza-jalilvand-0a5572b1

کانال تلگرام:
@SoftwarePhilosophy

___
فریم ورک JoinJs یک کتابخانه جاوا اسکریپتی قوی برای ایجاد دیاگرام، چارت درختی، گراف و ... است. این کتابخانه با بکارگیریHTML5 و SVG، نمایش و ایجاد گراف به شکل های مختلف را فراهم کرده است.
لینک زیر، مربوط به همین کتابخانه بوده، که شامل دمو از قابلیت‌ها و آموزش نحوه استفاده از آن است.

https://jointjs.com/

#مریم_داودی

لینکدین:
https://www.linkedin.com/in/maryam-davoudi-7913565a

کانال تلگرام:
@SoftwarePhilosophy

___
#خلاصه_مطالب «فلسفه نرم‌افزار» در هفته گذشته:

۱. قابلیت‌های مهم یک مدیر فنی
#management #cto

https://telegram.me/SoftwarePhilosophy/571


۲. استفاده از واقعیت مجازی در ساخت بازی‌های کامپیوتری
#augmentedreality #kinectprogramming

https://telegram.me/SoftwarePhilosophy/574
https://telegram.me/SoftwarePhilosophy/573


۳. واقعیت مجازی و معرفی Wikitude
#augmentedreality

https://telegram.me/SoftwarePhilosophy/576


۴. رویکردهای مختلف فرآیند رفع باگ در چرخه توسعه نرم‌افزار
#softwareprocess #sdlc #bug

https://telegram.me/SoftwarePhilosophy/578


۵. فریم‌ورک AMP و فرآیند هماهنگ‌سازی سایت با مرورگرهای موبایل
#javascript #mobile

https://telegram.me/SoftwarePhilosophy/580


۶. معرفی فریم‌ورک JoinJS
#javascript #framework

https://telegram.me/SoftwarePhilosophy/582


ـــــــــــ

@SoftwarePhilosophy