Скажите, как назначить placeholder класс, на сайте много полей ввода и не понятно как их переводить, мы же не можем ему назначить класс? И если есть слайдер на сайте, то видимый экрану текст переводится, а тот текст на который нужно нажать на слайдер нет (в слайдере 10 отзывов, первые 3 всегда видимы, остальный чтоб увидеть нужно нажать на стрелку в стороны, тобиш продлистать слайд, и вот этот текст который мы видем при пролистывании он не переводится), как решить эту проблему?
— Советую на главной странице блок с Maintability/complexity проверять без комментариев, так как аннотации и комментарий к каждому методу, по моему мнению, сильно завышают показатель индекса поддерживаемости. К примеру, если добавить комментарий к каждому методу, свойству и условному оператору, то у вас этот «улей» будет практически весь зелёный. Но, как сами понимаете, это лишь иллюзия :) — Volume до 8000 на класс — наверно, это много, даже как для критического показателя. И не обращаем внимание на цвет. Даже при хороших показателях, они будут иметь синий фон. Смотрим только на число. — Самым полезным для меня оказалась цикломатическая сложность классов и методов. Сразу было видно, с чего начать рефакторинг, ну или, как минимум, на что обратить внимание. И помним, главное — не фанатеть :)
— А вот пример «плохо поддерживаемого класса». Я догадываюсь, почему так выходит. Слишком много публичных методов. Но выносить relations в какой-нибудь trait у меня рука не поднялась. Меня, кстати, удивило то, что scopes в Laravel прописываются в Model, а не в ModelQuery. В Yii2 это показалось более логичным, так как это автоматически разгружало модель. Хотя только что посмотрел и в Laravel это делается также простым переопределением query() с возвратом Query builder для определённой модели. Только вот примеров таких я ещё не встречал, по этому и подумал, что так просто не принято. Но суть не в этом, а том, что класс плохо поддерживаемый :)
class Box extends Model { use SoftDeletes; use SeoMetaModelTrait;
Чувак, на будущее: проводи весь продемонстрированный тобой на видео анализ вакансий за кулисами. А нам, зрителям, показывай результаты анализа, графики, цифры и так далее
Что значит static блок выполняется только один раз? Любой блок выполнится один раз, разве нет? И ещё, если я сделаю рекурсию, во время исполнения которой будет заход в Статик блок, разве он выполнится один раз?
что за бредовое видео, тут по делу только последние 3 минуты. И то что он перечислил это хрень полная! Как по мне первое и главное что он должен уметь это грамотно писать код и минимум изобретать свой велосипед, а то как не открою, все то что для нашей фирмы писали сторонние разработчики, в том числе и с франчайзи, у меня часто возникает желание все удалить и свое написать. Хотя какие там франчайзи, там сама фирма 1С иногда такое пишет!!! Тут недавно в модуле типового документа, конфигурации УТ 10 в одном из методов увидел код, в котором инициализировали переменную, которая дальше нигде не использовалась! Карл!!! Или после выхода обновления в Счет фактурах не проставлялись номера прослеживаемых товаров и прочие косяки! Это наверное программисты, которые знают БСП, но не знают конфигурацию для которой пишут обновления!!!
— Volume до 8000 на класс — наверно, это много, даже как для критического показателя. И не обращаем внимание на цвет. Даже при хороших показателях, они будут иметь синий фон. Смотрим только на число.
— Самым полезным для меня оказалась цикломатическая сложность классов и методов. Сразу было видно, с чего начать рефакторинг, ну или, как минимум, на что обратить внимание. И помним, главное — не фанатеть :)
— А вот пример «плохо поддерживаемого класса». Я догадываюсь, почему так выходит. Слишком много публичных методов. Но выносить relations в какой-нибудь trait у меня рука не поднялась. Меня, кстати, удивило то, что scopes в Laravel прописываются в Model, а не в ModelQuery. В Yii2 это показалось более логичным, так как это автоматически разгружало модель. Хотя только что посмотрел и в Laravel это делается также простым переопределением query() с возвратом Query builder для определённой модели. Только вот примеров таких я ещё не встречал, по этому и подумал, что так просто не принято.
Но суть не в этом, а том, что класс плохо поддерживаемый :)
class Box extends Model
{
use SoftDeletes;
use SeoMetaModelTrait;
protected $table = 'box';
protected $casts = [
'name' => 'array',
'description' => 'array',
'date' => AsDate::class,
'datetime' => AsDatetime::class,
'image' => AsImage::class. ':widen_100|widen_500',
'images_list' => AsImages::class. ':widen_100|widen_500',
];
public function brand(): BelongsTo
{
return $this->belongsTo(Brand::class, 'brand_id')->withTrashed();
}
public function variations(): HasMany
{
return $this->hasMany(Variation::class, 'box_id')->orderBy('sort_index');
}
public function categories(): BelongsToMany
{
return $this->belongsToMany(Category::class, 'box_category_ref', 'box_id', 'category_id')->withTrashed();
}
public function tags(): BelongsToMany
{
return $this->belongsToMany(Tag::class, 'box_tag_ref', 'box_id', 'tag_id')->withTrashed();
}
public function scopePublished(Builder $query): void
{
$query->where('datetime', '<=', date('Y-m-d'));
}
}