Web Devs
641 subscribers
218 photos
22 videos
17 files
233 links
Articles, News, Jokes, Quotes, Back-End and UI/UX for web developers.
Github : https://github.com/fullStackDevsGroup
Advertising: @adsfullStackDevs
Download Telegram
1. Let’s Encrypt

گواهینامه امنیتی Let’s Encrypt توسط گروه پژوهشی به نام ISRG ایجاد شده است که شرکت‌های بزرگی نظیر فایرفاکس، گوگل، سیسکو، دیتاسنتر OVH و… در به وجود آمدن آن نقش اساسی دارند. استفاده از این SSL کاملا رایگان بوده و در هاست‌های Cpanel به این صورت است که هر سه ماه یکبار به صورت خودکار تمدید می‌شود. همچنین امکان استفاده از آن برای دامنه‌های IR نیز فراهم است.
2. SSL For Free
گواهینامه امنیتی SSL For Free نیز به این صورت عمل می‌کند که کلید خصوصی با استفاده از یک API تحت وب توسط مرورگر ایجاد می‌شود. سپس اگر مرورگر شما از این API پشتیبانی کند بعد از اینکه برای یک بار ایجاد شد پاک می‌شود اما در غیر این صورت با استفاده از آخرین نسخه OpenSSL کلیدها در سرور سایت تولید خواهند شد.
3. CloudFlare
گواهینامه امنیتی CloudFlare در کنار خدمات دیگر شرکت کلودفلر از جمله CDN، افزایش سرعت سایت و جلوگیری از حملات DDOS قرار دارد. SSL رایگان کلودفلر به این صورت است که چند گواهینامه به صورت اشتراکی برای چندین دامنه صادر می‌شود. روند تمدید آن نیز به صورت یکساله است که پس از گذشت هر سال به صورت خودکار تمدید خواهد شد. اما تنها اشکال استفاده از این گواهینامه این است که در دامنه IR. به دلیل تحریم امکان استفاده از آن وجود ندارد. در حال حاضر نیز SSL استفاده شده روی دامنه وبلاگ بنده از همین کلودفلر است.

🌐 نکات مهم برای استفاده و خرید SSL

🖌 اگر از دامنه IR. استفاده می‌کنید باید حتما در هنگام خرید دقت کنید که پشتیبانی از دامنه ملی در گواهینامه امنیتی وجود داشته باشد.
🖌 اگر قصد استفاده از SSL های DV و OV دارید و سایت شما به گونه‌ای است که چند ساب دامین دارید حتما باید SSL از نوع WildCard خریداری کنید که امکان استفاده در ساب دامین را داشته باشید.
🖌 در صورت استفاده از SSL EV لازم است مدارک سازمانی و اطلاعات پاسپورت خود را ارسال کنید تا بررسی شده و پس از تایید امکان استفاده از SSL با نام سایت را داشته باشید.
🖌 هنگام خرید گواهینامه امنیتی OV و EV مراحلی که باید از زمان ارسال سفارش، تایید و نصب را طی کنید ممکن است تا 15 روز کاری زمان‌بر باشد.
🖌 برخی شرکت‌ها نصب SSL را به صورت رایگان و با شرایط خاصی بر روی هاست شما نصب می‌کنند. بنابراین اگر دانش فنی لازم برای نحوه نصب SSL در هاست را ندارید باید هزینه‌ای جدا بابت نصب آن پرداخت کنید.
عباس صادقی

@ABlueDeveloper
تعداد خط کد نوشته شده برای #NodeJs #Android

@ABlueDeveloper
#CSharp
#CSharp8
🌐🌐🌐 ویژگی های جدید C# 8.0 (قسمت اول)

سی شارپ 8.0 نسخه اصلی C# میباشد . حتی با وجود اینکه تازه C# 7.0 7.1 7.2 7.3 منتشر شده و و هنوز از قابلیت های جدید آن هیجان زده هستیم.

برنامه فعلی بدین صورت میباشد که همزمان با Net Core 3.0 سی شارپ 8 نیز عرضه خواهد شد. با این حال ویژگی های این نسخه جدید در نسخه پیش نمایش ویژوال استودیو 2019 در حال انجام است و میتوانید انهارو بصورت جدی شروع کنید .

