Web Devs
640 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
#JavaScript

Event Delegation in Javascript


@fullStackDevs
👍52
#csharp

Enum Flags Attribute in C#

@fullStackDevs
👍72🔥2
This media is not supported in your browser
VIEW IN TELEGRAM
#vscode #extention

How to take fancy screenshots
of your codes in vs code?


@fullStackDevs
👍91
#html5
#bdi_element

بارها می خواستیم از یک کلمه انگلیسی در متن فارسی استفاده کنیم که تو نمایش در مرورگر به هم میریخت! برای این مشکل می تونیم از تگ <bdi> استفاده کنیم

تگ <bdi> برای جهت دادن به متن یا کاراکتراهایی که خارج از زبان اصلی صفحه بوده و از لحاظ فرمت با آن فرق دارد استفاده می شود.

از این تگ جهت تعبیه محتوایی که کاربر ایجاد می کند و جهت نوشتاری که زبان آن نامشخص است به کار می رود.

تگ bdi مخفف Bi-Directiona-Isolationl یعنی جدا سازی دو جهته می باشد.

تگ <bdi> در HTML5 معرفی شده است.

سورس کد تصویر

🔗 <bdi>: The Bidirectional Isolate element

@fullStackDevs
👍74🔥2
🔰 ماژول ها در جاوا اسکریپت.

هر چه اپلیکیشن بزرگتر و پیچیده تر می شود این نیاز حس می شود که کد های خود را به فایل های جدا تقسیم کنیم. درواقع یک ماژول یک فانکشن یا گروهی از فانکشن های مشابه است که درون یک فایل برای انجام یک تسک خاص دسته بندی شده اند.

🔹 هدف از ساختن ماژول ها دسته بندی و ساختار بندی بهتر Codebase تان میباشد.
مهم ترین دلیل استفاده از ماژول ها برای تقسیم یک برنامه بزرگ به بخش های کوچکتر که قابلیت مدیریت اسان تر را دارا هستند میباشد.

🔸با این وجود ماژول ها بایستی ویژگی هایی داشته باشند که مهمترین آنها عبارتند از :

▫️ ویژگی وابسته نبودن یا Independent
ماژول ها باید تا حد ممکن از دیگر ماژول ها جدا و بدون وابستگی باشند.

▫️ مختص بودن
یک ماژول برای انجام یک تسک یا گروهی از تسک های بهم مرتبط ساخته می شود و مهمترین جنبه ساختن آنها در وهله اول جدا کردن functionality می باشد. (هر ماژول یک نوع تسک)
▫️قابلیت استفاده مجدد
یک ماژول بابد این قابلیت را داشته باشد که بتوان از آن به دفعات مکرر در قسمت های مختلف کد استفاده کرد. در واقع ماموریت انجام یک تسک بخصوص در قسمت های مختلف کد برعهده یک ماژول است.

🔸از طرفی ماژول ها می توانند باهم ارتباط هم برقرار کند
در جاواسکریپت برای اینکه ماژولی بیرون از فایل در دسترس باشد از کلمه کلیدی export استفاده می کنیم در مقابل اگر ماژولی بخواهد از ماژول دیگر استفاده کند باید آنرا import کند.

🔹فرق یک ماژول و یک اسکریپت معمولی در چیست ؟

▫️ یک ماژول همیشه در حالت strict اجرا می شود
▫️هر ماژول scope خودش را دارد و متغیر های تعریف شده در یک ماژول حالت عادی در ماژول دیگر قابل مشاهده نیستند. مگر آنها را export کنید.
▫️ اگر یک ماژول را به دفعات زیاد در کد import کنید، کدهای آن ماژول فقط یکبار اجرا می شوند.
بنابراین اگر ماژولی ابجکتی export کند و آن ماژول در ماژول های متعدد import شود، تغییرات ایجاد شده بروی آبجکت export شده در سایر ماژول ها قابل دسترس خواهد بود.
اگر بخواهید کد های ماژولی با هر بار صدا زده شدن، اجر شوند، باید به عنوان یک فانکشن export شوند.
▫️آبجکت import.iss.oneta
از طریق این آبجکت می توانید بسته به محیطی که ماژول در آن است اطلاعاتی در مورد ماژول دریافت کنید.
برای مثال در مرورگر آدرس ماژول را دریافت می کنید.

