Ditty | دیتی – Telegram
Ditty | دیتی
3.19K subscribers
194 photos
20 videos
4 files
387 links
دیتی | دنیای ساده‌شدهٔ برنامه‌نویسی وب
https://ditty.ir
Download Telegram
🔺+30 فونت #جذاب، مخصوص برنامه‌نویسی 👌

- فونت‌ها رو دانلود و نصب کنین، اسمش رو توی ادیتور یا IDE اضافه کنین
https://devfonts.gafi.dev

#links
👍1
🔹یه ویژگی به #لاراول اضافه شد برای اینکه بشه تشخیص داد آیا یک کالکشن شامل فقط یک مقدار هست یا خیر! کاری که قبلاً به راحتی با متد count انجام میشد.

- نظر شما درباره این نوع ویژگی‌ها چیه؟

#laravel
🔺به ورژن ۸.۳۰ #لاراول یه ویژگی خوب اضافه شده که متد stopOnFirstFailure هست که توی اعتبارسنجی به کار میره

- این متد باعث میشه که اعتبارسنجی با مواجه‌شدن با اولین خطا متوقف بشه که در نتیجه ورودی‌های بعدی پردازش نمی‌شن

- قبلاً همه ورودی‌ها بدون توجه به اینکه ورودی‌های قبلی ناقص هستن، بررسی می‌شدن

- البته مشخص نیست چطوری میشه اون رو توی Form Request ها استفاده کرد

#laravel
🔺جالبه که تصور می‌کنیم شرکت‌های بزرگ بهترین و با کیفیت‌ترین کدها رو دارن. خوبه که بدونیم توی دل اکثر شرکت‌های بزرگ در حالت عادی چیزی بالاتر از CRUD اتفاق نمی‌افته. ایده‌آل گرایی پایانی نداره و افراط توی کدنویسی تمیز و استفاده وسواس‌گونه از الگوها و معماری‌ها فقط کار رو پیچیده‌تر می‌کنه.

- این‌ها حرف‌های جالبِ دو تا از توسعه‌دهنده‌های با سابقه Stackoverflow هست:

🔹پیروی کردن از Best Practice ها خوبه ولی اجباری نیست

🔹گاهی وقت‌ها مجبوریم کیفیت رو فدای سرعت و عملکرد کنیم

🔹ما برای هر ویژگی جدیدی تست نمی‌نویسیم

🔹ما از متدهای استاتیک بصورت گلوبال استفاده می‌کنیم که این موضوع تست کردن برنامه رو سخت می‌کنه

🔹از تست‌های خودکار (Automated Tests) زیاد استفاده نمی‌کنیم. چون ساختار کدهای ما از استانداردهای Decoupling تبعیت نمی‌کنه

🔹از متدهای استاتیک بجای Polymorphism و Dependency Injection استفاده می‌کنیم. شاید تست کردن رو سخت کنه اما باعث بهبود سرعت و عملکرد میشه

🔹این موارد سرعت برنامه رو بالا می‌برن، هرچند باعث سخت شدن نگهداری و تست کد میشن

🔹بعضی از کوئری‌های SQL سنگین هستن و برای عملکرد بهتر، بطور فراوان از کش و Redis استفاده می‌کنیم

https://stackoverflow.blog/2021/03/03/best-practices-can-slow-your-application-down/
👍1
🔺محبوب‌ترین زبان‌های برنامه‌نویسی در سه ماه اول ۲۰۲۱:

1. JavaScript
2. Python
3. Java
4. PHP
5. C#
6. C++
7. CSS
8. TypeScript
9. Ruby
10. C
11. Swift
12. R
13. Objective-C
14. Shell
15. Scala
16. Go
17. PowerShell
18. Kotlin
19. Rust
20. Perl

- این آمار براساس فعالیت توسعه‌دهنده‌ها توی گیت‌هاب منتشر شده - منبع
👍1
🔺سال جدید مبارک دوست خوبم. امیدوارم سالی پر از لحظات و خاطرات قشنگ و جذاب باشه برات. ممنونم که همراه دیتی بودید و هستید 😉