هدف از این پست این است که به شما یک دید کلی از آنچه انتظار می رود را ارائه دهیم و سرانجام در مورد آن چه انتظار داریم

در اینجا یک مرور کلی از ویژگی های مهم برای C # 8.0 ارائه شده است میپردازیم :

Nullable reference types

شما را از مقدار دهی null به reference Type ها منع میکند که البته با warning ها به شما این اخطار را میدهد که باید nullable کنید متغیر مذکور را.
string s = null; // Warning: Assignment of null to non-nullable reference type
برای این کار شما باید از Nullable reference type استفاده کنید
string? s = null; // Ok

بنابراین زمانی که از nullable reference type استفاده میکنید باید چک کنید که null نباشد :
void M(string? s)
{
Console.WriteLine(s.Length); // Warning: Possible null reference exception
if (s != null)
{
Console.WriteLine(s.Length); // Ok: You won't get here if s is null
}
}
Async streams

ویژگی های Async/await از سی شارپ نسخه 5.0 اضافه شد و به شما اجازه میدهد results را بصورت Asynchronous در کد استفاده کنید بدون callback
async Task<int> GetBigResultAsync()
{
var result = await GetResultAsync();
if (result > 20) return result;
else return -1;
}
البته زمانی که میخواهیم داده هایی را بگیریم (یا تولید کنیم) که یک جریان مداوم هستند (continuous stream results) مثل زمانی که شما میخوای از دستگاه IoT دیتا بگیرید و یا از Cloud Service ، Async Stream ها برای این دیتا ها استفاده میشوند که اینترفیس جنریکی معرفی شده بنام <IAsyncEnumerable<T که در واقع async شده ی <IEnumerable<Tمی باشد و دقیقا اون چیزی است که شما نیاز دارید و زبان به شما اجازه میدهد که await رو روی foreach داشته باشید و داده هارا رو yield برگردانید و یا استفاده کنید

async IAsyncEnumerable<int> GetBigResultsAsync()
{
await foreach (var result in GetResultsAsync())
{
if (result > 20) yield return result;
}
}

@ABlueDeveloper
#CSharp
#CSharp8
🌐🌐🌐 ویژگی های جدید C# 8.0 (قسمت دوم)
لینک قسمت اول : https://t.me/ABlueDeveloper/278
Ranges and indices
اضافه شدن نوع Index برای زمانی که نیاز به ایندکس گذاری دارید ، شما میتونید از این نوع تایپ استفاده کنید و بصورت Int مقدار دهی کنید و یا قبل مقدار int از ^ استفاده کنید برای گرفتن مقدار ایندکس از اخر (prefix) . در واقع از این به بعد هرجا نیاز دارین که از کالکشنی با index ، value آن ایتم را بگیرید ، ویرایش یا پر کنید از index باید استفاده کنید.

Index i1 = 3;  // number 3 from beginning
Index i2 = ^4; // number 4 from end
int[] a = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 };
Console.WriteLine($"{a[i1]}, {a[i2]}"); // "3, 6"

همچنین یک نوع محدوده معرفی شده که شامل دو Index است، یکی برای شروع و یک برای پایان، و می تواند با یک عبارت x..y نوشته شود.با توجه به مثال قبل به مثال زیر توجه کنید:
var slice = a[i1..i2]; // { 3, 4, 5 }

Default implementations of interface members

در حال حاضر هنگامی که یک Interface را نوشتید و استفاده میکنید ،دیگر نمی توانید Member به آن را اضافه کنید بدون اینکه کلاسهایی که استفاده کردند تغییری ندهند.
در C # 8.0 به شما اجازه داده میشود در واقع یه Member رو Overload کنید . حالا دیگر تمام کلاس هایی که این interface را impelement کردند نیازی نیست حتما definition اون member رو بنویسند و از همون default impelementation که قبلا بود استفاده میکنند . به مثال زیر توجه کنید :

 interface ILogger
{
void Log(LogLevel level, string message);
void Log(Exception ex) => Log(LogLevel.Error, ex.ToString()); // New overload
}

class ConsoleLogger : ILogger
{
public void Log(LogLevel level, string message) { ... }
// Log(Exception) gets default implementation
}

کلاس ConsoleLogger نیازی به پیاده سازی Log (Exception) از ILogger نیست، زیرا متد با اجرای پیش فرض اعلام شده است.

