ʜᴇʀᴏ ᴇxᴘᴇʀᴛ | کارشناس قهرمان – Telegram
ʜᴇʀᴏ ᴇxᴘᴇʀᴛ | کارشناس قهرمان
8.52K subscribers
229 photos
6 videos
7 files
237 links
🏅تبلیغات 👈🏻 @ExpertsAds
Download Telegram
👩‍💻 تکه‌ کد اعتبارسنجی ایمیل کاربر
⚠️ این تکه کد به زبان 🟩 نوشته شده است
🟥🟥🟥🟥🟥🟥🟥🟥🟥🟥🟥
import re

def validate_email(email: str) -> str:
if not re.match(r'^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$', email):
return 'ایمیل نامعتبر است'
return 'ایمیل معتبر است'

# Example
email = 'aabrahimi1718@gmail.com'
print(validate_email(email))
# Output => ایمیل معتبر است

🟥🟥🟥🟥🟥🟥🟥🟥🟥🟥🟥
📣 @HeroExpert_ir | کارشناس قهرمان
Please open Telegram to view this post
VIEW IN TELEGRAM
1
🤩 پایگاه داده SQLite چیست؟

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

🔵 مزایای اس‌کیوال‌ لایت [SQLite]

🟪 مناسب برای توسعه و تست
🟪 سرعت و کارایی بالا
🟪 بدون نیاز به سرور
🟪 سبک و کم‌ حجم
🟪 سازگاری بالا


⚡️ @HeroExpert_ir | کارشناس قهرمان
Please open Telegram to view this post
VIEW IN TELEGRAM
1
🎨 مفهوم Design Patterns چیست؟

در طول زمان، برنامه‌نویسان در فرآیند توسعه نرم‌افزار با مشکلات و چالش‌های متعددی مواجه شده‌اند. بسیاری از این مشکلات در زبان‌های برنامه‌نویسی مختلف مشابه هستند و راه‌حل‌های عمومی و تکرارشونده‌ای برای آن‌ ها وجود دارد. به همین دلیل، مجموعه‌ ای از بهترین و مؤثر ترین راه‌حل‌ها برای این مشکلات تعریف و تدوین شده است که به آن‌ ها الگو های طراحی می‌گویند. به عبارت دیگر، الگو های طراحی مجموعه‌ای از روش‌های استاندارد و اثبات‌ شده برای حل مشکلات رایج در طراحی و توسعه نرم‌افزار هستند که به برنامه‌ نویسان کمک می‌کنند کد هایی کارآمدتر، انعطاف‌ پذیرتر و خواناتر بنویسند.

انواع الگو های طراحی

⭐️ سازنده [Creational]
⭐️ رفتاری [Behavioral]
⭐️ ساختاری [Structural]


✈️ @HeroExpert_ir | کارشناس قهرمان
Please open Telegram to view this post
VIEW IN TELEGRAM
1
👩‍💻 تکه‌ کد اعتبارسنجی لینک [Url]
⚠️ این تکه کد به زبان 🟠 نوشته شده است
🟥🟥🟥🟥🟥🟥🟥🟥🟥🟥🟥
function isValidUrl(string $url): bool
{
# Decode the URL
$url = urldecode($url);

# General URL validation
if (!filter_var($url, FILTER_VALIDATE_URL) || strlen($url) >= 2048) {
return false;
}

# Check for dangerous patterns
if (preg_match('/(\.\.\/)/', $url)) {
return false;
}

# Prevent XSS attempts
if (stripos($url, 'javanoscript:') !== false || stripos($url, '<noscript>') !== false) {
return false;
}

# Check domain
if (isset($parsedUrl['host']) && strpos($parsedUrl['host'], '.') === false) {
return false;
}
return true;
}

# Example
var_dump(isValidUrl('https://hero'));
# Output: false
var_dump(isValidUrl('https://hero.ac'));
# Output: true

