Forwarded from یک برنامه نویس تنبل (Raymond Dev)
🔶 در لاراول، Boolean Query به شما این امکان را میدهند که با استفاده از شرایط منطقی مختلف، دادهها را از دیتابیس فیلتر کنید.
1. استفاده از شرط where
استفاده از شرطهای where برای فیلتر کردن دادهها با شرایط مختلف:
2. استفاده از orWhere
استفاده از orWhere برای اضافه کردن شرطهای منطقی OR به کوئری:
3. استفاده از whereBetween
استفاده از whereBetween برای فیلتر کردن دادهها با محدوده مقادیر:
4. استفاده از whereIn
استفاده از whereIn برای فیلتر کردن دادهها بر اساس مجموعهای از مقادیر:
5. استفاده از whereNull و whereNotNull
استفاده از whereNull و whereNotNull برای فیلتر کردن دادهها بر اساس مقادیر null:
6. استفاده از whereExists
استفاده از whereExists برای بررسی وجود رکوردهای مرتبط در یک ساب کوئری:
7. استفاده از توابع when
استفاده از when برای اعمال شرایط به صورت داینامیک:
8. ترکیب شرطهای مختلف
ترکیب چندین شرط با استفاده از گروهبندی توابع:
#لاراول
@TheRaymondDev
1. استفاده از شرط where
استفاده از شرطهای where برای فیلتر کردن دادهها با شرایط مختلف:
$users = DB::table('users')->where('name', 'John')->get();2. استفاده از orWhere
استفاده از orWhere برای اضافه کردن شرطهای منطقی OR به کوئری:
$users = DB::table('users')->where('name', 'John')->orWhere('name', 'Jane')->get();3. استفاده از whereBetween
استفاده از whereBetween برای فیلتر کردن دادهها با محدوده مقادیر:
$users = DB::table('users')->whereBetween('age', [20, 30])->get();4. استفاده از whereIn
استفاده از whereIn برای فیلتر کردن دادهها بر اساس مجموعهای از مقادیر:
$users = DB::table('users')->whereIn('id', [1, 2, 3])->get();5. استفاده از whereNull و whereNotNull
استفاده از whereNull و whereNotNull برای فیلتر کردن دادهها بر اساس مقادیر null:
$users = DB::table('users')->whereNull('email')->get();
$users = DB::table('users')->whereNotNull('email')->get();6. استفاده از whereExists
استفاده از whereExists برای بررسی وجود رکوردهای مرتبط در یک ساب کوئری:
$users = DB::table('users')
->whereExists(function ($query) {
$query->select(DB::raw(1))
->from('posts')
->whereRaw('posts.user_id = users.id');
})
->get();7. استفاده از توابع when
استفاده از when برای اعمال شرایط به صورت داینامیک:
$role = 'admin';
$users = DB::table('users')
->when($role, function ($query, $role) {
return $query->where('role', $role);
})
->get();
8. ترکیب شرطهای مختلف
ترکیب چندین شرط با استفاده از گروهبندی توابع:
$users = DB::table('users')
->where('status', 'active')
->where(function ($query) {
$query->where('name', 'John')
->orWhere('age', '>', 30);
})
->get();#لاراول
@TheRaymondDev
👍7❤4
در لاراول بعضی وقتا نیازه تا برخی از کلمات یا عبارت های موجود رو با عبارت های مدنظرمون جابجا کنیم تا تغییراتی که میخوایم اعمال شوند.
چجوری؟
📌 به مثال زیر توجه کنین، دو کلمه ازین جمله انتخاب شده(Tacos و Great) و عملیات جایگذاری رو با استفاده از متود ()swap اعمال کردیم, اکنون خروجی دارای تغییرات جدیدمون خواهد شد.( Burritos fantastic)
#لاراول
#Laravel
@GoldenCodeir
(به منبع و مثال دقت کنید👇🏾)
https://x.com/OussamaMater/status/1813313409443844221?t=M4HQZcZjhBALXUTQX83fxw&s=35
چجوری؟
📌 به مثال زیر توجه کنین، دو کلمه ازین جمله انتخاب شده(Tacos و Great) و عملیات جایگذاری رو با استفاده از متود ()swap اعمال کردیم, اکنون خروجی دارای تغییرات جدیدمون خواهد شد.( Burritos fantastic)
#لاراول
#Laravel
@GoldenCodeir
(به منبع و مثال دقت کنید👇🏾)
https://x.com/OussamaMater/status/1813313409443844221?t=M4HQZcZjhBALXUTQX83fxw&s=35
X (formerly Twitter)
OussamaMater (@OussamaMater) on X
Laravel Tip💡: Swap Multiple Strings
When working with strings, we often need to find and replace occurrences of multiple strings. Laravel ships with an elegant method "swap" to do exactly that 🚀
#laravel
When working with strings, we often need to find and replace occurrences of multiple strings. Laravel ships with an elegant method "swap" to do exactly that 🚀
#laravel
👍5
Forwarded from PGTWEET | توییت برنامه نویسی
سه اصل KISS ،YAGNI ،DRY در برنامه نویسی
🔵 اصل DRY
قانون DRY که مخفف dont repeat yourself هست، به معنای تکرار بیهوده نکردن کد میباشد. خلاصه و مفید بهتون بگم، یعنی کدوم بخش های برنامه مشابه هستن و سعی کنید با استفاده از کلاس ها و توابع، میزان استفاده از کدهای تکراری رو در پروژه به حداقل برسونید. هر چقدر از تکرار کد بیهوده بیشتر جلوگیری کنید، میزان زمان و هزینههای پشتیبانی خیلی کمتر میشه و مشکلات کمتری هم توی پروژه ایجاد میشه.
🔵 اصل KISS
این اصل مخفف Keep It Simple, Stupid هست و در این قاعده، ساده گرایی و پرهیز از پیچیدگی حرف اول رو میزنه. هرچقدر که کارها به واحدهای کوچک با فرآیندهای سادهتری تبدیل بشه، بازدهی افراد بیشتر میشه، میزان خطا کمتر میشه و پروژه موفق تر جلو میره. برای مثال کامپوننت های کوچیک بنویسیم، هر کامپوننت فقط یه کار مشخص رو انجام بده و ...
🔵 اصل YAGNI
اصل YAGNI که مخفف You Aren’t Gonna Need It هست، یک تمرین در توسعه نرم افزار هست که میگه ویژگی ها، فقط باید در صورت نیاز اضافه بشن. بحث اینه که توسعه دهندگان زمان خودشون رو برای ایجاد عناصر اضافی که ممکنه ضروری نباشن و باعث کند کردن روند توسعه هستن، تلف نکنن.
بطور خلاصه KISS, YAGNI, DRY سه اصل مهم در برنامه نویسی هستن که رعایت کردن اونها در نگهداری، تغییر و خوانایی کدهای پروژه در طولانی مدت بسیار تاثیرگذار میباشد.
#shahin
🤘 PgTwEeT | توییت برنامه نویسی
قانون DRY که مخفف dont repeat yourself هست، به معنای تکرار بیهوده نکردن کد میباشد. خلاصه و مفید بهتون بگم، یعنی کدوم بخش های برنامه مشابه هستن و سعی کنید با استفاده از کلاس ها و توابع، میزان استفاده از کدهای تکراری رو در پروژه به حداقل برسونید. هر چقدر از تکرار کد بیهوده بیشتر جلوگیری کنید، میزان زمان و هزینههای پشتیبانی خیلی کمتر میشه و مشکلات کمتری هم توی پروژه ایجاد میشه.
این اصل مخفف Keep It Simple, Stupid هست و در این قاعده، ساده گرایی و پرهیز از پیچیدگی حرف اول رو میزنه. هرچقدر که کارها به واحدهای کوچک با فرآیندهای سادهتری تبدیل بشه، بازدهی افراد بیشتر میشه، میزان خطا کمتر میشه و پروژه موفق تر جلو میره. برای مثال کامپوننت های کوچیک بنویسیم، هر کامپوننت فقط یه کار مشخص رو انجام بده و ...
اصل YAGNI که مخفف You Aren’t Gonna Need It هست، یک تمرین در توسعه نرم افزار هست که میگه ویژگی ها، فقط باید در صورت نیاز اضافه بشن. بحث اینه که توسعه دهندگان زمان خودشون رو برای ایجاد عناصر اضافی که ممکنه ضروری نباشن و باعث کند کردن روند توسعه هستن، تلف نکنن.
بطور خلاصه KISS, YAGNI, DRY سه اصل مهم در برنامه نویسی هستن که رعایت کردن اونها در نگهداری، تغییر و خوانایی کدهای پروژه در طولانی مدت بسیار تاثیرگذار میباشد.
#shahin
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6❤2💯2
در لاراول وقتی میخوایم یه مقدار رو از session بخونیم و بعدش اونو حذفش کنیم، میتونیم بجای استفاده از متود های()get و ()forget ، از متود ()pull استفاده کنیم.
استفاده ازش باعث میشه کد تمیزتر و کوتاه تر بشه.
📌 چجوری کار میکنه؟
طبق مثال زیر همزمان مقدار key رو از session میخونه و سپس حذفش میکنه.
#Laravel
@GoldenCodeir
(به منبع و مثالش دقت کنید👇🏾)
https://x.com/OussamaMater/status/1814389905554022561?t=mOMUzlFBulYMC9lBlrbsvQ&s=19
استفاده ازش باعث میشه کد تمیزتر و کوتاه تر بشه.
📌 چجوری کار میکنه؟
طبق مثال زیر همزمان مقدار key رو از session میخونه و سپس حذفش میکنه.
#Laravel
@GoldenCodeir
(به منبع و مثالش دقت کنید👇🏾)
https://x.com/OussamaMater/status/1814389905554022561?t=mOMUzlFBulYMC9lBlrbsvQ&s=19
X (formerly Twitter)
OussamaMater (@OussamaMater) on X
Laravel Tip💡: Retrieve and Delete Items From the Session
We often need to retrieve an item from the session and then delete it. While you can use the usual combo of get and forget, Laravel ships with the "pull" method that does exactly that 🚀
#laravel
We often need to retrieve an item from the session and then delete it. While you can use the usual combo of get and forget, Laravel ships with the "pull" method that does exactly that 🚀
#laravel
❤5👍1👏1
Forwarded from PGTWEET | توییت برنامه نویسی
۵ نکنه جهت بهبود عملکرد و سرعت وبسایت
عملکرد و سرعت بارگذاری وبسایت، یکی از مهمترین فاکتورهایی هست که تجربه کاربری و رتبهبندی در موتورهای جستجو رو تحت تاثیر قرار میده. در این پست، چند تا از استراتژیهای خفن و پرکاربرد برای بهینهسازی عملکرد در فرانتاند رو بررسی میکنیم.
1⃣ بهینهسازی تصاویر
تصاویر حجم زیادی از دادهها رو به خود اختصاص میدن. با فشردهسازی تصاویر و استفاده از فرمتهای مدرن مثل WebP، میتونید حجم صفحات خودتون رو کاهش بدید. همچنین میتونید از تگ
2⃣ استفاده از Lazy Loading
بارگذاری تنبل (Lazy Loading) به شما این امکان رو میده که تصاویر و ویدئوها تنها زمانی بارگذاری بشن، که کاربر به اونها اسکرول کنه و این باعث کاهش زمان بارگذاری اولیه میشه. این ویژگی در HTML5 پشتیبانی میشه و نیازی به پلاگینهای اضافی نیست:
3⃣ کاهش درخواستهای HTTP
با ترکیب فایلهای CSS و JavaScript و استفاده از ابزارهایی مثل Webpack، میتونید تعداد درخواستهای HTTP رو کاهش بدید. همچنین میتونید از فشردهسازی فایلها با gzip یا Brotli استفاده کنید تا حجم فایلها کاهش پیدا کنه.
4⃣ استفاده از Content Delivery Network (CDN)
CDN به شما کمک میکنه تا محتوا رو از نزدیکترین سرور به کاربر ارائه بدید، که باعث کاهش زمان بارگذاری و افزایش مقیاسپذیری وبسایت میشه:
5⃣ بهینهسازی فایلهای CSS و JavaScript
با استفاده از ابزارهایی مثل UglifyJS و CSSNano، میتونید کدهای خودتون رو بهینه و حجم فایلها رو کاهش بدید. همچنین میتونید از ابزارهای مدرنی مثل Terser برای جاوااسکریپت و PostCSS برای CSS استفاده کنید:
بهینهسازی عملکرد، یکی از مهمترین جنبههای توسعه وبسایتهای حرفهای و مدرن هست. امیدوارم از این پست لذت برده باشید 😀
#vesal
🤘 PgTwEeT | توییت برنامه نویسی
عملکرد و سرعت بارگذاری وبسایت، یکی از مهمترین فاکتورهایی هست که تجربه کاربری و رتبهبندی در موتورهای جستجو رو تحت تاثیر قرار میده. در این پست، چند تا از استراتژیهای خفن و پرکاربرد برای بهینهسازی عملکرد در فرانتاند رو بررسی میکنیم.
تصاویر حجم زیادی از دادهها رو به خود اختصاص میدن. با فشردهسازی تصاویر و استفاده از فرمتهای مدرن مثل WebP، میتونید حجم صفحات خودتون رو کاهش بدید. همچنین میتونید از تگ
<picture> برای پشتیبانی بهتر مرورگرها استفاده کنید:<picture>
<source srcset="image.webp" type="image/webp">
<img src="image.jpg" alt="PgTwEeT">
</picture>
بارگذاری تنبل (Lazy Loading) به شما این امکان رو میده که تصاویر و ویدئوها تنها زمانی بارگذاری بشن، که کاربر به اونها اسکرول کنه و این باعث کاهش زمان بارگذاری اولیه میشه. این ویژگی در HTML5 پشتیبانی میشه و نیازی به پلاگینهای اضافی نیست:
<img src="image.jpg" loading="lazy" alt="PgTwEeT">
با ترکیب فایلهای CSS و JavaScript و استفاده از ابزارهایی مثل Webpack، میتونید تعداد درخواستهای HTTP رو کاهش بدید. همچنین میتونید از فشردهسازی فایلها با gzip یا Brotli استفاده کنید تا حجم فایلها کاهش پیدا کنه.
CDN به شما کمک میکنه تا محتوا رو از نزدیکترین سرور به کاربر ارائه بدید، که باعث کاهش زمان بارگذاری و افزایش مقیاسپذیری وبسایت میشه:
با استفاده از ابزارهایی مثل UglifyJS و CSSNano، میتونید کدهای خودتون رو بهینه و حجم فایلها رو کاهش بدید. همچنین میتونید از ابزارهای مدرنی مثل Terser برای جاوااسکریپت و PostCSS برای CSS استفاده کنید:
// Example using UglifyJS
const UglifyJS = require("uglify-js");
const result = UglifyJS.minify("function add(a, b) { return a + b; }");
console.log(result.code);
#vesal
Please open Telegram to view this post
VIEW IN TELEGRAM
👍10❤1
در لاراول ، بسته به محیطی که برنامه داخلش اجرا میشه ممکنه نیاز بشه عملیات های مشخصی رو فعال یا غیر فعال کنیم .
مثلا کانفیگ های مربوط به دیباگ پروژه نباید در محیط production فعال باشه (مشکل امنیتی میسازه).
📌 دو متود با نام های isProduction و isLocal در اختیارمون هست که میتونیم به راحتی بررسی کنیم آیا برنامه در محیط local هست یا production تا عملیات مورد نیاز برای محیط مدنظر اجرا بشه.
#لاراول
#Laravel
@GoldenCodeir
(به منبع و مثالش دقت کنید👇🏾)
https://x.com/OussamaMater/status/1815461812457935220?t=1ATZevlJa5FeR5AP6aKVRw&s=35
مثلا کانفیگ های مربوط به دیباگ پروژه نباید در محیط production فعال باشه (مشکل امنیتی میسازه).
📌 دو متود با نام های isProduction و isLocal در اختیارمون هست که میتونیم به راحتی بررسی کنیم آیا برنامه در محیط local هست یا production تا عملیات مورد نیاز برای محیط مدنظر اجرا بشه.
#لاراول
#Laravel
@GoldenCodeir
(به منبع و مثالش دقت کنید👇🏾)
https://x.com/OussamaMater/status/1815461812457935220?t=1ATZevlJa5FeR5AP6aKVRw&s=35
X (formerly Twitter)
OussamaMater (@OussamaMater) on X
Laravel Tip💡: Check Your Application Environment
We often need to check the application environment. While you can use the environment method to do so, Laravel ships with elegant methods "isProduction" and "isLocal" to do exactly that 🚀
#laravel
We often need to check the application environment. While you can use the environment method to do so, Laravel ships with elegant methods "isProduction" and "isLocal" to do exactly that 🚀
#laravel
👍7❤1
Forwarded from Anophel | آنوفل
در لاراول دیزاین پترن Repository برای جداسازی لایه دسترسی به دادهها از لایه منطقی استفاده میشود. این پترن به توسعهدهندگان اجازه میدهد تا با استفاده از یک واسط مشترک به دادههای مختلف دسترسی پیدا کنند و تغییرات در لایه داده را بدون تأثیر بر لایه منطقی مدیریت کنند.
دیزاین پترن Repository در لاراول از سه بخش اصلی تشکیل شده است:
اینترفیس Repository: این اینترفیس متد هایی را تعریف میکند که برای تعامل با مکانیسم ذخیرهسازی داده استفاده میشوند. این یک لایه آبسترک بین کد برنامه و دیتابیس فراهم می کند.
کلاس Repository: این کلاس اینترفیس Repository را پیادهسازی میکند و شامل اجرای واقعی متد های تعریف شده در اینترفیس است. برای انجام عملیات CRUD (ایجاد، خواندن، بهروزرسانی و حذف) با مکانیسم ذخیرهسازی داده تعامل دارد.
کلاس سرویس: این کلاس از کلاس Repository برای انجام عملیات لاجیک استفاده می کند. به عنوان یک واسطه بین Controller و Repository عمل می کند و لایه ای از آبسترک را بین لایه ارائه و لایه ذخیره سازی داده ارائه می دهد.
مزایای استفاده از Repository
1. جداسازی نگرانیها (Separation of Concerns): لایه منطقی از جزئیات دسترسی به دادهها جدا میشود.
2.قابلیت تست بهتر: با جدا کردن منطق تجاری از منطق دسترسی به دادهها، تست واحد آسانتر میشود.
3. مدیریت بهتر تغییرات: تغییرات در ساختار دادهها یا منبع داده به سادگی مدیریت میشود.
خلاصه کلام
استفاده از الگوی Repository در لاراول مزایای متعددی دارد از جمله جداسازی نگرانیها، قابلیت تست بهتر، و مدیریت سادهتر تغییرات. این پترن شامل تعریف اینترفیس ها، پیادهسازی آنها در کلاسهای Repository و ثبت آنها در سرویس پراوایدر است.
Anophel آنوفل
#لاراول #دیزاین_پترن #laravel #design_pattern
دیزاین پترن Repository در لاراول از سه بخش اصلی تشکیل شده است:
اینترفیس Repository: این اینترفیس متد هایی را تعریف میکند که برای تعامل با مکانیسم ذخیرهسازی داده استفاده میشوند. این یک لایه آبسترک بین کد برنامه و دیتابیس فراهم می کند.
کلاس Repository: این کلاس اینترفیس Repository را پیادهسازی میکند و شامل اجرای واقعی متد های تعریف شده در اینترفیس است. برای انجام عملیات CRUD (ایجاد، خواندن، بهروزرسانی و حذف) با مکانیسم ذخیرهسازی داده تعامل دارد.
کلاس سرویس: این کلاس از کلاس Repository برای انجام عملیات لاجیک استفاده می کند. به عنوان یک واسطه بین Controller و Repository عمل می کند و لایه ای از آبسترک را بین لایه ارائه و لایه ذخیره سازی داده ارائه می دهد.
مزایای استفاده از Repository
1. جداسازی نگرانیها (Separation of Concerns): لایه منطقی از جزئیات دسترسی به دادهها جدا میشود.
2.قابلیت تست بهتر: با جدا کردن منطق تجاری از منطق دسترسی به دادهها، تست واحد آسانتر میشود.
3. مدیریت بهتر تغییرات: تغییرات در ساختار دادهها یا منبع داده به سادگی مدیریت میشود.
خلاصه کلام
استفاده از الگوی Repository در لاراول مزایای متعددی دارد از جمله جداسازی نگرانیها، قابلیت تست بهتر، و مدیریت سادهتر تغییرات. این پترن شامل تعریف اینترفیس ها، پیادهسازی آنها در کلاسهای Repository و ثبت آنها در سرویس پراوایدر است.
Anophel آنوفل
#لاراول #دیزاین_پترن #laravel #design_pattern
Anophel
Anophel | Where Developers Create Their Own Path
Anophel is an ecosystem for developers—a place for those who prefer building over consuming. If you want to create tools, think differently, and forge your own path in coding, Anophel is with you.
❤5👍1👏1
در لاراول ، با استفاده از هوک passedValidation در form request میتونیم دیتای اعتبار سنجی شده رو پیش از ارسال به کنترلر تغییر بدیم.
به این ترتیب با این روش میتونیم دیتا رو طبق استانداردهایی که در نظر داریم اصلاح کنیم.
📌 در مثال زیر، تغییراتی که میخواستیم بر فیلد name اعمال شد تا در نهایت خروجیه استانداردی برای نمایش داشته باشیم.
#لاراول
#Laravel
@GoldenCodeir
(به منبع و مثالش دقت کنید👇🏾)
https://x.com/OussamaMater/status/1815852488941080859?s=35
به این ترتیب با این روش میتونیم دیتا رو طبق استانداردهایی که در نظر داریم اصلاح کنیم.
📌 در مثال زیر، تغییراتی که میخواستیم بر فیلد name اعمال شد تا در نهایت خروجیه استانداردی برای نمایش داشته باشیم.
#لاراول
#Laravel
@GoldenCodeir
(به منبع و مثالش دقت کنید👇🏾)
https://x.com/OussamaMater/status/1815852488941080859?s=35
X (formerly Twitter)
OussamaMater (@OussamaMater) on X
Laravel Tip💡: Normalize Validated Data
Have you ever needed to normalize the validated data before using it? Laravel Form Requests come with a "passedValidation" hook which allows you to tweak the validated data 🚀
#laravel
Have you ever needed to normalize the validated data before using it? Laravel Form Requests come with a "passedValidation" hook which allows you to tweak the validated data 🚀
#laravel
👍5❤3🔥1
Forwarded from یک برنامه نویس تنبل (Raymond Dev)
🔶 چالش لاراولی :
برای پکیچ Lame ورود موبایلی نوشتم اما هنگامی که با موبایل وارد می شوید و کد ورود را می زنید, با صفحه وریفای ایمیل مواجه می شویم و در حالی که این صفحه برای موبایل نیست و ورود به موبایل نیاز به وریفای صفحه نیست.
چه راهکاری هست که هنگام ورود با موبایل Verify اجرا نکند؟
این کد روت پکیچ لاراول است :
https://github.com/Rayiumir/Lame/blob/main/src/Routes/auth.php
#لاراول
@TheRaymondDev
برای پکیچ Lame ورود موبایلی نوشتم اما هنگامی که با موبایل وارد می شوید و کد ورود را می زنید, با صفحه وریفای ایمیل مواجه می شویم و در حالی که این صفحه برای موبایل نیست و ورود به موبایل نیاز به وریفای صفحه نیست.
چه راهکاری هست که هنگام ورود با موبایل Verify اجرا نکند؟
این کد روت پکیچ لاراول است :
https://github.com/Rayiumir/Lame/blob/main/src/Routes/auth.php
#لاراول
@TheRaymondDev
GitHub
Lame/src/Routes/auth.php at main · Rayiumir/Lame
Laravel Authentication Mobile and Email. Contribute to Rayiumir/Lame development by creating an account on GitHub.
👍6❤1
با توجه به گزینه های زیر، با کدوم کد میتونیم در لاراول اقدام به ارسال یک ایمیل با استفاده از queue کنیم؟
Anonymous Quiz
20%
Mail::to('test@gmail.com')->send(new MyMail());
31%
Mail::to('test@gmail.com')->queue(new MyMail());
32%
Mail::dispatch('test@gmail.com')->sendEmailJob(new MyMail());
17%
send(new SendEmailJob('test@gmail.com'));
❤4🔥1💯1
Forwarded from CleverDevs (Mahdi)
بجای اینکه از else if استفاده کنید (در بعضی شرایط) بهتره که از guard clauses استفاده کنید چون در این حالت کد خیلی خوانا تر و کوتاه تره.
#CleanCode Source
@CleverDevs
@CleverDevsGp
#CleanCode Source
@CleverDevs
@CleverDevsGp
👍16🔥2❤1👎1
Forwarded from PGTWEET | توییت برنامه نویسی (AraD)
توی سطوح بالاتر، افرادی که با شما مصاحبه میکنند مایلند بدونند که شما چقدر به جعبه ابزارتون مسلطید. اگر توی رزومهتون نوشتید که با ابزار X کار کردید، اونها از شما سوالاتی میپرسند که متوجه عمق درک و تجربه شما از اون ابزار بشوند درنتیجه خیلی مهمه که اولا واقعا با اون ابزار توی یک یا دو پروژه واقعی کار کرده باشید و چالشهاش رو تجربه کرده باشید و دوم اینکه وقتی دارید داکیومنت میخونید باید به صورت مداوم دنبال چرایی باشید! چرا این متد اینطور کار میکنه؟ چرا این API اینجوری دیزاین شده؟ چرا باید این مقادیر رو ست کنم؟ چرا باید این دیتا رو برای فلان متد فراهم کنم؟
خیلی وقتها بعد از پرسیدن این سوالات مجبور میشید تا سورس کد اون ابزار رو بخونید که با همین کار، شما هم Design Pattern یاد میگیرید، هم نحوه کد استاندارد نوشتن یاد میگرید و هم متوجه میشید که تیمهای بزرگ هم از فضا نیومدند و شما هم میتونید اون کد رو بنویسید و اعتماد به نفستون بیشتر میشه.😄
۵- زودتر وارد دنیای open-source بشید!
تصور کنید وارد یک مغازه طلافروشی میشید و میخواید طلا بخرید. روی دیوار پر از مدارک و جوایزه و آقا/خانم فروشنده به شما میگه که تا الان به این لیست از افراد خدمات دادیم و همگی راضی بودند. شما به ویترین نگاه میکنید و میبینید حتی یک جنس هم وجود نداره! پیش خودتون چی فکر میکنید؟ آیا به حرف فروشنده و چندتا تابلو اعتماد میکنید یا کمی مردد میشید؟
Talk is cheap. Show me the code.
- Linus Torvalds
واقعیت اینه که دنیای open-source درحال حاضر نقش زیادی رو برای اعتبار سنجی تجربیات شما بازی میکنه و یجورایی همون ویترین شماست. شاید به عنوان یک برنامهنویس عادی که یک نتورک قوی و مارکتینگ شرکتهای بزرگ پشتش نیست نتونید پروژهای با 10K استار توی گیتهاب داشته باشید اما میتونید در قدم اول به بقیه نشون بدید که چطور کدهاتون رو مینویسید و در قدم بعد تلاش بیشتری کنید تا استار بیشتری هم برای پروژهتون به دست بیارید. فعالیت توی گیتهاب، این رو به همکارهای آینده شما نشون میده که شما درحال یادگیری هستید و وقتی رو برای پروژههای جانبی میذارید که این ارزشمنده. همینطور ممکنه شما تمام تجربه کاریتون در زمینه JS بوده باشه ولی زبان Kotlin رو هم بلدید و دوست دارید تجربه بعدی کاریتون توی اون حوزه باشه. خیلی راحت میتونید پروژهای که با Kotlin نوشتید رو در گیتهابتون منتشر کنید تا گواهی بر این باشه که شما Kotlin رو بلدید.
۶- زودتر به طور جدی زبان انگلیسی رو دنبال کنید
آخرین نکتهای که دوست دارم حتما بگم زبان انگلیسیه! تمام موارد قبلی به کنار، این مورد به کنار. واقعیتش اگر شما زبان انگلیسیتون رو تقویت نکنید، نمیتونید داکیومنت بخونید، کنفرانس ببینید، پادکست گوش بدید، توی دنیای open source فعالیت کنید و بعد از اینها اگر قصد مهاجرت داشته باشید، تقریبا براتون غیر ممکنه!
توی دنیای امروز شرکتهای نرمافزاری بخصوص استارتآپها که نیاز به رشد و حرکت سریع دارند، مهمتر از کدی که مینویسید و ابزاری که باهاش کار میکنید اینه که بتونید با تیمتون تعامل مستمر و سودمند داشته باشید. بتونید مسائل و مشکلات پیچیده برنامهنویسی رو از طرف مقابلتون دریافت کنید و در مقابل بتونید به کسی دیگه به صورت واضح منتقل کنید. شاید یکی از مهمترین دلایلی که برنامهنویس های هندی بیشتر از برنامهنویسهای ایرانی از آسیا درحال کار توی شرکتهای اروپایی و آمریکایی هستند همین باشه. شاید لهجه خیلی خوبی نداشته باشند(گاهی هم چیزی از نیتیو اسپیکر کم ندارند) اما بدون هیچ مشکلی مطلب رو درک میکنند و مطلبشون رو ارائه میدهند و برای هیچ کس(جز ما ایرانیها😁) لهجه مهم نیست و تعامل مهمه. در نتیجه این مورد شاید بشه گفت مهمترین چیزیه که باید روش بیشتر کار میکردم.
همین! اینها چیزهایی بود که فکر کردم از بقیه موارد مهمتر هستند و دونستنشون میتونه کمک کننده باشه. از اینکه این نوشته نسبتا طولانی رو خوندید ممنونم و امیدوارم کمکی کرده باشه بهتون.
📄#مقاله
》Hamid Hadi《
🕊 توییتر برنامه نویسان 🕊
خیلی وقتها بعد از پرسیدن این سوالات مجبور میشید تا سورس کد اون ابزار رو بخونید که با همین کار، شما هم Design Pattern یاد میگیرید، هم نحوه کد استاندارد نوشتن یاد میگرید و هم متوجه میشید که تیمهای بزرگ هم از فضا نیومدند و شما هم میتونید اون کد رو بنویسید و اعتماد به نفستون بیشتر میشه.😄
۵- زودتر وارد دنیای open-source بشید!
تصور کنید وارد یک مغازه طلافروشی میشید و میخواید طلا بخرید. روی دیوار پر از مدارک و جوایزه و آقا/خانم فروشنده به شما میگه که تا الان به این لیست از افراد خدمات دادیم و همگی راضی بودند. شما به ویترین نگاه میکنید و میبینید حتی یک جنس هم وجود نداره! پیش خودتون چی فکر میکنید؟ آیا به حرف فروشنده و چندتا تابلو اعتماد میکنید یا کمی مردد میشید؟
Talk is cheap. Show me the code.
- Linus Torvalds
واقعیت اینه که دنیای open-source درحال حاضر نقش زیادی رو برای اعتبار سنجی تجربیات شما بازی میکنه و یجورایی همون ویترین شماست. شاید به عنوان یک برنامهنویس عادی که یک نتورک قوی و مارکتینگ شرکتهای بزرگ پشتش نیست نتونید پروژهای با 10K استار توی گیتهاب داشته باشید اما میتونید در قدم اول به بقیه نشون بدید که چطور کدهاتون رو مینویسید و در قدم بعد تلاش بیشتری کنید تا استار بیشتری هم برای پروژهتون به دست بیارید. فعالیت توی گیتهاب، این رو به همکارهای آینده شما نشون میده که شما درحال یادگیری هستید و وقتی رو برای پروژههای جانبی میذارید که این ارزشمنده. همینطور ممکنه شما تمام تجربه کاریتون در زمینه JS بوده باشه ولی زبان Kotlin رو هم بلدید و دوست دارید تجربه بعدی کاریتون توی اون حوزه باشه. خیلی راحت میتونید پروژهای که با Kotlin نوشتید رو در گیتهابتون منتشر کنید تا گواهی بر این باشه که شما Kotlin رو بلدید.
۶- زودتر به طور جدی زبان انگلیسی رو دنبال کنید
آخرین نکتهای که دوست دارم حتما بگم زبان انگلیسیه! تمام موارد قبلی به کنار، این مورد به کنار. واقعیتش اگر شما زبان انگلیسیتون رو تقویت نکنید، نمیتونید داکیومنت بخونید، کنفرانس ببینید، پادکست گوش بدید، توی دنیای open source فعالیت کنید و بعد از اینها اگر قصد مهاجرت داشته باشید، تقریبا براتون غیر ممکنه!
توی دنیای امروز شرکتهای نرمافزاری بخصوص استارتآپها که نیاز به رشد و حرکت سریع دارند، مهمتر از کدی که مینویسید و ابزاری که باهاش کار میکنید اینه که بتونید با تیمتون تعامل مستمر و سودمند داشته باشید. بتونید مسائل و مشکلات پیچیده برنامهنویسی رو از طرف مقابلتون دریافت کنید و در مقابل بتونید به کسی دیگه به صورت واضح منتقل کنید. شاید یکی از مهمترین دلایلی که برنامهنویس های هندی بیشتر از برنامهنویسهای ایرانی از آسیا درحال کار توی شرکتهای اروپایی و آمریکایی هستند همین باشه. شاید لهجه خیلی خوبی نداشته باشند(گاهی هم چیزی از نیتیو اسپیکر کم ندارند) اما بدون هیچ مشکلی مطلب رو درک میکنند و مطلبشون رو ارائه میدهند و برای هیچ کس(جز ما ایرانیها😁) لهجه مهم نیست و تعامل مهمه. در نتیجه این مورد شاید بشه گفت مهمترین چیزیه که باید روش بیشتر کار میکردم.
همین! اینها چیزهایی بود که فکر کردم از بقیه موارد مهمتر هستند و دونستنشون میتونه کمک کننده باشه. از اینکه این نوشته نسبتا طولانی رو خوندید ممنونم و امیدوارم کمکی کرده باشه بهتون.
📄#مقاله
》Hamid Hadi《
🕊 توییتر برنامه نویسان 🕊
👍10❤1
در لاراول با کمک FakerPHP میتونید اقدام به ساخت شماره کارتهای fake کنید.
این شماره کارتهای fake در محیط تستی واقعا مفیدن و بهتون کمک میکنن تا پروژه هاتونو به خوبی آزمایش کنید.👌🏾
حتی میتونیم مشخص کنیم که چه نوعی از شماره کارت رو برامون تولید کنه؟ مثلا Visa یا MasterCard؟ (در تصویر زیر فرایندش گفته شده)
#laravel
#لاراول
@GoldenCodeir
(به منبع و مثالش دقت کنید👇🏾)
https://x.com/OussamaMater/status/1819092565561651269?t=H3Q4oXdHDOpKAIKBeFD2Yw&s=35
این شماره کارتهای fake در محیط تستی واقعا مفیدن و بهتون کمک میکنن تا پروژه هاتونو به خوبی آزمایش کنید.👌🏾
حتی میتونیم مشخص کنیم که چه نوعی از شماره کارت رو برامون تولید کنه؟ مثلا Visa یا MasterCard؟ (در تصویر زیر فرایندش گفته شده)
#laravel
#لاراول
@GoldenCodeir
(به منبع و مثالش دقت کنید👇🏾)
https://x.com/OussamaMater/status/1819092565561651269?t=H3Q4oXdHDOpKAIKBeFD2Yw&s=35
X (formerly Twitter)
OussamaMater (@OussamaMater) on X
Laravel Tip💡: Generate Fake Credit Card Numbers
Since Laravel uses FakerPHP under the hood, you can generate fake credit card numbers for your tests 🚀
#laravel
Since Laravel uses FakerPHP under the hood, you can generate fake credit card numbers for your tests 🚀
#laravel
👍6
Forwarded from CleverDevs (Mammad)
Object Relational Mapping یا به اختصار ORM چیه؟ و به چه دردی میخوره؟
اگه بکند کار باشید احتمال زیاد با یه ORM کار کردید یا حداقل اسمشو شنیدید توی این پست یکم دقیق تر بررسی میکنیم که ORM چه کاربردی داره . در واقع ORM ها ابزار هایی هستن که کمک میکنن برنامه نویس های شی گرا راحت تر با دیتابیس ارتباط برقرار کنن
مثلا اگه شما بخواید یه سری اطلاعات رو از جدول users بگیرید باید یه همچین کوئری sql ای بنویسید :
اما کمک ORM ها میتونید با یه همچین چیزی کارو در بیارید
ORM یک لایه بین برنامه نویس و دیتابیس ایجاد میکنه و در نهایت متد های مورد استفاده شمارو به SQL ترجمه میکنه و کوئری میزنه به دیتابیس ORM های مختلفی هم برای زبون ها و فریمورک های مختلف وجود داره مثل Eloquent برای لاراول یا ORM فریمورک جنگو و...
ORM های مختلف میتونن متد های مختلفی هم داشته باشن ولی در نهایت هدفشون یکیه و یه کاری انجام میدن
استفاده از ORM ها یه سری مزایاا و یه سری معایب داره
مزایایی مثل
همینطور معایبی مثل
پ.ن درسته کار با ORM نیاز به دانش چندانی از SQL نویسی نداره اما به این معنی نیست که SQL بلد نباشید و فقط از ORM استفاده کنید
#ORM
@CleverDevs - @CleverDevsGp
اگه بکند کار باشید احتمال زیاد با یه ORM کار کردید یا حداقل اسمشو شنیدید توی این پست یکم دقیق تر بررسی میکنیم که ORM چه کاربردی داره . در واقع ORM ها ابزار هایی هستن که کمک میکنن برنامه نویس های شی گرا راحت تر با دیتابیس ارتباط برقرار کنن
مثلا اگه شما بخواید یه سری اطلاعات رو از جدول users بگیرید باید یه همچین کوئری sql ای بنویسید :
"SELECT id, name, email, country, phone_number FROM users WHERE id = 20"
اما کمک ORM ها میتونید با یه همچین چیزی کارو در بیارید
users.GetById(20)
ORM یک لایه بین برنامه نویس و دیتابیس ایجاد میکنه و در نهایت متد های مورد استفاده شمارو به SQL ترجمه میکنه و کوئری میزنه به دیتابیس ORM های مختلفی هم برای زبون ها و فریمورک های مختلف وجود داره مثل Eloquent برای لاراول یا ORM فریمورک جنگو و...
ORM های مختلف میتونن متد های مختلفی هم داشته باشن ولی در نهایت هدفشون یکیه و یه کاری انجام میدن
استفاده از ORM ها یه سری مزایاا و یه سری معایب داره
مزایایی مثل
سرعت توسعه بالاتر
افزایش امنیت در اکثر اوقات
کمتر سرو کله زدن با SQL و ...
همینطور معایبی مثل
سرعت کمتر ORM نسبت به SQL
کارایی پایین ORM در کوئری های پیچیده و...
پ.ن درسته کار با ORM نیاز به دانش چندانی از SQL نویسی نداره اما به این معنی نیست که SQL بلد نباشید و فقط از ORM استفاده کنید
#ORM
@CleverDevs - @CleverDevsGp
👍5❤4🔥1
Forwarded from Pishro App
#لاراول ۱۱.۱۹ منتشر شد
توی این نسخه چندین تغییر داشتیم از جمله متدی بنام whereNone به Query Builder
لاراول اضافه شد که این متد به کاربران امکان پرس و جو برای رکوردهایی رو می ده که توی اونها هیچ یک از ستون های مشخص شده با شرایط داده شده مطابقت ندارد
👾 @pishroapp
توی این نسخه چندین تغییر داشتیم از جمله متدی بنام whereNone به Query Builder
لاراول اضافه شد که این متد به کاربران امکان پرس و جو برای رکوردهایی رو می ده که توی اونها هیچ یک از ستون های مشخص شده با شرایط داده شده مطابقت ندارد
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7❤4
در لاراول برای اعتبارسنجی تاریخ ها میتونیم از رشته های توصیفی مانند"today" یا "tomorrow" استفاده کنیم.
اینکار باعث میشه قوانین اعتبارسنجی ما خواناتر و ساده تر بشه نسبت به شرایطی که میایم و بطور مستقیم تاریخ هارو درج میکنیم.
در تصویر مثال های بیشتری عنوان شده
#laravel
#لاراول
@GoldenCodeir
(به منبع و مثالش توجه کنید👇🏾)
https://x.com/OussamaMater/status/1820184911023890561?s=1
اینکار باعث میشه قوانین اعتبارسنجی ما خواناتر و ساده تر بشه نسبت به شرایطی که میایم و بطور مستقیم تاریخ هارو درج میکنیم.
در تصویر مثال های بیشتری عنوان شده
#laravel
#لاراول
@GoldenCodeir
(به منبع و مثالش توجه کنید👇🏾)
https://x.com/OussamaMater/status/1820184911023890561?s=1
X (formerly Twitter)
OussamaMater (@OussamaMater) on X
Laravel Tip💡: Validate Dates Elegantly
Did you know that when validating dates with Laravel, you can pass strings like "today" or "tomorrow" instead of actual dates? This makes the validation rules much more readable 🚀
#laravel
Did you know that when validating dates with Laravel, you can pass strings like "today" or "tomorrow" instead of actual dates? This makes the validation rules much more readable 🚀
#laravel
👍6🔥1
Forwarded from PGTWEET | توییت برنامه نویسی
فقط اینکه شما بلد باشید با یک زبان برنامه نویسی یک پروژه رو به اتمام برسونید به معنی این نیست که شما یک Software engineer یا مهندس نرمافزار هستید.
یک مهندس نرمافزار توی سال 2023 نیازه که حداقل یکسری ابزار هارو بلد باشه و بتونه باهاشون کار کنه، خب بیاید ببینیم چه ابزارهایی...
- IDE | Editor
یک مهندس نرمافزار احتمالا بیشترین تایمش رو بابت کد زدن بگذرونه، پس نیازه که محیطی که توش کد میزنه رو خوب بشناسه.
پس اولین ابزار یک IDE یا ادیتور مناسبه که اون رو خوب بشناسه و بهش مسلط باشه تا با سرعت مناسبی بتونه پروسه کد زدن رو پیش ببره.
- Version control systems
برای مدیریت و توسعه سورس های کد نوشته شده و اشتراک گذاری و توسعه توسط بقیه برنامه نویس ها شما حتما حتما باید یک ورژن کنترل مثل گیت رو خوب بلد باشید تا بتونید در روند توسعه سریع و چابک باشید.
- Docker
دیگه توی این دوره هر مهندس نرم افزاری برای این که یک محیط Centralized رو بالا بیاره نیازه که داکر رو بلد باشه، حتما یادش بگیرید :)
- Testing tools
شما نیازه که ابزار ها و لایبرری های مورد استفاده جهت تست نرم افزارتون رو هم بلد باشید تا بتونید تست اتوماتیک داشته باشید
- Monitoring
یکسری ابزار ها هستن برای مانیتور کردن پرفومنس پروژه مثل Prometheus و Grafana که با استفاده ازشون میتونید پرفومنس پروژتون یا دیتابیستون رو مانیتور کنید و برای تحلیل هاتون ازشون استفاده کنید.
- Task management tools
کارها و تسک های هربرنامه نویس باید مشخص باشه که بتونه سرعتش در توسعه رو بالا ببره، در نتیجه دونستن یکسری ابزار مثل Jira که کارشون Task management و.. هست یک نیاز ضروریه.
- Logging
اما لاگ زدن و log tracking، اهمیتش توی یک پروژه به قدری مهمه که شما بعنوان مهندس نرم افزار برای کنترل بهتر روی پروژتون نباید ازش غافل بشید.
یکسری ابزار ها مثل Sentry بهتون کمک میکنن.
- CI/CD
شما با استفاده از CD/CD میتونید روند بیلد، تست و دیپلوی پروژتون رو اتوماتیک کنید و خیلی سرعت خودتون رو در روند توسعه نرم افزار بالاتر ببرید و ریسک خطا های بیلد و دیپلوی رو کاهش بدید، ابزار هایی مثل Jenkins یا حتی Gitlab به شما در این پروسه کمک میکنن.
- Gitlab | Github
خب ما گیت رو یادگرفتیم حالا چطور توی یک محیط اشتراکی کدهامون رو باهم به اشتراک بزاریم و کدهای همدیگه رو قبل از اعمال بررسی و کامنت بزاریم، یا اصلا این کدهارو کجا نگه داریم که فردا از دستشون ندیم؟ خب معلومه دیگه از گیتهاب یا گیتلب استفاده کنید.
- Message brokers
این روزا با بزرگ شدن پروژه هامون، نیاز به ارتباط بین اپلیکیشن ها حس میشه که یکی از روش های ارتباط برقرار کردن استفاده از Message broker هایی مثل Kafka یا RabbitMQ هستش و یادگیریشون امروزه تقریبا ضروری شده برای یک مهندس نرم افزار
- Linux
اصلا نیاز به توضیح نیست در مورد لینوکس، بعنوان یه مهندس نرم افزار تقریبا بیشتر سرورهایی که باهاشون سر و کار دارید لینوکسی هستند، و از سمتی احتمالا استفاده از لینوکس میتونه خیلی بهتون کمک کنه بعنوان دسکتاپتون
پس یادش بگیرید.
- Cloud platforms
این روزا تقریبا هرجایی که برید با Cloud سر و کار دارید و زیرساخت اکثر اپلیکیشنا توی محیط هایی مثل AWS و Google Cloud و Azure یا مشابهشون دارن میزبانی میشن، پس اینم احتمالا باید یادبگیرید خصوصا اگه قصد مهاجرت دارید.
👤| Reza (@ReziAmini)
👨💻👩💻|@PGTWEET
یک مهندس نرمافزار توی سال 2023 نیازه که حداقل یکسری ابزار هارو بلد باشه و بتونه باهاشون کار کنه، خب بیاید ببینیم چه ابزارهایی...
- IDE | Editor
یک مهندس نرمافزار احتمالا بیشترین تایمش رو بابت کد زدن بگذرونه، پس نیازه که محیطی که توش کد میزنه رو خوب بشناسه.
پس اولین ابزار یک IDE یا ادیتور مناسبه که اون رو خوب بشناسه و بهش مسلط باشه تا با سرعت مناسبی بتونه پروسه کد زدن رو پیش ببره.
- Version control systems
برای مدیریت و توسعه سورس های کد نوشته شده و اشتراک گذاری و توسعه توسط بقیه برنامه نویس ها شما حتما حتما باید یک ورژن کنترل مثل گیت رو خوب بلد باشید تا بتونید در روند توسعه سریع و چابک باشید.
- Docker
دیگه توی این دوره هر مهندس نرم افزاری برای این که یک محیط Centralized رو بالا بیاره نیازه که داکر رو بلد باشه، حتما یادش بگیرید :)
- Testing tools
شما نیازه که ابزار ها و لایبرری های مورد استفاده جهت تست نرم افزارتون رو هم بلد باشید تا بتونید تست اتوماتیک داشته باشید
- Monitoring
یکسری ابزار ها هستن برای مانیتور کردن پرفومنس پروژه مثل Prometheus و Grafana که با استفاده ازشون میتونید پرفومنس پروژتون یا دیتابیستون رو مانیتور کنید و برای تحلیل هاتون ازشون استفاده کنید.
- Task management tools
کارها و تسک های هربرنامه نویس باید مشخص باشه که بتونه سرعتش در توسعه رو بالا ببره، در نتیجه دونستن یکسری ابزار مثل Jira که کارشون Task management و.. هست یک نیاز ضروریه.
- Logging
اما لاگ زدن و log tracking، اهمیتش توی یک پروژه به قدری مهمه که شما بعنوان مهندس نرم افزار برای کنترل بهتر روی پروژتون نباید ازش غافل بشید.
یکسری ابزار ها مثل Sentry بهتون کمک میکنن.
- CI/CD
شما با استفاده از CD/CD میتونید روند بیلد، تست و دیپلوی پروژتون رو اتوماتیک کنید و خیلی سرعت خودتون رو در روند توسعه نرم افزار بالاتر ببرید و ریسک خطا های بیلد و دیپلوی رو کاهش بدید، ابزار هایی مثل Jenkins یا حتی Gitlab به شما در این پروسه کمک میکنن.
- Gitlab | Github
خب ما گیت رو یادگرفتیم حالا چطور توی یک محیط اشتراکی کدهامون رو باهم به اشتراک بزاریم و کدهای همدیگه رو قبل از اعمال بررسی و کامنت بزاریم، یا اصلا این کدهارو کجا نگه داریم که فردا از دستشون ندیم؟ خب معلومه دیگه از گیتهاب یا گیتلب استفاده کنید.
- Message brokers
این روزا با بزرگ شدن پروژه هامون، نیاز به ارتباط بین اپلیکیشن ها حس میشه که یکی از روش های ارتباط برقرار کردن استفاده از Message broker هایی مثل Kafka یا RabbitMQ هستش و یادگیریشون امروزه تقریبا ضروری شده برای یک مهندس نرم افزار
- Linux
اصلا نیاز به توضیح نیست در مورد لینوکس، بعنوان یه مهندس نرم افزار تقریبا بیشتر سرورهایی که باهاشون سر و کار دارید لینوکسی هستند، و از سمتی احتمالا استفاده از لینوکس میتونه خیلی بهتون کمک کنه بعنوان دسکتاپتون
پس یادش بگیرید.
- Cloud platforms
این روزا تقریبا هرجایی که برید با Cloud سر و کار دارید و زیرساخت اکثر اپلیکیشنا توی محیط هایی مثل AWS و Google Cloud و Azure یا مشابهشون دارن میزبانی میشن، پس اینم احتمالا باید یادبگیرید خصوصا اگه قصد مهاجرت دارید.
👤| Reza (@ReziAmini)
👨💻👩💻|@PGTWEET
👍5🔥2😁1
Forwarded from CleverDevs (Mammad)
توی این پست میخوام یه فیچر باحال لاراول به اسم macro رو معرفی کنم
ممکنه بخواید برای یکی از کلاس های خود لاراول متدی اضافه کنید طبیعتا رفتن و اضافه کردنشش به سورس کد خود لاراول کار منطقی ای نیست تو این موقعیت میتونید از macro ها استفاده کنید
در واقع کلاس های لاراول یه متد macro دارن که دوتا آرگیومنت میگیره اولی اسم متدی که میخوایم اضافه کنیم و دومی یه تابع که بدنه متد رو تشکیل میده
حالا چطور ماکرو هارو تعریف کنیم و ازشون استفاده کنیم ؟ برای اینکار میتونید ماکرو رو توی بوت AppServiceProvider تعریف کنید یا نه برای اینکه پروژتون تمیز تر باشه یه پروایدر مخصوص برای ماکرو ها بسازید
برای مثال ما میخوایم یه متد even برای کلاس Collection بسازیم تا بیاد اعضای زوج کالکشن رو برگردونه برای اینکار توی متود boot میاییم و ماکرو رو به این صورت تعریف میکنیم :
حالا هرجا بخوایم میتویم کلاس Collection رو use کنیم و از متد even استفاده کنیم :
برای درک بهتر میتونید این مقاله از دیتی رو هم بخونید
https://ditty.ir/posts/laravel-macro/J6dqn
#Laravel #php
@CleverDevs - @CleverDevsGp
ممکنه بخواید برای یکی از کلاس های خود لاراول متدی اضافه کنید طبیعتا رفتن و اضافه کردنشش به سورس کد خود لاراول کار منطقی ای نیست تو این موقعیت میتونید از macro ها استفاده کنید
در واقع کلاس های لاراول یه متد macro دارن که دوتا آرگیومنت میگیره اولی اسم متدی که میخوایم اضافه کنیم و دومی یه تابع که بدنه متد رو تشکیل میده
حالا چطور ماکرو هارو تعریف کنیم و ازشون استفاده کنیم ؟ برای اینکار میتونید ماکرو رو توی بوت AppServiceProvider تعریف کنید یا نه برای اینکه پروژتون تمیز تر باشه یه پروایدر مخصوص برای ماکرو ها بسازید
برای مثال ما میخوایم یه متد even برای کلاس Collection بسازیم تا بیاد اعضای زوج کالکشن رو برگردونه برای اینکار توی متود boot میاییم و ماکرو رو به این صورت تعریف میکنیم :
use Illuminate\Support\Collection;
public function boot()
{
Collection::macro('even', function () {
return $this->filter(function ($value) {
return $value % 2 === 0;
});
});
}
حالا هرجا بخوایم میتویم کلاس Collection رو use کنیم و از متد even استفاده کنیم :
php
$numbers = collect([1, 2, 3, 4, 5, 6, 7, 8, 9, 10]);
$evenNumbers = $numbers->even();
// $evenNumbers will now contain [2, 4, 6, 8, 10]
برای درک بهتر میتونید این مقاله از دیتی رو هم بخونید
https://ditty.ir/posts/laravel-macro/J6dqn
#Laravel #php
@CleverDevs - @CleverDevsGp
🔥5👍3🤔1
در لاراول متود boot در کلاسهای مدل با چه منظوری استفاده میشه؟؟
Anonymous Quiz
37%
برای اجرای کدهای ابتدای هر درخواست HTTP به طور خودکار
8%
برای تعریف و مدیریت روابط بین مدلهامون
44%
برای ثبت و مدیریت Model Events و اعمال تغییرات قبل یا بعد از عملیاتهای CRUD
11%
برای مدیریت مایگریشن های دیتابیس و تغییرات ساختاریش
❤5👍5
Forwarded from Pishro App
تو دنیای برنامه نویسی یکسری قرارداد های نامگذاری وجود داره برای اینکه بتونیم کدهای خوانایی بزنیم و ازونجایی که در دنیای برنامه نویسی چیزهای زیادی مانند متغیرها، توابع، کلاس ها، متد ها و ... وجود داره توسعه دهنده ها تصمیم گرفتن تا از کیس تایپ های مختلفی استفاده کنند برای نامگذاری.
اکثر ( اگر نگیم همه ) زبان های برنامه نویسی هر کلمه رو یک چیز کاملا جدا و منحصر فرد در نظر میگیرند. مثال زیر رو برای نامگذاری یک متغیر در نظر بگیرید
Number of donuts = 34
سه کلمه ی (number, of, donuts) در یک زبان برنامه نویسی به صورت مستقل باهاشون رفتار میشه به علت اینکه کارکتر اسپیس بین انها قرار گرفته است. برای اینکه برنامتون به درستی کار بکنه باید کارکتر های اسپیس رو حذف بکنید و اونرو به یک استرینگ واحد به شیوه خاصی تبدیل کنید.
4 نوع تایپ کیس داریم که جلوتر بهتون توضیح میدم ولی در همین ابتدا بگم هیچ جواب قاطعی برای اینکه کدوم بهتره وجود نداره.
شما باید با توجه به بست پرکتیس های زبان پروژتون انتخاب کنید که قراره از کدوم تایپ کیس استفاده کنید.
—————————————————————-
1- snake_case
- تمام حروف باید کوچک باشند.
- هر کلمه با استفاده از _ به هم وصل میشود.
بیشتر در زبان پایتون این قابل مشاهده هست و در زبان هایی مثل جاوا، جاوااسکریپت کمتر دیده میشه.
● کاربرد ها :
- ساختن متغیر ها، نام متد ها
- اسامی جدول و ستون های یک دیتابیس
همچنین یک ورژن دیگه از snake case وجود داره که از حروف بزرگ استفاده میشه و معمولا در زبان های برنامه نویسی مواقعی استفاده میشه که نشان دهنده داده ای است که در طول برنامه تغییر نخواهد کرد.
—————————————————————-
2- kebab-case
- تمام حروف باید کوچک باشند.
- هر کلمه با استفاده از – به هم وصل میشود.
● کاربرد ها :
- در یو ار ال ها (URLs) مشاهده میشود.
—————————————————————-
3- camelCase
- حرف اول کلمه اول کوچک و حرف اول بقیه کلمات بزرگ است.
● کاربرد ها :
- در زبان های جاوا، جاوااسکریپت واسه ساخت متغیر ها و توابع و اسامی متد ها استفاده میشود
—————————————————————-
4- PascalCase
- حرف اول تمام کلمات بزرگ نوشته میشود.
● کاربرد ها :
- در نامگذاری کلاس ها در اکثر زبان ها کاربرد دارد.
—————————————————————-
منبع
👾 @pishroapp
اکثر ( اگر نگیم همه ) زبان های برنامه نویسی هر کلمه رو یک چیز کاملا جدا و منحصر فرد در نظر میگیرند. مثال زیر رو برای نامگذاری یک متغیر در نظر بگیرید
Number of donuts = 34
سه کلمه ی (number, of, donuts) در یک زبان برنامه نویسی به صورت مستقل باهاشون رفتار میشه به علت اینکه کارکتر اسپیس بین انها قرار گرفته است. برای اینکه برنامتون به درستی کار بکنه باید کارکتر های اسپیس رو حذف بکنید و اونرو به یک استرینگ واحد به شیوه خاصی تبدیل کنید.
4 نوع تایپ کیس داریم که جلوتر بهتون توضیح میدم ولی در همین ابتدا بگم هیچ جواب قاطعی برای اینکه کدوم بهتره وجود نداره.
شما باید با توجه به بست پرکتیس های زبان پروژتون انتخاب کنید که قراره از کدوم تایپ کیس استفاده کنید.
—————————————————————-
1- snake_case
- تمام حروف باید کوچک باشند.
- هر کلمه با استفاده از _ به هم وصل میشود.
بیشتر در زبان پایتون این قابل مشاهده هست و در زبان هایی مثل جاوا، جاوااسکریپت کمتر دیده میشه.
● کاربرد ها :
- ساختن متغیر ها، نام متد ها
- اسامی جدول و ستون های یک دیتابیس
همچنین یک ورژن دیگه از snake case وجود داره که از حروف بزرگ استفاده میشه و معمولا در زبان های برنامه نویسی مواقعی استفاده میشه که نشان دهنده داده ای است که در طول برنامه تغییر نخواهد کرد.
—————————————————————-
2- kebab-case
- تمام حروف باید کوچک باشند.
- هر کلمه با استفاده از – به هم وصل میشود.
● کاربرد ها :
- در یو ار ال ها (URLs) مشاهده میشود.
—————————————————————-
3- camelCase
- حرف اول کلمه اول کوچک و حرف اول بقیه کلمات بزرگ است.
● کاربرد ها :
- در زبان های جاوا، جاوااسکریپت واسه ساخت متغیر ها و توابع و اسامی متد ها استفاده میشود
—————————————————————-
4- PascalCase
- حرف اول تمام کلمات بزرگ نوشته میشود.
● کاربرد ها :
- در نامگذاری کلاس ها در اکثر زبان ها کاربرد دارد.
—————————————————————-
منبع
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8