در پایان سال خوبی را برایتان ارزومندیم.♥️

#js
#modules
@FullStackDevs
👍6
#dotnet
#CSharp10

In C# 10 With Expressions are not limited to records.

You can use them with anonymous types as well.

https://github.com/gsferreira/dotnet-playground

@fullStackDevs
👍3
#RPC
#GraphQL
#REST
#SOAP

SOAP vs REST vs GraphQL vs RPC

API Architectural Styles Comparison

The diagram above illustrates the API timeline and API styles comparison.

Over time, different API architectural styles are released. Each of them has its own patterns of standardizing data exchange.

You can check out the use cases of each style in the diagram.

🔗 Source link

@fullStackDevs
👍32
#KilledByMicrosoft

Microsoft, like Google has also killed many projects over the years.
At the link below you can see the list of Microsoft Cemetery.

The last interesting option on this list is Skype for Businesses, which is still alive
But in 2025 it will join Microsoft Digital Cemetery, where you have to wonder what the hell Microsoft is thinking.


Have a look at:
https://killedbymicrosoft.info/

@fullStackDevs
🔥5👍3
#Redis
#RedisGraph

RedisGraph 2.8 is out:

RedisGraph is a high-performance, memory-first graph data structure for Redis

Major new features in RedisGraph 2.8

🔲 Richer graph model
▫️Multi-labeled nodes

🔲Enhanced querying capabilities
▫️Enhanced full-text search

▫️Supporting more Cypher constructs, functions, and operators

🔲Performance improvements
▫️Indexes over relationship properties
▫️Delta Matrices
▫️Controllable node creation buffer

Read more here : RedisGraph
Graph database using Redis Stack

@fullStackDevs
👍9
#Browser
#shortcuts

🎯 useful browser for software engineering

for example, write js.new in the browser's address bar, the JavaScript sandbox will open.

دامنه های مفید برای مهندسی نرم افزار


برای مثال، js.new را در نوار آدرس مرورگر بنویسید و اینتر کنید،sandbox جاوا اسکریپت باز خواهد شد یا مثلا github.new بزنید و لاگین باشید میره تو repository و new را باز میکنه براتون !


✏️ Daniele serfilippi


@fullStackDevs
👍53🔥1
#HTTPS

What is so important about HTTPS that, these days, most websites require it?

How does HTTPS work?

it will answer these questions in this video.

https://www.youtube.com/watch?v=67kItGjvRs0

https://blog.bytebytego.com/

@fullStackDevs
🔥2
#frontend #css

Fancy Border Radius

an advanced css feature

upto 8 values for border-radius property
customize your fancy shapes in the link below :

🔗 https://9elements.github.io/fancy-border-radius/

@fullStackDevs
🔥8👍1
#GenericAttribute

In C#, if you want to pass the type to an attribute, you can use the 'typeof' expression.

However, there is no way to constrain what types are allowed to be passed.

C# 11 allows generic attributes.


@fullStackDevs
👍10🔥2
#json
#orderAttribute

In .NET 6, the JsonPropertyOrderAttribute has been added to System.Text.Json.

It allows controlling the serialization order of properties.

Previously, the serialization order was determined by reflection order.


✏️ Oleg Kyrylchuk

@fullStackDevs
👍11
Forwarded from Web Devs
#AOP

🔰AOP
🔹در این پست میخواهیم AOP رو مورد بررسی قرار دهیم.
در توسعه نرم افزار AOP یک مدل توسعه نرم افزار است که برای تکمیل OOP ( برنامه نویسی شی گرا) به وسیله جدا سازی concern ها اپلیکیشن برای رسیدن به ماژولاریتی استفاده میشود.
جداسازی concern ها با دسته بندی feature ها و behavior های اپلیکیشن به بخش های قابل مدیریت که هر کدام هدف خاصی دارن، نگهداری آنرا آسان تر میکند .
البته به کمک OOP امکان modularizing کردن concern ها به متد های مجزا و کلاس ها و package ها وجود دارد.

❇️ Aspect-Oriented Programming (AOP)

