Golden Code – Telegram
Golden Code
738 subscribers
53 photos
248 links
نکات laravel, php و...
Download Telegram
۵ نکنه جهت بهبود عملکرد و سرعت وبسایت

عملکرد و سرعت بارگذاری وبسایت، یکی از مهم‌ترین فاکتورهایی هست که تجربه کاربری و رتبه‌بندی در موتورهای جستجو رو تحت تاثیر قرار میده. در این پست، چند تا از استراتژی‌های خفن و پرکاربرد برای بهینه‌سازی عملکرد در فرانت‌اند رو بررسی می‌کنیم.


1⃣ بهینه‌سازی تصاویر

تصاویر حجم زیادی از داده‌ها رو به خود اختصاص میدن. با فشرده‌سازی تصاویر و استفاده از فرمت‌های مدرن مثل WebP، می‌تونید حجم صفحات خودتون رو کاهش بدید. همچنین می‌تونید از تگ <picture> برای پشتیبانی بهتر مرورگرها استفاده کنید:

<picture>
<source srcset="image.webp" type="image/webp">
<img src="image.jpg" alt="PgTwEeT">
</picture>


2⃣استفاده از Lazy Loading

بارگذاری تنبل (Lazy Loading) به شما این امکان رو میده که تصاویر و ویدئوها تنها زمانی بارگذاری بشن، که کاربر به اون‌ها اسکرول کنه و این باعث کاهش زمان بارگذاری اولیه میشه. این ویژگی در HTML5 پشتیبانی میشه و نیازی به پلاگین‌های اضافی نیست:

<img src="image.jpg" loading="lazy" alt="PgTwEeT">


3⃣کاهش درخواست‌های HTTP

با ترکیب فایل‌های CSS و JavaScript و استفاده از ابزارهایی مثل Webpack، می‌تونید تعداد درخواست‌های HTTP رو کاهش بدید. همچنین می‌تونید از فشرده‌سازی فایل‌ها با gzip یا Brotli استفاده کنید تا حجم فایل‌ها کاهش پیدا کنه.


4⃣استفاده از Content Delivery Network (CDN)

‏CDN به شما کمک می‌کنه تا محتوا رو از نزدیک‌ترین سرور به کاربر ارائه بدید، که باعث کاهش زمان بارگذاری و افزایش مقیاس‌پذیری وبسایت میشه:


5⃣بهینه‌سازی فایل‌های CSS و JavaScript

با استفاده از ابزارهایی مثل 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
🤘 PgTwEeT | توییت برنامه نویسی
Please open Telegram to view this post
VIEW IN TELEGRAM
👍101
🔒 نکته امنیتی سایت لاراولی

دسترسی به فایل .env عین آب خوردنه

با اضافه کردن کد زیر به فایل .htaccess از دسترسی افراد به فایل .env جلوگیری کنید❤️‍🔥

<Files .env>
Order allow,deny
Deny from all
</Files>

#لاراول
#مرداد
#laravel
🔥133👍3
در لاراول ، بسته به محیطی که برنامه داخلش اجرا میشه ممکنه نیاز بشه عملیات های مشخصی رو فعال یا غیر فعال کنیم .

مثلا کانفیگ های مربوط به دیباگ پروژه نباید در محیط production فعال باشه (مشکل امنیتی میسازه).

📌 دو متود با نام های isProduction و isLocal در اختیارمون هست که میتونیم به راحتی بررسی کنیم آیا برنامه در محیط local هست یا production تا عملیات مورد نیاز برای محیط مدنظر اجرا بشه.
#لاراول
#Laravel
@GoldenCodeir
(به منبع و مثالش دقت کنید👇🏾)
https://x.com/OussamaMater/status/1815461812457935220?t=1ATZevlJa5FeR5AP6aKVRw&s=35
👍71
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
5👍1👏1
در لاراول ، با استفاده از هوک passedValidation در form request میتونیم دیتای اعتبار سنجی شده رو پیش از ارسال به کنترلر تغییر بدیم.

به این ترتیب با این روش میتونیم دیتا رو طبق استانداردهایی که در نظر داریم اصلاح کنیم.

📌 در مثال زیر، تغییراتی که می‌خواستیم بر فیلد name اعمال شد تا در نهایت خروجیه استانداردی برای نمایش داشته باشیم.
#لاراول
#Laravel
@GoldenCodeir
(به منبع و مثالش دقت کنید👇🏾)
https://x.com/OussamaMater/status/1815852488941080859?s=35
👍53🔥1
Forwarded from یک برنامه نویس تنبل (Raymond Dev)
🔶 چالش لاراولی :

برای پکیچ Lame ورود موبایلی نوشتم اما هنگامی که با موبایل وارد می شوید و کد ورود را می زنید, با صفحه وریفای ایمیل مواجه می شویم و در حالی که این صفحه برای موبایل نیست و ورود به موبایل نیاز به وریفای صفحه نیست.

چه راهکاری هست که هنگام ورود با موبایل Verify اجرا نکند؟

این کد روت پکیچ لاراول است :

https://github.com/Rayiumir/Lame/blob/main/src/Routes/auth.php


#لاراول

@TheRaymondDev
👍61
با توجه به گزینه های زیر، با کدوم کد میتونیم در لاراول اقدام به ارسال یک ایمیل با استفاده از 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
👍16🔥21👎1
توی سطوح بالاتر، افرادی که با شما مصاحبه میکنند مایلند بدونند که شما چقدر به جعبه ابزارتون مسلطید. اگر توی رزومه‌تون نوشتید که با ابزار 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