حالا شما میتوانید Members های جدید رو به interface هاتون با خیال راحت با default implementation اضافه کنید بدون اینکه نیاز باشه تو هر جایی که از این interface استفاده کردید تغییری ایجاد کنید.




@ABlueDeveloper
This media is not supported in your browser
VIEW IN TELEGRAM
#react
#d3
#dataviz

کتابخانه nivo فراهم می کند مجموعه غنی از کامپوننت های dataviz، کتابخانه های عالی برای D3 و Reactjs ساخته شده است.
📌 لینک سایت:
http://nivo.rocks

@ABlueDeveloper
Forwarded from اتچ بات
#hmvc
#HierarchicalModelViewController

💠 معماری hmvc چیست ؟
اگر شما هم یکی از افرادی هستید که با معماری mvc کارمیکنید به احتمال زیاد تا به حال نام معماری hmvc را هم شنیده اید

معماری hmvc در واقع به مخفف Hierarchical Model View Controller گفته میشود این معماری mvc سلسله مراتبی نامیده می شود و یک الگوی معماری است که می تواند به خوبی برای سایت های ماژولار استفاده شود

در مسیر یابی عادی mvc یک آدرس url درخواستی را انجام میدهد که یک کنترلر بر اساس کدنویسی انجام شده ارتباط با دیتابیس و ویو و پردازش های لازم را انجام داده و سپس به view برای رندر، منتقل می شود.

این کار به خوبی برای برنامه های عادی و کوچک کار می کند ، اما هنگامی که برنامه شما از نظر پیچیدگی رشد می کند، شما نیاز به کنترلر های بیشتری خواهید داشت .


درواقع در hmvc ما برای هر بخش مجزایی که داریم یک mvc کامل خواهیم داشت که به صورت مستقل کار خواهد کرد . برای مثال ما پوشه ای به نام panel داریم که بخش هایی درون آن خود دارای ساختار کلی کد ایگنایتر هست و پوشه های controllers - models - views - config و غیره را دارد و همیشه اول از این بخش استفاده میشود.


@ABlueDeveloper
#ONNX
یه پروژه جذاب جاواسکریپتی به اسم
onnxjs
واسه اجرا کردن مدل‌های
ONNX
روی مرورگر (Browser) با استفاده از
WebAssembly و WebGL
که بتونه از قدرت
GPU
در سمت کلاینت استفاده کنه.

هوش مصنوعی دیگه از آنچه شما فکر می‌کنید به شما نزدیک‌تر است!

https://github.com/Microsoft/onnxjs


@ABlueDeveloper
This media is not supported in your browser
VIEW IN TELEGRAM
#dotnetcore
#WPF
#Core3
امکان ساخت برنامه‌های Desktop اپلیکیشن بر اساس Net Core. در حال فراهم شدنه.
توی این ویدیو می‌تونید مراحل ساخت یک پروژه WPF رو بر اساس Net Core 3.0. ببنید.
@ABlueDeveloper
#React
#JavaScript
#VSCode

The Ultimate VSCode Setup for Front End/JS/React

https://goo.gl/wB7X5p

@fullStackDevs
#EcmaScript6
#ES6

🌀 ویژگی های اضافه شده در EcmaScript 6

1️⃣ حل مشکلات Unicode و …:
در ES6 سعی شده که مشکلات مربوط به زبان های شرقی و خاورمیانه تا حد زیادی حل بشه مثلا وقتی length یک رشته رو میگیرد و یا کد اسکی رو میخواهید به دست بیارید یا Regex بنویسید یا تطبیق Regex انجام بدید بهتر عمل میکنند و این بهتر عمل کردن مختص به تمام متد ها است یعنی این بهبود به جای اینکه در متد ها تغییر کنه در Core اصلی Javascript تغییر کرده تا تمام قابلیت ها Built-in یا Third-party بتونن ازش استفاده کنند.

2️⃣ قالب های رشته Template String:
قبلا میخواستید چند تا متغیر رو لا به لای یه رشته بگنجونید چه کار انجام میدادید؟!
قطعا مثل زیر عمل میکردید:

 var finalStr = "Hello " + name + " and wellcome to: " + appName;
خب این همه استفاده از + و "" خیلی سخت است.
به جاش توی ES6 به این صورت عمل میکنیم:
 var finalStr = `Hello ${name} and wellcome to: ${appName}`;

