Anophel | آنوفل
158 subscribers
284 photos
300 links
آنوفل | Anophel: دنیای بی ‌پایان امکانات برای برنامه‌ نویسان

https://anophel.com

پشتیبانی :
@anophel_support
Download Telegram
تابع (*)Count در مقابل تابع Count(1) در SQL

در SQL، توابع (*)Count و COUNT(1) هر دو برای شمارش رکوردها در جدول استفاده می‌شوند، اما تفاوت‌هایی جزئی از نظر عملکرد و کاربرد دارند. بیایید به تفاوت‌ها و شباهت‌های آن‌ها بپردازیم.

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

مثال:
SELECT COUNT(*) FROM my_table;

در این مثال، تمامی رکوردهای موجود در جدول my_table شمارش می‌شوند.

تابع Count(1)
تابع COUNT(1) نیز رکوردهای جدول را می‌شمارد، اما از عدد ۱ به عنوان یک مقدار ثابت استفاده می‌کند. این عدد در اصل معادل یک ستون محاسبه‌شده است که همیشه مقدار ۱ را برمی‌گرداند. این تابع نیز تمام سطرها را می‌شمارد، حتی اگر فیلدهای ستون‌ها NULL باشند، چرا که عدد ۱ همواره یک مقدار غیر-NULL است.

مثال:
SELECT COUNT(1) FROM my_table;

در اینجا نیز تمام رکوردها، فارغ از مقدار ستون‌ها، شمارش می‌شوند.

### تفاوت‌های عملکردی و امنیتی
از لحاظ پرفورمنس و عملکرد تفاوت خاصی ندارند.

علت استفاده از هرکدام
- تابع (*)Count: بیشتر مواقع، زمانی که می‌خواهید تعداد کل رکوردهای جدول را بدانید، از این تابع استفاده می‌شود. این رایج‌ترین و پرکاربردترین شکل استفاده از COUNT است.

- تابع COUNT(1): گاهی برای بهبود درک کد یا به دلایل سلیقه‌ای استفاده می‌شود، زیرا بعضی توسعه‌دهندگان بر این باورند که COUNT(1) واضح‌تر است (چرا که عدد ۱ همیشه وجود دارد). اما از نظر عملکردی تفاوتی ایجاد نمی‌کند.

کدام یک بهتر است؟
- پیشنهاد کلی: استفاده از (*)Count استانداردتر و رایج‌تر است. این تابع معنای واضح‌تری دارد و برای شمارش کل رکوردها بهینه شده است.

- معیار استفاده: اگرچه تفاوت عملکردی ناچیزی وجود دارد، پیشنهاد می‌شود که از (*)Count استفاده کنید، زیرا هم از نظر خوانایی بهتر است و هم اکثر پایگاه داده‌ها بهینه‌سازی‌های خود را برای این تابع انجام داده‌اند.

خلاصه کلام :

- هر دو (*)Count و COUNT(1) برای شمارش رکوردها در جدول استفاده می‌شوند و از نظر عملکرد در پایگاه داده‌های مدرن تفاوت خاصی ندارند.
- تابع (*)Count استانداردتر و رایج‌تر است و معمولاً توصیه می‌شود به دلیل خوانایی بیشتر و پشتیبانی بهتر از آن استفاده شود.

#sql #database #دیتابیس #پایگاه_داده #mysql

Anophel
👍2
Bootstrap در مقابل Tailwind CSS: مقایسه فریمورک های برتر CSS

🔺 امروزه فریمورک های CSS متعددی در دسترس هستند که هر کدام دارای پیشنهادات منحصر به فرد خود هستند. انتخاب چارچوب مناسب CSS از بین این گزینه‌ها می‌تواند چالش برانگیز باشد، زیرا اکثر کاربران مطمئن نیستند که کدام چارچوب برای پروژه توسعه وب آنها مناسب‌تر اس...

🌐 : Bootstrap در مقابل Tailwind CSS: مقایسه فریمورک های برتر CSS

#css #tailwind #bootstrap
🎉2👨‍💻1
بهترین روش های MongoDB: بهینه سازی عملکرد

🔺 MongoDB به عنوان یک راه حل قدرتمند دیتابیس NoSQL که انعطاف پذیری، مقیاس پذیری و سهولت استفاده را ارائه می دهد، محبوبیت گسترده ای به دست آورده است. با این حال، برای استفاده از پتانسیل کامل آن، توسعه دهندگان باید به بهترین شیوه هایی که عملکرد و قابلیت...

🌐 : بهترین روش های MongoDB: بهینه سازی عملکرد

#دیتابیس #mongodb
👨‍💻1
زبان برنامه نویسی GO یا Golang چیست؟ بررسی تخصصی

🔺 گو (Go) که با نام گولنگ (Golang) نیز شناخته می شود، یک زبان برنامه نویسی متن باز، کامپایل شده و تایپ شده استاتیک است که توسط گوگل طراحی شده است. این ساده، با کارایی بالا، خوانا و کارآمد ساخته شده است. Go (یا Golang) قطعاً محبوب‌ترین زبان برنامه‌نویسی...

