Golden Code – Telegram
Golden Code
737 subscribers
53 photos
248 links
نکات laravel, php و...
Download Telegram
هنگام ساخت کاربر جدید در بیشتر مواقع برای رمز عبور از فسادِ Hash استفاده میکنیم اما روش دیگه ای هم لاراول در اختیارمون گذاشته .

میتونیم با کمک cast تعیین کنیم که attribute 'پسورد' بصورت هش شده ذخیره بشه. برای این کار کافیه از عبارت 'hashed' کمک بگیریم و نوع این attribute رو تعیین کنیم.
#laravel
#لاراول
@GoldenCodeir
(به منبع و مثالش دقت کنید👇🏾)
https://x.com/OussamaMater/status/1801356734063399150?s=35
👍42🔥1
Forwarded from کداکسپلور | CodeExplore (CodeExplore)
روانشناسی رنگ ها 👀

میدونین که رنگ ها و تم ها چقدر توی طراحی نرم افزار و سایت ها مهمن ، این عکس کمکتون میکنه با توجه به نرم افزار رنگ های مناسبی انتخاب کنید😂

#color #theme
☕️ @CodeExplore
Please open Telegram to view this post
VIEW IN TELEGRAM
3👍3
گاهی وقتا ممکنه کاربر بخواد از همه سیستم هایی که باهاشون وارد شده خارج شه ،بجز دستگاه فعلیش.

متود ()logoutOtherDevices بهمون اجازه میده تا همه session های کاربر روی دستگاه های دیگه رو غیرفعال کنیم و فقط session فعلی باقی بمونه.

طرز کارش هم اینجوریه که پسورد فعلیش رو باید به عنوان پارامتر پاس بدیم به این متود تا اعتبار سنجی انجام بشه.🪴
#laravel
#لاراول
@GoldenCodeir
(به منبع و مثالش توجه کنید👇🏾)
https://x.com/OussamaMater/status/1803533220362985736?s=19
3👍2💯2
Forwarded from CleverDevs (Mammad)
-اصل Use Pronounceable Names در کلین کد

این اصل میگه که شما باید اسم هایی که برای متغیر هاتون انتخاب میکنید قابل تلفظ باشه اگه نتونید تلفظش کنید نمیتونید در بارش بحث کنید بدون این که صدای احمقانه در بیارید این مهمه چون برنامه نویسی یه فعالیت اجتماعیه

ما برنامه نویسا باید اسم هارو جوری انتخاب کنیم که وقتی در بارش توضیح میدیم راحت باشیم مثلا این دوتا کد رو ببینید اولی اسم های غیر قابل تلفظ داره و دومی اسم های درست درمون

کد زیر :

class DtaRcd102 {
private Date genymdhms;
private Date modymdhms;
private final String pszqint = "102";
};


میتونه با متغیر های بهتر زیر نوشته باشه :

class Customer {
private Date generationTimestamp;
private Date modificationTimestamp;
private final String recordId = "102";
};



حالا وقتی میخوایم به رفیقمون بگیم بیا یه نگاه به این کد بنداز دیگه راحت تلفظ میکنیم و صدای احمقانه در نمیاریم


#CleanCode
@CleverDevs
@CleverDevsGp
4👍3🔥2
Forwarded from Pishro App
توی #لاراول 11.11 دو متد جدید به کالکشن ها اضافه شده که شما میتونید با استفاده از این دو متد before و after مقادیر قبل و بعد یک مقدار رو دریافت کنید.
این دو متد بر روی نمونه های  Collection و LazyCollection  جواب میدن  و اگر هم قبل یا بعد از اون کلید انتخاب شده، مقداری وجود نداشته باشه، null برمیگیرده.

#laravel


👾 @pishroapp
Please open Telegram to view this post
VIEW IN TELEGRAM
👍81🔥1
از نسخه ۹ به بعد لاراول، میتونیم برای انجام عملیات ریدایرکت کاربر به مسیر مدنظر، بجای ()redirect()->route از هلپر ()to_route استفاده کنیم .

استفاده ازین هلپر باعث کوتاه تر شدن و تمیز تر شدن کدمون خواهد شد. ✔️
#لاراول
#Laravel
@GoldenCodeir
(به منبع و مثالش دقت کنید👇🏾)
https://x.com/PovilasKorop/status/1805175287686078690?s=19
3👍2🔥1
Forwarded from یک برنامه نویس تنبل (Raymond Dev)
🔶 تفاوت متد boot و register توی Provider ها چیست؟