happy = new Year(1400); // 🎉

@ditty_ir
🔺همه چیز از آبجکت Set جاوااسکریپت

- این ویژگی از ES6 به جاوااسکریپت اضافه شده و با اون می‌تونیم مجموعه‌ای داشته باشیم که هیچ مقدار تکراری توی اون وجود نداره

- پست زیر رو بخونید تا با ویژگی‌های آبجکت Set و #ترفند‌های اون آشنا بشید:
ditty.ir/303

#javanoscript
🔺الگوی طراحی Factory Method به زبان #ساده

- این یکی از پرطرفدارترین الگوهاست و با اون می‌تونیم کدهای تمیزتر، خواناتر و با قابلیت توسعه بالاتری داشته باشیم 👌

- این پست رو بخونید تا بهتر با این الگو آشنا بشید:
ditty.ir/302

#oop
🔺الگوی طراحی Abstract Factory به زبان #ساده

- اگه کدهایی دارین که پر از if/else و new هست، شاید این الگو برای شما باشه

- این الگو با مخفی کردن قسمت‌های ساختن اشیا از دید کاربر، کمک می‌کنه تا کدهای تمیزتر و قابل توسعه‌تری داشته باشیم 👌

- برای آشنایی با این الگو پست زیر رو بخونید:
ditty.ir/304

#oop
🔺الگوی طراحی Builder به زبان #ساده

- اگه آبجکت‌هایی داریم که مراحل ساخت پیچیده‌ای دارن، از این الگو استفاده می‌کنیم

- یکی از معروف‌ترین پیاده‌سازی‌های این الگو، Query Builder ها هست که توی بیشتر زبان‌ها و فریم‌ورک‌ها وجود داره و برای ساختن دستورات SQL استفاده میشه

- توی این پست با این الگو آشنا می‌شیم و یاد می‌گیریم که چطوری یک Query Builder ساده بسازیم:
ditty.ir/305

#oop
👍1
🔺توی #لاراول چطوری آدرس‌هایی با امنیت بالاتر داشته باشیم؟

- فرض کنیم برای لغو اشتراک ایمیل کاربر شماره ۹۰ آدرسی داریم به صورت زیر:
example.com/unsubscribe/90

- این لینک به صورت عمومی در دسترس هست و این کاربر می‌تونه با عوض کردن شناسه ۹۰ با ۸۹، اشتراک کاربر شما ۸۹ رو هم لغو کنه!

- با Signed URLs لاراول می‌تونیم بدون احتیاج به احراز هویت جلوی این کار رو بگیریم 👌

ـ Signed URLs لاراول به زبان ساده:
https://ditty.ir/306

#laravel 💯
🔺اعتبارسنجی تاریخ‌ها در #لاراول

- اگه توی برنامه تاریخ‌هایی داریم و می‌خوایم اونها رو اعتبارسنجی کنیم، فریم‌ورک لاراول امکانات #جالبی رو در اختیار ما گذاشته تا راحت‌تر از همیشه این کار رو انجام بدیم 👌

- توی این پست با چند تا از این قوانین اعتبارسنجی آشنا می‌شیم:
ditty.ir/127

#laravel
🔺لورم پیکسوم چیه؟

- اگه برای وبسایتتون نیاز به عکس‌های آزمایشی، با ابعاد و طرح‌های متنوع دارین، این وبسایت رو ببینین:
https://picsum.photos

#links
Ditty | دیتی
🔺الگوی طراحی Builder به زبان #ساده - اگه آبجکت‌هایی داریم که مراحل ساخت پیچیده‌ای دارن، از این الگو استفاده می‌کنیم - یکی از معروف‌ترین پیاده‌سازی‌های این الگو، Query Builder ها هست که توی بیشتر زبان‌ها و فریم‌ورک‌ها وجود داره و برای ساختن دستورات SQL استفاده…
🔺الگوی طراحی Prototype به زبان #ساده

- با این الگو می‌تونیم تمیزتر و بهینه‌تر، از آبجکت‌های موجود کپی داشته باشیم