🟥🟥🟥🟥🟥🟥🟥🟥🟥🟥🟥
✈️ @HeroExpert_ir | کارشناس قهرمان
Please open Telegram to view this post
VIEW IN TELEGRAM
1
🤩 فریم‌ورک Next.js چیست؟
🟦🟦🟦🟦🟦🟦🟦🟦🟦🟦🟦
نکست جی‌اس یک فریم‌ورک قدرتمند جاوا اسکریپت بر پایه ری‌اکت می‌باشد. این فریم‌ورک برای ساخت برنامه‌های وب مدرن و بهینه، به‌ ویژه وب‌ سایت‌ های ایستا و برنامه‌های تک‌ صفحه‌ای طراحی شده است. همچنین به توسعه‌ دهندگان امکان می‌دهد تا از ویژگی‌های پیشرفته‌ای مانند رندر سمت سرور، تولید صفحات ایستا و.. بهره ببرند. این ویژگی‌ها باعث می‌شود وب‌سایت‌های ساخته شده با این‌ فریم‌ورک بسیار سریع و کاربرپسند باشند.

🔝 ویژگی‌های نکست جی‌اس [Next.js]

🔹 توسعه سریع و آسان
🔹 پشتیبانی از API داخلی
🔹 رندر سمت سرور (SSR)
🔹 تولید صفحات ایستا (SSG)
🔹 اکوسیستم قوی و انعطاف‌پذیر

🟦🟦🟦🟦🟦🟦🟦🟦🟦🟦🟦
✈️ @HeroExpert_ir | کارشناس قهرمان
Please open Telegram to view this post
VIEW IN TELEGRAM
1
👩‍💻 تکه‌ کد اعتبارسنجی ایمیل کاربر
⚠️ این تکه کد به زبان 🎲 نوشته شده است

function validateEmail(email) {
const regex = /^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$/;

if (!email || typeof email !== 'string') {
return 'ایمیل نامعتبر است';
}

if (!regex.test(email)) {
return 'ایمیل نامعتبر است';
}

return 'ایمیل معتبر است';
}

// Example
const email = 'aabrahimi1718@gmail.com';
console.log(validateEmail(email));
// OutPut => ایمیل معتبر است


⚡️@HeroExpert_ir | کارشناس قهرمان
Please open Telegram to view this post
VIEW IN TELEGRAM
1
🎨 انواع الگو های طراحی [TDP]
🟪🟪🟪🟪🟪🟪🟪🟪🟪🟪🟪

⭐️ سازنده [Creational]
⭐️بیلدر [Builder]
⭐️سینگلتون [Singleton]
⭐️پروتوتایپ [Prototype]
⭐️آبجکت پول [Object Pool]
⭐️فکتوری متود [Factory Method]
⭐️ابسترکت فکتوری [Abstract Factory]

⭐️ رفتاری [Behavioral]
⭐️استیت [State]
⭐️آبزرور [Observer]
⭐️مدیتور [Mediator]
⭐️کامند [Command]
⭐️استراتژی [Strategy]
⭐️تمپلیت متود [Template Method]
⭐️چین آف ... [Chain of Responsibility]

⭐️ ساختاری [Structural]
⭐️بریج [Bridge]
⭐️فَساد [Facade]
⭐️پراکسی [Proxy]
⭐️ادپتر [Adapter]
⭐️دکوریتور [Decorator]
⭐️کامپوزیت [Composite]

🟪🟪🟪🟪🟪🟪🟪🟪🟪🟪🟪
✉️ @HeroExpert_ir | کارشناس قهرمان
Please open Telegram to view this post
VIEW IN TELEGRAM
1
🤓 پلتفرم گیت‌لب [GitLab] چیست؟
🟥🟥🟥🟥🟥🟥🟥🟥🟥🟥🟥
گیت‌لب هم همانند گیت‌هاب یک پلتفرم جامع و محبوب برای مدیریت پروژه‌های نرم‌افزاری است که به توسعه‌دهندگان کمک می‌کند تا کدهای خود را به اشتراک بگذارند، همکاری کنند و به صورت مؤثری پروژه‌های خود را مدیریت نمایند. گیت‌لب مانند یک اکوسیستم کامل برای توسعه نرم‌افزار عمل می‌کند که شامل ابزارهای مختلفی برای مدیریت کد، یکپارچه‌سازی مداوم، و همکاری تیمی است. در واقع، گیت‌لب بیشتر از یک مخزن کد است؛ این ابزار به عنوان یک سیستم جامع دواپس شناخته می‌شود که تمام نیازهای یک تیم توسعه را در یک پلتفرم فراهم می‌کند.