پس استفاده از” از ‘استفاده کردیم و برای گنجوندن متغیر توی String از{VARIABLE_NAME}$ استفاده میکنیم.

اما یه مزیت دیگه این کار میتونید از قابلیت Multiline بودن اون استفاده کنید. فرض کنید میخواهید ساختار HTML را در قالب یک String در JS داشته باشید.

var finalHTML = '<div class="container">' + 
'<div class="row">' +
'<div class="col-md-12">' +
'<p class="text-center">www.Baboon.ir</p>' +
'</div>' +
'</div>' +
'</div>';
واقعا این کار آزار دهنده است اما توی ES6 میتونید به این صورت عمل کنید.
 var finalHTML = `<div class="container"> 
<div class="row">
<div class="col-md-12">
<p class="text-center">www.Baboon.ir</p>
</div>
</div>
</div>`;
3️⃣ متد String.startsWith:
این متد چک میکند که آیا String با رشته یا کاراکتر مورد نظر شروع میشود یا خیر. اولین آرگومان این متد رشته مورد نظر است و دومین پارامتر یک عدد است که مشخص میکند شروع کجا باشد.

4️⃣ متد String.endsWith:
این متد چک میکند که آیا String با رشته یا کاراکتر مورد نظر خاتمه پیدا میکند یا خیر. اولین آرگومان این متد رشته مورد نظر است و دومین پارامتر یک عدد است که مشخص میکند شروع کجا باشد.

5️⃣ متد String.includes:
این متد چک میکند که یه string در رشته ای وجود دارد یا نه در اصل این متد به دنبال رشته مورد نظر در String میگردد و True یا False بر میگرداند.

6️⃣ متد String.repeat:
این متد String را با تعداد مورد نظر تکرار میکند و بر میگرداند برای مثال اگر "hamid" را با مقدار 3 به این متد بدهیم مقدار "hamidhamidhamid" را برمیگرداند.

7️⃣ متد String.codePointAt:
این متد کد ASCII کاراکتر Index که به آن ارجاع داده شده است را برمیگرد برای مثال اگر رشته "HAMID"را داشته باشیم و مقدار 1 را به این متد بدهیم خواهیم دید کد اسکی کارامتر A که 65 است بازگشت داده میشود. این متدحتی با Unicode و… کاراکتر هایی مثل 𠮷 مشکلی نداره.

8️⃣ متد String.fromCodePoint:
این متد دقیقا بر عکس متد قبل عمل میکند. این متد یک متد Static است یعنی با رشته ای صدا زده نمیشود و به صورت String.fromCodePoint صدا زده میشود.
این متد به مقدار دلخواه عدد میگیرد و کاراکتر موجود در آن کد اسکی را برمیگرداند. برای مثال اگر 65, 66, 67 را به این متد بدهیم مقدار ABC به ما بازگشت داده میشود.

9️⃣ تبدیل رشته به آرایه ها:
برای این کار کافیه به جای استفاده از splitبه صورت زیر عمل کنید.
 let arrayOfChars = [..."HAMIDFARAJI"];

🔟 حلقه بروی تک تک کاراکتر های رشته:
برای اینکه روی تک تک کاراکتر های یک رشته در JS معمولی باید کارهای زیادی میکردیم اما توی ES6 به راحتی با ایجاد یک for of این کار رو انجام میدید حتی این کار با Unicode و کارامتر های ME هم مشکلی نداره

2
3 for (let c of 'HAMID') {
console.log(c);
}
@fullStackDevs
#Fun
#whileDo
تفاوت do while ‌با while به روایت تصویر !


do…while vs while

@fullStackDevs
#React #ReactNative #Angular #Vue

A Recap of Frontend Development in 2018

خلاصه توسعه در FrondEnd در سال 2018!

📌 لینک مطلب : https://goo.gl/Fud5au

@fullStackDevs
#React

Inside Fiber: in-depth overview of the new reconciliation algorithm in React
Link : https://goo.gl/ceRMrL
#frontEnd #Fiber
@fullStackDevs
#Css #Shapes

یه مقاله خوب برای آموزش css‌اشکال و چگونگی درست کردن شکل های مختلف با css
📌 لینک :https://goo.gl/XwRzXX
@fullStackDevs