فریم‌ورک لاراول وقتی می‌خواد اجرا بشه، ابتدا متد register همه‌ی پرووایدرها رو اجرا می‌کنه. توی این متد نباید از یک پرووایدر دیگه استفاده کنیم. چون ممکنه این پرووایدر هنوز توسط فریم‌ورک پردازش و لود نشده باشه و توی نوبت باشه. واسه همین ممکنه هنوز در دسترس نباشه.

اما به محض اینکه متد register همه‌ی پرووایدرها پردازش شد، متد boot همه پرووایدرها توسط فریم‌ورک شروع به پردازش شدن می‌کنه. این رو می‌تونین با یک echo ساده بررسی‌ کنین. پس توی متد boot ما مطمئن هستیم که همه‌ی پرووایدرها رجیستر شدن. پس کارهایی غیر از bind کردن مثل استفاده از یک پرووایدر دیگه، اضافه کردن فایل‌های Route، ثبت کردن Event/Listerner ها و ... رو توی متد boot می‌نویسیم.

</ Farshad Rajabzade >

#لاراول

@TheRaymondDev
5👍2
Forwarded from کداکسپلور | CodeExplore (Koorosh)
تگ <time> در HTML 🖐

☄️این تگ برای اینه که وقتی داریم توی سایتمون یه تاریخ یا زمان رو نشون میدیم، مرورگر و موتورهای جستجو دقیقاً بفهمن که داریم راجع به چی صحبت می‌کنیم. مثلا، اگه یه مقاله نوشتیم و می‌خوایم تاریخ انتشارش رو نشون بدیم، یا می‌خوایم بگیم یه رویداد کی برگزار میشه، از این تگ استفاده می‌کنیم.

مثال: فرض کنیم میخوایم تاریخ یه رویدادی رو بنویسیم...
<p>آغاز رویداد: <time datetime="2024-06-27T10:00:00">27 ژوئن 2024، ساعت 10:00</time></p>


◀️اینجا داریم به مرورگر می‌گیم که این "27 ژوئن 2024، ساعت 10:00" یه تاریخ و زمان خاصه. این خیلی کمک می‌کنه که مرورگر بفهمه این یه زمان مهمه و موتورهای جستجو هم راحت‌تر می‌تونن این اطلاعات رو پیدا کنن.


کجاها می‌تونیم ازش استفاده کنیم؟

1⃣وقتی توی سایت بلاگ می‌نویسیم و می‌خوایم تاریخ انتشار مقاله‌هامون رو نشون بدیم.

🔢 اگه سایتی داریم که رویدادها رو معرفی می‌کنه و می‌خوایم زمان شروع و پایان رویدادها رو بنویسیم.

🔢یا حتی وقتی یه تایم‌لاین داریم و می‌خوایم بگیم هر اتفاقی کی افتاده.

#html #time
☕️ @CodeExplore
Please open Telegram to view this post
VIEW IN TELEGRAM
3👍3🔥1
"در لاراول جهت مرتب سازی مدل بر اساس تاریخ، اغلب از متود ()orderBy استفاده میشه.

اما فریمورک لاراول با ارائه دو متود ()latest و ()oldest این فرایند رو برای ما خوانا تر و کوتاه تر کرده.👌🏾

(به مثال سه توجه کنین،تفاوته فرایند مرتب سازی با این دو متود نسبت به orderBy کاملن شفافه).

نکته: مرتب سازی بطور پیشفرض ستون create_at هست که قابل تغییره"
#Laravel
@GoldenCodeir
(به منبع و مثالش دقت کنید👇🏾)
https://x.com/OussamaMater/status/1804611139516453170?s=35
🔥32👍2
Forwarded from CleverDevs (Mammad)
-اصل Avoid Encoding در کلین کد


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

کاری میکنه که هر کس جدیدی تو تیممون عضو بشه مجبوره بشینه و یادبگیره که این رمزا چین و ...

اسم هایی که رمزگذاری شدن به ندرت قابل تلفظ هستن و این خودش اصل قبلی رو نقض میکنه


#CleanCode
@CleverDevs
@CleverDevsGp
👍6
اره php مرده، دوبار
https://w3techs.com/technologies/overview/programming_language


دو تا نکته:
- زبان ها تا وقتی آپدیت های درستی میدن ازشون استفاده میشه و مرده به حساب نمیان
- با حجم وبسایت های php که توسط وردپرس ساخته شده و این روزا هم فریمورک لاراول داره به تعدادش اضافه میکنه، فقط یک انقلاب تو این حوزه میتونه php رو بیاره پایین.

@DevTwitter
👍95😁2🤨1
Forwarded from CleverDevs (Mammad)
-اصل Bad Comments در کلین کد