- از الگوی پروتوتایپ زمانی استفاده می‌کنیم که:
— ساختن نمونه از کلاس هزینه زیادی داره
— آماده‌سازی و پیکربندی نمونه زمان‌بر هست
— کلاس واقعی برای ساختن نمونه ناشناخته هست

- از لینک زیر با این الگو که درک و پیاده‌سازی کاملاً راحتی داره آشنا بشین:
https://ditty.ir/p/X8dLX

#oop
🔺الگوی طراحی Singleton به زبان #ساده

- این الگو این اطمینان رو میده که فقط یک نمونه از یک کلاس خاص در سرتاسر برنامه وجود داشته باشه و راهی رو ارائه میده تا بتونیم به همون نمونه دسترسی داشته باشیم

- این الگو یکی از پراستفاده‌ترین و همچنین #بحث‌برانگیز ترین الگوهاست

- از این الگو زمانی استفاده می‌کنیم که:
— ساختن نمونه هزینه زیادی داره و می‌خوایم مطمئن بشیم که فقط یک نمونه از کلاس در سراسر برنامه وجود داره

- از لینک زیر با این الگو آشنا بشین:
ditty.ir/320

#oop
🔺توی #جاوااسکریپت اینطوری می‌تونیم بررسی کنیم که آیا یه متغیر توی حوزه سراسری تعریف شده یا نه 😉

- توی محیط Node بجای window از global استفاده کنین. البته توی هر محیطی میشه از globalThis هم استفاده کرد

#javanoscript
Ditty | دیتی
🔺آزمون جاوااسکریپت - شماره ۱۰ - خروجی رو حدس بزنین. 1 یا 2؟ 👏 - برای مشاهده جواب اختصاصی لینک زیر رو ببینید: ditty.ir/309 #quiz
🔺جاوااسکریپتی‌ها، می‌تونین خروجی رو با دلیل حدس بزنین؟ true یا false؟ چرا؟

- آزمون جاوااسکریپت - شماره ۱۱
- جواب اختصاصی از اینجا:
https://ditty.ir/p/Xege5

#quiz
🔺نمایش مرتب روت‌ها در #لاراول

- قبلاً دستور route:list توی خط فرمان، خروجی‌ای رو تولید می‌کرد که نقض حقوق بشر به حساب می‌اومد :))

- پکیج Pretty Routes رو نصب کنین تا خیلی بهتر و خواناتر لیستی از همه روت‌های برنامه رو داشته باشین

- Installation:
composer require wulfheart/pretty_routes

- Usage:
php artisan route:pretty

اطلاعات بیشتر
#laravel
Ditty | دیتی
🔺الگوی طراحی Singleton به زبان #ساده - این الگو این اطمینان رو میده که فقط یک نمونه از یک کلاس خاص در سرتاسر برنامه وجود داشته باشه و راهی رو ارائه میده تا بتونیم به همون نمونه دسترسی داشته باشیم - این الگو یکی از پراستفاده‌ترین و همچنین #بحث‌برانگیز ترین…
🔺الگوی طراحی Adapter به زبان #ساده

- با این الگو می‌تونیم توی برنامه از کلاس‌هایی که نوع و اینترفیس ناسازگار دارن استفاده کنیم، بدون اینکه کدی رو تغییر بدیم

- مثلاً می‌خوایم از کلاس‌های چند کتابخونه خارجی استفاده کنیم که همگی نحوه پیاده‌سازی و استفاده متفاوتی دارن. به جای اینکه کدهای برنامه و یا ساختار کلاس‌ها رو تغییر بدیم، کافیه از Adapter استفاده کنیم 👌

- از لینک زیر با این الگو آشنا بشین:
ditty.ir/322

#oop
🔺ـ Event Modifier چیه؟ 🤔

- اگه با Vue کار می‌کنین، با این ویژگی می‌تونین کدهای تمیزتر و کوتاه‌تری داشته باشین

- از لینک زیر با این قابلیت آشنا بشین:
ditty.ir/p/nRxeJ

#vue