🕊 توییتر برنامه نویسان 🕊
👍101
در لاراول با کمک FakerPHP میتونید اقدام به ساخت شماره کارتهای fake کنید.
این شماره‌ کارتهای fake در محیط تستی واقعا مفیدن و بهتون کمک میکنن تا پروژه‌ هاتونو به خوبی آزمایش کنید.👌🏾

حتی میتونیم مشخص کنیم که چه نوعی از شماره کارت رو برامون تولید کنه؟ مثلا Visa یا MasterCard؟ (در تصویر زیر فرایندش گفته شده)
#laravel
#لاراول
@GoldenCodeir
(به منبع و مثالش دقت کنید👇🏾)
https://x.com/OussamaMater/status/1819092565561651269?t=H3Q4oXdHDOpKAIKBeFD2Yw&s=35
👍6
Forwarded from CleverDevs (Mammad)
‏Object Relational Mapping یا به اختصار ORM چیه؟ و به چه دردی میخوره؟

اگه بکند کار باشید احتمال زیاد با یه 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
👍54🔥1
Forwarded from Pishro App
#لاراول ۱۱.۱۹ منتشر شد

توی این نسخه چندین تغییر داشتیم از جمله متدی بنام whereNone به Query Builder
لاراول اضافه شد که این متد به کاربران امکان پرس و جو برای رکوردهایی رو می ده که توی اونها هیچ یک از ستون های مشخص شده با شرایط داده شده مطابقت ندارد


👾 @pishroapp
Please open Telegram to view this post
VIEW IN TELEGRAM
👍74
در لاراول برای اعتبارسنجی تاریخ ها میتونیم از رشته های توصیفی مانند"today" یا "tomorrow" استفاده کنیم.

اینکار باعث میشه قوانین اعتبارسنجی ما خواناتر و ساده تر بشه نسبت به شرایطی که میایم و بطور مستقیم تاریخ هارو درج میکنیم.
در تصویر مثال های بیشتری عنوان شده
#laravel
#لاراول
@GoldenCodeir
(به منبع و مثالش توجه کنید👇🏾)
https://x.com/OussamaMater/status/1820184911023890561?s=1
👍6🔥1
فقط اینکه شما بلد باشید با یک زبان برنامه نویسی یک پروژه رو به اتمام برسونید به معنی این نیست که شما یک 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
👍5🔥2😁1
Forwarded from CleverDevs (Mammad)
توی این پست میخوام یه فیچر باحال لاراول به اسم macro رو معرفی کنم

ممکنه بخواید برای یکی از کلاس های خود لاراول متدی اضافه کنید طبیعتا رفتن و اضافه کردنشش به سورس کد خود لاراول کار منطقی ای نیست تو این موقعیت میتونید از 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
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
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8
در لاراول، برای دریافت توکن‌های Bearer از request header میتونین به جای اینکه خودتون عملیات parse کردن token رو دستی انجام بدین ، از متود ()bearerToken استفاده کنید.

در واقع این متود به شما این امکان را میده که Bearer توکن رو به‌سادگی از request header دریافت و در عملیات‌های مدنظر ازش استفاده کنین.

تفاوت استفاده از این متود با حالته معمولی در تصویر زیر کاملا گویاست.
#لاراول
#Laravel
@GoldenCodeir
(به منبع و مثالش توجه کنید👇🏾)
https://x.com/OussamaMater/status/1823803584611541115?s=35
👍6🔥3
Forwarded from CleverDevs (Mammad)
-اصل The Newspaper Metaphor در کلین کد

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

سورس کد هم تقریبا یه چیز مشابه به اینه شما با خوندن اسم فایل (یا حالا توی oop اسم کلاس) هدف کلی اون سورس فایل رو می فهمید قسمت های بالای کد که میتونه شامل توابع مهم یا متغیر ها و پراپرتی های مهم باشه (مثل پارگراف اول مقاله توی روزنامه) تا کسی که کد رو میخونه خلاصه ای از سورس دستش بیاد.

یه روزنامه شامل بخش های زیادیه که معمولا کوچیکن و در کنار هم با همچین شرایطی قرار گرفتنن تا روزنامه قابل خوندن باشه فرض کنید کل روزنامه فقط یه داستان یا مقاله بلند بود که خوندنش رو سخت میکرد سورس کد هم باید یه شرایط مشابهی داشته باشه تا قالب بندی خوبی داشته باشه یعنی فایل های مختلف با اسم درست و حسابی در کنار هم بیان و بدنه اصلی سورس کد کل برنامه رو بسازن

#CleanCode
@CleverDevs - @CleverDevsGp
👍62
در لاراول میتونید ستون‌هایی ایجاد کنید که به طور خودکار از داده‌های یه سری ستونه دیگه محاسبه بشن.
در واقع لاراول بهمون این امکان رو داده که این نوع ستون‌ها رو بدون نیاز به نوشتن SQL پیچیده در مایگریشن ها تعریف کنیم.

در تصویر زیر از امکانات خود لاراول برای پیاده سازیه ستون هایی جهته عملیات های محاسباتی استفاده شده.

یعنی full_price نتیجه ی عملیات ضربه unit_price و quantity خواهد بود.
#لاراول
#Laravel
@GoldenCodeir
(به منبع و مثالش توجه کنید👇🏾)
https://x.com/OussamaMater/status/1824534160868016268?s=09
🔥6👍2
در لاراول برای اضافه کردن شرط "OR" به کوئری از کدوم متود استفاده میشه؟
Anonymous Quiz
3%
whereNotNull()
8%
orWhereIn()
8%
Where()
82%
orWhere()
2👍1