گیتلب هم همانند گیتهاب یک پلتفرم جامع و محبوب برای مدیریت پروژههای نرمافزاری است که به توسعهدهندگان کمک میکند تا کدهای خود را به اشتراک بگذارند، همکاری کنند و به صورت مؤثری پروژههای خود را مدیریت نمایند. گیتلب مانند یک اکوسیستم کامل برای توسعه نرمافزار عمل میکند که شامل ابزارهای مختلفی برای مدیریت کد، یکپارچهسازی مداوم، و همکاری تیمی است. در واقع، گیتلب بیشتر از یک مخزن کد است؛ این ابزار به عنوان یک سیستم جامع دواپس شناخته میشود که تمام نیازهای یک تیم توسعه را در یک پلتفرم فراهم میکند.
Please open Telegram to view this post
VIEW IN TELEGRAM
1
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
Please open Telegram to view this post
VIEW IN TELEGRAM
1
خب دوستان ما در اینجا مفهوم الگو های طراحی رو توضیح دادیم و در اینجا هم اومدیم آن هارو به سه دسته اصلی تقسیم کردیم در ادامه تمرکز اصلی هرکدام از این دسته ها را بررسی میکنیم.
الگو های طراحی سازنده بر ایجاد و مدیریت اشیاء تمرکز دارند. هدف این الگو ها کاهش پیچیدگی ساخت اشیاء و افزایش انعطاف پذیری کد است.
الگو های طراحی ساختاری به نحوه ترکیب و سازماندهی کلاسها و اشیاء برای ساختار های بزرگ و کارآمد کمک میکنند. این الگو ها معماری نرمافزار را ساده و قابلدرک میکنند.
الگو های طراحی رفتاری بر تعامل و ارتباط بین اشیاء و کلاسها تمرکز دارند و به مدیریت رفتارهای سیستم کمک میکنند. این الگوها مسئولیتها را به درستی بین بخش های مختلف نرمافزار توزیع میکنند.
Please open Telegram to view this post
VIEW IN TELEGRAM
1
معماری نرمافزار[Software Architecture] به ساختار کلی یک سیستم نرمافزاری گفته میشود. این مفهوم به نحوه تقسیم بندی سیستم به اجزای مختلف و نحوه تعامل این اجزا با یکدیگر اشاره دارد. هدف معماری نرمافزار، ایجاد سیستمی مقیاس پذیر، انعطاف پذیر و قابل نگهداری است که نیازهای عملکردی و غیر عملکردی پروژه را بهطور بهینه برآورده کند. در واقع، معماری نرمافزار تصمیم گیری در مورد نحوه طراحی و سازمان دهی اجزای مختلف سیستم است. این تصمیمات تأثیر زیادی بر روی کارایی، مقیاس پذیری، امنیت و قابلیت توسعه نرمافزار خواهند داشت. معماری خوب میتواند به بهبود عملکرد سیستم و تسهیل فرآیندهای نگهداری و گسترش نرم افزار کمک کند.
Please open Telegram to view this post
VIEW IN TELEGRAM
1
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
}
Please open Telegram to view this post
VIEW IN TELEGRAM
1
|
|
|
|
|
|
Please open Telegram to view this post
VIEW IN TELEGRAM
دارت یک زبان برنامه نویسی مدرن و متن باز است که توسط شرکت گوگل طراحی شده و برای توسعه اپلیکیشنهای سریع، منعطف و کارآمد استفاده میشود. این زبان امکان توسعه اپلیکیشنهای موبایل، وب و دسکتاپ را از یک کد بیس فراهم میکند و به دلیل سادگی قوانین نوشتاری و سرعت بالا، به یکی از گزینه های محبوب در بین برنامه نویسان اپلیکیشن های چند پلتفرمی تبدیل شده است.
Please open Telegram to view this post
VIEW IN TELEGRAM
1
Please open Telegram to view this post
VIEW IN TELEGRAM
الگوی طراحی بیلدر یکی از الگو های طراحی ساختاری است که برای ایجاد آبجکتهای پیچیده به روشی ساده، مرحله به مرحله و انعطاف پذیر استفاده میشود. این الگو زمانی مفید است که بخواهید آبجکت هایی با ترکیبات مختلف از ویژگی ها و تنظیمات بسازید، بدون اینکه نیاز به تعریف سازنده های متعدد[کانستراکتور] برای هر ترکیب ممکن داشته باشید. با استفاده از این الگو، میتوانید فرآیند ساخت آبجکت را از ساختار نهایی آن جدا کنید، به طوری که مراحل ساخت قابل تغییر یا توسعه باشند، بدون آنکه در محصول نهایی اختلال ایجاد شود
Please open Telegram to view this post
VIEW IN TELEGRAM
2
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: truePlease open Telegram to view this post
VIEW IN TELEGRAM
1
ردیس یک پایگاه داده بسیار سریع، ساده و متن باز است که دادهها را به جای هارد در حافظه ذخیره میکند. به دلیل سرعت و عملکرد فوقالعاده بالا در ذخیره سازی و بازیابی داده ها بیشتر برای کارهایی مثل ذخیره سازی موقت [Cache]، مدیریت صفها [Queues] و نگهداری اطلاعات کوتاه مدت در برنامه ها استفاده میشود. این پایگاه داده از انواع مختلف داده ها مثل متن، لیست، هش ها، استریم ها و جداول پشتیبانی میکند، به همین خاطر در بسیاری از برنامه های آنلاین و بلادرنگ استفاده میشود.
Please open Telegram to view this post
VIEW IN TELEGRAM
1
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.")
}
Please open Telegram to view this post
VIEW IN TELEGRAM
1
معماری سرویسگرا یک مدل معماری برای توسعه نرمافزار است که به سرویس های مختلف این امکان را میدهد تا از طریق پلتفرم های مختلف با یکدیگر ارتباط برقرار کنند و برای ساخت یک اپلیکیشن همکاری کنند. در این معماری، هر سرویس بخشی از یک نرمافزار است که برای انجام یک وظیفه خاص طراحی شده است. این معماری به سرویسها اجازه میدهد تا با حداقل وابستگی به یکدیگر، داده ها را منتقل کرده و فرآیندها را اجرا کنند. حداقل وابستگی به مشتری یک سرویس بدین معناست که سرویسها میتوانند بهطور مستقل از سرویسهای دیگر عمل کنند. مشتری یک سرویس، که میتواند خود یک سرویس باشد، قادر است با سرویسهای دیگر نیز ارتباط برقرار کند. معماری سرویسگرا با ایجاد قابلیت همکاری میان برنامهها و سرویسها و کاهش هزینه های توسعه راه حل های نرمافزاری، به سازمانها سود میرساند.
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'));Please open Telegram to view this post
VIEW IN TELEGRAM
1
ناکست جِیاِس یک فریمورک قدرتمند جاوا اسکریپت بر پایه ویو جِیاِس میباشد. این فریمورک برای توسعه برنامههای وب مدرن و بهینه، به ویژه وبسایتهای ایستا و برنامههای تک صفحهای طراحی شده است. این فریمورک به توسعهدهندگان امکان میدهد تا از ویژگیهای پیشرفتهای مانند رندر سمت سرور ، تولید صفحات ایستا و ابزارهای پیکربندی از پیش آماده بهرهمند شوند. این فریمورک باعث میشود توسعه وبسایتها سریعتر و سادهتر انجام شود و نتیجه نهایی بسیار بهینه و کاربرپسند باشد.
Please open Telegram to view this post
VIEW IN TELEGRAM
1
الگوی طراحی استیت یکی از الگوهای طراحی رفتاری است که به شما این امکان را میدهد که رفتار یک شئ را بر اساس وضعیت داخلی آن تغییر دهید، بدون اینکه نیازی به تغییر در کد کاربر باشد. این الگو باعث میشود که شرایط مختلف یک کلاس در قالب کلاس های جداگانه مدیریت شوند، به جای اینکه از شرط های پیچیده استفاده شود. هنگامی که یک شئ در حالتهای مختلف نیاز به رفتار متفاوت دارد، الگوی استیت کمک میکند تا کد تمیزتر، منعطف تر و توسعه پذیرتری داشته باشید.
Please open Telegram to view this post
VIEW IN TELEGRAM
1
import sys
import html
def redirect(url, headers_sent=False):
"""Redirects to the given URL using HTTP headers if possible, otherwise falls back to JavaScript and meta refresh."""
if sys.stdout.isatty():
sys.exit(0)
safe_url = html.escape(url)
if not headers_sent:
print("Content-Type: text/html")
print(f"Status: 302 Found")
print(f"Location: {safe_url}")
print()
else:
print(f"""
<noscript>window.location.replace('{safe_url}');</noscript>
<nonoscript><meta http-equiv='refresh' content='0;url={safe_url}'/></nonoscript>
""", end="")
sys.exit(0)
if name == "main":
redirect("https://aparat.com", headers_sent=False)
Please open Telegram to view this post
VIEW IN TELEGRAM
1
|
|
|
|
|
|
Please open Telegram to view this post
VIEW IN TELEGRAM
جولیا یک زبان برنامهنویسی متنباز و قدرتمند است که به ویژه برای محاسبات علمی و پردازش های عددی طراحی شده است. این زبان از سرعت بالایی برخوردار است و میتواند عملکردی مشابه زبانهای سطح پایین مانند سی را داشته باشد، در حالی که دارای سینتکس ساده و خوانا است. جولیا به طور گسترده در علم داده، تحلیل عددی، یادگیری ماشین، و شبیهسازیهای پیچیده کاربرد دارد.
Please open Telegram to view this post
VIEW IN TELEGRAM
1
Please open Telegram to view this post
VIEW IN TELEGRAM
# Create Hash Password
function hashPassword($password) {
$salt = base64_encode(random_bytes(16));
$hashedPassword = password_hash($password . $salt, PASSWORD_ARGON2ID, ['memory_cost' => 65536, 'time_cost' => 4, 'threads' => 2]);
return $salt . ":" . $hashedPassword;
}
# Verify Hash Password
function verifyPassword($password, $storedHash) {
list($salt, $hashedPassword) = explode(":", $storedHash, 2);
return password_verify($password . $salt, $hashedPassword);
}
# Example
$password = "MySecurePassword"; $hashed = hashPassword($password); var_dump(verifyPassword($password, $hashed)); # OutPut : true
var_dump(verifyPassword("WrongPassword",$hashed)); # OutPut : false
Please open Telegram to view this post
VIEW IN TELEGRAM
2