OneCode
1.33K subscribers
680 photos
69 videos
3 files
567 links
Full Stack на PHP, Laravel и всё, что с этим связано.
YouTube: https://www.youtube.com/@onecode_blog
Download Telegram
На прошлой неделе в нашем чате подняли вопрос – как правильно подключать несколько файлов с маршрутами?

Использовать для этого выражение
require_once
или
require
- я думал, что любой способ подойдёт.

Оказалось нужно использовать
require
, потому что иначе кеширование маршрутов командой
artisan route:cache
работает НЕ корректно.

Так что мотаем на ус ☝️

Подпишись
👍15🤔1
Правила, говорящие, что каждая функция должна иметь комментарий phpdoc или что каждая переменная должна быть помечена комментарием — обычная глупость.

Такие комментарии только загромождают код, распространяют недостоверную информацию и вызывают общую путаницу и дезориентацию. При этом программисты часто забывают актуализировать комментарии при изменении кода.

Например, требование обязательного комментария phpdoc для каждой функции приводит к появлению монстров вроде следующего примера. Бессмысленные комментарии не приносят никакой пользы. Они только запутывают код, повышая риск недоразумений.

/**
* @param string $title Название диска
* @param string $author Автор диска
* @param int $tracks Количество дорожек на диске
* @param int $durationInMinutes Продолжительность воспроизведения в минутах
*/
public function addCD(string $title, string $author, int $tracks, int $durationInMinutes): void {
// ...
}



Также в программах нередко встречаются комментарии, не содержащие ничего,
кроме «шума». Они лишь утверждают очевидное, не предоставляя никакой новой
информации:

/**
* Конструктор по-умолчанию.
*/
public function __construct() {
// ...
}

Да неужели? А как насчет этого:

/** День месяца. */
private int $dayOfMonth;

И наконец, апофеоз избыточности:

/**
* Возвращает день месяца.
*
* @return int день месяца.
*/
public function getDayOfMonth(): int {
return $this->dayOfMonth;
}

Эти комментарии настолько бесполезны, что мы учимся не обращать на них внимания. В процессе чтения кода наш взгляд просто скользит мимо них. Рано или поздно код вокруг таких комментариев изменяется, и они начинают лгать.

Роберт Мартин, Чистый код #clean_code

Подпишись: @onecode_blog
👍11🔥2👎1
Открываем доступ в закрытый канал

Если тебе нравятся мои видео на YouTube, то ты можешь поддержать канал, присоединившись в закрытую группу.

В VIP канал публикуются отдельные практические видео по разработке на Laravel.

Сейчас там два видео:
- Как запускать код каждые 5 секунд на примере торгового робота.
- Где писать мой код? Толстые модели и контроллеры.

Выбираю тему для следующего видео. Есть идея рассказать про то, как я использую транзакции и блокировки базы данных - важная, интересная и нужная тема, без которой НЕ обходится ни один проект.

Доступ в VIP канал стоит 990 рублей в месяц. Присоединяйся к профессионалам!

После перехода по ссылке нужно подать заявку и оформить подписку через специального телеграм-бота, который тебе напишет.

👉 Присоединиться

До встречи!
🔥4🤔21🤝1
Если вы подали заявку на участие в VIP канале и ждёте, то проверьте сообщения - вам должен написать бот Donate для оформления подписки 🤖
👍7
Не используйте комментарии там, где можно использовать функцию или переменную.

Возьмем следующий фрагмент кода:

// Зависит ли модуль из глобального списка от подсистемы,
// частью которой является наш код?
if ($smodule.getDependSubsystems().contains($subSysMod.getSubSystem())) {
// ...
}


Его можно было бы перефразировать без комментария в следующем виде:

$moduleDependees = $smodule.getDependSubsystems();

$ourSubSystem = $subSysMod.getSubSystem();

if ($moduleDependees.contains($ourSubSystem)) {
// ...
}


Возможно (хотя и маловероятно), автор исходного кода сначала написал комментарий, а затем — соответствующий ему код. Но после этого автор должен был переработать свой код, как это сделал я, чтобы комментарий можно было удалить.

Роберт Мартин, Чистый код #clean_code
👍9🔥1
Продолжаем курс по Laravel (PHP)

- Как получать одну запись из базы?
- Рассмотрим несколько способов
- Обсудим какой и когда лучше?
- Затронем тему кэширования
- Нюансы работы с чанками
- Полезные советы

https://youtu.be/Q4iFPt7QPPQ

Подпишись: @onecode_blog
🔥14👍4
Возможно, вы думали, что первоочередная задача профессионального разработчика – «сделать так, чтобы программа заработала». Надеюсь, к этому моменту книга уже заставила вас отказаться от этих представлений.

Функциональность, созданная сегодня, вполне может измениться в следующей версии, но удобочитаемость вашего кода окажет сильное воздействие на все изменения, которые когда-либо будут внесены.

Поэтому я твердо заявляю: форматирование кода очень важно. Форматирование кода направлено на передачу информации, а передача информации является первоочередной задачей профессионального разработчика.

Роберт Мартин, Чистый код #clean_code

Подпишись: @onecode_blog
🔥11👍1🤔1
Переполнение месяцев

При работе с датами есть нюанс, о котором знают не все. Вернее знать могут не только лишь все, не каждый может это делать 😁

Короче, фишка в том, что в разных месяцах разное количество дней. Поэтому когда мы берём последний день масяца, затем прибавляем еще месяц, то можем перескачить на третий месяц.