🔝 ویژگی‌های گیت‌لب [GitLab]:

امنیت بالا
میزبان رایگان و تجاری
امکان همکاری با تیم‌های مختلف
یکپارچگی کامل با ابزارهای CI/CD
سیستم کنترل نسخه و مدیریت تغییرات
ارائه ابزارهای دواپس برای توسعه سریع‌تر

🟥🟥🟥🟥🟥🟥🟥🟥🟥🟥🟥
📱 @HeroExpert_ir | کارشناس قهرمان
Please open Telegram to view this post
VIEW IN TELEGRAM
1
👩‍💻 تکه‌ کد اعتبارسنجی لینک [Url]
⚠️ این تکه کد به زبان 🟩 نوشته شده است
🟥🟥🟥🟥🟥🟥🟥🟥🟥🟥🟥
import re

from urllib.parse import unquote, urlparse

def is_valid_url(url: str) -> bool:
# Decode the URL
url = unquote(url)

# General URL validation
if len(url) >= 2048:
return False
parsed_url = urlparse(url)
if not parsed_url.scheme or not parsed_url.netloc:
return False

# Check for dangerous patterns
if re.search(r'(\.\./)', url):
return False

# Prevent XSS attempts
if 'javanoscript:' in url.lower() or '<noscript>' in url.lower():
return False

# Check domain
if '.' not in parsed_url.netloc:
return False

return True

# Example
print(is_valid_url('https://hero'))
# Output: False
print(is_valid_url('https://hero.ac'))
# Output: True

🟥🟥🟥🟥🟥🟥🟥🟥🟥🟥🟥
✈️ @HeroExpert_ir | کارشناس قهرمان
Please open Telegram to view this post
VIEW IN TELEGRAM
1
🎨 آشنایی با دسته بندی الگو های طراحی
🟥🟥🟥🟥🟥🟥🟥🟥🟥🟥🟥
خب دوستان ما در اینجا مفهوم الگو های طراحی رو توضیح دادیم و در اینجا هم اومدیم آن هارو به سه دسته اصلی تقسیم کردیم در ادامه تمرکز اصلی هرکدام از این دسته‌ ها را بررسی می‌کنیم.

الگوهای طراحی سازنده [Creational]
الگو های طراحی سازنده بر ایجاد و مدیریت اشیاء تمرکز دارند. هدف این الگو ها کاهش پیچیدگی ساخت اشیاء و افزایش انعطاف‌ پذیری کد است.

الگوهای طراحی ساختاری [Structural]
الگو های طراحی ساختاری به نحوه ترکیب و سازماندهی کلاس‌ها و اشیاء برای ساختار های بزرگ و کارآمد کمک می‌کنند. این الگو ها معماری نرم‌افزار را ساده و قابل‌درک می‌کنند.

الگوهای طراحی رفتاری [Behavioral]
الگو های طراحی رفتاری بر تعامل و ارتباط بین اشیاء و کلاس‌ها تمرکز دارند و به مدیریت رفتارهای سیستم کمک می‌کنند. این الگوها مسئولیت‌ها را به درستی بین بخش‌ های مختلف نرم‌افزار توزیع می‌کنند.
🟥🟥🟥🟥🟥🟥🟥🟥🟥🟥🟥
⚡️ @HeroExpert_ir | کارشناس قهرمان
Please open Telegram to view this post
VIEW IN TELEGRAM
1
🤩 مفهوم معماری نرم‌افزار چیست؟