🔹یک تکنیک رایج برای ساخت راه کارهایی قابل استفاده در سراسر اپلیکیشن است که در طی توسعه نرم افزار، جداسازی منطق برنامه و تسک های قابل تکرار را تسهیل میکند.
مانند (input validation, logging, error handling, security)
🔸معماری یک اپلیکیشن اگر به خوبی طراحی شده باشد دارای لایه های متفاوت باید باشد و concern های مختلف در این معماری فقط در صورت نیاز باهم در ارتباط باشند.
▪️ فرض کنید یک اپلیکیشن loosely couple و maintainable طراحی کرده اید اما در میان راه نیازمند یه سری موارد هستید که ممکن است، نتوان آنها را در معماری به درستی جایگذاری کرد مانند :
▫️نیازمند سیستم authentication ای هستید برای بررسی احراز هویت کاربر قبل از هر کوئری به دیتا بیس
▫️ یا نیازمند است دیتاها قبل از insert در دیتابیس اعتبار سنجی شوند
▫️اپلیکیشن باید برای عملیات های حساس و مهم logging را انجام دهد.
▫️اپلیکیشن باید دارای یک سیستم debugging log جهت بررسی ok بودن عملیات ها باشد.
▫️اپلیکیشن باید دارای یک سیستم بررسی پرفورمنس باشد تا عملکرد عملیات های اپلیکیشن را بررسی کند.

🔸هر کدام از نیازمند های گفته شده نیازمند حجم زیادی از checking و کد میباشند.
علاوه بر آن امکان code duplication نیز وجود دارد و مجبورید کد های تکراری زیادی را در بخش های مختلف سیستم اضافه کنید. که نقض اصل DRY است و نگهداری اپلیکیشن را سخت میکند.
علاوه بر اینها هر تغییر کوچک در این نیازمندی ها باعث تغییرات عظیم در اپلیکیشن میشود.
🔹مواقعی که مجبور باشیم چنین الزاماتی را به اپلیکیشن خود اضافه کنیم، سوالی پیش می اید :
🔻 "چرا اصلا خود کامپایلر نمیتواند این کدهایی که در جاهای مختلف تکرار میشوند را اضافه کند ؟"
خبر خوب این است که چیزی به نام "aspect-oriented programming (AOP)" وجود دارد که general کد ها را از aspect ها در سراسر boundary های یک آبجکت یا یک لایه جدا میکند.
برای مثال logging در اپلیکیشن، وابسته به هیچ یک از لایه های اپلیکیشن نیست، بلکه باید در سراسر اپلیکیشن وجود داشته باشد و در همه جای برنامه بتوان آنرا اضافه کرد.
🔹از مزیت های AOP این است که فقط نیاز است نگران یک جای کد باشید. در یک جا کد بنویسید و آنرا در هرجایی که نیاز است اعمال کنید.

❇️ موارد استفاده از AOP بسیار زیاد است مانند :
▫️پیاده سازی logging در اپلیکیشن
▫️استفاده از authentication قبل از یک عملیات (اجازه دسترسی به کاربرانی که احراز هویت شده اند)
▫️پیاده سازی اعتبار سنجی و همچنین پیاده سازی سیستم اعلانی که با تغییر مقدار یک پراپرتی ایونتی را raise میکند.
▫️تغییر رفتار برخی متد ها.
🔸همانطور که میبینید AOP کاربرد های فراوانی دارد اما باید با احتیاط از آن استفاده کنید.
چون استفاده از آن برخی کد ها را در حالی که وجود دارند Hide میکند. همچنین aspect ها میتواند دارای باگی باشند یا تاثیر بسزایی در پرفورمنس اپلیکیشن داشته باشد. هزینه یک باگ جزئی در یک aspect ممکن است ساعت ها دیباگ کردن باشد. در نتیجه اگر aspect تان در جاهای دیگری ار اپلیکیشن استفاده نمیشود بهتر است مستقیما آنرا وارد کدتان کنید.

@fullStackDevs
👍11
#LINQ

C# LINQ Mind Map

Here a simple mind map for beginners to get an overview over the waste variety off LINQ operations grouped into categories.

This mind map is taken from my free eBook: "LINQ explained with sketches - the eBook" - which I update regularly. I hope that gives a better picture, especially for beginners.

The download link for the free ebook: https://lnkd.in/dG3K8vCW

✏️ Steven Giesel

@fullStackDevs
👍9