Philocode – Telegram
Jeffrey Way:
I've honestly benefited far more from studying open source projects. When I was younger, I rarely did this. Not sure why. Maybe I was scared of being overwhelmed by the complexity.
But, seriously, if you want to be a better developer, there's no short cut. Write and read a lot of code.
If I had to pick one book, though, it might be "Clean Code."
👍4
تفاوت دو نوع Pagination مختلف که در لاراول پیاده شده‌اند:

# Offset Pagination...
select * from users order by id asc limit 15 offset 15;

# Cursor Pagination...
select * from users where id > 15 order by id asc limit 15;
👍2
Old, but gold! 😂
😁2
در آینده می‌تونن مارو به اجبار توی موقعیت‌های شبیه‌سازی شده قرار بدن برای اینکه مارو مجبور به چیزهایی کنن که می‌خوان. چیزی مثل یه نوع کپسول بهم وصل بود. حالا تو ادامه خواب چیز دیگه‌ای دستگیرم شد بی‌خبرتون نمی‌ذارم.
😱1
لطفاً با ⭐️ دادن به ریپازیتوری، حمایت کنید.

می‌تونید برای خودتون یه ربات داشته باشید که مردم به جای پیام خصوصی، به اونجا پیام بدن و اکانت شما همچنان مخفی بمونه!

https://github.com/WebPajooh/MediumBot
👍3🎉1
Philocode
کتاب جدیدی که خوندنش رو شروع می‌کنم. مقدمۀ این کتاب رو قبلاً خونده بودم که توضیحات خوبی دربارۀ شیءگرایی و اصول SOLID داره ولی این بار ان شاء الله تا آخرش می‌ریم که ببینیم واقعاً نویسنده (Alexander Shvets) چقدر به قولش عمل کرده و توی این دیزاین‌پترن‌ها عمیق…
وقتی ساختن یک آبجکت حالت‌های مختلفی داره (مثلاً خونه یه نبش داره، دو نبش داره، ممکنه مغازه داشته باشه یا نداشته باشه، باغچه داشته باشه یا نداشته باشه و...)، یه راه اینه که به ازای حالت‌های مختلف، subclass بسازیم. اینجا Builder Pattern وارد صحنه می‌شه و می‌گه من راه‌حلم.
🤩1
Philocode
کتاب جدیدی که خوندنش رو شروع می‌کنم. مقدمۀ این کتاب رو قبلاً خونده بودم که توضیحات خوبی دربارۀ شیءگرایی و اصول SOLID داره ولی این بار ان شاء الله تا آخرش می‌ریم که ببینیم واقعاً نویسنده (Alexander Shvets) چقدر به قولش عمل کرده و توی این دیزاین‌پترن‌ها عمیق…
حتی یک تغییردادن ساده در یک کدبیس monolithic بسیار سخت است؛ زیرا باید تمام سیستم را به خوبی درک کرده باشید. اما تغییردادن ماژول‌های کوچک‌تر که به خوبی تعریف شده باشند، بسیار آسان‌تر است.
👍2🔥2
پرسیدن از دیزاین‌پترن‌ها توی مصاحبه (به شکلی که رایجه) صرفاً نشون می‌ده که طرف مطالعۀ تئوریک داشته یا نه.

مثلاً می‌پرسی: دربارۀ دیزاین‌پترن wrapper توضیح بدید!
این بنده‌خدا هم برای اولین‌بار اسم wrapper به گوشش خورده! البته بلده، ولی اون رو با اسم decorator می‌شناسه!

یک دیزاین‌پترن ممکنه اسم‌های مختلفی داشته باشه (کتاب GoF به اسم‌های مختلف اشاره می‌کنه) و اینکه کسی یک اسم رو یادش نیاد یا ندونه، دلیل نیست که طراح خوبی نباشه.

به جای این کارها، براشون یه مسئله طرح کنید و ببینید چه‌طوری حلش می‌کنند!
👍3
تفاوت Decorator و Strategy: اولی به شما امکان این را می‌دهد که پوستۀ آبجکت را تغییر دهید، اما با دومی می‌توان هسته را تغییر داد.
👍3
Philocode
تفاوت Decorator و Strategy: اولی به شما امکان این را می‌دهد که پوستۀ آبجکت را تغییر دهید، اما با دومی می‌توان هسته را تغییر داد.
وقتی از Facade pattern استفاده کنید که می‌خواهید رابط (interface) محدود اما سرراستی برای یک subsystem پیچیده ایجاد کنید. این پترن یک میانبر (shortcut) برای پراستفاده‌ترین قابلیت‌های subsystem که نیازمندی‌های client را برآورده می‌کنند به وجود می‌آورد.
👍1
تفاوت Proxy و Decorator: غالباً اولی خودش آبجکتش را با life cycle آن مدیریت می‌کند، اما در Decorator این مدیریت توسط client انجام می‌شود.
1
👍32
این دستگاه، برای توسعه باز و برای تغییر بسته است. می‌توانیم بخش دیگری طراحی کنیم که الگوریتم دیگری را پیاده کند، بعد بدون اینکه اصل ابزار تغییر کند -مشخصا یک اینترفیس وجود دارد- به دستگاه وصل شود و قابلیت آن را توسعه دهد.
#SOLID
🔥2
چند سؤال مصاحبه:
- در PHP، چگونه می‌توانیم از subclass به superclass دسترسی داشته باشیم؟
- برای یک ادیتور، ساختاری طراحی کنید که بدون تغییر، تگ‌های جدیدی معرفی شود.
- در Laravel، یک دستور به artisan اضافه کنید که لیست routeها را در یک فایل html قرار دهد.
- تفاوت overloading و overriding را توضیح دهید.
👍3🔥1
توی جاواسکریپت، ()Date یه string بهمون می‌ده، اما خروجی ()new Date یه آبجکته.
👍2
سوال: چرا توی Typenoscript نباید از any به عنوان type استفاده کرد؟
جواب: بیکاز ما از typeها استفاده می‌کنیم تا به باگ‌های کمتری بخوریم و توسعه، راحت‌تر و مطمئن‌تر بشه. اگه قراره از any (هرچی!) استفاده کنیم، دیگه چرا از Typenoscript استفاده می‌کنیم؟! می‌ریم همون Javsacriptمون رو می‌نویسیم!
👍3🔥2
const something = undefined

if (!something) { console.log('Yep') } else { console.log('Nope') }
Anonymous Quiz
56%
Yep
44%
Nope
🔥3