معماری نرم‌افزار[Software Architecture] به ساختار کلی یک سیستم نرم‌افزاری گفته می‌شود. این مفهوم به نحوه تقسیم‌ بندی سیستم به اجزای مختلف و نحوه تعامل این اجزا با یکدیگر اشاره دارد. هدف معماری نرم‌افزار، ایجاد سیستمی مقیاس‌ پذیر، انعطاف‌ پذیر و قابل نگهداری است که نیازهای عملکردی و غیر عملکردی پروژه را به‌طور بهینه برآورده کند. در واقع، معماری نرم‌افزار تصمیم‌ گیری در مورد نحوه طراحی و سازمان‌ دهی اجزای مختلف سیستم است. این تصمیمات تأثیر زیادی بر روی کارایی، مقیاس‌ پذیری، امنیت و قابلیت توسعه نرم‌افزار خواهند داشت. معماری خوب می‌تواند به بهبود عملکرد سیستم و تسهیل فرآیندهای نگهداری و گسترش نرم‌ افزار کمک کند.

⚙️ انواع معماری نرم‌افزار

معماری SOA
معماری MVC
معماری N-Tier
معماری MVVM
معماری Monolithic
معماری Event-Driven
معماری Client-Server
معماری Microservices


✉️ @HeroExpert_ir | کارشناس قهرمان
Please open Telegram to view this post
VIEW IN TELEGRAM
1
👩‍💻 تکه‌ کد اعتبارسنجی لینک [Url]
⚠️ این تکه کد به زبان ⚫️ نوشته شده است

package main

import (
"fmt"
"net/url"
"strings"
)

func isValidUrl(input string) bool {
decodedUrl, err := url.QueryUnescape(input)
if err != nil {
return false
}

parsedUrl, err := url.Parse(decodedUrl)
if err != nil || len(decodedUrl) >= 2048 {
return false
}

lowerUrl := strings.ToLower(decodedUrl)
if strings.Contains(decodedUrl, "../") || strings.Contains(lowerUrl, "javanoscript:") || strings.Contains(lowerUrl, "<noscript>") {
return false
}

if parsedUrl.Host != "" && !strings.Contains(parsedUrl.Host, ".") {
return false
}

return true
}


func main() {
// Example
fmt.Println(isValidUrl("https://hero"))
// Output: false
fmt.Println(isValidUrl("https://hero.ac"))
// Output: true
}


✈️ @HeroExpert_ir | کارشناس قهرمان
Please open Telegram to view this post
VIEW IN TELEGRAM
1
🟫 زبان برنامه‌نویسی دارت [Dart] چیست؟

دارت یک زبان برنامه‌ نویسی مدرن و متن‌ باز است که توسط شرکت گوگل طراحی شده و برای توسعه اپلیکیشن‌های سریع، منعطف و کارآمد استفاده می‌شود. این زبان امکان توسعه اپلیکیشن‌های موبایل، وب و دسکتاپ را از یک کد بیس فراهم می‌کند و به دلیل سادگی قوانین نوشتاری و سرعت بالا، به یکی از گزینه‌ های محبوب در بین برنامه‌ نویسان اپلیکیشن‌ های چند پلتفرمی تبدیل شده است.

🔼 مزایای دارت [Dart]

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

🔽 معایب دارت [Dart]

وابستگی به فلاتر
جامعه کاربری کوچک‌ تر
پشتیبانی محدود کتابخانه‌ ها


⚡️ @HeroExpert_ir | کارشناس تکنولوژی
Please open Telegram to view this post
VIEW IN TELEGRAM
1
💘💘💘💘💘💘💘💘💘
Please open Telegram to view this post
VIEW IN TELEGRAM
⭐️ الگوی طراحی بیلدر [Builder] چیست؟