🌐 : زبان برنامه نویسی GO یا Golang چیست؟ بررسی تخصصی

#Go #golang #گو #گولنگ
👍1
Concurrency در Go : بررسی عمیق Goroutine ها و Channel ها

🔺 Concurrency یک مفهوم اساسی در Go (Golang) است که اجرای چندین کار را به طور همزمان امکان پذیر می کند و برنامه های ما را کارآمد، پاسخگو و قادر به استفاده موثر از پردازنده های چند هسته ای می کند. یکی از جنبه های کلیدی برنامه نویسی همزمان در Go، استفاده...

🌐 : Concurrency در Go : بررسی عمیق Goroutine ها و Channel ها

#Go #golang #گو #گولنگ
👍1💯1
بین JWT و PASETO از کدام یک استفاده‌ کنیم؟

JWT چیست؟
جیسون وب توکن JWT مخفف JSON Web Token است. این یک استاندارد باز (RFC 7519) است که یک روش فشرده و مستقل را برای انتقال ایمن اطلاعات بین طرفین به عنوان آبجکت JSON تعریف می کند.


پاستو PASETO چیست؟
پاستو Paseto که مخفف Platform-Agnostic Security Tokens است، مشخصاتی برای توکن‌های امن stateless است.

و جایگزین مدرن و بهتر برای JWT ارائه می‌کند و برخی از آسیب‌پذیری‌های ذاتی آن را برطرف می‌کند و بر پیش‌فرض‌های ایمن و سهولت اجرا تأکید می‌کند.

برخلاف ساختار تک و عمومی JWT، پاستو از یک رویکرد نسخه‌سازی شده با دو هدف مشخص استفاده می‌کند:

توکن های لوکال: این برای سشن stateful و سمت سرور طراحی شده است. همچنین معمولاً از رمزنگاری با symmetric-key استفاده می‌کند، که در آن از key مخفی یکسانی برای رمزگذاری و رمزگشایی استفاده می‌شود.

توکن های پابلیک: این برای اپلیکیشن های stateless و موارد استفاده شامل رمزنگاری public-key در نظر گرفته شده است. این توکن‌ها را می‌توان بدون نیاز به ذخیره‌سازی سمت سرور به‌طور ایمن منتقل و تأیید کرد.


آنوفل

#jwt #paseto
👍1
کاهش تکرار کد ها در لاراول

🔺 یکی از بزرگترین مشکلات در برنامه نویسی تکرار کد ها می باشد. مخصوصا در زمانی که شما یک باگ دارید و فکر می کنید که آن را حل کرده اید اما چندین مورد از این باگ باقی مانده است.ما در این مقاله قصد داریم با یک آموزش ساده درباره کاهش تکرار کد ها صحبت کنیم....

🌐 : کاهش تکرار کد ها در لاراول
💯1
مجیک متد یا داندر متد در پایتون

🔺 Magic Methods یا Dunder Methods که به صورت فارسی می شود متد های جادویی و منظور از داندر(Dunder) دو تا آندر لاین(__) می باشد. که در شی گرایی پایتون در دسترس هستند. مجیک متد ها یک سری متد ها هستند که در کلاس ها می توانید به آن ها دسترسی پیدا کتید که در...

🌐 : مجیک متد یا داندر متد در پایتون
👨‍💻1
تو جاوا اسکریپت ما سه نوع کد داریم :
1. کد Synchronous
2. کد macrotask
3. کد Microtask

نکته کلیدی سوال این سه مورد هستند.
در اولی که پیش فرض جاوااسکریپت هست کد لاین به لاین اجرا می شود و تا لاین قبلی تمام نشد لاین جدید اجرا نمیشه.

دومی : بعد از اجرای کد های Synchronou و قبل میکروتسک ها اجرا می شود مثل setTimeout و setInterval و ..
.

سومی :این بخش نیز بعد از اجرای کد های ماکروتسک اجرا می شوند. مثلا : promiseها.

بررسی مثال:
بخش Synchronous :

console.log(1); بلافاصله اجرا می‌شود و مقدار 1 در کنسول چاپ می‌شود
setTimeout یک ماکروتسک تعریف می‌کند، اما چون setTimeout تنها تنظیم کننده‌ی تاخیر است، این عملیات به تعویق می‌افتد. پس setTimeout هنوز چیزی چاپ نمی‌کند

console.log(2); نیز بلافاصله اجرا می‌شود و مقدار 2 در کنسول چاپ می‌شود

console.log(4) بلافاصله بعد از promise.then فراخوانی می‌شود و مقدار 4 در کنسول چاپ می‌شود

پس از اتمام اجرای کدهایSynchrono نیز setTimeout که یک ماکروتسک است، اجرا می‌شود.ابتدا مقدار "timerStart" را در کنسول چاپ می‌کند.سپس success فراخوانی می‌شود که باعث می‌شود promise به حالت fulfilled برسد و یک میکروتسک (یعنی promise.then) به صف میکروتسک‌ها اضافه شود.سپس مقدار "timerEnd" را چاپ می‌کند.

در‌اخرم میکروتسک اجرا می شود. success

خروجی نهایی :
1
2
4
timerStart
timerEnd
success

آنوفل