این دسته که از کامنت ها که بیشتر کامنت هایی که میزاریم رو شامل میشه کامنت هایی ان که سود خاصی برامون ندارن و الکی کد رو شلوغ میکنن
این اصل چنتا زیر مجموعه داره و کامنت های بدی که میتونید بزارید رو گفته تو این پست سعی میکنم به طور خلاصه همشون رو بگم

‏1 - Mumbling
یعنی اینکه کامنتی بزاری که نامفهمومه و بیشتر از اینکه بدرد بخور باشه باعث سر در گمیه

‏2 - Redundant Comments
یعنی کامنت هایی که بدرد نخور و اضافن و خوندوشون از خوندن کد کد زمان بیشتری میبره

‏3 - Misleading Comments
یعنی یجور لقمه رو دور سر بپیچونی که کسی که کامنت رو میخونه کلا فکر و ذهنش منحرف بشه به یه سمت دیگه

‏4 - Mandated Comments
کامنت هایی که برای هر متغیری مینویسد و معمولا زیاد بدرد نمیخورن مثل javadocs

‏5 - Journal Comments
اینکه بیای و تغییرات پروژه رو هر بار تو کامنتا بزنی ، اینکار برا قبل اومدن سیستم های کنترل ورژن مثل گیت بود این نوع کامنتا الان بدرد نمیخورن

‏6 - Noise Comments
کامنت هایی که کار خاصی ندارن و فقط کد رو شلوغ کردن مثل
/** The day of the month. */

private int dayOfMonth;


‏7 - Commented-Out Code
کامنت کردن کد ها هم یکی از بدترین نوع کامنت هاست

‏8 - Too Much Information
یعنی اینکه تو کامنت اطلاعات زیادی بدی انقدر زیاد باشه خوندنش کلی وقت ببره

این فصل هم تموم شد و میتونید لیستش رو اینجا ببینید

#CleanCode
@CleverDevs - @CleverDevsGp
5🔥2
#Typenoscript
تایپ اسکریپت:
بر روی زبان جاوا اسکریپت بنا شده است و سیستم تایپ را به آن اضافه می کند.
کامپایل می شود و قبل از اجرا به جاوا اسکریپت تبدیل می شود.
مزایا:
سیستم تایپ: به شما کمک می کند تا از خطاهای زمان اجرا جلوگیری کنید.
خوانایی بهتر: کدهای تایپ اسکریپت به دلیل سیستم تایپ، خوانایی بهتری دارند.
قابلیت نگهداری: به دلیل سیستم تایپ، نگهداری و توسعه کدهای تایپ اسکریپت آسان تر است.
معایب:
یادگیری دشوارتر: به دلیل وجود سیستم تایپ، یادگیری آن کمی دشوارتر از جاوا اسکریپت است.
سرعت: به دلیل کامپایل شدن، سرعت اجرای آن کمی کندتر از جاوا اسکریپت است.
جامعه کوچکتر: به دلیل جدیدتر بودن، جامعه آن به اندازه جاوا اسکریپت بزرگ نیست.
💥 انتخاب بین جاوا اسکریپت و تایپ اسکریپت: 💥

انتخاب بین این دو زبان به نیازهای شما بستگی دارد. اگر به دنبال یک زبان برنامه نویسی آسان برای یادگیری هستید و سرعت برای شما مهم است، جاوا اسکریپت گزینه مناسبی است. اما اگر به دنبال یک زبان برنامه نویسی با سیستم تایپ قوی و خوانایی بالا هستید، تایپ اسکریپت گزینه بهتری است.
Channel | Group | YouTube
👍21👏1
Forwarded from کداکسپلور | CodeExplore (Aqa Reza)
💱بزنین بریم تو کار ارزدیجیتال!

یه سایتی براتون اوردم که بهتون API میده ولی نه هر API معمولی ( مثلا اب و هوا و فروشگاه و... )
اینسری میتونین از سایت پایین API های ارز دیجیتال و واحد پول هارو به راحتی دریافت کنین
استفاده رایگان هم داره و فقط یکم محدودیت جلوتونه که زیادم اذیت نمیکنه
از طرف دیگه API که در اختیارتون میزاره خیلی خفنه و میتونین هزاران بلا سرش بیارین

🔥جون میده برای یه تیبل خفن برای قیمت ها

🌐https://app.currencyapi.com/

#api
☕️ @CodeExplore
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3🔥1
SOLID چیه و چه کاربردی داره؟ 🦦

