Beer::PHP 🍺
2K subscribers
12 photos
2 videos
96 links
Тут публікуються короткі замітки про PHP, Linux, Unit Testing, DB, OOP тощо, витяги зі статей, книг, відео, курсів та інших матеріалів.

Тепер тобі більше не потрібно перегортати тонни інформації ;)

@genkovich — написати автору каналу.
Download Telegram
#Linux #Lifehack

Вот так жил и не знал, что существует sudo !!

В случае, если у вас нет прав на операцию, вместо того чтобы:
1. Выбрать предыдущую команду
2. Перевести курсора в начало строки
3. Ручками писать sudo

Достаточно просто ввести sudo !! и терминал выполнит предыдущую команду, самостоятельно сделав все эти операции за вас.
Ранні виходи (Early return)

Все ще закликаю комьюніті до гостьових постів. Сьогодні саме один з таких, дякую автору, @yozhef, за те, що підняв цю тему.

📍 Ранні виходи з функцій чи циклів – це крутий лайфхак, який робить ваш код чистішим, зрозумілішим і простішим для підтримки. Якщо ви відразу виходите з функції, коли умова не відповідає необхідним критеріям, ви економите час як на виконання, так і на розуміння логіки (та і ментальне здоровʼя 😁).

Давайте переглянемо цей код [gist]:
function processOrder($order) {
if ($order->isPaid()) {
if ($order->hasValidShippingAddress()) {
if ($order->isInStock()) {
// Логіка обробки замовлення
return "Order processed successfully.";
} else {
return "Order cannot be processed: Out of stock.";
}
} else {
return "Order cannot be processed: Invalid shipping address.";
}
} else {
return "Order cannot be processed: Payment pending.";
}
}


Порівняно з наступним [gist]:
function processOrder($order) {
if (!$order->isPaid()) {
return "Order cannot be processed: Payment pending.";
}

if (!$order->hasValidShippingAddress()) {
return "Order cannot be processed: Invalid shipping address.";
}

if (!$order->isInStock()) {
return "Order cannot be processed: Out of stock.";
}

// Логіка обробки замовлення
return "Order processed successfully.";
}


Думаю у early return підхода можна виділити наступні переваги:

🎯 Спрощення логіки — ви уникаєте численних вкладених if-ів, що значно полегшує розуміння логіки.

🛑 Менша вкладеність — менше шансів заплутатися. Як бонус, ваш код стає легшим для читання.

Швидке завершення. Ранні виходи дозволяють швидше завершити виконання функції, коли вже відомо, що подальші дії непотрібні. Те ж саме стосується і Fail Fast: Як сказали Jim Shore і Martin Fowler, швидке виявлення помилок робить код більш надійним. Якщо помилка трапляється, функція одразу припиняє виконання, що запобігає виконанню зайвих операцій.

🛠️ Простіше модифікувати. Чим менше розгалужень у функції, тим легше вносити зміни або додавати нову логіку без ризику зламати існуючий функціонал.

🧹 Менше залежностей, а відповідно кожна частина коду стає більш ізольованою. Це спрощує рефакторинг та тестування, адже залежності між різними частинами зменшуються.

🔍 Фокус на критичних умовах — Можливість зосередитися на найважливіших умовах виконання коду, підкреслюючи їх значущість і відсіюючи менш критичні сценарії.

Отже, використання ранніх виходів робить ваш код елегантним і ефективним, особливо в умовах складних систем з великою кількістю умов і розгалужень.

#php #lifehack #junior #source
👍53🔥6👀21🙊1