-اصل Avoid disinformation در کلین کد
این اصل توی کلین کد میگه که باید از دادن اطلاعات غلط یا سرنخ ها ناقص و مبهم که معنی کد رو به خوبی نشون نمیده تو اسم متغیر ها استفاده نکنیم
برای مثلا
یا مثلا برای نشون دادن گروهی از اکانت ها از accountList استفاده نکنید مگه اینکه واقعا یه لیست باشه
اگه کانتیرنتون یه سری اکانت رو نگهداری میکنه در واقع یه لیست نیست و ممکنه خواننده کد اشتباه متوجه بشه پس accountGroup یا bunchOfAccounts یا حتی accounts میتونه گزینه بهتری باشه/CleverDevs
#CleanCode
👾 @pishroapp
این اصل توی کلین کد میگه که باید از دادن اطلاعات غلط یا سرنخ ها ناقص و مبهم که معنی کد رو به خوبی نشون نمیده تو اسم متغیر ها استفاده نکنیم
برای مثلا
hp , aix , و sco متغیر های ضعیفی محسوب میشن چون که اونا اسم های پلتفرم های یونیکس هستن . حتی اگه شما یه hypotenuse مینویسید و hp بنظر متغیر خوبی میاد اما باز هم این میتونه یه متغیری باشه که اطلاعات غلط میدهیا مثلا برای نشون دادن گروهی از اکانت ها از accountList استفاده نکنید مگه اینکه واقعا یه لیست باشه
اگه کانتیرنتون یه سری اکانت رو نگهداری میکنه در واقع یه لیست نیست و ممکنه خواننده کد اشتباه متوجه بشه پس accountGroup یا bunchOfAccounts یا حتی accounts میتونه گزینه بهتری باشه/CleverDevs
#CleanCode
Please open Telegram to view this post
VIEW IN TELEGRAM
فرقی نداره #بک_اند باشی یا #فرانت
PHP, Laravel, Golang, React Js, Docker, Git
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1
Anonymous Quiz
19%
__call()
38%
__construct()
25%
__invoke()
19%
__callStatic()
👍2 1
#نکته #داکر
یکی از نکاتی که موقع ایجاد داکر فایل برای پروژه هاتون باید بهش توجه کنید عدم استفاده مکرر از دستور RUN برای هر بخش هست.
🔥 هر دستور RUN در Dockerfile یک لایه اضافی در تصویر نهایی ایجاد می کند.
پس بهترین روش این است که تعداد لایه ها را محدود کنید تا تصویر سبک بمونه.
برای نمونه به جای این:
به این صورت استفاده کنید:
🧠 پس موقع نوشتن داکر فایل سعی کنید از دستور RUN بصورت بهینه استفاده کنید
👾 @pishroapp
یکی از نکاتی که موقع ایجاد داکر فایل برای پروژه هاتون باید بهش توجه کنید عدم استفاده مکرر از دستور RUN برای هر بخش هست.
پس بهترین روش این است که تعداد لایه ها را محدود کنید تا تصویر سبک بمونه.
برای نمونه به جای این:
RUN curl -SL "https://nodejs.org/dist/v${NODE_VERSION}/node-v${NODE_VERSION}-linux-x64.tar.gz" --output nodejs.tar.gz
RUN echo "$NODE_DOWNLOAD_SHA nodejs.tar.gz" | sha256sum -c -
RUN tar -xzf "nodejs.tar.gz" -C /usr/local --strip-components=1
RUN rm nodejs.tar.gz
RUN ln -s /usr/local/bin/node /usr/local/bin/nodejsبه این صورت استفاده کنید:
RUN curl -SL "https://nodejs.org/dist/v${NODE_VERSION}/node-v${NODE_VERSION}-linux-x64.tar.gz" --output nodejs.tar.gz \
&& echo "$NODE_DOWNLOAD_SHA nodejs.tar.gz" | sha256sum -c - \
&& tar -xzf "nodejs.tar.gz" -C /usr/local --strip-components=1 \
&& rm nodejs.tar.gz \
&& ln -s /usr/local/bin/node /usr/local/bin/nodejsPlease open Telegram to view this post
VIEW IN TELEGRAM
برای نمونه دستور زیر فایل هایی که تو ده دقیقه اخیر تغییر کردن. و لیست میکنه
find . -type f -mmin -10
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1
دوستان Eloquent #لاراول متدهای زیر رو برای کار با تاریخ و تایم داره، میتونید با استفاده از این متدها query های خودتون رو بهتر بنویسید
whereDay()
whereMonth()
whereYear()
whereDate()
whereTime()
روش استفاده از هرکدوم هم بصورت زیر هست:
👾 @pishroapp
whereDay()
whereMonth()
whereYear()
whereDate()
whereTime()
روش استفاده از هرکدوم هم بصورت زیر هست:
Product::whereDate('created_at', '2023-01-31')->get();
Product::whereMonth('created_at', '12')->get();
Product::whereDay('created_at', '31')->get();
Product::whereYear('created_at', date('Y'))->get();
Product::whereTime('created_at', '=', '14:13:58')->get();Please open Telegram to view this post
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
🔰 شما از تکنولوژی چی میخواهید؟
از حالا به بعد، میتونیم هر وقت بخوایم شب را به روز تبدیل کنیم! یک شرکت نوآور به اسم رفلکت اوربیتال، سفارش برای "ارسال نور" را شروع کرده است.
چطور کار میکنه؟
این شرکت از شبکهای از ماهوارهها استفاده میکنه که نور خورشید رو مستقیم به زمین میتابونن. جالب اینجاست که شما میتونید هر جایی رو که دوست دارید برای این نور درخشان انتخاب کنید.
یعنی چی؟ دیگه میتونیم هر جایی رو که دلمون میخواد روشن کنیم، حتی اگه وسط شب باشه!
https://www.reflectorbital.com
👾 @pishroapp
از حالا به بعد، میتونیم هر وقت بخوایم شب را به روز تبدیل کنیم! یک شرکت نوآور به اسم رفلکت اوربیتال، سفارش برای "ارسال نور" را شروع کرده است.
چطور کار میکنه؟
این شرکت از شبکهای از ماهوارهها استفاده میکنه که نور خورشید رو مستقیم به زمین میتابونن. جالب اینجاست که شما میتونید هر جایی رو که دوست دارید برای این نور درخشان انتخاب کنید.
یعنی چی؟ دیگه میتونیم هر جایی رو که دلمون میخواد روشن کنیم، حتی اگه وسط شب باشه!
https://www.reflectorbital.com
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1👨💻1
قبلا به این صورت بود:
$comment = Comment::find(1);
$comment->forceDelete();
Comment::forceDestroy(1);
اگه بخواید چند ردیف رو با هم حذف کنید هم بصورت زیر هست که نتیجه تعداد حذف شده ها رو برمیگردونه:
$count = Comment::forceDestroy([1, 2]);
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4🔥3
بچه ها یه دستور توی #داکر داریم که میتونید با استفاده از اون توی لیست images های توی داکرهاب جستجو کنید
✨ docker Search
✅ این دستور توی #Docker برای جستجوی تصاویر (images) در Docker Hub یا مخازن دیگه استفاده میشه.
✅ با استفاده از این دستور، میتونید نام و توضیحات تصاویر مختلف Docker را در مخازن عمومی پیدا کنید.
🧠 دستور کلی بصورت زیر هست:
OPTIONS: شامل گزینه هایی برای برای فیلتر کردن نتایج هست
TERM: عبارت یا نامی است که میخواهید آن را جستجو کنید.
🏴☠️ مثلا با دستور زیر میتونید لیست تمام images های مربوط به #nginx رو توی داکرهاب ببینید
👾 @pishroapp
docker search [OPTIONS] TERM
OPTIONS: شامل گزینه هایی برای برای فیلتر کردن نتایج هست
TERM: عبارت یا نامی است که میخواهید آن را جستجو کنید.
docker search nginx
Please open Telegram to view this post
VIEW IN TELEGRAM
حالا میخواید ببینید چه برنچ هایی روی استیج هست که روی main نرفته
میتونید از دستور زیر استفاده کنید:
git branch --contains stage --no-contains main
این دستور لیست برنچ هایی که توی stage هست و توی main نیست رو به شما میده
#git
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3
به کمک هوش مصنوعی هکرا تونستن از طریق سیگنال های اطراف کابل HDMI تصویر رو به سرقت ببرن
سیگنالی که از سیم HDMI رد میشه یه میدان مغناطیسی درست میکنه که اگه بخوایم اونو کپچر کنیم نمیشه به تصویر واضحی رسید و اصلا بدرد نمیخوره.
به کمک هوش مصنوعی هکرا این کارو روی سیستم های خودشون به دفعات زیاد کردن و با استفاده از دیتای نویزی و دیتای دقیق یه مدل با دقت 70% تونستن train کنن.
یعنی اگه هکر دیتای نویزی که به نظر میاد بدرد نمیخوره رو کپچر کنه بده به مدلش به تصویر با کیفیت تقریبا 70 درصدی سیستم شما میرسه و حتی میتونه رمز هاتون رو به سرقت ببره.
مثلا هکر میتونه بیاد باهاتون احوال پرسی کنه و الکی مثلا ماگش کنار مانیتورتون جا بمونه توی این ماگ یه قطعه کار گذاشته باشه که سیگنال های HDMI شمارو کپچر کنه و در نتیجه بعدا با این سیگنال ها و مدلی که از قبل train کرده ویدیوی ضبط شده از مانیتور شما رو بازسازی کنه و حتی پسورداتون رو که روی حالت show بودن رو ببینه :)
👾 @pishroapp
سیگنالی که از سیم HDMI رد میشه یه میدان مغناطیسی درست میکنه که اگه بخوایم اونو کپچر کنیم نمیشه به تصویر واضحی رسید و اصلا بدرد نمیخوره.
به کمک هوش مصنوعی هکرا این کارو روی سیستم های خودشون به دفعات زیاد کردن و با استفاده از دیتای نویزی و دیتای دقیق یه مدل با دقت 70% تونستن train کنن.
یعنی اگه هکر دیتای نویزی که به نظر میاد بدرد نمیخوره رو کپچر کنه بده به مدلش به تصویر با کیفیت تقریبا 70 درصدی سیستم شما میرسه و حتی میتونه رمز هاتون رو به سرقت ببره.
مثلا هکر میتونه بیاد باهاتون احوال پرسی کنه و الکی مثلا ماگش کنار مانیتورتون جا بمونه توی این ماگ یه قطعه کار گذاشته باشه که سیگنال های HDMI شمارو کپچر کنه و در نتیجه بعدا با این سیگنال ها و مدلی که از قبل train کرده ویدیوی ضبط شده از مانیتور شما رو بازسازی کنه و حتی پسورداتون رو که روی حالت show بودن رو ببینه :)
Please open Telegram to view this post
VIEW IN TELEGRAM
👨💻1
▪️تو نسخهی بتای اپلیکیشن گوگل یه سری دکمههای جدید اضافه شده که افزونههای جمنای رو برای واتساپ، پیامرسان گوگل و اعلانهای سیستم اندروید فعال کنیم.
RoidBest
Please open Telegram to view this post
VIEW IN TELEGRAM
❤1
اگر به دنبال ابزاری هستین که بتونید فایلهای صوتی رو به متن تبدیل کنید، سایت زیر برای شماست.
تو این سایت میتونید هم فایل صوتی ضبط شده آپلود کنید و هم اینکه به صورت لایو صحبت کنید و متن مدنظرتونو بگیرید.
من برای فارسی رو امتحان کردم کیفیت خوبی داشت.DevTwitter
https://www.speechmatics.com/
👾 @pishroapp
تو این سایت میتونید هم فایل صوتی ضبط شده آپلود کنید و هم اینکه به صورت لایو صحبت کنید و متن مدنظرتونو بگیرید.
من برای فارسی رو امتحان کردم کیفیت خوبی داشت.DevTwitter
https://www.speechmatics.com/
Please open Telegram to view this post
VIEW IN TELEGRAM
SELECT DISTINCT department_id FROM employees;
SELECT department_id FROM employees GROUP BY department_id;
این دوتا Query میان و مقادیر یکتای department_id رو برمیگردونن
اما کدوم یکی بهینه تر هست بنظر شما؟
کوئری اول همه مقادیر یکتای department_id رو ز جدول employees انتخاب میکنه. اما DISTINCT برای انجام این کار نیاز داره که دادهها رو مرتب (sort) کنه که این عملیات برای مجموعههای داده بزرگ ممکنه بسیار سنگین و زمانبر باشه.
کوئری دوم هم همه ی مقادیر یکتای department_id رو انتخاب میکنه اما بدون نیاز به مرتبسازی.
به طور معمول، استفاده از GROUP BY به جای DISTINCT در چنین مواردی میتونه سریعتر باشه چونکه روشهای پیادهسازی متفاوتی دارند که میتونه کارآمدتر باشه.
استفاده غیرضروری از DISTINCT ممکنه باعث کاهش سرعت اجرای کوئریها بشه و در برخی موارد، استفاده از GROUP BY میتونه راه حل بهتری باشه.
#sql
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1 1
کدام یک را انتخاب کنیم؟
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2 1
🔰فریم ورک Aurelia:
Aurelia یک فریمورک مدرن برای توسعه وب است که بر پایه استانداردهای وب بنا شده و به برنامهنویسان این امکان را میدهد تا برنامههای کاربردی پیچیده و مقیاسپذیر بسازند. این فریمورک به دلیل سادگی، قابلیت انعطافپذیری و استفاده از تکنولوژیهای مدرن مانند ES6 و TypeScript شناخته شده است.
🌀ویژگیهای کلیدی Aurelia:
1⃣مدلسازی داده: Aurelia از الگوی MVVM (Model-View-ViewModel) استفاده میکند که به جداسازی منطق تجاری از رابط کاربری کمک میکند.
2⃣قابلیت استفاده مجدد: کامپوننتها در Aurelia به راحتی قابل استفاده مجدد هستند و میتوانند در پروژههای مختلف به کار روند.
3⃣تستپذیری: طراحی Aurelia به گونهای است که تست کردن کدها را آسان میکند.
4⃣مدیریت وضعیت: Aurelia ابزارهای مناسبی برای مدیریت وضعیت برنامه ارائه میدهد.
اگر شما به دنبال یک فریمورک سبک و مدرن برای توسعه وب هستید، Aurelia میتواند گزینه مناسبی
باشد. studio_amozesh
#فریم_ورک
👾 @pishroapp
Aurelia یک فریمورک مدرن برای توسعه وب است که بر پایه استانداردهای وب بنا شده و به برنامهنویسان این امکان را میدهد تا برنامههای کاربردی پیچیده و مقیاسپذیر بسازند. این فریمورک به دلیل سادگی، قابلیت انعطافپذیری و استفاده از تکنولوژیهای مدرن مانند ES6 و TypeScript شناخته شده است.
🌀ویژگیهای کلیدی Aurelia:
1⃣مدلسازی داده: Aurelia از الگوی MVVM (Model-View-ViewModel) استفاده میکند که به جداسازی منطق تجاری از رابط کاربری کمک میکند.
2⃣قابلیت استفاده مجدد: کامپوننتها در Aurelia به راحتی قابل استفاده مجدد هستند و میتوانند در پروژههای مختلف به کار روند.
3⃣تستپذیری: طراحی Aurelia به گونهای است که تست کردن کدها را آسان میکند.
4⃣مدیریت وضعیت: Aurelia ابزارهای مناسبی برای مدیریت وضعیت برنامه ارائه میدهد.
اگر شما به دنبال یک فریمورک سبک و مدرن برای توسعه وب هستید، Aurelia میتواند گزینه مناسبی
باشد. studio_amozesh
#فریم_ورک
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1
یک بار برای همیشه فرق Emulator و Simulator رو یاد بگیر
ایمولیتور "دقیقا" اون سیستم رو شبیه سازی میکنه مثل VirtualBox یا شبیه سازی بازی های کنسول.
اما سیمولیتور "تقریبی" اون سیستم رو شبیه سازی میکنه، مثلا شبیه ساز های مدار الکتریکی، یا شبیه ساز پرواز هواپیما
توی شبیه ساز VirtualBox شما دقیقا دارید یه سیستم عامل رو شبیه سازی میکنید یعنی اگه یه عملی توی شبیه ساز انجام بدید دقیقا توی واقعیت هم همون عمل انجام میشه. اما توی شبیه ساز مدار الکتریکی به صورت ریاضی این عمل انجام میشه و تا حد ممکن توی واقعیت هم همین رفتار رو داره ولی ممکنه رفتارش متفاوت باشه. Linuxor
👾 @pishroapp
ایمولیتور "دقیقا" اون سیستم رو شبیه سازی میکنه مثل VirtualBox یا شبیه سازی بازی های کنسول.
اما سیمولیتور "تقریبی" اون سیستم رو شبیه سازی میکنه، مثلا شبیه ساز های مدار الکتریکی، یا شبیه ساز پرواز هواپیما
توی شبیه ساز VirtualBox شما دقیقا دارید یه سیستم عامل رو شبیه سازی میکنید یعنی اگه یه عملی توی شبیه ساز انجام بدید دقیقا توی واقعیت هم همون عمل انجام میشه. اما توی شبیه ساز مدار الکتریکی به صورت ریاضی این عمل انجام میشه و تا حد ممکن توی واقعیت هم همین رفتار رو داره ولی ممکنه رفتارش متفاوت باشه. Linuxor
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1 1
دوستان متد rawValue() توی #لاراول به شما این امکان رو میده که مقادیر رو مستقیماً از عبارات SQL دریافت کنید.
این متد زمانی مفیده که بخواید از توابع یا عبارات SQL# خاصی برای استخراج دادهها، بدون نیاز به اجرای یک کوئری کامل و گرفتن یک آبجکت مدل استفاده کنید
مثال زیر رو ببینید:
توی این مثال، متد rawValue() برای ترکیب دو ستون first_name و last_name با استفاده از تابع CONCAT در SQL به کار رفته.
یا نمونه ی زیر:
فرض کنید ما یه جدول محصولات داریم که شامل قیمتهاست و میخوایم قیمت رو با تخفیف محاسبه کنیم. برای این کار از rawValue() و یک عبارت SQL برای محاسبه استفاده میکنیم.
بصورت کلی متد rawValue() به شما این امکان رو میده که مستقیماً مقادیر خام از یک کوئری SQL دریافت کنید، بدون نیاز به اجرای کامل یک کوئری و برگرداندن آبجکت مدل.
این روش زمانی مفید هست که شما تنها یک مقدار خاص از یک عبارت SQL نیاز دارید و نمیخواید زمان یا منابع بیشتری برای پردازش اضافی صرف کنید.
👾 @pishroapp
این متد زمانی مفیده که بخواید از توابع یا عبارات SQL# خاصی برای استخراج دادهها، بدون نیاز به اجرای یک کوئری کامل و گرفتن یک آبجکت مدل استفاده کنید
مثال زیر رو ببینید:
$fullname = UserModel::where('id', $id)
->rawValue('CONCAT(first_name, " ", last_name)');توی این مثال، متد rawValue() برای ترکیب دو ستون first_name و last_name با استفاده از تابع CONCAT در SQL به کار رفته.
یا نمونه ی زیر:
فرض کنید ما یه جدول محصولات داریم که شامل قیمتهاست و میخوایم قیمت رو با تخفیف محاسبه کنیم. برای این کار از rawValue() و یک عبارت SQL برای محاسبه استفاده میکنیم.
$discountedPrice = ProductModel::where('id', $productId)
->rawValue('price - (price * discount / 100) AS discounted_price');
بصورت کلی متد rawValue() به شما این امکان رو میده که مستقیماً مقادیر خام از یک کوئری SQL دریافت کنید، بدون نیاز به اجرای کامل یک کوئری و برگرداندن آبجکت مدل.
این روش زمانی مفید هست که شما تنها یک مقدار خاص از یک عبارت SQL نیاز دارید و نمیخواید زمان یا منابع بیشتری برای پردازش اضافی صرف کنید.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3