‏SOLID یک مجموعه اصول طراحی شیءگرا هست که به توسعه‌دهندگان کمک می‌کنه تا کدهای قابل فهم، قابل نگهداری و انعطاف‌پذیر بنویسن. این اصول توسط Robert C. Martin معرفی شده و شامل پنج اصل مهم هست:

1⃣‌‏Single Responsibility Principle‏ (SRP) هر کلاس یا ماژول باید تنها یک وظیفه مشخص داشته باشه. این اصل کمک می‌کنه تا کدها ساده‌تر و قابل درک‌تر بشن.

2⃣‌‏Open/Closed Principle (OCP) کلاس‌ها و ماژول‌ها باید برای توسعه باز و برای تغییر بسته باشن. این به این معنیه که باید بتونیم بدون تغییر در کد اصلی، ویژگی‌های جدید اضافه کنیم.

3⃣‏Liskov Substitution Principle (LSP) هر کلاسی که از کلاس دیگه‌ای ارث‌بری می‌کنه باید بتونه به جای کلاس پایه استفاده بشه، بدون اینکه رفتار برنامه خراب بشه.

4⃣‏Interface Segregation Principle‏ (ISP) به جای ایجاد اینترفیس‌های بزرگ و همه‌کاره، باید اینترفیس‌های کوچک و اختصاصی ایجاد کنیم که فقط متدهای مربوط به خودشون رو داشته باشن.

5⃣‏Dependency Inversion Principle‏ (DIP) ماژول‌های سطح بالا نباید به ماژول‌های سطح پایین وابسته باشن. هر دو باید به آبسترکشن‌ها وابسته باشن. این اصل کمک می‌کنه تا وابستگی‌ها بهتر مدیریت بشن و کدها قابل تست‌تر باشن.

برخی از مزایای اصول SOLID ⬇️

🔵کاهش پیچیدگی کد

🔵افزایش قابلیت نگهداری

🔵تسهیل در تست‌پذیری

🔵بهبود قابلیت توسعه

همچنین برای استفاده از اصول SOLID، می‌تونید از ابزارها و فریم‌ورک‌های مختلفی که این اصول رو تسهیل می‌کنن، استفاده کنید ⬇️

‏Spring: یک فریم‌ورک جامع برای توسعه برنامه‌های جاوا که بسیاری از اصول SOLID رو پیاده‌سازی می‌کنه.

‏Angular: یک فریم‌ورک برای ساخت اپلیکیشن‌های وب که به شما کمک می‌کنه تا اصول SOLID رو در برنامه‌های خود پیاده‌سازی کنید.

‏Django: یک فریم‌ورک برای توسعه وب با زبان پایتون که با پیاده‌سازی اصول SOLID به بهبود ساختار کد کمک می‌کنه.

همچنین شرکت‌های بزرگی مثل گوگل و فیسبوک، از اصول SOLID استفاده می‌کنن تا بتونن پروژه‌های بزرگ و پیچیده خودشون رو به صورت یکپارچه و کارآمد مدیریت کنن.

#vesal
🤘 PgTwEeT | توییت برنامه نویسی
Please open Telegram to view this post
VIEW IN TELEGRAM
5👍2
در لاراول میتونیم با استفاده از متود destroy اقدام به حذف یک یا حتی چند رکورد بر اساس primary key کنیم.
این متود به شکل های مختلفی قابل فراخوانیه.(در تصویر بهش اشاره شده)
همچنین سادگیه استفاده ازش میتونه بر خوانایی کدتون تاثیر مثبت بزاره.✔️
#Laravel
@GoldenCodeir
(به منبع و مثالش توجه کنید👇🏾)
https://x.com/OussamaMater/status/1809663607573230056?s=35
👍63🔥1
Forwarded from CleverDevs (Mammad)
-اصل Don't Be Cute در کلین کد


این اصل میگه موقع نامگذاری متغیر هات بامزه بازی در نیار
اگه اسم ها خیلی خفن باشن فقط کسایی که متوجهش میشن که حس شوخی نویسنده کد رو میدونن و همینا هم به سختی متوجه جوک میشن
ممکنه کسایی که کد رو میخونن بدونن HolyHandGrenade به چی اشاره میکنه. درسته اسم بامزه ایه ولی DeleteItems اسم بهتریه
همیشه واضح بودن رو به سرگرم کننده بودن ترجیح بدید
بامزگی توی کد اغلب کد رو به شکل عامیانه و محاوره ای نشون میده مثلا از whack به جای kill استفاده نکنید یا مثلا جوکی نزارید که تو وابسته به فرهنگی باشه مثلا از eatMyShorts به جای abort استفاده نکنید