#javascript #js #نکته #جاوااسکریپت
💯1👨‍💻1
زباله جمع کن (Garbage Collection) در Go :بررسی عمیق تکنیک مدیریت حافظه

🔺 گولنگ یا Go یک زبان برنامه نویسی تایپ شده و کامپایل شده است. در میان بسیاری از ویژگی‌های آن، مکانیسم جمع‌آوری زباله یا همان Garbage Collection در Go به عنوان یک جزء حیاتی برای مدیریت حافظه برجسته است. در این مقاله از آنوفل، به نحوه عملکرد Garbage Col...

🌐 : زباله جمع کن (Garbage Collection) در Go :بررسی عمیق تکنیک مدیریت حافظه

#گو #گولنگ #go #golang
🔥1💯1
آشنایی با Logging در Go: بررسی عمیق کتابخانه Zap

🔺 در دنیای توسعه اپلیکیشن، لاگ (logging) نقش مهمی ایفا می کند که اغلب مورد توجه قرار نمی گیرد. مانند این است که یک دستیار سخت کوش داشته باشید که به طور مداوم تمام جزئیات عملکرد برنامه و تعاملات کاربر را یادداشت می کند. در این مقاله از آنوفل خواهیم دید...

🌐 : آشنایی با Logging در Go: بررسی عمیق کتابخانه Zap


#گو #گولنگ #go #golang #logging
1💯1
افزایش عملکرد در Go: بررسی Static و Dynamic Allocation

🔺 در دنیای برنامه نویسی، به ویژه در Go (همچنین به عنوان Golang شناخته می شود)، دو روش اصلی برای تخصیص (allocation) یک اسلایس جدید وجود دارد: استفاده از تابع make برای پیش‌ تخصیص slice و تنظیم هر مقدار، یا ایجاد یک slice خالی و اضافه کردن عناصر جدید به...

🌐 : افزایش عملکرد در Go: بررسی Static و Dynamic Allocation

#گو #گولنگ #go #golang
👍1
ساخت یک معماری فرانت اند تمیز و مقیاس پذیر

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

🌐 : ساخت یک معماری فرانت اند تمیز و مقیاس پذیر

#فرانت_اند #frontend #react #nextjs
👍2
بلوک کد های try catch تو جاوااسکریپت بنظرم خیلی طولانی هست ولی جاش می تونید از Safe Assignment Operator که به اکمااسکریپت اضافه شده استفاده کنید، این اپراتور به صورت "=?" ، این باعث میشه کد هاتون تمیز تر و error handling خوبی داشته باشید.

آنوفل دنیای برنامه نویسی

#جاوااسکریپت #جاوا_اسکریپت #Js #code #javascript
👍1
ساخت یک معماری فرانت اند تمیز و مقیاس پذیر

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

🌐 : ساخت یک معماری فرانت اند تمیز و مقیاس پذیر
👍2
چگونه TypeScript به شما در نوشتن کد بهتر کمک می کند

🔺 TypeScript در حال تسخیر وب است. در این مقاله به شما یک نمای کلی از مزایای TypeScript و اینکه چگونه می‌تواند به شما در ایجاد وب‌سایت‌هایی با باگ های کمتر کمک کند، ارائه می‌دهم.شما یاد خواهید گرفت که چگونه TypeScript در رسیدگی به موارد لبه، گرفتن اشتبا...

🌐 : چگونه TypeScript به شما در نوشتن کد بهتر کمک می کند
👍2
آشنایی با Web Worker ها در React و تایپ اسکریپت

🔺 Web Worker ها ابزاری برای مرورگرهای وب برای اجرای اسکریپت ها در پس زمینه بدون تداخل با UI هستند. اگر به درستی راه‌اندازی شود، یکweb worker می‌تواند پیام‌هایی را از کد جاوا اسکریپت یا تایپ اسکریپت که در آن راه‌اندازی شده است ارسال و دریافت کند. در این...

🌐 : آشنایی با Web Worker ها در React و تایپ اسکریپت
👍2
Git چیست؟ چرا هر توسعه دهنده ای باید آن را بداند

🔺 در قلمرو سیستم کنترل نسخه (VCS)، Git به عنوان یک روش مدیریت کد منبع قطعی (SCM) ظهور کرده است. Git که توسط لینوس توروالدز برای توسعه هسته لینوکس راه اندازی شد، به طور تصاعدی رشد کرد و عمدتاً توسط پلتفرم هایی مانند GitHub، GitLab و Bitbucket پشتیبانی م...

🌐 : Git چیست؟ چرا هر توسعه دهنده ای باید آن را بداند
👍2
برنامه نویس Junior ،Mid Level و ارشد

🔺 برنامه نویسی فقط نوشتن کد نیست. این یک سفر رشد مداوم و یادگیری است. چه یک علاقه‌مند جوان باشید، چه یک توسعه‌دهنده متوسط یا یک senior با تجربه، مسیر موفقیت شامل مراحل استراتژیک است. بیایید بررسی کنیم که چگونه می توانید این سفر را طی کنید و حرفه برنامه...

🌐 : برنامه نویس Junior ،Mid Level و ارشد
👍2