الگوی طراحی بیلدر یکی از الگو های طراحی ساختاری است که برای ایجاد آبجکت‌های پیچیده به روشی ساده، مرحله‌ به‌ مرحله و انعطاف‌ پذیر استفاده می‌شود. این الگو زمانی مفید است که بخواهید آبجکت‌ هایی با ترکیبات مختلف از ویژگی‌ ها و تنظیمات بسازید، بدون اینکه نیاز به تعریف سازنده‌ های متعدد[کانستراکتور] برای هر ترکیب ممکن داشته باشید. با استفاده از این الگو، می‌توانید فرآیند ساخت آبجکت را از ساختار نهایی آن جدا کنید، به طوری که مراحل ساخت قابل تغییر یا توسعه باشند، بدون آنکه در محصول نهایی اختلال ایجاد شود

مزایای الگوی طراحی بیلدر

کد تمیزتر
خوانایی بالا
انعطاف‌پذیری بالا
کاهش پیچیدگی کد

🟡 مثال عملی الگوی طراحی بیلدر

⚫️ مثال عملی با زبان Go
🟠 مثال عملی با زبان Php
🟩 مثال عملی با زبان Python


📱 @HeroExpert_ir | کارشناس تکنولوژی
Please open Telegram to view this post
VIEW IN TELEGRAM
2
👩‍💻 تکه‌ کد اعتبارسنجی لینک [Url]
⚠️ این تکه کد به زبان 🎲 نوشته شده است

function isValidUrl(url) {
url = decodeURIComponent(url);

try {
const parsedUrl = new URL(url);
if (url.length >= 2048) {
return false;
}
} catch (e) {
return false;
}

if (/\.\.\//.test(url)) {
return false;
}

if (url.toLowerCase().includes('javanoscript:') || url.toLowerCase().includes('<noscript>')) {
return false;
}

const parsedUrl = new URL(url);
if (parsedUrl.hostname && !parsedUrl.hostname.includes('.')) {
return false;
}

return true;
}

// Example
console.log(isValidUrl('https://hero')); // Output: false
console.log(isValidUrl('https://hero.ac')); // Output: true


✈️ @HeroExpert_ir | کارشناس تکنولوژی
Please open Telegram to view this post
VIEW IN TELEGRAM
1
🤩 پایگاه داده ردیس [Redis] چیست؟

ردیس یک پایگاه داده بسیار سریع، ساده و متن باز است که داده‌ها را به جای هارد در حافظه ذخیره می‌کند. به دلیل سرعت و عملکرد فوق‌العاده بالا در ذخیره‌ سازی و بازیابی داده‌ ها بیشتر برای کارهایی مثل ذخیره‌ سازی موقت [Cache]، مدیریت صف‌ها [Queues] و نگهداری اطلاعات کوتاه‌ مدت در برنامه‌ ها استفاده می‌شود. این پایگاه داده از انواع مختلف داده‌ ها مثل متن، لیست، هش ها، استریم‌ ها و جداول پشتیبانی می‌کند، به‌ همین خاطر در بسیاری از برنامه‌ های آنلاین و بلادرنگ استفاده می‌شود.

⭐️ مزایای ردیس [Redis]

⭐️ ساده و کم‌ حجم
⭐️ رایگان و متن‌ باز
⭐️ سرعت بسیار بالا
⭐️ پشتیبانی از داده‌ های متنوع
⭐️ مناسب برای ذخیره اطلاعات موقت


🆔 @HeroExpert_ir | کارشناس تکنولوژی
Please open Telegram to view this post
VIEW IN TELEGRAM
1
👩‍💻 تکه‌ کد اتصال به پایگاه داده MySql
⚠️این تکه‌ کد برای اتصال به MySql می‌باشد
⚠️این تکه کد به زبان ⚫️ نوشته شده است

package main

import (
"fmt"
"log"
"gorm.io/driver/mysql"
"gorm.io/gorm"
)

