package main
import (
"fmt"
"regexp"
)
func validateEmail(email string) string {
// Check if the email has a valid format
emailRegex := ^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$
matched, _ := regexp.MatchString(emailRegex, email)
if !matched {
return "ایمیل نامعتبر است"
}
return "ایمیل معتبر است"
}
// example
func main() {
email := "aabrahimi1718@gmail.com"
fmt.Println(validateEmail(email))
}
// output => ایمیل معتبر است
Please open Telegram to view this post
VIEW IN TELEGRAM
1
Please open Telegram to view this post
VIEW IN TELEGRAM
2
گیتهاب یک پلتفرم محبوب برای برنامهنویسان است که به آنها کمک میکند پروژههای خود را مدیریت کرده و با دیگران همکاری کنند. در واقع، گیتهاب مثل یک شبکه اجتماعی برای کدنویسان است، جایی که میتوانید کدهای خود را به اشتراک بگذارید، پروژههای دیگران را بررسی کنید و از کارهای جدید یاد بگیرید و تجربه کسب کنید. در اصل، گیتهاب ابزاری است که به طور گسترده پذیرفته شده و به توسعهدهندگان کمک میکند تا پروژهها را به طور کارآمد مدیریت کرده و با همدیگر همکاری کنند.
Please open Telegram to view this post
VIEW IN TELEGRAM
1
|
|
|
|
|
|
Please open Telegram to view this post
VIEW IN TELEGRAM
1
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 => ایمیل معتبر است
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
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
Please open Telegram to view this post
VIEW IN TELEGRAM
1
نکست جیاس یک فریمورک قدرتمند جاوا اسکریپت بر پایه ریاکت میباشد. این فریمورک برای ساخت برنامههای وب مدرن و بهینه، به ویژه وب سایت های ایستا و برنامههای تک صفحهای طراحی شده است. همچنین به توسعه دهندگان امکان میدهد تا از ویژگیهای پیشرفتهای مانند رندر سمت سرور، تولید صفحات ایستا و.. بهره ببرند. این ویژگیها باعث میشود وبسایتهای ساخته شده با این فریمورک بسیار سریع و کاربرپسند باشند.
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 => ایمیل معتبر است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 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