Пример на скрине ☝️

Именно так по-умолчанию действует пакет Carbon для работы с датой и временем, который мы часто используем.

Но в зависимости от задачи, мы можем изменить это поведение, используя специальную настройку на объекте даты.

Реальный пример: человек платит кредит каждое 31 число. Вопрос - в какой день он должен платить, если в месяце 28 дней? 🤔

Когда в вашем проекте встанет подобный вопрос - вспомните этот пост 😃

Подпишись: @onecode_blog
🔥14
Отвечая на вопрос из предыдущего поста. Когда передо мной встала такая задача, то я спросил в чате Тинькофф банка. Ответ на скрине.

Подпишись: @onecode_blog
👍2🔥1
Добавлю еще один момент

После того как мы добавили месяц
$date->addMonth()
и получили, например 28 февраля. То когда мы прибавим еще месяц
$date->addMonth()
, то получим 28 марта. Таким образом пользователь платил кредит 31 числа, а теперь будет платить 28 числа - всегда. Это по сути баг. Чтобы его пофиксить мы должны брать день, например 31 число, и устанавливать его в каждый месяц графика, если такой день есть в этом месяце. А иначе использовать последний день этого месяца.

Подобные штуки мы разбираем в видео закрытого VIP канала.

Подпишись: @onecode_blog
👍3
Практически весь код читается слева направо и сверху вниз. Каждая строка представляет выражение или условие, а каждая группа строк представляет законченную мысль.

Эти мысли следует отделять друг от друга пустыми строками . Это чрезвычайно простое правило оказывает глубокое воздействие на визуальную структуру кода.

Каждая пустая строка становится зрительной подсказкой, указывающей на начало новой самостоятельной концепции. В ходе просмотра листинга ваш взгляд привлекает первая строка, следующая за пустой строкой.

👉 Короче, не боимся вставлять пустые строки, чтобы визуально отделять логические блоки кода.

Роберт Мартин, Чистый код #clean_code

Подпишись: @onecode_blog
🔥12👍2
Media is too big
VIEW IN TELEGRAM
Вечерний вайб 🌆
🔥6👍21
Как работать с деньгами?

Опубликовал самое крутое видео на нашем канале. Показываю как работать с деньгами на PHP и в Laravel 😌

- Рассматриваем несколько способов работы с деньгами в коде и базе данных
- Обсуждаем плюсы и минусы каждого способа
- Выбираем оптимальный способ
- Решаем возникающие проблемы
- Закрепляем результат на примере

Работа с деньгами в коде и базе данных - важная тема для любого проекта! 💪

Чтобы получить доступ к этому и другим видео, присоединяйся в наш закрытый VIP канал и стань частью банды 🥳

Остальные видео выйдут уже в новом году. Поздравляю с наступающим! 🎄

Подпишись: @onecode_blog #vip
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥8👍2🎉1🎄1
Поздравляю вас с Наступающим Новым годом, дорогие мои! Желаю в новом году ещё больше инвестировать в своё развитие, прокачивать навыки и кайфовать при этом! Ура!!! 🥳🎁🤗
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥258👍6🎉4
Всем привет! Как отдыхается? Надеюсь круто!

Интересно, что в канале почти 650 человек, а посты читают только половина. Что делают остальные? Лично я всегда отписываюсь от каналов, которые не читаю.
🎉12👍9😁2
Прикольная тема 👍

https://floor796.com

Подпишись: @onecode_blog
🔥12
Если одна функция вызывает другую, то эти функции должны располагаться вблизи друг от друга по вертикали (сверху вниз). Вызываемая функция должна находиться под вызывающей (если это возможно). Тем самым формируется естественная структура программного кода. Если это правило будет соблюдаться, то читатели кода будут уверены в том, что определения функций следуют после их вызовов. Такая структура позволяет легко искать функции и значительно улучшает удобочитаемость всего модуля.

function foo() {
bar();
}

function bar() {
baz();
}

function baz() {
// ...
}

Роберт Мартин, Чистый код #clean_code

Подпишись: @onecode_blog
🔥16
Laravel Lang Publisher

Пакет для перевода стандартных сообщений Laravel (валидация и тд) на другие языки.

Инструкция

1. Устанавалиаем пакеты
composer require laravel-lang/publisher laravel-lang/lang laravel-lang/attributes --dev


2. Добавляем переводы с указанием языка
php artisan lang:add ru

php artisan lang:add de


Аналогично запускаем команду для других языков, которые нужны в вашем проекте.

https://publisher.laravel-lang.com

Подпишись: @onecode_blog
👍17🔥9
Как разделить сайт на отдельные домены

В новом видео мы разобрались как показывать разные части нашего сайта на Laravel по разным доменам.

В рамках урока мы:
- Обсудили кейсы зачем и когда это нужно.
- Разобрались как работает DNS и мультидомены.
- Настроили мультидомены на локальном сервере.
- Настроили мультидомены на реальном сервере с Nginx.
- Как всегда обсудили нюансы и тонкости реализации.

Это и другие видео доступны в закрытом VIP-канале за 990 рублей в месяц.

После заявки тебе напишет телеграм-бот Donate для оформления подписки.

Присоединяйся к профи!

Подпишись: @onecode_blog #vip
👍10🔥42
👍6🔥3👏1
Хороших выходных, друзья!
😁24💯3🔥1🌚1