Say What you mean , Mean what you say


#CleanCode
@CleverDevs - @CleverDevsGp
👍6🔥1
در لاراول با استفاده از متود ()isDirty میتونیم بررسی کنیم که یک یا حتی چند attribute از زمان آخرین بازیابی که انجام دادیم تغییر کردن یا نه،

حالا یعنی چی؟؟

فرض کنین میخواید بررسی کنین نام کاربری که درخواست ورود داده نسبت به دفعه ی قبلیش که وارد شده تغییر کرده یا نه، اینجا میشه ازین متود کمک گرفت.
در مثال زیر حالت های مختلفی که نتیجش true یا false میشه بررسی شده.
#Laravel
@GoldenCodeir
(به منبع و مثالش توجه کنید👇🏾)
https://x.com/OussamaMater/status/1807859649770643832?s=35
👍21🔥1
در لاراول به راحتی میتونیم ویژگی های داینامیک رو به مدلمون اضافه کنیم .
در واقع این ویژگی هارو در دیتابیس تعریف نکردیم و نیاز به تغییر ساختار دیتابیس برای اضافه کردنشان نداریم.

درین حالت میتونیم براشون مقدار پیشفرض نیز مشخص کنیم.
در مثال زیر داخل مدل Media ، به راحتی فرایند دسترسی به url پیاده سازی شده.(بدونه درنظر گرفتن ستونی خاص در دیتابیس)
#Laravel
#لاراول
@GoldenCodeir
(به منبع و مثالش توجه کنید 👇🏾)
https://x.com/laravelbackpack/status/1807738434305531922?s=35
3🔥2
Forwarded from CleverDevs (Mammad)
-اصل Use Searchable Names در کلین کد

اسامی تک کارکتری یا داری عدد یه مشکل خاص دارن اونم اینه که نمیشه بین کد ها سرچشون کرد و پیداشون کرد مثلا شما میتونید MAX_CLASSES_PER_STUDENT رو به راحتی بین کد ها پیدا کنید اما برای پیدا کردن عدد 7 مشکلات بیشتری دارید.
در این صورت ممکنه وقتی سرچ میکنید بره اون تیکه کلمه هارو بین اسم فایلا یا ... جستجو کنه مثلا اسم متغیر رو گذاشین A و کلی فایل دارین که A توش هست و وقتی سرچ میکنید دردسر دارید پس از اسمی استفاده کنید که بشه سرچش کرد.

البته اینم بگم که از متغیر های تک کلمه ای میشه تو اسکوپ های کوچیک استفاده کرد مثلا وقتی for loop میزنید منطقیه که از i یا j استفاده کنید.

#CleanCode
@CleverDevs
@CleverDevsGp
👍3🔥2😁1
Forwarded from Curious Geek ⚡️
❗️Your Code smells
❗️کد هات بو میده

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


1⃣ Long Method
متدی است که دارای خطوط زیادی کد بوده و چندین وظیفه را به عهده دارد. این که دقیقا چه متدی طولانی است قابل بحث است و تا حدودی به زبان برنامه نویسی بستگی دارد، اما عدم رعایت اصل single responsibility باعث بودار شدن کد میشه
2⃣ Long parameter list
تعداد پارامترهای زیاد یک متد یا تابع برای بلند مدت کد رو بودار میکنه. تا حدی عامل این موضوع همون مورد 1⃣ هستش ولی اگر نیاز به پارامتر های زیادی داشتیم میتونیم اون ها رو توی یک آبجکت بزاریم
3⃣ Don't repeat yourself
یکی از مشکلاتی که در دراز مدت ایجاد میشه تکرار کد ها در طول توسعه برنامه هست. باید این کد ها رو استخراج کنیم و منطق های تکراری رو تبدیل به متد یا تابع کنیم
4⃣ Dead code
کد هایی دیگه به هر دلیلی توی پروژه کاربردی ندارن رو جای کامنت کردن پاک کنیم. شاید بعداً به کارمون بیان ، خب ورژن کنترلر هایی مثل گیت برای همین ساخته شدن دیگه :)
5⃣ Select good variable names
موقعی که اسم متغیر ها رو انتخاب میکنیم ، سعی کنیم طوری باشه که بشه کاربرد اون متغیر رو از اسم اش متوجه شد

راستی اینا رو از یک ویدئو فارسی توی یوتیوب یاد گرفتم. از این لینک میتونید ویدئو اصلی رو ببینید
🌐 https://bit.ly/3LkXwc0
🆔 @Hiradsajde
5💯1