Forwarded from Iman (Mrcodee.js)
پروژه های حرفه ای برای برنامهنویسان آینده!
🔹 آموزش HTML, CSS, JS با پروژههای واقعی
🔹 پروژههای خفن React و Tailwind
🎁 همراه با سورس کد رایگان
📌 یه فرصت طلایی برای یادگیری حرفهای!
همین الان بیا تو کانال:👇👇👇👇
https://t.iss.one/htmlcss1385
🔹 آموزش HTML, CSS, JS با پروژههای واقعی
🔹 پروژههای خفن React و Tailwind
🎁 همراه با سورس کد رایگان
📌 یه فرصت طلایی برای یادگیری حرفهای!
همین الان بیا تو کانال:👇👇👇👇
https://t.iss.one/htmlcss1385
Forwarded from یک برنامه نویس تنبل (The Lazy 🌱 Raymond)
تبادل داریم ————————————————————————————
Forwarded from LearnPOV | لرن پی او وی
حتما از گرداری توی وبسایتتون استفاده کنید ☺️🤌
توی پست جدید یه سایت جالب، در عین حال ساده و کاربردی بهتون معرفی کردم که میتونید باهاش ازین شکلای گردالی خفن و باحال بسازید ✅
توی پست جدید یه سایت جالب، در عین حال ساده و کاربردی بهتون معرفی کردم که میتونید باهاش ازین شکلای گردالی خفن و باحال بسازید ✅
پ.ن : مشاهده از یوتوب رو هم اضافه کردیم برای رفقایی که از یوتوب استفاده میکنن 🚀
#️⃣ #NEWPost #css #website
🫶 𝗖𝗛𝗔𝗡𝗡𝗘𝗟 | 𝗚𝗥𝗢𝗨𝗣
Forwarded from Source Byte
Pure Malware Development Resource Collections
https://github.com/malsearchs/Pure-Malware-Development.git
https://github.com/malsearchs/Pure-Malware-Development.git
Forwarded from Sadra Codes
استکی که ابتدای راه انتخاب میکنید خیلی خیلی مهمه و باید حسابی با تحقیق و برنامهریزی انتخابش کنید. آینده رو بسنجید. هدف خودتون رو بسنجید. صرف علاقه یا بدلیل سهولت یا محبوبیت، یک زبان رو انتخاب نکنید.
اینکه میگن یه زبان/فریمورک/ابزار رو که انتخاب کردید، تمام تمرکز رو بذارید روش و حسابی توش دیپ شید کاملا اشتباهه بنظرم.
شاید دیپ شدن در اون استک خاص خوب و مفید باشه، ولی به هیچ وجه تمام تمرکز رو روی اون نذارید. دقیقا مثل همون قضیه تخم مرغ و سبده. همیشه توی ساید داستان، یکی دوتا ابزار یا فریم ورک دیگه که زیاد ارتباطی به استک اصلیتون ندارن رو هم کار کنید و گاها جدی دنبالش کنید. بک اند پایتون کار میکنید؟ هرازگاهی یه دوتا توتوریال از ریکت یا نکست ببینید.
اینطوری اتفاقی که میوفته، هم دید بهتری واسه ادامه مسیر دارین، هم اگه استک اولی زیاد چنگی به دل نزد طی گذر زمان و شما رو به هدفتون نزدیک نکرد، حداقلش اینه که میتونید از ترکیب چند استکی که کار کردید خروجی بهتر و به نتیجه قابل قبولی برسید.
من اوایل که بعد از سالها پایتون کد زدن شروع کردم تایپ اسکریپت یاد گرفتن، بارها میشد که توی پایتون سعی میکردم مکانیزم هایی که سمت ریکت هستن رو پیاده کنم. همینجوری واسه خودم دکوریتورهایی طراحی میکردم تا کمبود typing پایتون رو نسبت به تایپ اسکریپت برطرف کنم. ( صرفا واسه تفریح)
گاها یهو دیدین که همین سیستم، خودش تونست تبدیل به یه ایده شه و روی ریپازیتوری پایتون (یا بلعکس) مرج شه حتی. اگه دقت کرده باشین خیلی از دولوپرهای پایتون اصلا استک اصلیشون پایتون نیس. مثلا طرف راست کد میزنه، میگه فلان چیزو اینجا داریم، شما هم اضافه کنید. (این سیستم واسه فیچر هایی که جدید رلیز میشن روی یه زبان خیلی جواب میده)
اینکه میگن یه زبان/فریمورک/ابزار رو که انتخاب کردید، تمام تمرکز رو بذارید روش و حسابی توش دیپ شید کاملا اشتباهه بنظرم.
شاید دیپ شدن در اون استک خاص خوب و مفید باشه، ولی به هیچ وجه تمام تمرکز رو روی اون نذارید. دقیقا مثل همون قضیه تخم مرغ و سبده. همیشه توی ساید داستان، یکی دوتا ابزار یا فریم ورک دیگه که زیاد ارتباطی به استک اصلیتون ندارن رو هم کار کنید و گاها جدی دنبالش کنید. بک اند پایتون کار میکنید؟ هرازگاهی یه دوتا توتوریال از ریکت یا نکست ببینید.
اینطوری اتفاقی که میوفته، هم دید بهتری واسه ادامه مسیر دارین، هم اگه استک اولی زیاد چنگی به دل نزد طی گذر زمان و شما رو به هدفتون نزدیک نکرد، حداقلش اینه که میتونید از ترکیب چند استکی که کار کردید خروجی بهتر و به نتیجه قابل قبولی برسید.
من اوایل که بعد از سالها پایتون کد زدن شروع کردم تایپ اسکریپت یاد گرفتن، بارها میشد که توی پایتون سعی میکردم مکانیزم هایی که سمت ریکت هستن رو پیاده کنم. همینجوری واسه خودم دکوریتورهایی طراحی میکردم تا کمبود typing پایتون رو نسبت به تایپ اسکریپت برطرف کنم. ( صرفا واسه تفریح)
گاها یهو دیدین که همین سیستم، خودش تونست تبدیل به یه ایده شه و روی ریپازیتوری پایتون (یا بلعکس) مرج شه حتی. اگه دقت کرده باشین خیلی از دولوپرهای پایتون اصلا استک اصلیشون پایتون نیس. مثلا طرف راست کد میزنه، میگه فلان چیزو اینجا داریم، شما هم اضافه کنید. (این سیستم واسه فیچر هایی که جدید رلیز میشن روی یه زبان خیلی جواب میده)
Forwarded from Gopher Academy
🔵 عنوان مقاله
Why Go Slices Still Surprise Me
🟢 خلاصه مقاله:
مقاله به بررسی مفهوم "اسلایسها" در برنامهنویسی میپردازد، که اغلب به دو دلیل منبع اشتباهات و سردرگمی میشود. اولین کاربرد اسلایس به عنوان یک "فت پوینتر" (فضایی که هم شامل اشارهگر و هم اندازه است) است که برای دسترسی به دادهها و نگهداری اطلاعات درباره آنها استفاده میشود. دومین کاربرد، اسلایس به عنوان یک "آرایه پویا" است که امکان تغییر اندازه و مدیریت دادهها در حافظه را فراهم میکند. مشکل اصلی زمانی رخ میدهد که این دو کاربرد با یکدیگر ادغام شده و به اشتباه گرفته میشود، که منجر به پیچیدگیها و خطاهای برنامهنویسی میشود. مقاله به اهمیت تفکیک این دو کاربرد و درک صحیح آنها تأکید دارد تا بتوان از بروز این ابهامات و خطاها پیشگیری کرد.
🟣لینک مقاله:
https://golangweekly.com/link/162908/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
Why Go Slices Still Surprise Me
🟢 خلاصه مقاله:
مقاله به بررسی مفهوم "اسلایسها" در برنامهنویسی میپردازد، که اغلب به دو دلیل منبع اشتباهات و سردرگمی میشود. اولین کاربرد اسلایس به عنوان یک "فت پوینتر" (فضایی که هم شامل اشارهگر و هم اندازه است) است که برای دسترسی به دادهها و نگهداری اطلاعات درباره آنها استفاده میشود. دومین کاربرد، اسلایس به عنوان یک "آرایه پویا" است که امکان تغییر اندازه و مدیریت دادهها در حافظه را فراهم میکند. مشکل اصلی زمانی رخ میدهد که این دو کاربرد با یکدیگر ادغام شده و به اشتباه گرفته میشود، که منجر به پیچیدگیها و خطاهای برنامهنویسی میشود. مقاله به اهمیت تفکیک این دو کاربرد و درک صحیح آنها تأکید دارد تا بتوان از بروز این ابهامات و خطاها پیشگیری کرد.
🟣لینک مقاله:
https://golangweekly.com/link/162908/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
build-your-own.org
Are Golang slices dynamic arrays or fat pointers? | Blog | build-your-own.org
Are Golang slices dynamic
arrays or fat pointers?
arrays or fat pointers?
Forwarded from Meitix
اینم خوب بود در مورد اهمیت memory alignment برای استفاده بهینه از مموری میگه بهمون
https://medium.com/@felipedutratine/how-to-organize-the-go-struct-in-order-to-save-memory-c78afcf59ec2
https://medium.com/@felipedutratine/how-to-organize-the-go-struct-in-order-to-save-memory-c78afcf59ec2
Medium
How to organize the go struct, in order to save memory.
In this article I want to explain you how the memory works internally in a 64 bit architecture, when you instantiate a struct. (You can…
Forwarded from Future Pulse Persian
🟢 اگر مقاله، سورس کد، یا محتوای مفیدی در حوزههای زیر دارید، خوشحال میشویم که برای ما ارسال کنید:
🔴 Linux
🔴 DevOps
🔴 Blockchain
🔴 Database
🔴 software
💡 محتوای شما میتواند در کانالهای مرتبط (با عنوان ذکر منبع خودتون)منتشر شود تا افراد بیشتری از آن بهرهمند شوند.
🕊 ادمین:
@mrbardia72
🔴 Linux
🔴 DevOps
🔴 Blockchain
🔴 Database
🔴 software
💡 محتوای شما میتواند در کانالهای مرتبط (با عنوان ذکر منبع خودتون)منتشر شود تا افراد بیشتری از آن بهرهمند شوند.
🕊 ادمین:
@mrbardia72
Forwarded from DevTwitter | توییت برنامه نویسی
یه فریمورک کوچیک نوشته بودم که کاملا بدون کامپوزر کار کنه
بعد از مدتها اومدم روش یکم کار کردم و بهش cli و مایگریشن اضافه کردم
خیلی چیز باحالی شد
اگر php کار میکنید حتما یه نگاهی بهش بندازید
سعی میکنم فیچر های بیشتری بهش اضافه کنم هی
https://github.com/miladniroee/php-mvc-simple-framework
@DevTwitter | <Ladoya/>
بعد از مدتها اومدم روش یکم کار کردم و بهش cli و مایگریشن اضافه کردم
خیلی چیز باحالی شد
اگر php کار میکنید حتما یه نگاهی بهش بندازید
سعی میکنم فیچر های بیشتری بهش اضافه کنم هی
https://github.com/miladniroee/php-mvc-simple-framework
@DevTwitter | <Ladoya/>
Forwarded from Geek Alerts
کمپانی برزیلی Gradiente میگه برند آیفون برای ماست و این عکس رو منتشر کردن که سال ۲۰۰۰ با نام آیفون گوشی ساختن.
سال ۲۰۱۳ تلاش کردن تا جلوی واردات آیفون به برزیل رو بگیرن ولی تو دعوای حقوقی شکست خوردن، حالا دوباره پروندهرو به جریان انداختن.
البته احتمالا شکست میخوره یا اینکه با دریافت مبلغی از شکایت خودش کنار میکشه.
9to5mac
@geekalerts
سال ۲۰۱۳ تلاش کردن تا جلوی واردات آیفون به برزیل رو بگیرن ولی تو دعوای حقوقی شکست خوردن، حالا دوباره پروندهرو به جریان انداختن.
البته احتمالا شکست میخوره یا اینکه با دریافت مبلغی از شکایت خودش کنار میکشه.
9to5mac
@geekalerts
Forwarded from Go Casts 🚀
یه مقاله جذاب در مورد نوشتن کد سریع از Shopify
درسته که درباره Ruby on Rails نوشته شده اما اکثر نکاتش به خیلی از زبان و فریمورک های دیگه از جمله گولنگ هم قابل تعمیم دادن هست.
دقت کنید که Shopify در یک مقیاس خیلی بزرگ کار میکنه و نکاتش مهمه.
کدی که با Ruby on Rails نوشته میشه معروفه به کند بودن
اما در Shopify در مقیاس میلیون درخواست در دقیقه داره از Ruby on Rails استفاده میشه
تو این مقاله نکات جالبی رو اشاره میکنه برای اینکه کد سریعتری نوشته بشه
اولین نکته ش در مورد ORM یا همون ActiveRecord هست که باید درک کنید توابع مختلف orm چه رفتاری با دیتابیس دارند.
تو گولنگ همین مشکل با gorm وجود داره که به شدت میتونه لود زیادی روی دیتابیس بندازه بدون اینکه برنامه نویس متوجه این قضیه بشه.
دومین نکته ش باز در مورد دیتابیس هست که میگه از select * پرهیز کنید و فقط ستون هایی که لازم دارید رو انتخاب کنید.
نکته دیگه پرهیز از کوئری زدن به ستون هایی هست که index ندارن و در مقیاس بالا باعث میشه که full scan رخ بده
البته ایندکس اضافه کردن باعث lock شدن دیتابیس ممکنه بشه برای writeها و باید مواظب مایگریشن ایندکس باشیم
نکته بعدی کش کردن همه چیز هست…
Cache All The Things
If you can’t make something faster, a good alternative is to cache it. Things like complex view compilation and external API calls benefit greatly from caching. Especially if the resultant data doesn’t change often.
یه سری چیزارو میشه throttle کرد
Throttle Bottlenecks
But what about operations you can’t cache? Things like delivering an email, sending a webhook, or even logging in can be abused by users of an application. Essentially, any expensive operation that can’t be cached should be throttled.
برای یه سری پروسه ها هم میشه job queue و مکانیزم های async در نظر گرفت
Do It Later (In a Job)
Jobs allow us to defer work to another process through queueing systems often backed by Redis. Exporting a dataset, activating a subscription, or processing a payment are all great examples of job-worthy work
پرهیز از متاپروگرمینگ
Use Metaprogramming Sparingly
Changing a program’s structure at runtime is a powerful feature. In a highly dynamic language like Ruby, there are significant performance costs associated to metaprogramming.
دونستن تفاوت O(1) و O(n) برای مقیاس پذیر بودن خیلی مهمه
Know the difference between O(n) and O(1)
What O(n) and O(1) mean is that there are two kinds of operations. O(n) is an operation that scales in time with size, and O(1) is one that is constant in time regardless of size.
مثلا جای آرایه بهتره از hash استفاده بشه چون lookup کردن تو hash فارغ از اندازه O(1) هست
Allocate Less
استفاده و مدیریت Garbage Collector
If used improperly, dangerous methods can lead to unwanted side effects in your code. A best practice to follow is to avoid mutating global state while leveraging mutation on local state.
https://shopify.engineering/write-fast-code-ruby-rails
@gocasts
درسته که درباره Ruby on Rails نوشته شده اما اکثر نکاتش به خیلی از زبان و فریمورک های دیگه از جمله گولنگ هم قابل تعمیم دادن هست.
دقت کنید که Shopify در یک مقیاس خیلی بزرگ کار میکنه و نکاتش مهمه.
کدی که با Ruby on Rails نوشته میشه معروفه به کند بودن
اما در Shopify در مقیاس میلیون درخواست در دقیقه داره از Ruby on Rails استفاده میشه
تو این مقاله نکات جالبی رو اشاره میکنه برای اینکه کد سریعتری نوشته بشه
اولین نکته ش در مورد ORM یا همون ActiveRecord هست که باید درک کنید توابع مختلف orm چه رفتاری با دیتابیس دارند.
تو گولنگ همین مشکل با gorm وجود داره که به شدت میتونه لود زیادی روی دیتابیس بندازه بدون اینکه برنامه نویس متوجه این قضیه بشه.
دومین نکته ش باز در مورد دیتابیس هست که میگه از select * پرهیز کنید و فقط ستون هایی که لازم دارید رو انتخاب کنید.
نکته دیگه پرهیز از کوئری زدن به ستون هایی هست که index ندارن و در مقیاس بالا باعث میشه که full scan رخ بده
البته ایندکس اضافه کردن باعث lock شدن دیتابیس ممکنه بشه برای writeها و باید مواظب مایگریشن ایندکس باشیم
نکته بعدی کش کردن همه چیز هست…
Cache All The Things
If you can’t make something faster, a good alternative is to cache it. Things like complex view compilation and external API calls benefit greatly from caching. Especially if the resultant data doesn’t change often.
یه سری چیزارو میشه throttle کرد
Throttle Bottlenecks
But what about operations you can’t cache? Things like delivering an email, sending a webhook, or even logging in can be abused by users of an application. Essentially, any expensive operation that can’t be cached should be throttled.
برای یه سری پروسه ها هم میشه job queue و مکانیزم های async در نظر گرفت
Do It Later (In a Job)
Jobs allow us to defer work to another process through queueing systems often backed by Redis. Exporting a dataset, activating a subscription, or processing a payment are all great examples of job-worthy work
پرهیز از متاپروگرمینگ
Use Metaprogramming Sparingly
Changing a program’s structure at runtime is a powerful feature. In a highly dynamic language like Ruby, there are significant performance costs associated to metaprogramming.
دونستن تفاوت O(1) و O(n) برای مقیاس پذیر بودن خیلی مهمه
Know the difference between O(n) and O(1)
What O(n) and O(1) mean is that there are two kinds of operations. O(n) is an operation that scales in time with size, and O(1) is one that is constant in time regardless of size.
مثلا جای آرایه بهتره از hash استفاده بشه چون lookup کردن تو hash فارغ از اندازه O(1) هست
Allocate Less
استفاده و مدیریت Garbage Collector
If used improperly, dangerous methods can lead to unwanted side effects in your code. A best practice to follow is to avoid mutating global state while leveraging mutation on local state.
https://shopify.engineering/write-fast-code-ruby-rails
@gocasts
Shopify
How to Write Fast Code in Ruby on Rails - Shopify
Part of Shopify’s success with Ruby on Rails is an emphasis on writing fast code. But, how do you really write fast code? Let’s talk about a few ways to start writing faster code in Active Record, Rails, and Ruby.
Forwarded from کانال اطلاعرسانی توزیع پارچ
بهروزرسانی جدید فروم پارچ
- امکان ورود با کدبرگ فراهم شد.
- هم اکنون پاسخهای به عنوان پاسخ درست علامت زده میشوند و در کنار سوال نوشته solved قرار میگیرد.
https://forum.parchlinux.com
@ParchLinux
- امکان ورود با کدبرگ فراهم شد.
- هم اکنون پاسخهای به عنوان پاسخ درست علامت زده میشوند و در کنار سوال نوشته solved قرار میگیرد.
https://forum.parchlinux.com
@ParchLinux
Parch Linux
Parch Linux is a free and opensource linux distribution based on Arch.
Forwarded from Geek Alerts
اهمیت صبحانه.
میدونستید ما صفحه توییتر هم داریم؟ خوشحال میشیم دنبال کنید.
https://x.com/Geek_Alerts
@geekalerts
میدونستید ما صفحه توییتر هم داریم؟ خوشحال میشیم دنبال کنید.
https://x.com/Geek_Alerts
@geekalerts
Forwarded from mnr tech
اگر قرار باشه توی یک پروژه کاربرای بینالمللی داشته باشیم چطور باید شماره هارو هندل کنیم؟
شاید توی پروژه های بزرگ بینالمللی براتون سوال بشه که ما چطور میتونیم شماره موبایل ها با کد های کشور های مختلف رو هندل کنیم؟
خوب قسمت راحت کار اینجاست که بگیم کاربر رو مجبور میکنیم طبق استاندارد E.164 شماره کامل رو با کد کشور وارد کنه مثلا برای ایران به این صورت
+98901*******
خوب این ساده ترین حالته ولی ux خوبی نداره مخصوصا برای کاربرای ایرانی که معمولا شمارشون رو با 0 وارد میکنن.
پس باید چکار کرد؟ شاید به ذهنتون برسه که یه ولیدیشن ساده مینویسیم و با چند تا شرط هندلش میکنیم ولی قراره به چالش های زیادی بخوریم. پس بیاین اول به سوالات زیر جواب بدیم.
آیا کد کشور ها همه تعداد ارقامش یکسانه؟
خیر. مثلا کد ایران 98 و آمریکا 1 هست
آیا طول شماره های موبایل کشور های مختلف بدون کد کشور یکسان هست؟
خیر. طول شماره موبایل در خیلی از کشور ها 10 رقم هست (بدون کد کشور)
ولی استثنا هم داریم برای مثال شماره موبایل توی آلمان میتونه بین 10 تا 13 رقم متغییر باشه.
آیا شماره موبایل همه کشور ها وقتی از کد استفاده نمیکنیم از 0 ابتدای شماره استفاده میکنیم؟ و آیا با اضافه کردن کد 0 اول شماره حذف میشه؟
در بیشتر کشور ها شماره های موبایل با صفر شروع میشه و با اضافه شدن کد کشور صفر حذف میشه ولی همیشه اینطوری نیست
ایران:
09123456789 → +989123456789
هند:
09876543210 → +919876543210
آلمان:
015123456789 → +4915123456789
در شماره های بالا دقیقا همینطوره ولی در بعضی موارد مثل موارد زیر اینطوری نیست
استثناها و نکات:
برخی کشورها اصلاً از صفر ابتدایی استفاده نمیکنند: مثلاً در ایالات متحده، شمارهها مستقیماً با کد منطقه (area code) شروع میشوند، و وقتی کد کشور اضافه میشود، هیچ تغییری در ساختار داخلی شماره رخ نمیدهد:
آمریکا:
1234567890 → +11234567890
صفر ممکن است حفظ شود: در برخی از کشورها، حتی در حالت بینالمللی، صفر ابتدایی شماره حفظ میشود:
ایتالیا: (صفر حفظ میشود).
03491234567 → +3903491234567
استاندارد E.164: این استاندارد که در مخابرات جهانی استفاده میشود، تأکید میکند که شمارهها در قالب بینالمللی باید بدون صفر ابتدایی نوشته شوند، مگر اینکه صفر بخشی از شماره واقعی باشد.
خوب حالا برای ولیدیشن و ux بهتر باید چکار کرد؟ شاید به ذهنتون رسیده باشه که بشینید و از اول یه کلاسی بنویسید که با توجه به کشور انخاب شده یه سری rule هایی در نظر گرفته بشه و بر اساس اونها شماره ولیدیت بشه یا برای ux بهتر در صورت نیاز فرمتش به صورت خودکار عوض بشه و بعد توی دیتابیس ذخیره بشه.
ولی نیاز به این کار نیست چون از قبل پکیج هایی برای این کار نوشتن. مثلا libphonenumber برای جاوااسکریپت و پایتون
همچنین این پکیج برای لاراول
https://github.com/Propaganistas/Laravel-Phone
مثلا به کمک این پکیج وقتی کاربر کشورش رو انتخاب میکنه دیگه توی فیلد شماره موبایل فرقی نمیکنه کاربر شماره رو با 0 وارد کنه یا بدون 0 چون به راحتی شما توی بکند میتونید با توجه به کشورش شماره رو به فرمت استاندارد E.164 در بیارین و بعد توی دیتابیس ذخیره کنید.
دقت کنید حتما وقتی همچین پکیج هایی اضافه میکنید به پروژتون برای عملکرد مورد انتظارتون چند تا تست بنویسید.
شاید توی پروژه های بزرگ بینالمللی براتون سوال بشه که ما چطور میتونیم شماره موبایل ها با کد های کشور های مختلف رو هندل کنیم؟
خوب قسمت راحت کار اینجاست که بگیم کاربر رو مجبور میکنیم طبق استاندارد E.164 شماره کامل رو با کد کشور وارد کنه مثلا برای ایران به این صورت
+98901*******
خوب این ساده ترین حالته ولی ux خوبی نداره مخصوصا برای کاربرای ایرانی که معمولا شمارشون رو با 0 وارد میکنن.
پس باید چکار کرد؟ شاید به ذهنتون برسه که یه ولیدیشن ساده مینویسیم و با چند تا شرط هندلش میکنیم ولی قراره به چالش های زیادی بخوریم. پس بیاین اول به سوالات زیر جواب بدیم.
آیا کد کشور ها همه تعداد ارقامش یکسانه؟
خیر. مثلا کد ایران 98 و آمریکا 1 هست
آیا طول شماره های موبایل کشور های مختلف بدون کد کشور یکسان هست؟
خیر. طول شماره موبایل در خیلی از کشور ها 10 رقم هست (بدون کد کشور)
ولی استثنا هم داریم برای مثال شماره موبایل توی آلمان میتونه بین 10 تا 13 رقم متغییر باشه.
آیا شماره موبایل همه کشور ها وقتی از کد استفاده نمیکنیم از 0 ابتدای شماره استفاده میکنیم؟ و آیا با اضافه کردن کد 0 اول شماره حذف میشه؟
در بیشتر کشور ها شماره های موبایل با صفر شروع میشه و با اضافه شدن کد کشور صفر حذف میشه ولی همیشه اینطوری نیست
ایران:
09123456789 → +989123456789
هند:
09876543210 → +919876543210
آلمان:
015123456789 → +4915123456789
در شماره های بالا دقیقا همینطوره ولی در بعضی موارد مثل موارد زیر اینطوری نیست
استثناها و نکات:
برخی کشورها اصلاً از صفر ابتدایی استفاده نمیکنند: مثلاً در ایالات متحده، شمارهها مستقیماً با کد منطقه (area code) شروع میشوند، و وقتی کد کشور اضافه میشود، هیچ تغییری در ساختار داخلی شماره رخ نمیدهد:
آمریکا:
1234567890 → +11234567890
صفر ممکن است حفظ شود: در برخی از کشورها، حتی در حالت بینالمللی، صفر ابتدایی شماره حفظ میشود:
ایتالیا: (صفر حفظ میشود).
03491234567 → +3903491234567
استاندارد E.164: این استاندارد که در مخابرات جهانی استفاده میشود، تأکید میکند که شمارهها در قالب بینالمللی باید بدون صفر ابتدایی نوشته شوند، مگر اینکه صفر بخشی از شماره واقعی باشد.
خوب حالا برای ولیدیشن و ux بهتر باید چکار کرد؟ شاید به ذهنتون رسیده باشه که بشینید و از اول یه کلاسی بنویسید که با توجه به کشور انخاب شده یه سری rule هایی در نظر گرفته بشه و بر اساس اونها شماره ولیدیت بشه یا برای ux بهتر در صورت نیاز فرمتش به صورت خودکار عوض بشه و بعد توی دیتابیس ذخیره بشه.
ولی نیاز به این کار نیست چون از قبل پکیج هایی برای این کار نوشتن. مثلا libphonenumber برای جاوااسکریپت و پایتون
همچنین این پکیج برای لاراول
https://github.com/Propaganistas/Laravel-Phone
مثلا به کمک این پکیج وقتی کاربر کشورش رو انتخاب میکنه دیگه توی فیلد شماره موبایل فرقی نمیکنه کاربر شماره رو با 0 وارد کنه یا بدون 0 چون به راحتی شما توی بکند میتونید با توجه به کشورش شماره رو به فرمت استاندارد E.164 در بیارین و بعد توی دیتابیس ذخیره کنید.
دقت کنید حتما وقتی همچین پکیج هایی اضافه میکنید به پروژتون برای عملکرد مورد انتظارتون چند تا تست بنویسید.
GitHub
GitHub - Propaganistas/Laravel-Phone: Phone number functionality for Laravel
Phone number functionality for Laravel. Contribute to Propaganistas/Laravel-Phone development by creating an account on GitHub.
Forwarded from DevTwitter | توییت برنامه نویسی
دوستان کد دستتونه بذارید زمین برید یه سر به Dokploy بزنید!
یعننی هوفففففف مغزم داره سوت میکشه
چقدر بدبختی برای deploy و CI/CD کشیدم. داکر یاد بگیر، deploy کن، واس مانیتورینگش grafana بساز....برو تو گیت اکشن بساز
همششششش با چندتا کلیک! و تازه رایگان و open source هم هست! بهترین جایگزین برای vercel و coolify .
https://dokploy.com/
@DevTwitter | <Afra Rostami/>
یعننی هوفففففف مغزم داره سوت میکشه
چقدر بدبختی برای deploy و CI/CD کشیدم. داکر یاد بگیر، deploy کن، واس مانیتورینگش grafana بساز....برو تو گیت اکشن بساز
همششششش با چندتا کلیک! و تازه رایگان و open source هم هست! بهترین جایگزین برای vercel و coolify .
https://dokploy.com/
@DevTwitter | <Afra Rostami/>
Forwarded from Yasha
این سایت کوئرا چرا اینجوریه؟ واسه تست یه الگوریتم ساده حل کردم بفرستم اصلا نمیدونم روش چجوری [و چی رو] تست میکنه. عجیبه، اینکه اینهمه معروفه و کاربر داره چرا باید UI/UX انقدر سایت ضعیف باشه؟ 😐
Forwarded from Gopher Academy
🔵 عنوان مقاله
Weak Pointers in Go: Why They Matter Now
🟢 خلاصه مقاله:
این مقاله به بررسی ویژگی جدیدی در زبان برنامهنویسی Go میپردازد که انتظار میرود در نسخه ۱.۲۴ از طریق بستهی weak به طور کامل اضافه شود. ویژگی مورد بحث، اشارهگرهای ضعیف (weak pointers) است که یک ابزار پایینسطح برای ساخت ساختارهای حافظهای کارآمد است. مؤلف، Phuong، مبانی عملکرد این اشارهگرها را شرح میدهد. اشارهگرهای ضعیف امکان پذیر میسازند تا توسعهدهندگان بتوانند سازههایی را بسازند که از نظر استفاده از حافظه بهینهتر هستند. این اشارهگرها به نرمافزار اجازه میدهند که به یک شیء ارجاع دهد بدون اینکه جلوی جمعآوری زبالهی آن شیء توسط مدیریت حافظه را بگیرد. این ویژگی به ویژه در مواردی که کشها و سایر ساختارهای دادهای که نیاز به حذف خودکار اشیاء را دارند، مفید است. استفاده از اشارهگرهای ضعیف میتواند به بهبود عملکرد کلی برنامهها کمک کرده و حافظهی کمتری را اشغال کند.
🟣لینک مقاله:
https://golangweekly.com/link/162906/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
Weak Pointers in Go: Why They Matter Now
🟢 خلاصه مقاله:
این مقاله به بررسی ویژگی جدیدی در زبان برنامهنویسی Go میپردازد که انتظار میرود در نسخه ۱.۲۴ از طریق بستهی weak به طور کامل اضافه شود. ویژگی مورد بحث، اشارهگرهای ضعیف (weak pointers) است که یک ابزار پایینسطح برای ساخت ساختارهای حافظهای کارآمد است. مؤلف، Phuong، مبانی عملکرد این اشارهگرها را شرح میدهد. اشارهگرهای ضعیف امکان پذیر میسازند تا توسعهدهندگان بتوانند سازههایی را بسازند که از نظر استفاده از حافظه بهینهتر هستند. این اشارهگرها به نرمافزار اجازه میدهند که به یک شیء ارجاع دهد بدون اینکه جلوی جمعآوری زبالهی آن شیء توسط مدیریت حافظه را بگیرد. این ویژگی به ویژه در مواردی که کشها و سایر ساختارهای دادهای که نیاز به حذف خودکار اشیاء را دارند، مفید است. استفاده از اشارهگرهای ضعیف میتواند به بهبود عملکرد کلی برنامهها کمک کرده و حافظهی کمتری را اشغال کند.
🟣لینک مقاله:
https://golangweekly.com/link/162906/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
VictoriaMetrics
Weak Pointers in Go: Why They Matter Now
Through the weak package, you can create these special pointers that automatically become nil when their target memory gets collected. While they’re a bit trickier to use than regular pointers, they’re super useful for things like canonicalization maps and…
Forwarded from Morteza Bashsiz مرتضی باشسیز (Morteza Bashsiz)
فلک به مَردمِ نادان دهد زِمامِ مراد
تو اهل فضلی و دانش، همین گناهت بس
حافظ
تو اهل فضلی و دانش، همین گناهت بس
حافظ
Forwarded from DevTwitter | توییت برنامه نویسی
این کورس رایگان بازی سازی آنریل انجین رو از دست ندید، شامل ۳۵ ساعت آموزش حرفهای توسط مدرسین رسمی اپیک.
این دوره فقط برای گیم دولوپرهای حرفهای با پرداخت هزینه در دسترس هست که موقتا آنلاین بین ۳ دسامبر تا ۱۵ ژانویه در دسترس خواهد بود!
ثبت نام هم نمیخواد!
https://dev.epicgames.com/community/learning/talks-and-demos/W4va/unreal-engine-unreal-fellowship-games
@DevTwitter | <Mamadou On GameDev/>
این دوره فقط برای گیم دولوپرهای حرفهای با پرداخت هزینه در دسترس هست که موقتا آنلاین بین ۳ دسامبر تا ۱۵ ژانویه در دسترس خواهد بود!
ثبت نام هم نمیخواد!
https://dev.epicgames.com/community/learning/talks-and-demos/W4va/unreal-engine-unreal-fellowship-games
@DevTwitter | <Mamadou On GameDev/>