انجمن فناوریهای حالت جامد JEDEC مشخصات نهایی استاندارد حافظه DDR5 SDRAM را منتشر کرد که نقطهی مهمی در تاریخ توسعهی حافظههای کامپیوتری محسوب میشود. DDR5 جدیدترین نسخه از استاندارد DDR محسوب میشود که از انتهای دههی ۱۹۹۰، وظیفهی سرعتبخشی به پردازشها را در انواع کامپیوترهای شخصی، سرور و دستههای گوناگون هر زیرمجموعه، بر عهده داشته است. استاندارد جدید، بار دیگر ظرفیتها و قابلیتهای DDR را افزایش میدهد و علاوه بر افزایش دوبرابری سرعت، ظرفیت آنها را نیز بهبود خواهد داد. سختافزارهایی که براساس استاندارد جدید تولید میشوند، احتمالا سال آینده به بازار میآیند و پیش از ورود به دنیای PC، ابتدا در دستهی سرور استفاده خواهند شد.
بزرگتر شدن حافظهها: حافظهی چگالتر و قابلیت ترکیب تراشههای بیشتر
ابتدا ظرفیت و چگالی را در استاندارد جدید بررسی میکنیم. همانطور که گفته شد، این تغییرات، شاخصترین بهبودها نسبت به DDR4 محسوب میشوند. DDR5 هم مانند نسلهای قبلی به گونهای طراحی شده است که سالها عمر داشته باشد. این استاندارد، چگالی ۶۴ گیگابیت را برای حافظههای تکی ممکن میکند که چهار برابر چگالی در نسل قبلی محسوب میشود. چگالی جدید در ترکیب با قابلیت Die-Dtacking که امکان استفاده از هشت قالب حافظه را در یک تراشهی تکی ممکن میکند، امکان ساخت یک LRDIMM با ۴۰ المان و ظرفیت حافظهی دو ترابایت را بههمراه خواهد داشت. اگرچه چنین ظرفیتی مورد نیاز همهی کاربران نیست، اما با استاندارد جدید میتوان انتظار داشت که پیکربندی مرسوم دو کاناله در کامپیوترهای شخصی، بالاخره ظرفیتی معادل ۱۲۸ گیگابایت را به مصرفکننده ارائه کند.
قطعا حداکثرهایی که در مشخصات DDR5 میبینیم، برای سالهای دور عمر این حافظه طراحی شدهاند. درواقع باید منتظر باشیم تا توانایی تولیدکنندههای تراشه، به نیازهای استاندارد نزدیک شود. درواقع تولیدکنندهها در مراحل اولیه برای ساختن DIMMها از تراشههای کنونی با چگالیهای هشت و ۱۶ گیگابیت استفاده خواهند کرد. درنتیجه اگرچه بهبود سرعت حافظهها با DDR5 به سرعت انجام میشود، اما برای مشاهدهی بهبود ظرفیت، باید چند سال منتظر بمانیم.
سریعتر شدن حافظهها: یک DIMM با دو کانال
افزایش پهنای باند حافظه، نکتهی مهم دیگر در مشخصات DDR5 به شمار میرود. بههرحال کاربران زیادی بهدنبال افزایش بهرهوری هستند و با افزایش ظرفیت حافظهها، سرعت نیز باید بهبود پیدا کند. سازمان استاندارد، تلاش زیادی برای بهبود در بخش سرعت داشت تا نیازها بهخوبی برطرف شوند.
سازمان JEDEC در DDR5 عملکردی ضربتیتر در افزایش مشخصات و قابلیتهای استاندارد داشت. عموما استانداردهای جدید کار خود را از جایی شروع میکنند که استاندارد قبلی حضور دارد. بهعنوان مثال، در انتقال از DDR3 به DDR4 شاهد بودیم که نسل جدید، از سرعت ۱/۶ گیگابیتبرثانیه شروع شد که نسل قبلی در آن متوقف شده بود. سازمان استاندارد برای DDR5 برنامههای جالبتری دارد و اولین نمونهها با سرعت ۴/۸ گیگابیتبرثانیه توسعه پیدا میکنند. یعنی شاهد افزایش سرعت ۵۰ درصدی در حافظههای اولیهی DDR5 خواهیم بود. در سالهای بعد هم سرعت بهمرور افزایش مییابد تا به حداکثر ۶/۴ گیگابایت، یعنی دوبرابر حداکثر سرعت کنونی DDR4 برسد. البته DDR4 اکنون در برخی موارد سرعتی بالاتر از سرعت رسمی ۳/۲ گیگاهرتز را ارائه میکند، درنتیجه شاید شروع DDR5 آنچنان هم بالاتر از استاندارد کنونی نباشد.
هدف مهم بهبود قابلیتهای سرعت، این بود که مقدار پهنای باند دردسترس در یک DIMM تکی، دوبرابر شود. به همین دلیل شرکتها قابلیت ارائهی حافظههایی بسیار بهینهتر خواهند داشت. شاید به همین خاطر باشد که SK Hynix، نقشهی راه خود را برای رسیدن به DDR5-8400، پایان دههی جاری تنظیم کرده است.
رسیدن به سرعتهای بالا نیاز به بهبودهای زیرساختی در هر دو بخش DIMM و باس حافظه دارد تا بتوان چنین حجم بالایی از داده را در هر چرخهی کلاک، جابهجا کرد. مشکل اصلی کنونی که همیشه در سرعتهای DRAM دیده میشود، از کمبود توسعه در نرخهای سرعت کلاک هسته در DRAM وجود دارد. بخش منطقی مدار مخصوص حافظه در مسیر سریعتر شدن قرار دارد و باسهای حافظه نیز سریعتر میشوند؛ اما DRAM مبتنی بر خازن و ترانزیستور که زیرساخت حافظههای مدرن را تشکیل میدهد، توانایی کار کردن در کلاکی فراتر از چند صد مگاهرتز را ندارد. درنتیجه برای استخراج سرعت بیشتر از یک قابل DRAM، نیاز به کارهای موازی متعددی بود که در DDR5 بهخوبی انجام شد.
تغییر اصلی برای بهبود حافظه را میتوان در رویکردی مشابه با LPDDR4 و GDDR6 مشاهده کرد که یک DIMM را به دو کانال میشکنند. درنتیجه، DDR5 بهجای یک کانال ۶۴ بیتی داده در هر DIMM، دو کانال ۳۲ بیتی استفاده میشود که با اضافه کردن ECC تا ۴۰ بیت هم میرسد. بهعلاوه، طول Burst برای هر کانال، از هشت بایت به ۱۶ بایت افزایش یافته است. به بیان ساده، هر کانال میتواند در هر عملیات، ۶۴ بایت داده ارائه کند. درنهایت DDR5 DIMM در مقایسه با DDR4 DIMM با درنظرگرفتن سرعتهای هستهی برابر، سرعت دوبرابری را در حافظه ارائه میکند. DDR5 در زمانیکه DDR4 DIMM یک عملیات ۶۴ بیتی را ارائه میکند، دو عملیات ارائه خواهد کرد و پهنای باندی مؤثر را دوبرابر میکند.
ابتدا ظرفیت و چگالی را در استاندارد جدید بررسی میکنیم. همانطور که گفته شد، این تغییرات، شاخصترین بهبودها نسبت به DDR4 محسوب میشوند. DDR5 هم مانند نسلهای قبلی به گونهای طراحی شده است که سالها عمر داشته باشد. این استاندارد، چگالی ۶۴ گیگابیت را برای حافظههای تکی ممکن میکند که چهار برابر چگالی در نسل قبلی محسوب میشود. چگالی جدید در ترکیب با قابلیت Die-Dtacking که امکان استفاده از هشت قالب حافظه را در یک تراشهی تکی ممکن میکند، امکان ساخت یک LRDIMM با ۴۰ المان و ظرفیت حافظهی دو ترابایت را بههمراه خواهد داشت. اگرچه چنین ظرفیتی مورد نیاز همهی کاربران نیست، اما با استاندارد جدید میتوان انتظار داشت که پیکربندی مرسوم دو کاناله در کامپیوترهای شخصی، بالاخره ظرفیتی معادل ۱۲۸ گیگابایت را به مصرفکننده ارائه کند.
قطعا حداکثرهایی که در مشخصات DDR5 میبینیم، برای سالهای دور عمر این حافظه طراحی شدهاند. درواقع باید منتظر باشیم تا توانایی تولیدکنندههای تراشه، به نیازهای استاندارد نزدیک شود. درواقع تولیدکنندهها در مراحل اولیه برای ساختن DIMMها از تراشههای کنونی با چگالیهای هشت و ۱۶ گیگابیت استفاده خواهند کرد. درنتیجه اگرچه بهبود سرعت حافظهها با DDR5 به سرعت انجام میشود، اما برای مشاهدهی بهبود ظرفیت، باید چند سال منتظر بمانیم.
سریعتر شدن حافظهها: یک DIMM با دو کانال
افزایش پهنای باند حافظه، نکتهی مهم دیگر در مشخصات DDR5 به شمار میرود. بههرحال کاربران زیادی بهدنبال افزایش بهرهوری هستند و با افزایش ظرفیت حافظهها، سرعت نیز باید بهبود پیدا کند. سازمان استاندارد، تلاش زیادی برای بهبود در بخش سرعت داشت تا نیازها بهخوبی برطرف شوند.
سازمان JEDEC در DDR5 عملکردی ضربتیتر در افزایش مشخصات و قابلیتهای استاندارد داشت. عموما استانداردهای جدید کار خود را از جایی شروع میکنند که استاندارد قبلی حضور دارد. بهعنوان مثال، در انتقال از DDR3 به DDR4 شاهد بودیم که نسل جدید، از سرعت ۱/۶ گیگابیتبرثانیه شروع شد که نسل قبلی در آن متوقف شده بود. سازمان استاندارد برای DDR5 برنامههای جالبتری دارد و اولین نمونهها با سرعت ۴/۸ گیگابیتبرثانیه توسعه پیدا میکنند. یعنی شاهد افزایش سرعت ۵۰ درصدی در حافظههای اولیهی DDR5 خواهیم بود. در سالهای بعد هم سرعت بهمرور افزایش مییابد تا به حداکثر ۶/۴ گیگابایت، یعنی دوبرابر حداکثر سرعت کنونی DDR4 برسد. البته DDR4 اکنون در برخی موارد سرعتی بالاتر از سرعت رسمی ۳/۲ گیگاهرتز را ارائه میکند، درنتیجه شاید شروع DDR5 آنچنان هم بالاتر از استاندارد کنونی نباشد.
هدف مهم بهبود قابلیتهای سرعت، این بود که مقدار پهنای باند دردسترس در یک DIMM تکی، دوبرابر شود. به همین دلیل شرکتها قابلیت ارائهی حافظههایی بسیار بهینهتر خواهند داشت. شاید به همین خاطر باشد که SK Hynix، نقشهی راه خود را برای رسیدن به DDR5-8400، پایان دههی جاری تنظیم کرده است.
رسیدن به سرعتهای بالا نیاز به بهبودهای زیرساختی در هر دو بخش DIMM و باس حافظه دارد تا بتوان چنین حجم بالایی از داده را در هر چرخهی کلاک، جابهجا کرد. مشکل اصلی کنونی که همیشه در سرعتهای DRAM دیده میشود، از کمبود توسعه در نرخهای سرعت کلاک هسته در DRAM وجود دارد. بخش منطقی مدار مخصوص حافظه در مسیر سریعتر شدن قرار دارد و باسهای حافظه نیز سریعتر میشوند؛ اما DRAM مبتنی بر خازن و ترانزیستور که زیرساخت حافظههای مدرن را تشکیل میدهد، توانایی کار کردن در کلاکی فراتر از چند صد مگاهرتز را ندارد. درنتیجه برای استخراج سرعت بیشتر از یک قابل DRAM، نیاز به کارهای موازی متعددی بود که در DDR5 بهخوبی انجام شد.
تغییر اصلی برای بهبود حافظه را میتوان در رویکردی مشابه با LPDDR4 و GDDR6 مشاهده کرد که یک DIMM را به دو کانال میشکنند. درنتیجه، DDR5 بهجای یک کانال ۶۴ بیتی داده در هر DIMM، دو کانال ۳۲ بیتی استفاده میشود که با اضافه کردن ECC تا ۴۰ بیت هم میرسد. بهعلاوه، طول Burst برای هر کانال، از هشت بایت به ۱۶ بایت افزایش یافته است. به بیان ساده، هر کانال میتواند در هر عملیات، ۶۴ بایت داده ارائه کند. درنهایت DDR5 DIMM در مقایسه با DDR4 DIMM با درنظرگرفتن سرعتهای هستهی برابر، سرعت دوبرابری را در حافظه ارائه میکند. DDR5 در زمانیکه DDR4 DIMM یک عملیات ۶۴ بیتی را ارائه میکند، دو عملیات ارائه خواهد کرد و پهنای باندی مؤثر را دوبرابر میکند.
🛑 مژده مژده مژده 🛑
با عرض سلام و احترام خدمت یکایک شما دوستان خوب و همراهان عزیز
با عنایت به شرایط سخت اقتصادی، تحریمهای ظالمانه و حضور مهمان ناخواندهای به نام ویروس کرونا و غیره، شاید بد نباشد که هر یک از ما، قدم کوچکی برای یاری رساندن به هموطنان عزیزمان برداریم. از این رو اینجانب تصمیم گرفتم که دو مجموعه از فیلمهای آموزشی خود را به نامهای Angular و Vue.js، به صورت کاملا رایگان در اختیار شما بزرگواران قرار دهم.
امیدوارم که این دو مجموعه که هر کدام به ترتیب، حاصل ۵ و ۳ سال مطالعه و تدریس و کار عملی میباشد، برای شما عزیزان مفید بوده و از آنها نهایت استفاده و بهره را ببرید.
ارادتمند شما
داریوش تصدیقی
@Dariush_Tasdighi
نشانی گروه آموزشی Vue.js
@DTX_LEARNING_VUE
https://t.iss.one/DTX_LEARNING_VUE
نشانی گروه آموزشی Angular
@DTX_LEARNING_ANGULAR
https://t.iss.one/DTX_LEARNING_ANGULAR
نشانی وبلاگ
https://virgool.io/@dariush-tasdighi
نشانی گروه اصلی
@IranianExperts
بنی آدم اعضای یکدیگرند
که در آفرینش ز یک گوهرند
چو عضوی به درد آورد روزگار
دگر عضوها را نماند قرار
تو کز محنت دیگران بی غمی
نشاید که نامت نهند آدمی
🌺🌺🙏🙏👍👍🌸🌸
با عرض سلام و احترام خدمت یکایک شما دوستان خوب و همراهان عزیز
با عنایت به شرایط سخت اقتصادی، تحریمهای ظالمانه و حضور مهمان ناخواندهای به نام ویروس کرونا و غیره، شاید بد نباشد که هر یک از ما، قدم کوچکی برای یاری رساندن به هموطنان عزیزمان برداریم. از این رو اینجانب تصمیم گرفتم که دو مجموعه از فیلمهای آموزشی خود را به نامهای Angular و Vue.js، به صورت کاملا رایگان در اختیار شما بزرگواران قرار دهم.
امیدوارم که این دو مجموعه که هر کدام به ترتیب، حاصل ۵ و ۳ سال مطالعه و تدریس و کار عملی میباشد، برای شما عزیزان مفید بوده و از آنها نهایت استفاده و بهره را ببرید.
ارادتمند شما
داریوش تصدیقی
@Dariush_Tasdighi
نشانی گروه آموزشی Vue.js
@DTX_LEARNING_VUE
https://t.iss.one/DTX_LEARNING_VUE
نشانی گروه آموزشی Angular
@DTX_LEARNING_ANGULAR
https://t.iss.one/DTX_LEARNING_ANGULAR
نشانی وبلاگ
https://virgool.io/@dariush-tasdighi
نشانی گروه اصلی
@IranianExperts
بنی آدم اعضای یکدیگرند
که در آفرینش ز یک گوهرند
چو عضوی به درد آورد روزگار
دگر عضوها را نماند قرار
تو کز محنت دیگران بی غمی
نشاید که نامت نهند آدمی
🌺🌺🙏🙏👍👍🌸🌸
Telegram
DTX_LEARNING_VUE
Learning VUE.JS 2.x
چشمانداز سامسونگ از6G سرعت ۱۰۰۰ گیگابیت بر ثانیه و استریم 16K
کمپانی سامسونگ گزارشی منتشر کرده که بیانگر چشم انداز کرهایها در زمینه توسعه و طراحی فناوری ارتباطی 6G است؛ آنها میخواهند به سرعت دانلود ۱۰۰۰ گیگابیت بر ثانیه، و تاخیر زیر ده میلی ثانیه دست یابند.
تکنولوژی 5G در حال حاضر در برخی مناطق جهان در دسترس قرار گرفته است اما هنوز خیلی از کشورها از آن محروم هستند. با این حال سامسونگ از همین حالا به فکر نسل بعدی یعنی 6G است و در گزارشی از چشم اندازش در این رابطه و قابلیت های مخابراتی آن صحبت کرده است.
بر این اساس سامسونگ قصد دارد فرآیند توسعه و کار روی 6G را از سال ۲۰۲۱ آغاز کند؛ طبق چشمانداز آنها فناوری جدید ارتباطی پیش از پایان دهه جاری میلادی آماده بهرهبرداری خواهد شد. «با توجه به فرآیند توسعهای که این تکنولوژی با همراهی استانداردهای فنی میطلبد، دستیابی به استاندارد 6G و بهرهبرداری از آن ممکن است تا سال ۲۰۲۸ نهایی شود، و در نهایت در سال ۲۰۳۰ فراگیری کامل داشته باشد».
https://dgto.ir/1rk2
کمپانی سامسونگ گزارشی منتشر کرده که بیانگر چشم انداز کرهایها در زمینه توسعه و طراحی فناوری ارتباطی 6G است؛ آنها میخواهند به سرعت دانلود ۱۰۰۰ گیگابیت بر ثانیه، و تاخیر زیر ده میلی ثانیه دست یابند.
تکنولوژی 5G در حال حاضر در برخی مناطق جهان در دسترس قرار گرفته است اما هنوز خیلی از کشورها از آن محروم هستند. با این حال سامسونگ از همین حالا به فکر نسل بعدی یعنی 6G است و در گزارشی از چشم اندازش در این رابطه و قابلیت های مخابراتی آن صحبت کرده است.
بر این اساس سامسونگ قصد دارد فرآیند توسعه و کار روی 6G را از سال ۲۰۲۱ آغاز کند؛ طبق چشمانداز آنها فناوری جدید ارتباطی پیش از پایان دهه جاری میلادی آماده بهرهبرداری خواهد شد. «با توجه به فرآیند توسعهای که این تکنولوژی با همراهی استانداردهای فنی میطلبد، دستیابی به استاندارد 6G و بهرهبرداری از آن ممکن است تا سال ۲۰۲۸ نهایی شود، و در نهایت در سال ۲۰۳۰ فراگیری کامل داشته باشد».
https://dgto.ir/1rk2
دیجیاتو
چشمانداز سامسونگ از 6G: سرعت ۱۰۰۰ گیگابیت بر ثانیه و استریم 16K
کمپانی سامسونگ گزارشی منتشر کرده که بیانگر چشم انداز کرهایها در زمینه توسعه و طراحی فناوری ارتباطی 6G است؛ آنها میخواهند به سرعت دانلود ۱۰۰۰...
#SqlServer, #Storage
❇ذخیرهسازی فایل در دیتابیس
با چه روشی انجام شود؟
varbinary?
file table?
...
حجم اطلاعات زیاد هستش
روش بهینه برای ذخیرهسازی چه روشی ست؟
برای نگهداری دادهای LOB یعنی CLOB ها و BLOB ها روشهای مختلفی وجود داره.
تعریف BLOB: مخفف Binary Large Object هست مانند Image
تعریف CLOB: مخفف Character Large Obeject هست مانند Text
اولین روش این هستش که ما مستقیماً داده رو در خود SQL در قالب یک فیلد از نوع VarBinary- XML-Nvarchar(MAX) و... ذخیره کنیم. اولین قوت این روش این هستش که کنترل مواردی مانند امنیت، جستجو، پشتیبانی Backup، عملیات مربوط به تراکنش و لغو آن و ... بر عهده خود SQL میباشد
اما نقاط ضعف این روش:
افزایش حجم LOGT - محدودیت حجم ۲ گیگابایت - وجود Fragmentation - استفاده زیاد از Buffer pool و Ram سیستم و ...
یکی از روشهای رایج دیگر نگهداری فایل، خارج از دیتابیس میباشد. که معمولاً اصل فایل (مثلاً تصویر) رو در یک پوشه خاص ذخیره میکنند و آدرس اون رو در یک فیلد از نوع Varchar یا Nvarchat نگهداری میکنند. در این روش کاهش Fragmentation - عدم استفاده از Buffer Pool - افزایش حجم ذخیرهسازی به اندازه دیسک و ... جزو مزیتها میباشد
نقاط ضعف این روش:
در این روش SQL هیچ کنترلی روی این فایل نداره. مثلاً در زمان بک آپ گیری از دیتابیس، از این پوشه بک آپی گرفته نمی شه و کنترل مواردی مانند امنیت و تراکنشها بر عهده SQL نمیباشد. به دلیل درگیری بین SQL و NTFS، دارای کد نویسی پیچیده میباشد و ....
و
اما یکی از روشهای بسیار مناسب Filestream میباشد که از نسخه 2008 ارائه شد و مزیتهای دو روش اشاره شده دارا میباشد. راهاندازی FileStream نیازمند تنظیمات سطح سرور و سطح Instance میباشد.
در ادامه به یک سؤال مهم جواب میدهیم:
چه زمانی برای ذخیرهسازی اطلاعات از Filestream استفاده کنیم؟؟
پاسخ:
در تئوری گفته شده است که برای دادههای با حجم بیش از یک مگابایت اما در عمل برای دادههای با حجم بیش از ۲۵۶KB و برای دادههای با حجم کمتر از ۲۵۶KB نوع Nvarchar (MAX) مناسبتر میباشد.
و اما ساختار دیگری که میتوان از آن برای نگهداری فایلها استفاده کرد File Table میباشد که از نسخه ۲۰۱۲ معرفی شد. در واقع متوان به این صورت گفت که File Table از همکاری بین File Stream و نوع دادهای Hierachy ایجاد شده است. در واقع با ایجاد FileTable ارتباط بین SQL, Ntfs رو برقرار کردهایم. به این معنا که با حذف فایل از SQL، اطلاعات این فایل از NTFS نیز حذف میشود و با تغییر محل فایل در SQL، این تغییر مکان در NTFS نیز اعمال میشود.
محسن بندامیر
@Mohsen_Bandamir
کانال تخصصی SqlServer
@SQLSERVER_professional
✅ آشنایی با قابلیت FileStream اس کیوال سرور
https://www.dotnettips.info/post/331/
https://www.dotnettips.info/post/332/
https://www.dotnettips.info/post/333/
❇ذخیرهسازی فایل در دیتابیس
با چه روشی انجام شود؟
varbinary?
file table?
...
حجم اطلاعات زیاد هستش
روش بهینه برای ذخیرهسازی چه روشی ست؟
برای نگهداری دادهای LOB یعنی CLOB ها و BLOB ها روشهای مختلفی وجود داره.
تعریف BLOB: مخفف Binary Large Object هست مانند Image
تعریف CLOB: مخفف Character Large Obeject هست مانند Text
اولین روش این هستش که ما مستقیماً داده رو در خود SQL در قالب یک فیلد از نوع VarBinary- XML-Nvarchar(MAX) و... ذخیره کنیم. اولین قوت این روش این هستش که کنترل مواردی مانند امنیت، جستجو، پشتیبانی Backup، عملیات مربوط به تراکنش و لغو آن و ... بر عهده خود SQL میباشد
اما نقاط ضعف این روش:
افزایش حجم LOGT - محدودیت حجم ۲ گیگابایت - وجود Fragmentation - استفاده زیاد از Buffer pool و Ram سیستم و ...
یکی از روشهای رایج دیگر نگهداری فایل، خارج از دیتابیس میباشد. که معمولاً اصل فایل (مثلاً تصویر) رو در یک پوشه خاص ذخیره میکنند و آدرس اون رو در یک فیلد از نوع Varchar یا Nvarchat نگهداری میکنند. در این روش کاهش Fragmentation - عدم استفاده از Buffer Pool - افزایش حجم ذخیرهسازی به اندازه دیسک و ... جزو مزیتها میباشد
نقاط ضعف این روش:
در این روش SQL هیچ کنترلی روی این فایل نداره. مثلاً در زمان بک آپ گیری از دیتابیس، از این پوشه بک آپی گرفته نمی شه و کنترل مواردی مانند امنیت و تراکنشها بر عهده SQL نمیباشد. به دلیل درگیری بین SQL و NTFS، دارای کد نویسی پیچیده میباشد و ....
و
اما یکی از روشهای بسیار مناسب Filestream میباشد که از نسخه 2008 ارائه شد و مزیتهای دو روش اشاره شده دارا میباشد. راهاندازی FileStream نیازمند تنظیمات سطح سرور و سطح Instance میباشد.
در ادامه به یک سؤال مهم جواب میدهیم:
چه زمانی برای ذخیرهسازی اطلاعات از Filestream استفاده کنیم؟؟
پاسخ:
در تئوری گفته شده است که برای دادههای با حجم بیش از یک مگابایت اما در عمل برای دادههای با حجم بیش از ۲۵۶KB و برای دادههای با حجم کمتر از ۲۵۶KB نوع Nvarchar (MAX) مناسبتر میباشد.
و اما ساختار دیگری که میتوان از آن برای نگهداری فایلها استفاده کرد File Table میباشد که از نسخه ۲۰۱۲ معرفی شد. در واقع متوان به این صورت گفت که File Table از همکاری بین File Stream و نوع دادهای Hierachy ایجاد شده است. در واقع با ایجاد FileTable ارتباط بین SQL, Ntfs رو برقرار کردهایم. به این معنا که با حذف فایل از SQL، اطلاعات این فایل از NTFS نیز حذف میشود و با تغییر محل فایل در SQL، این تغییر مکان در NTFS نیز اعمال میشود.
محسن بندامیر
@Mohsen_Bandamir
کانال تخصصی SqlServer
@SQLSERVER_professional
✅ آشنایی با قابلیت FileStream اس کیوال سرور
https://www.dotnettips.info/post/331/
https://www.dotnettips.info/post/332/
https://www.dotnettips.info/post/333/
.NET Tips
آشنایی با قابلیت FileStream اس کیوال سرور 2008 - قسمت اول
مطلبی چندی قبل در مورد "ذخیره سازی فایلها در دیتابیس یا استفاده از فایل سیستم متداول؟" منتشر گردید، جهت برشمردن فواید ذخیره سازی فایلها در دیتابیس (+). اما معایب این نوع ذخیره سازی بررسی نشدند:الف) اختصاص یافتن قسمتی از بافر SQL Server به این امر.ب) با…
کدی برای 1000 سال بعد
به تازگی گیتهاب برچسب هایی بین کاربران پخش میکند مبنی بر اینکه در پروژه Arctic Code Vault مشارکت کرده اند. بر اساس این پروژه گیتهاب در تاریخ 02/02/2020 (5 ماه پیش) سورس همه پروژه های عمومی گیتهاب را در قطب شمال و در عمق 250 متری از سطح زمین دفن کرده است. این پروژه با هدف آرشیو و حفظ کدها برای آیندگان راه اندازی شده است.
گیتهاب با همکاری چند شرکت و سازمان تصمیم دارد به صورت جدی سورس نرم افزارهای امروز را برای آیندگان حفظ کند. نگه داری اطلاعات در هوای سرد قطب شمال می تواند طول عمر آنها را تا 1000 سال افزایش دهد. اطلاعات در منطقه Svalbard نگه داری میشود که دور از دسترس عمومی است و طبق تعهدنامه جهانی باید غیر نظامی بماند. هر چند تغییرات آب و هوا ممکن است باعث آب شدن یخ ها شود اما بعید به نظر میرسد این تغییرات در عمق 250 متری اثر گذار باشد.
پروژه بعدی SILICA است که با همکاری تیم تحقیقاتی مایکروسافت انجام میشود. قرار است سورس ها روی کریستال های Quartz حک شود که طول عمر آنها را تا 10 هزار سال افزایش میدهد.
https://archiveprogram.github.com/
به تازگی گیتهاب برچسب هایی بین کاربران پخش میکند مبنی بر اینکه در پروژه Arctic Code Vault مشارکت کرده اند. بر اساس این پروژه گیتهاب در تاریخ 02/02/2020 (5 ماه پیش) سورس همه پروژه های عمومی گیتهاب را در قطب شمال و در عمق 250 متری از سطح زمین دفن کرده است. این پروژه با هدف آرشیو و حفظ کدها برای آیندگان راه اندازی شده است.
گیتهاب با همکاری چند شرکت و سازمان تصمیم دارد به صورت جدی سورس نرم افزارهای امروز را برای آیندگان حفظ کند. نگه داری اطلاعات در هوای سرد قطب شمال می تواند طول عمر آنها را تا 1000 سال افزایش دهد. اطلاعات در منطقه Svalbard نگه داری میشود که دور از دسترس عمومی است و طبق تعهدنامه جهانی باید غیر نظامی بماند. هر چند تغییرات آب و هوا ممکن است باعث آب شدن یخ ها شود اما بعید به نظر میرسد این تغییرات در عمق 250 متری اثر گذار باشد.
پروژه بعدی SILICA است که با همکاری تیم تحقیقاتی مایکروسافت انجام میشود. قرار است سورس ها روی کریستال های Quartz حک شود که طول عمر آنها را تا 10 هزار سال افزایش میدهد.
https://archiveprogram.github.com/
روز جمعه، بسیاری از وبسایتها و سرویسهای بزرگ اینترنتی برای چند دقیقه با مشکل و اختلال جدی روبهرو شدند و دلیل آن نیز مشکلی بود که در سرویس Cloudflare 1.1.1.1 DNS رخ داد. گزارشها میگویند اختلال به مدت ۲۵ دقیقه طول کشید و سپس اتصالها به وضعیت عادی برگشتند. برخی هم ادعا میکنند که احتمالا Google DNS هم دچار مشکل شده باشد.
متیو پرینس، مدیرعامل کلادفلر در همان دقایق اولیه پس از برقراری اتصال اعلام کرد که مشکل از روتری معیوب در آتلانتا ایجاد شده است. او در توییتر نوشت: «ما مشکلی داشتیم که بخشی از شبکهی کلادفر را با اختلال روبهرو کرد. ظاهرا روتری در آتلانتا دچار اختلال شد که مسیریابی اتصال شبکه را با مشکل روبهرو کرد. همین روتر باعث شد تا ترافیک به سمت PoPهای متصل به زیرساخت ما با مشکل روبهرو شود». کلادفلر همچنین بیانیهای ایمیلی ارسال کرد که در آن، روی عدم حمله به سیستمها تأکید شده بود.
کلادفلر در بیانیهای که برای شفافسازی پیرامون اختلال در شبکهی خود منتشر کرده بود، نوشت:
امروز بعدازظهر شاهد اختلال و قطعی در بخشهایی از شبکهی خود بودیم. این اختلال بهخاطر حمله یا نفوذ سایبری رخ نداده است. ظاهرا روتری در زیرساخت جهانی ما مسیریابی اشتباه انجام داده و منجر به خارج شدن بخشی از شبکه از دسترس شده است. مشکل ریشهای را کشف کردیم و اکنون سیستمها در حالت پایدار و تحت نظارت کامل قرار دارند. بهزودی اطلاعات بیشتری پیرامون مشکل منتشر میکنیم. هماکنون یک گروه اختصاصی مشغول نگارش اطلاعات بهروزرسانی پیرامون اختلال هستند.
از سرویسهایی که از اختلال کلادفلر ضربه خوردند میتوان به Discord, Feedly, Politico, Shopify و League of Legends اشاره کرد که گسترهی اختلال را بهخوبی نشان میدهد. نهتنها وبسایتهای متعددی بهخاطر اختلال پیشآمده با قطعی روبهرو شدند، بلکه برخی از سرویسهای اعلام وضعیت قطعی اینترنت هم چالشهایی را تجربه کردند
متیو پرینس، مدیرعامل کلادفلر در همان دقایق اولیه پس از برقراری اتصال اعلام کرد که مشکل از روتری معیوب در آتلانتا ایجاد شده است. او در توییتر نوشت: «ما مشکلی داشتیم که بخشی از شبکهی کلادفر را با اختلال روبهرو کرد. ظاهرا روتری در آتلانتا دچار اختلال شد که مسیریابی اتصال شبکه را با مشکل روبهرو کرد. همین روتر باعث شد تا ترافیک به سمت PoPهای متصل به زیرساخت ما با مشکل روبهرو شود». کلادفلر همچنین بیانیهای ایمیلی ارسال کرد که در آن، روی عدم حمله به سیستمها تأکید شده بود.
کلادفلر در بیانیهای که برای شفافسازی پیرامون اختلال در شبکهی خود منتشر کرده بود، نوشت:
امروز بعدازظهر شاهد اختلال و قطعی در بخشهایی از شبکهی خود بودیم. این اختلال بهخاطر حمله یا نفوذ سایبری رخ نداده است. ظاهرا روتری در زیرساخت جهانی ما مسیریابی اشتباه انجام داده و منجر به خارج شدن بخشی از شبکه از دسترس شده است. مشکل ریشهای را کشف کردیم و اکنون سیستمها در حالت پایدار و تحت نظارت کامل قرار دارند. بهزودی اطلاعات بیشتری پیرامون مشکل منتشر میکنیم. هماکنون یک گروه اختصاصی مشغول نگارش اطلاعات بهروزرسانی پیرامون اختلال هستند.
از سرویسهایی که از اختلال کلادفلر ضربه خوردند میتوان به Discord, Feedly, Politico, Shopify و League of Legends اشاره کرد که گسترهی اختلال را بهخوبی نشان میدهد. نهتنها وبسایتهای متعددی بهخاطر اختلال پیشآمده با قطعی روبهرو شدند، بلکه برخی از سرویسهای اعلام وضعیت قطعی اینترنت هم چالشهایی را تجربه کردند
دسترسی به اینترنت ماهوارهای استارلینک اسپیس ایکس به زودی ممکن میشود
اینترنت استارلینک (Starlink) پروژهای جنجالی و شگفتانگیز از کمپانی هوافضای اسپیس ایکس بوده که به زودی اینترنت ماهوارهای را برای تمامی ساکنان کره زمین فراهم خواهد کرد.
کمپانی هوافضای معروف و موفق اسپیس ایکس (SpaceX) از مدتی پیش مشغول کار روی پروژه اینترنت استارلینک (Starlink) بوده که از طریق ماهوارههای متعددی در فضا، دسترسی به اینترنت را برای تمامی ساکنان زمین فراهم میکند. در همین رابطه، اخبار جالبی در مورد عملی شدن پروژه مورد نظر و دسترسی به این اینترنت ماهوارهای منتشر شده است.
اسپیس ایکس تاکنون بیش از ۶۰۰ ماهواره را برای پروژه استارلینک وارد مدار زمین کرده و اخبار جدید نشان میدهند که یک ورژن بتا و ابتدایی از اینترنت ماهوارهای اسپیس ایکس در همین تابستان، به صورت خصوصی و آزمایشی مورد استفاده قرار میگیرد.
فراتر از آزمایشهای داخلی، اینترنت استارلینک تاکنون توسط عموم مردم و یا علاقهمندان دیگر به کار گرفته نشده و با اینکه از مدتی پیش مشتریان این شبکه اینترنت ماهوارهای با کد زیپ مناطق سکونت خود در ثبتنامهای اسپیس ایکس در این رابطه شرکت کردهاند، همچنان سرویس پولی و قابل خریدی در اختیار مردم قرار نگرفته است.
با این وجود، بر اساس گزارشهای منتشر شده اسپیس ایکس در حال نزدیک شدن به بهرهبرداری عمومی از استارلینک بوده و اخیرا به تمامی کاربرانی که در گذشته با کد زیپ منطقه خود ثبت نام کرده بودند، ایمیلی برای درخواست اطلاعات مکانی بیشتر و جزئیات آدرس مشتریان آینده از طرف این کمپانی هوافضای خصوصی ارسال شده است. گفته شده که پس از موفقیت آزمایش ورژن بتای اینترنت استارلینک در این تابستان، یک ورژن بتای عمومی هم مورد آزمایش قرار خواهد گرفت و در صورت درست پیش رفتن اوضاع، اینترنت ماهوارهای اسپیس ایکس بخشی از زندگی روزمره ساکنان زمین خواهد شد.
https://www.slashgear.com/starlink-satellite-internet-beta-imminent-as-elon-musk-confirms-dish-details-15629132/
اینترنت استارلینک (Starlink) پروژهای جنجالی و شگفتانگیز از کمپانی هوافضای اسپیس ایکس بوده که به زودی اینترنت ماهوارهای را برای تمامی ساکنان کره زمین فراهم خواهد کرد.
کمپانی هوافضای معروف و موفق اسپیس ایکس (SpaceX) از مدتی پیش مشغول کار روی پروژه اینترنت استارلینک (Starlink) بوده که از طریق ماهوارههای متعددی در فضا، دسترسی به اینترنت را برای تمامی ساکنان زمین فراهم میکند. در همین رابطه، اخبار جالبی در مورد عملی شدن پروژه مورد نظر و دسترسی به این اینترنت ماهوارهای منتشر شده است.
اسپیس ایکس تاکنون بیش از ۶۰۰ ماهواره را برای پروژه استارلینک وارد مدار زمین کرده و اخبار جدید نشان میدهند که یک ورژن بتا و ابتدایی از اینترنت ماهوارهای اسپیس ایکس در همین تابستان، به صورت خصوصی و آزمایشی مورد استفاده قرار میگیرد.
فراتر از آزمایشهای داخلی، اینترنت استارلینک تاکنون توسط عموم مردم و یا علاقهمندان دیگر به کار گرفته نشده و با اینکه از مدتی پیش مشتریان این شبکه اینترنت ماهوارهای با کد زیپ مناطق سکونت خود در ثبتنامهای اسپیس ایکس در این رابطه شرکت کردهاند، همچنان سرویس پولی و قابل خریدی در اختیار مردم قرار نگرفته است.
با این وجود، بر اساس گزارشهای منتشر شده اسپیس ایکس در حال نزدیک شدن به بهرهبرداری عمومی از استارلینک بوده و اخیرا به تمامی کاربرانی که در گذشته با کد زیپ منطقه خود ثبت نام کرده بودند، ایمیلی برای درخواست اطلاعات مکانی بیشتر و جزئیات آدرس مشتریان آینده از طرف این کمپانی هوافضای خصوصی ارسال شده است. گفته شده که پس از موفقیت آزمایش ورژن بتای اینترنت استارلینک در این تابستان، یک ورژن بتای عمومی هم مورد آزمایش قرار خواهد گرفت و در صورت درست پیش رفتن اوضاع، اینترنت ماهوارهای اسپیس ایکس بخشی از زندگی روزمره ساکنان زمین خواهد شد.
https://www.slashgear.com/starlink-satellite-internet-beta-imminent-as-elon-musk-confirms-dish-details-15629132/
SlashGear
Starlink satellite internet beta imminent as Elon Musk confirms dish details
New details about SpaceX’s Starlink satellite internet service have emerged, with the company confirming that a private beta program is set to kick off this summer. Bypassing traditional wire…
از زمان معرفی NET Core 1.0.، به نظر میرسد که به کل اکوسیستم دات نت زندگی جدیدی اعطا شده است. این چارچوب احیا شد و اکنون با نسخه 3، به قدرتی تبدیل شده است که بتوان روی آن حساب کرد. بسیاری از فناوریها به این سطح از جلا، پایداری، بلوغ و سرعت دست پیدا نکرده اند. ایجاد یک فناوری انعطاف پذیر و در عین حال پایدار تقریبا کار برجسته ای است و این دقیقاً همان چیزی است که توسعه دهندگان ASP.NET Core به آن دست یافته اند.
مهمتر از همه، APIهای REST به دلیل تواناییشان در جدا کردن قسمتهای backend و frontend برنامه و امکان ارائه سرویس به هزاران کلاینت به طور همزمان، به یک استاندارد بالفعل در صنعت تبدیل شده اند. با انتشار هر نسخه جدیدی از این فریم ورک، محبوبیت بیشتری پیدا میکند، بنابراین دیگر هیچ زمانی مانند الان پیدا نمیشود تا از قافله عقب نمانید و ASP.NET Core Web API را به مهارتهای خود اضافه کنید.
https://www.ebooksworld.ir/post/index/681
مهمتر از همه، APIهای REST به دلیل تواناییشان در جدا کردن قسمتهای backend و frontend برنامه و امکان ارائه سرویس به هزاران کلاینت به طور همزمان، به یک استاندارد بالفعل در صنعت تبدیل شده اند. با انتشار هر نسخه جدیدی از این فریم ورک، محبوبیت بیشتری پیدا میکند، بنابراین دیگر هیچ زمانی مانند الان پیدا نمیشود تا از قافله عقب نمانید و ASP.NET Core Web API را به مهارتهای خود اضافه کنید.
https://www.ebooksworld.ir/post/index/681
مایکروسافت لانچر ۶.۰ با امکاناتی فراوان از راه رسید
مایکروسافت جدیدترین بیلد پیشنمایش Windows 10 Insider را منتشر کرد که میتواند بهبود تجربهی تنظیمات صوتی را به همراه داشته باشد. علاوه بر این بیلد جدید، شرکت ردموندی مایکروسافت خبر از تکمیل طراحی نهایی اپلیکیشن Microsoft Launcher داد و اکنون آمادهی استفادهی کاربران است.
پس از چندین بیلد آزمایشی، سرانجام مایکروسافت لانچر ۶.۰ در دسترس تمام کاربرانی که این اپلیکیشن را روی گوشی اندرویدی خود نصب کردهاند قرار گرفت. علیرغم تغییرات بدیهی ظاهری، مایکروسافت این لانچر را بر مبنای یک پایه کد جدید طراحی کرده است که به توسعه دهندگان اجازهی استفاده از قابلیتهایی بیشتر از گذشته را میدهد.
صحبت از قابلیتها شد، Microsoft Launcher 6.0 شامل یک تم تیره جدید است که به صورت پیشفرض با تنظیمات تم تیره اندروید سازگاری دارد. همچنین، یک بخش خوراک خبری جدید شخصیسازی شده نیز به کاربران کمک میکند از تمام اتفاقاتی که در سراسر جهان رخ میدهد، مطلع شوند.
این لانچر اندرویدی از حالت لنداسکیپ کامل نیز پشتیبانی میکند و میتوانید به طور کامل آیکونها را باب سلیقهی خودتان دربیاورید. در نهایت، لازم به ذکر است که نسخه جدید لانچر مایکروسافت سریعتر از گذشته شده، کمتر از حافظه دستگاه استفاده میکند و در استفاده از باتری نیز خساست به خرج میدهد.
در هر صورت، اگر قصد دانلود این لانچر را دارید، باید گوشی شما به اندروید ۷ یا بالاتر از آن مجهز باشد. همچنین برخی از قابلیتهای آن شاید فقط روی گوشیهای مجهز به اندروید ۸ یا بالاتر فعال باشد.
https://www.phonearena.com/news/Download-Microsoft-Launcher-6-Android_id125969
مایکروسافت جدیدترین بیلد پیشنمایش Windows 10 Insider را منتشر کرد که میتواند بهبود تجربهی تنظیمات صوتی را به همراه داشته باشد. علاوه بر این بیلد جدید، شرکت ردموندی مایکروسافت خبر از تکمیل طراحی نهایی اپلیکیشن Microsoft Launcher داد و اکنون آمادهی استفادهی کاربران است.
پس از چندین بیلد آزمایشی، سرانجام مایکروسافت لانچر ۶.۰ در دسترس تمام کاربرانی که این اپلیکیشن را روی گوشی اندرویدی خود نصب کردهاند قرار گرفت. علیرغم تغییرات بدیهی ظاهری، مایکروسافت این لانچر را بر مبنای یک پایه کد جدید طراحی کرده است که به توسعه دهندگان اجازهی استفاده از قابلیتهایی بیشتر از گذشته را میدهد.
صحبت از قابلیتها شد، Microsoft Launcher 6.0 شامل یک تم تیره جدید است که به صورت پیشفرض با تنظیمات تم تیره اندروید سازگاری دارد. همچنین، یک بخش خوراک خبری جدید شخصیسازی شده نیز به کاربران کمک میکند از تمام اتفاقاتی که در سراسر جهان رخ میدهد، مطلع شوند.
این لانچر اندرویدی از حالت لنداسکیپ کامل نیز پشتیبانی میکند و میتوانید به طور کامل آیکونها را باب سلیقهی خودتان دربیاورید. در نهایت، لازم به ذکر است که نسخه جدید لانچر مایکروسافت سریعتر از گذشته شده، کمتر از حافظه دستگاه استفاده میکند و در استفاده از باتری نیز خساست به خرج میدهد.
در هر صورت، اگر قصد دانلود این لانچر را دارید، باید گوشی شما به اندروید ۷ یا بالاتر از آن مجهز باشد. همچنین برخی از قابلیتهای آن شاید فقط روی گوشیهای مجهز به اندروید ۸ یا بالاتر فعال باشد.
https://www.phonearena.com/news/Download-Microsoft-Launcher-6-Android_id125969
Phone Arena
Microsoft Launcher 6.0 now rolling out to everyone, here is what's new
After numerous beta builds, Microsoft Launcher 6.0 is now rolling to everyone who already has the app installed on their Android devices.
زبان GraphQL یک زبان «منبع باز» (Open Source) برای «دستکاری» (Manipulation) و «پرس و جوی» (Query) دادهها در واسطهای برنامهنویسی کاربردی محسوب میشود. یکی از ویژگیهای مهم زبان GraphQL، فراهم آوردن قابلیت دستکاری و پرس و جوی دادهها در «زمان اجرا» (Run Time) است. زبان GraphQL، در سال 2012 توسط فیسبوک توسعه داده شد و در سال 2015 در دسترس عموم قرار گرفت. نکته مهم در مورد زبان GraphQL، افزایش علاقه برنامهنویسان به این زبان در چند سال اخیر است. چنین امری، زبان GraphQL را به یکی از ترندهای برنامهنویسی تبدیل کرده است.
#Technical_Debt #Software_Engineering #معرفی_سایت
❇بدهی فنی (Technical Debt) چیست؟
بدهی فنی یکی از موارد کلیدی در موفقیت تجاری نرمافزارهای توسعهدادهشده است. این اصطلاح توسط وارد کانیگهام در سال ۱۹۹۲ ابداع شد. او چنین چیزی گفت: «انتشار اولین کد مثل بدهکار شدن است. کمی بدهی، سرعت توسعه را بهبود میبخشد؛ به شرطی که در اولین فرصت با بازنویسی کد، تسویه شود... خطر زمانی رخ میدهد که تسویه نشود. هر دقیقه که صرف کد نامطلوب شود به عنوان بهره تلقی میشود. تمامی یک سازمان مهندسی میتواند تحت بار بدهی این کد نامستحکم، به حالت توقف کشانده شود.»
🔸تشبیه بدهی فنی ارتباط نزدیکی با بدهی مالی دارد و مربوط به انتشار سریع یک چیز و در نتیجه بدهکار شدن است. بعداً باید این بدهی را با بهبود کیفیت، تسویه کنید و اگر این کار را نکنید مجبور به پرداخت نرخ بهره هستید چون بهرهوری شما کاهش پیدا میکند و توسعهتان کند میشود.
🔹دلایل بدهی فنی:
- فشار زمانی
- استفاده از یک فناوری جدید برای نخستین بار بدون درک درست از آن
- طراحی اشتباه به دلیل نداشتن شناخت صحیح از نیازمندی های حوزه ی کسب وکار
- پوسیدگی نرمافزار
🔸اما بدهی فنی همیشه بد نیست. در واقع بدهی فنی یک راهبرد است. چون میتوانیم با بدهکار شدن به سرعت به هدف کسب و کار برسیم. بهتر است چیزی را سریع بنویسید و به کاربر برسانید و ببینید که آیا برای کسی مفید است؟ اگر برای کسی مفید است آن وقت است که بدهی فنی را پرداخت میکنیم. اگر کد بینقصی برای عملکردی که نمیدانیم مفید است یا نه بنویسیم هدر دادن زمان است.
🔹این ها بخشی از صحبت های سوِن یوهان و ابرهارد ولف در مورد بدهی فنی از مجموعه پادکست های صوتی سایت SE Radio است که توسط سایت https://se-topics.ir/ به خوبی ترجمه و در اختیار توسعه دهندگان فارسی زبان قرار داده شده است.
این سایت از جمله سایت های خوب فارسی در حوزه ی مهندسی نرم افزار است و به تهیه ترجمه از پادکستهای صوتی و تصویری از افراد خبره در این حوزه می پردازد. همچنین در صورت تمایل می توانید به جمع مترجمان این سایت بپیوندید و در ترجمه ی پادکست ها با این سایت همکاری داشته باشید تا مقاله تان با ذکر نام خودتان بر روی سایت قرار گیرد.
🔰متن کامل مقاله:
https://se-topics.ir/topicview?id=54
🔰مطالعه ی بیشتر در مورد بدهی فنی:
https://www.infoq.com/articles/managing-technical-debt
___
❇بدهی فنی (Technical Debt) چیست؟
بدهی فنی یکی از موارد کلیدی در موفقیت تجاری نرمافزارهای توسعهدادهشده است. این اصطلاح توسط وارد کانیگهام در سال ۱۹۹۲ ابداع شد. او چنین چیزی گفت: «انتشار اولین کد مثل بدهکار شدن است. کمی بدهی، سرعت توسعه را بهبود میبخشد؛ به شرطی که در اولین فرصت با بازنویسی کد، تسویه شود... خطر زمانی رخ میدهد که تسویه نشود. هر دقیقه که صرف کد نامطلوب شود به عنوان بهره تلقی میشود. تمامی یک سازمان مهندسی میتواند تحت بار بدهی این کد نامستحکم، به حالت توقف کشانده شود.»
🔸تشبیه بدهی فنی ارتباط نزدیکی با بدهی مالی دارد و مربوط به انتشار سریع یک چیز و در نتیجه بدهکار شدن است. بعداً باید این بدهی را با بهبود کیفیت، تسویه کنید و اگر این کار را نکنید مجبور به پرداخت نرخ بهره هستید چون بهرهوری شما کاهش پیدا میکند و توسعهتان کند میشود.
🔹دلایل بدهی فنی:
- فشار زمانی
- استفاده از یک فناوری جدید برای نخستین بار بدون درک درست از آن
- طراحی اشتباه به دلیل نداشتن شناخت صحیح از نیازمندی های حوزه ی کسب وکار
- پوسیدگی نرمافزار
🔸اما بدهی فنی همیشه بد نیست. در واقع بدهی فنی یک راهبرد است. چون میتوانیم با بدهکار شدن به سرعت به هدف کسب و کار برسیم. بهتر است چیزی را سریع بنویسید و به کاربر برسانید و ببینید که آیا برای کسی مفید است؟ اگر برای کسی مفید است آن وقت است که بدهی فنی را پرداخت میکنیم. اگر کد بینقصی برای عملکردی که نمیدانیم مفید است یا نه بنویسیم هدر دادن زمان است.
🔹این ها بخشی از صحبت های سوِن یوهان و ابرهارد ولف در مورد بدهی فنی از مجموعه پادکست های صوتی سایت SE Radio است که توسط سایت https://se-topics.ir/ به خوبی ترجمه و در اختیار توسعه دهندگان فارسی زبان قرار داده شده است.
این سایت از جمله سایت های خوب فارسی در حوزه ی مهندسی نرم افزار است و به تهیه ترجمه از پادکستهای صوتی و تصویری از افراد خبره در این حوزه می پردازد. همچنین در صورت تمایل می توانید به جمع مترجمان این سایت بپیوندید و در ترجمه ی پادکست ها با این سایت همکاری داشته باشید تا مقاله تان با ذکر نام خودتان بر روی سایت قرار گیرد.
🔰متن کامل مقاله:
https://se-topics.ir/topicview?id=54
🔰مطالعه ی بیشتر در مورد بدهی فنی:
https://www.infoq.com/articles/managing-technical-debt
___
InfoQ
Managing Technical Debt
Technical Debt is widely regarded as a bad thing that should be paid back as soon as possible, however it can be a strategy that helps balance short-term wins and long-term productivity. The article describes different ways that a project could pay back Technical…
❇️روش های Audit!
https://bit.ly/2RrXDJe
ثبت وقایع کاربران یا لاگ تاریچه عملیاتی که هر کاربر در سیستم انجام داده (مثلا چه شخصی چه زمانی چه چیزی رو insert کرده یا update کرده یا delete) بعضا در نرم افزار های بزرگ جز موارد مهم به حساب میاد
🔸روش های مختلفی واسه این کار وجود داره
1- مدیریت این کار از طریق تریگر روی دیتابیس
2- استفاده از روش های Interception
3- استفاده از ActionFilter توی MVC
4- سفارشی سازی متد SaveChanges در EF و استفاده از ChangeTracker
و...
در اینجا لیست گلچین شده ای از منابع مورد نیاز برای روش های 3 و 4 رو داریم
کتابخانه های اماده ای برای اینکار وجود داره :
1- https://github.com/thepirat000/Audit.NET/tree/master/src/Audit.EntityFramework
2- https://entityframework-plus.net/audit
3- https://github.com/bilal-fazlani/tracker-enabled-dbcontext
اگه هم نیازتون رو برطرف نکرد میتونین خودتون پیاده سازی کنین که خیلی راحته (پیشنهاد میکنم حتما کدش رو بررسی کنید)
https://bit.ly/2Sxyv0T
اگه هم مثل روش بالا (لاگ تاریخچه تغییرات) مد نظرتون نیست و فقط لاگ تغییرات اخرین کاربر روی یک Entity با فیلد های InsertDate, UpdateDate, DeleteDate و... کفایت میکنه میتونین از کتابخونه زیر استفاده کنین
https://bit.ly/2RtGTRI
و باز هم اگر نیازتون رو برطرف نکرد، پیاده سازیش خیلی راحته
https://bit.ly/2CJOymE
یه روش دیگه هم از لاگ گیری فعالیت های کاربران توی Mvc هست که توسط ActionFilter بعد از هر اکشن ثبت میکنه کدوم کاربر با کدوم IP کدوم صفحه رو در چه زمانی درخواست کرده
1- https://bit.ly/1PyYOKi
2- https://bit.ly/1Sh3s4N
البته این موارد مربوط به EF6 و MVC5 هستند ولی مفهومشون توی EF Core / Asp Core یکیه و با انجام تغییرات نه چندان زیاد میتونین توی Core هم ازش استفاده کنین
___
https://bit.ly/2RrXDJe
ثبت وقایع کاربران یا لاگ تاریچه عملیاتی که هر کاربر در سیستم انجام داده (مثلا چه شخصی چه زمانی چه چیزی رو insert کرده یا update کرده یا delete) بعضا در نرم افزار های بزرگ جز موارد مهم به حساب میاد
🔸روش های مختلفی واسه این کار وجود داره
1- مدیریت این کار از طریق تریگر روی دیتابیس
2- استفاده از روش های Interception
3- استفاده از ActionFilter توی MVC
4- سفارشی سازی متد SaveChanges در EF و استفاده از ChangeTracker
و...
در اینجا لیست گلچین شده ای از منابع مورد نیاز برای روش های 3 و 4 رو داریم
کتابخانه های اماده ای برای اینکار وجود داره :
1- https://github.com/thepirat000/Audit.NET/tree/master/src/Audit.EntityFramework
2- https://entityframework-plus.net/audit
3- https://github.com/bilal-fazlani/tracker-enabled-dbcontext
اگه هم نیازتون رو برطرف نکرد میتونین خودتون پیاده سازی کنین که خیلی راحته (پیشنهاد میکنم حتما کدش رو بررسی کنید)
https://bit.ly/2Sxyv0T
اگه هم مثل روش بالا (لاگ تاریخچه تغییرات) مد نظرتون نیست و فقط لاگ تغییرات اخرین کاربر روی یک Entity با فیلد های InsertDate, UpdateDate, DeleteDate و... کفایت میکنه میتونین از کتابخونه زیر استفاده کنین
https://bit.ly/2RtGTRI
و باز هم اگر نیازتون رو برطرف نکرد، پیاده سازیش خیلی راحته
https://bit.ly/2CJOymE
یه روش دیگه هم از لاگ گیری فعالیت های کاربران توی Mvc هست که توسط ActionFilter بعد از هر اکشن ثبت میکنه کدوم کاربر با کدوم IP کدوم صفحه رو در چه زمانی درخواست کرده
1- https://bit.ly/1PyYOKi
2- https://bit.ly/1Sh3s4N
البته این موارد مربوط به EF6 و MVC5 هستند ولی مفهومشون توی EF Core / Asp Core یکیه و با انجام تغییرات نه چندان زیاد میتونین توی Core هم ازش استفاده کنین
___
♨️اپل فیس آیدی را به دنیای مک میآورد
چندین سالی میشود که اپل فیس آیدی را جایگزین تاچ آیدی در آیفونهای خود کرده و آپید پرو نیز به این فناوری مجهز شده است. حالا ظاهرا باید منتظر ورود آن به دنیای مک باشیم.
در حال حاضر مک بوک خود را میتوانید توسط پسورد یا تاچ آیدی آنلاک کنید، اما اخیرا 9to5Mac به کدی در نسخه بتای سیستم عامل مک او اس Big Sur دست پیدا کرده که نشان میدهد فیس آیدی احتمالا در آینده وارد کامپیوترهای اپل میشود.
به نظر میرسد کد موجود در این سیستم عامل به اسم رمز اپل برای دوربین TrueDepth اشاره دارد. این دوربین باعث میشود کاربران به فیس آیدی در محصولاتی مانند گوشیهای سری آیفون ۱۱ و آیپد پرو دست پیدا کند، البته مکهای کنونی و همچنین نسل جدید آیفون SE از چنین قابلیتی محروم هستند. در این کد عبارتهای «FaceDetect» و «BioCapture» نیز به چشم میخورند که از تشخیص چهره بیومتریک خبر میدهد.
در صورتی که فناوری تشخیص چهره به دنیای مک راه پیدا کند، میتوان با استفاده از آن قفل دستگاه را باز کرد و نرم افزارهای واقعیت افزوده از چهره کاربر یک نقشه تهیه میکنند. فیس آیدی در مک بوکها میتواند کاربرد زیادی داشته باشد، مخصوصا اگر از نسخه جدید سافاری استفاده کنید.
https://dgto.ir/1rya
چندین سالی میشود که اپل فیس آیدی را جایگزین تاچ آیدی در آیفونهای خود کرده و آپید پرو نیز به این فناوری مجهز شده است. حالا ظاهرا باید منتظر ورود آن به دنیای مک باشیم.
در حال حاضر مک بوک خود را میتوانید توسط پسورد یا تاچ آیدی آنلاک کنید، اما اخیرا 9to5Mac به کدی در نسخه بتای سیستم عامل مک او اس Big Sur دست پیدا کرده که نشان میدهد فیس آیدی احتمالا در آینده وارد کامپیوترهای اپل میشود.
به نظر میرسد کد موجود در این سیستم عامل به اسم رمز اپل برای دوربین TrueDepth اشاره دارد. این دوربین باعث میشود کاربران به فیس آیدی در محصولاتی مانند گوشیهای سری آیفون ۱۱ و آیپد پرو دست پیدا کند، البته مکهای کنونی و همچنین نسل جدید آیفون SE از چنین قابلیتی محروم هستند. در این کد عبارتهای «FaceDetect» و «BioCapture» نیز به چشم میخورند که از تشخیص چهره بیومتریک خبر میدهد.
در صورتی که فناوری تشخیص چهره به دنیای مک راه پیدا کند، میتوان با استفاده از آن قفل دستگاه را باز کرد و نرم افزارهای واقعیت افزوده از چهره کاربر یک نقشه تهیه میکنند. فیس آیدی در مک بوکها میتواند کاربرد زیادی داشته باشد، مخصوصا اگر از نسخه جدید سافاری استفاده کنید.
https://dgto.ir/1rya
دیجیاتو
اپل فیس آیدی را به دنیای مک میآورد
چندین سالی میشود که اپل فیس آیدی را جایگزین تاچ آیدی در آیفونهای خود کرده و آپید پرو نیز به این فناوری مجهز شده است....
از یک فستفود در فاصله ی 10 کیلومتری پیتزا سفارش میدهید. اگر پیتزا از قبل آماده ارسال باشد و پیک هم با سرعت 100 کیلومتر بر ساعت حرکت کند حداقل 6 دقیقه طول میکشد تا پیتزا به دست شما برسد و 12 دقیقه طول میکشد تا فستفود از تحویل باخبر شود.
تاخیر یا Latency : مدت زمانی که طول میکشد داده از نقطه ی A به B برسد Latency گفته میشود. از آنجا که فاصله همیشه وجود دارد تاخیر اجتناب ناپذیز است.
پهنای باند یا Bandwidth: پیک هربار فقط می تواند 5 پیتزا با خود حمل کند. اگر شما 20 پیتزا سفارش دهید باید 4 بار رفت و آمد کند.
در سال 1996 آقای Stuart Cheshire مقاله ای منتشر کرد با عنوان "Its latency stupid" و در آن مشکل شبکه های اینترنتی را Latency دانست و نه پهنای باند. همیشه میشود پهنای باند را افزایش داده اما نمی توان تاخیر زمانی بین دو نقطه را از بین برد.حتی اگر داده با سرعت نور حرکت کند همیشه تاخیر وجود دارد.
مشکل Latency چالش اصلی سرویس های Real-time مانند بازیهای آنلاین است. برای کاهش آن میتوان از سروری که در موقعیت فیزیکی نزدیک تری دارد استفاده کرد.
تاخیر یا Latency : مدت زمانی که طول میکشد داده از نقطه ی A به B برسد Latency گفته میشود. از آنجا که فاصله همیشه وجود دارد تاخیر اجتناب ناپذیز است.
پهنای باند یا Bandwidth: پیک هربار فقط می تواند 5 پیتزا با خود حمل کند. اگر شما 20 پیتزا سفارش دهید باید 4 بار رفت و آمد کند.
در سال 1996 آقای Stuart Cheshire مقاله ای منتشر کرد با عنوان "Its latency stupid" و در آن مشکل شبکه های اینترنتی را Latency دانست و نه پهنای باند. همیشه میشود پهنای باند را افزایش داده اما نمی توان تاخیر زمانی بین دو نقطه را از بین برد.حتی اگر داده با سرعت نور حرکت کند همیشه تاخیر وجود دارد.
مشکل Latency چالش اصلی سرویس های Real-time مانند بازیهای آنلاین است. برای کاهش آن میتوان از سروری که در موقعیت فیزیکی نزدیک تری دارد استفاده کرد.
قابلیت Nearby Share گوگل از مرداد در دسترس کاربران اندروید قرار میگیرد
قابلیت Nearby Share گوگل مشابه ایر دراپ در آی او اس، به کاربران اجازه به اشتراک گذاری فایلها میان دو گوشی اندرویدی را میدهد و حالا تاریخ عرضه احتمالی آن مشخص شده است.
به نظر میرسد که گوگل در مراحل پایانی تست و بررسی قابلیت به اشتراک گذاری Nearby Share قرار دارد و فاصله چندانی با انتشار نسخه نهایی آن نداریم. منابع خبری مطلع از این ویژگی، ارتباطی با مقامات رسمی گوگل ندارند اما صحبتها پیرامون این قابلیت به تازگی افزایش یافته و حالا ما بازهی زمانی احتمالی که قرار است این ویژگی جدید در اختیار کاربران اندروید قرار بگیرد را میدانیم.
طبق این گزارش قرار است از شروع ماه آگوست یعنی از اواسط مرداد ماه، کاربرانی که دارای گوشی های اندروید ۶ و بالاتر هستند، قادر به استفاده از آن باشند و اضافه شدن پشتیبانی از این ویژگی از طریق یک آپدیت انجام میگیرد. پیش از این نیز در مراحل تست نسخه بتای قابلیت Nearby Share گوگل، حداقل ورژن سیستم عامل برای پشتیبانی از این قابلیت به همین شکل اعلام شده بود و این احتمال حقیقی بودن گزارش را بالاتر میبرد.
مراحل تست نسخه بتا هنوز هم ادامه دارد و مدلهایی که از آن پشتیبانی میکنند، با دریافت یک نسخه بتا از سرویسهای گوگل پلی میتوانند آن را دریافت کنند. برخلاف دیگر ویژگیهای سطح پایین اندروید که بخشی از خود سیستم عامل به شمار میروند، قابلیت Nearby Share گوگل بخشی از فریم ورک محسوب میشود و به همین دلیل منطقی خواهد بود که تمام کاربران اندروید ۶ و نسخههای بعدی این سیستم عامل به راحتی از طریق یک پکیج بروزرسانی درون فروشگاه گوگل پلی، بتوانند آن را دریافت کنند.
https://www.gsmarena.com/google_nearby_share_could_be_coming_to_most_android_users_starting_august-news-44338.php
قابلیت Nearby Share گوگل مشابه ایر دراپ در آی او اس، به کاربران اجازه به اشتراک گذاری فایلها میان دو گوشی اندرویدی را میدهد و حالا تاریخ عرضه احتمالی آن مشخص شده است.
به نظر میرسد که گوگل در مراحل پایانی تست و بررسی قابلیت به اشتراک گذاری Nearby Share قرار دارد و فاصله چندانی با انتشار نسخه نهایی آن نداریم. منابع خبری مطلع از این ویژگی، ارتباطی با مقامات رسمی گوگل ندارند اما صحبتها پیرامون این قابلیت به تازگی افزایش یافته و حالا ما بازهی زمانی احتمالی که قرار است این ویژگی جدید در اختیار کاربران اندروید قرار بگیرد را میدانیم.
طبق این گزارش قرار است از شروع ماه آگوست یعنی از اواسط مرداد ماه، کاربرانی که دارای گوشی های اندروید ۶ و بالاتر هستند، قادر به استفاده از آن باشند و اضافه شدن پشتیبانی از این ویژگی از طریق یک آپدیت انجام میگیرد. پیش از این نیز در مراحل تست نسخه بتای قابلیت Nearby Share گوگل، حداقل ورژن سیستم عامل برای پشتیبانی از این قابلیت به همین شکل اعلام شده بود و این احتمال حقیقی بودن گزارش را بالاتر میبرد.
مراحل تست نسخه بتا هنوز هم ادامه دارد و مدلهایی که از آن پشتیبانی میکنند، با دریافت یک نسخه بتا از سرویسهای گوگل پلی میتوانند آن را دریافت کنند. برخلاف دیگر ویژگیهای سطح پایین اندروید که بخشی از خود سیستم عامل به شمار میروند، قابلیت Nearby Share گوگل بخشی از فریم ورک محسوب میشود و به همین دلیل منطقی خواهد بود که تمام کاربران اندروید ۶ و نسخههای بعدی این سیستم عامل به راحتی از طریق یک پکیج بروزرسانی درون فروشگاه گوگل پلی، بتوانند آن را دریافت کنند.
https://www.gsmarena.com/google_nearby_share_could_be_coming_to_most_android_users_starting_august-news-44338.php
GSMArena
Google Nearby Share could be coming to most Android users starting August
Support for Windows, macOS, Linux and ChromeOS are also on the roadmap.
هکرها اطلاعات ۷.۵ میلیون کاربر اپ بانکی دیجیتال «Dave» را در یک فروم عمومی منتشر کردند، اقدامی که باعث شده سازنده این برنامه، نقص امنیتی آن را تایید کند.
به گزارش ZDNet، این نقص امنیتی در حقیقت به شبکه شریک تجاری سابق آن، «Waydev» که یک پلتفرم تحلیلی مورد استفاده توسط تیمهای مهندسی است، مربوط میشود. سخنگوی Dave اعلام کرده:
«به علت رخنه امنیتی در Waydev، یکی از تامینکنندگان خدمات شخص ثالث سابق Dave، هکرها به برخی اطلاعات کاربران به صورت غیرمجاز دسترسی پیدا کردند.»
به گفته این کمپانی، هم اکنون هکرها به شبکه دسترسی ندارند و به کاربران قربانی نیز اطلاع داده شده است. پسوردهای اپلیکیشن Dave پس از اینکه در معرض خطر قرار گرفتند، ریست شدند:
«هنگامی که متوجه چنین موضوعی شدیم، به سرعت تحقیق درباره آن را آغاز کردیم و هم اکنون این پرونده با هماهنگی مقامات قانونی شامل FBI در جریان است. هکرها توانستهاند به برخی پسوردها دست پیدا کنند و بدنبال فروش اطلاعات مشتریان هستند.»
هم اکنون اطلاعات کاربران اپ بانکی Dave به صورت رایگان در دسترس قرار دارند و میتوان آنها را دانلود کرد، البته باید ابتدا عضو این فروم شد. این دیتا شامل اطلاعاتی مانند نام واقعی، شماره تلفن، ایمیل، تاریخ تولد و آدرس خانه میشود و در برخی آنها اطلاعات پرداخت و شماره تامین اجتماعی نیز به چشم میخورند که البته رمزگذاری شدهاند.
https://www.zdnet.com/article/tech-unicorn-dave-admits-to-security-breach-impacting-7-5-million-users/
به گزارش ZDNet، این نقص امنیتی در حقیقت به شبکه شریک تجاری سابق آن، «Waydev» که یک پلتفرم تحلیلی مورد استفاده توسط تیمهای مهندسی است، مربوط میشود. سخنگوی Dave اعلام کرده:
«به علت رخنه امنیتی در Waydev، یکی از تامینکنندگان خدمات شخص ثالث سابق Dave، هکرها به برخی اطلاعات کاربران به صورت غیرمجاز دسترسی پیدا کردند.»
به گفته این کمپانی، هم اکنون هکرها به شبکه دسترسی ندارند و به کاربران قربانی نیز اطلاع داده شده است. پسوردهای اپلیکیشن Dave پس از اینکه در معرض خطر قرار گرفتند، ریست شدند:
«هنگامی که متوجه چنین موضوعی شدیم، به سرعت تحقیق درباره آن را آغاز کردیم و هم اکنون این پرونده با هماهنگی مقامات قانونی شامل FBI در جریان است. هکرها توانستهاند به برخی پسوردها دست پیدا کنند و بدنبال فروش اطلاعات مشتریان هستند.»
هم اکنون اطلاعات کاربران اپ بانکی Dave به صورت رایگان در دسترس قرار دارند و میتوان آنها را دانلود کرد، البته باید ابتدا عضو این فروم شد. این دیتا شامل اطلاعاتی مانند نام واقعی، شماره تلفن، ایمیل، تاریخ تولد و آدرس خانه میشود و در برخی آنها اطلاعات پرداخت و شماره تامین اجتماعی نیز به چشم میخورند که البته رمزگذاری شدهاند.
https://www.zdnet.com/article/tech-unicorn-dave-admits-to-security-breach-impacting-7-5-million-users/
ZDNet
Tech unicorn Dave admits to security breach impacting 7.5 million users
Dave user data is now available for download on a public hacking forum.