На прошлой неделе в нашем чате подняли вопрос – как правильно подключать несколько файлов с маршрутами?
Использовать для этого выражение
Оказалось нужно использовать
Так что мотаем на ус ☝️
Подпишись
Использовать для этого выражение
require_onceили
require- я думал, что любой способ подойдёт.
Оказалось нужно использовать
require, потому что иначе кеширование маршрутов командой
artisan route:cacheработает НЕ корректно.
Так что мотаем на ус ☝️
Подпишись
👍15🤔1
Правила, говорящие, что каждая функция должна иметь комментарий phpdoc или что каждая переменная должна быть помечена комментарием — обычная глупость.
Такие комментарии только загромождают код, распространяют недостоверную информацию и вызывают общую путаницу и дезориентацию. При этом программисты часто забывают актуализировать комментарии при изменении кода.
Например, требование обязательного комментария phpdoc для каждой функции приводит к появлению монстров вроде следующего примера. Бессмысленные комментарии не приносят никакой пользы. Они только запутывают код, повышая риск недоразумений.
Также в программах нередко встречаются комментарии, не содержащие ничего,
кроме «шума». Они лишь утверждают очевидное, не предоставляя никакой новой
информации:
Да неужели? А как насчет этого:
И наконец, апофеоз избыточности:
Эти комментарии настолько бесполезны, что мы учимся не обращать на них внимания. В процессе чтения кода наш взгляд просто скользит мимо них. Рано или поздно код вокруг таких комментариев изменяется, и они начинают лгать.
Роберт Мартин, Чистый код #clean_code
Подпишись: @onecode_blog
Такие комментарии только загромождают код, распространяют недостоверную информацию и вызывают общую путаницу и дезориентацию. При этом программисты часто забывают актуализировать комментарии при изменении кода.
Например, требование обязательного комментария 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 рублей в месяц. Присоединяйся к профессионалам!
После перехода по ссылке нужно подать заявку и оформить подписку через специального телеграм-бота, который тебе напишет.
👉 Присоединиться
До встречи!
Если тебе нравятся мои видео на YouTube, то ты можешь поддержать канал, присоединившись в закрытую группу.
В VIP канал публикуются отдельные практические видео по разработке на Laravel.
Сейчас там два видео:
- Как запускать код каждые 5 секунд на примере торгового робота.
- Где писать мой код? Толстые модели и контроллеры.
Выбираю тему для следующего видео. Есть идея рассказать про то, как я использую транзакции и блокировки базы данных - важная, интересная и нужная тема, без которой НЕ обходится ни один проект.
Доступ в VIP канал стоит 990 рублей в месяц. Присоединяйся к профессионалам!
После перехода по ссылке нужно подать заявку и оформить подписку через специального телеграм-бота, который тебе напишет.
👉 Присоединиться
До встречи!
🔥4🤔2⚡1🤝1
Если вы подали заявку на участие в VIP канале и ждёте, то проверьте сообщения - вам должен написать бот Donate для оформления подписки 🤖
👍7
Не используйте комментарии там, где можно использовать функцию или переменную.
Возьмем следующий фрагмент кода:
Его можно было бы перефразировать без комментария в следующем виде:
Возможно (хотя и маловероятно), автор исходного кода сначала написал комментарий, а затем — соответствующий ему код. Но после этого автор должен был переработать свой код, как это сделал я, чтобы комментарий можно было удалить.
Роберт Мартин, Чистый код #clean_code
Возьмем следующий фрагмент кода:
// Зависит ли модуль из глобального списка от подсистемы,
// частью которой является наш код?
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
- Как получать одну запись из базы?
- Рассмотрим несколько способов
- Обсудим какой и когда лучше?
- Затронем тему кэширования
- Нюансы работы с чанками
- Полезные советы
https://youtu.be/Q4iFPt7QPPQ
Подпишись: @onecode_blog
🔥14👍4
Возможно, вы думали, что первоочередная задача профессионального разработчика – «сделать так, чтобы программа заработала». Надеюсь, к этому моменту книга уже заставила вас отказаться от этих представлений.
Функциональность, созданная сегодня, вполне может измениться в следующей версии, но удобочитаемость вашего кода окажет сильное воздействие на все изменения, которые когда-либо будут внесены.
Поэтому я твердо заявляю: форматирование кода очень важно. Форматирование кода направлено на передачу информации, а передача информации является первоочередной задачей профессионального разработчика.
Роберт Мартин, Чистый код #clean_code
Подпишись: @onecode_blog
Функциональность, созданная сегодня, вполне может измениться в следующей версии, но удобочитаемость вашего кода окажет сильное воздействие на все изменения, которые когда-либо будут внесены.
Поэтому я твердо заявляю: форматирование кода очень важно. Форматирование кода направлено на передачу информации, а передача информации является первоочередной задачей профессионального разработчика.
Роберт Мартин, Чистый код #clean_code
Подпишись: @onecode_blog
🔥11👍1🤔1
Переполнение месяцев
При работе с датами есть нюанс, о котором знают не все. Вернее знать могут не только лишь все, не каждый может это делать 😁
Короче, фишка в том, что в разных месяцах разное количество дней. Поэтому когда мы берём последний день масяца, затем прибавляем еще месяц, то можем перескачить на третий месяц.
Пример на скрине ☝️
Именно так по-умолчанию действует пакет Carbon для работы с датой и временем, который мы часто используем.
Но в зависимости от задачи, мы можем изменить это поведение, используя специальную настройку на объекте даты.
Реальный пример: человек платит кредит каждое 31 число. Вопрос - в какой день он должен платить, если в месяце 28 дней? 🤔
Когда в вашем проекте встанет подобный вопрос - вспомните этот пост 😃
Подпишись: @onecode_blog
При работе с датами есть нюанс, о котором знают не все. Вернее знать могут не только лишь все, не каждый может это делать 😁
Короче, фишка в том, что в разных месяцах разное количество дней. Поэтому когда мы берём последний день масяца, затем прибавляем еще месяц, то можем перескачить на третий месяц.
Пример на скрине ☝️
Именно так по-умолчанию действует пакет Carbon для работы с датой и временем, который мы часто используем.
Но в зависимости от задачи, мы можем изменить это поведение, используя специальную настройку на объекте даты.
Реальный пример: человек платит кредит каждое 31 число. Вопрос - в какой день он должен платить, если в месяце 28 дней? 🤔
Когда в вашем проекте встанет подобный вопрос - вспомните этот пост 😃
Подпишись: @onecode_blog
🔥14
Отвечая на вопрос из предыдущего поста. Когда передо мной встала такая задача, то я спросил в чате Тинькофф банка. Ответ на скрине.
Подпишись: @onecode_blog
Подпишись: @onecode_blog
👍2🔥1
Добавлю еще один момент
После того как мы добавили месяц
Подобные штуки мы разбираем в видео закрытого VIP канала.
Подпишись: @onecode_blog
После того как мы добавили месяц
$date->addMonth()и получили, например 28 февраля. То когда мы прибавим еще месяц
$date->addMonth(), то получим 28 марта. Таким образом пользователь платил кредит 31 числа, а теперь будет платить 28 числа - всегда. Это по сути баг. Чтобы его пофиксить мы должны брать день, например 31 число, и устанавливать его в каждый месяц графика, если такой день есть в этом месяце. А иначе использовать последний день этого месяца.
Подобные штуки мы разбираем в видео закрытого VIP канала.
Подпишись: @onecode_blog
👍3
Практически весь код читается слева направо и сверху вниз. Каждая строка представляет выражение или условие, а каждая группа строк представляет законченную мысль.
Эти мысли следует отделять друг от друга пустыми строками . Это чрезвычайно простое правило оказывает глубокое воздействие на визуальную структуру кода.
Каждая пустая строка становится зрительной подсказкой, указывающей на начало новой самостоятельной концепции. В ходе просмотра листинга ваш взгляд привлекает первая строка, следующая за пустой строкой.
👉 Короче, не боимся вставлять пустые строки, чтобы визуально отделять логические блоки кода.
Роберт Мартин, Чистый код #clean_code
Подпишись: @onecode_blog
Эти мысли следует отделять друг от друга пустыми строками . Это чрезвычайно простое правило оказывает глубокое воздействие на визуальную структуру кода.
Каждая пустая строка становится зрительной подсказкой, указывающей на начало новой самостоятельной концепции. В ходе просмотра листинга ваш взгляд привлекает первая строка, следующая за пустой строкой.
👉 Короче, не боимся вставлять пустые строки, чтобы визуально отделять логические блоки кода.
Роберт Мартин, Чистый код #clean_code
Подпишись: @onecode_blog
🔥12👍2
Как работать с деньгами?
Опубликовал самое крутое видео на нашем канале. Показываю как работать с деньгами на PHP и в Laravel😌
- Рассматриваем несколько способов работы с деньгами в коде и базе данных
- Обсуждаем плюсы и минусы каждого способа
- Выбираем оптимальный способ
- Решаем возникающие проблемы
- Закрепляем результат на примере
Работа с деньгами в коде и базе данных - важная тема для любого проекта!💪
Чтобы получить доступ к этому и другим видео, присоединяйся в наш закрытый VIP канал и стань частью банды🥳
Остальные видео выйдут уже в новом году. Поздравляю с наступающим!🎄
Подпишись: @onecode_blog #vip
Опубликовал самое крутое видео на нашем канале. Показываю как работать с деньгами на 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
🔥25☃8👍6🎉4
Всем привет! Как отдыхается? Надеюсь круто!
Интересно, что в канале почти 650 человек, а посты читают только половина. Что делают остальные? Лично я всегда отписываюсь от каналов, которые не читаю.
Интересно, что в канале почти 650 человек, а посты читают только половина. Что делают остальные? Лично я всегда отписываюсь от каналов, которые не читаю.
🎉12👍9😁2
Если одна функция вызывает другую, то эти функции должны располагаться вблизи друг от друга по вертикали (сверху вниз). Вызываемая функция должна находиться под вызывающей (если это возможно). Тем самым формируется естественная структура программного кода. Если это правило будет соблюдаться, то читатели кода будут уверены в том, что определения функций следуют после их вызовов. Такая структура позволяет легко искать функции и значительно улучшает удобочитаемость всего модуля.
Роберт Мартин, Чистый код #clean_code
Подпишись: @onecode_blog
function foo() {
bar();
}
function bar() {
baz();
}
function baz() {
// ...
}
Роберт Мартин, Чистый код #clean_code
Подпишись: @onecode_blog
🔥16
Laravel Lang Publisher
Пакет для перевода стандартных сообщений Laravel (валидация и тд) на другие языки.
Инструкция
1. Устанавалиаем пакеты
2. Добавляем переводы с указанием языка
Аналогично запускаем команду для других языков, которые нужны в вашем проекте.
https://publisher.laravel-lang.com
Подпишись: @onecode_blog
Пакет для перевода стандартных сообщений 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
В новом видео мы разобрались как показывать разные части нашего сайта на Laravel по разным доменам.
В рамках урока мы:
- Обсудили кейсы зачем и когда это нужно.
- Разобрались как работает DNS и мультидомены.
- Настроили мультидомены на локальном сервере.
- Настроили мультидомены на реальном сервере с Nginx.
- Как всегда обсудили нюансы и тонкости реализации.
Это и другие видео доступны в закрытом VIP-канале за 990 рублей в месяц.
После заявки тебе напишет телеграм-бот Donate для оформления подписки.
Присоединяйся к профи!
Подпишись: @onecode_blog #vip
👍10🔥4❤2