func main() {
dataBase := map[string]string{
"name": "HeroExpert", // DbName
"userName": "root", //DbUserName
"passWord": "HeRo", // DbPassword
}

dsn := fmt.Sprintf("%s:%s@tcp(localhost:3306)/%s?charset=utf8mb4&parseTime=True&loc=Local",
dataBase["userName"], dataBase["passWord"], dataBase["name"])

db, err := gorm.Open(mysql.Open(dsn), &gorm.Config{})
if err != nil {
log.Fatalf("Connection Failed: %v", err)
}

fmt.Println("Connecting Successfully")

sqlDB, err := db.DB()
if err != nil {
log.Fatalf("Failed to get database instance: %v", err)
}
defer sqlDB.Close()

fmt.Println("Connection closed.")
}


✈️ @HeroExpert_ir | کارشناس تکنولوژی
Please open Telegram to view this post
VIEW IN TELEGRAM
1
🤩 معماری سرویس‌گرا [SOA] چیست؟

معماری سرویس‌گرا یک مدل معماری برای توسعه نرم‌افزار است که به سرویس‌ های مختلف این امکان را می‌دهد تا از طریق پلتفرم‌ های مختلف با یکدیگر ارتباط برقرار کنند و برای ساخت یک اپلیکیشن همکاری کنند. در این معماری، هر سرویس بخشی از یک نرم‌افزار است که برای انجام یک وظیفه خاص طراحی شده است. این معماری به سرویس‌ها اجازه می‌دهد تا با حداقل وابستگی به یکدیگر، داده‌ ها را منتقل کرده و فرآیندها را اجرا کنند. حداقل وابستگی به مشتری یک سرویس بدین معناست که سرویس‌ها می‌توانند به‌طور مستقل از سرویس‌های دیگر عمل کنند. مشتری یک سرویس، که می‌تواند خود یک سرویس باشد، قادر است با سرویس‌های دیگر نیز ارتباط برقرار کند. معماری سرویس‌گرا با ایجاد قابلیت همکاری میان برنامه‌ها و سرویس‌ها و کاهش هزینه‌ های توسعه راه‌ حل‌ های نرم‌افزاری، به سازمان‌ها سود می‌رساند.

🌟 کاربرد های معماری سرویس‌گرا [SOA]

طراحی سیستم‌های بانکی و مالی
پیاده‌سازی سیستم‌ های تجارت الکترونیک
یکپارچه‌ سازی داده‌ها در سازمان‌ های بزرگ
توسعه سیستم‌ های مدیریت منابع سازمانی


⚡️ @HeroExpert_ir | کارشناس تکنولوژی
Please open Telegram to view this post
VIEW IN TELEGRAM
1
👩‍💻 تکه کد بررسی قدرت و کیفیت رمزعبور
⚠️ این تکه کد به زبان 🎲 نوشته شده است.

function passStrength(password) {
let hero = 0;
const size = password.length;
const charCount = {};

for (let char of password) {
charCount[char] = (charCount[char] || 0) + 1;
}

for (let char in charCount) {
const p = charCount[char] / size;
hero -= p * (Math.log(p) / Math.log(2));
}

let strength = (hero / 3.2) * 100;
if (strength > 100) {
strength = 100;
}

if (password.length < 8) {
return "رمزعبور حداقل باید 8 کاراکتر باشد";
}
if (!/[0-9]/.test(password)) {
return "حداقل باید یک عدد داخل رمزعبور باشد";
}
if (!/[A-Z]/.test(password)) {
return "حداقل باید یک حرف انگلیسی بزرگ داخل رمزعبور باشد";
}
if (!/[!@#$%^&*()_+\-=\[\]{};':"\\|,.<>\/?]/.test(password)) {
return "حداقل باید یک کاراکتر خاص داخل رمزعبور باشد";
}

return `${strength.toFixed(0)} : قدرت رمزعبور`;
}

// Output = 99 : قدرت رمزعبور
console.log(passStrength('[s1P}a*lG'));


✈️ @HeroExpert_ir | کارشناس تکنولوژی
Please open Telegram to view this post
VIEW IN TELEGRAM
1