собачники против кинофобов

HORO

Новичок
Мы не против использования @ по делу.
ну а например. Вот так по делу?
@func() or someHandler("Error");
или так
$var=@$_GET['var'];
Я когда C# начал учить меня достали постоянные исключения по делу и без дела...
 

Sam Dark

Новичок
Например:

PHP:
public function exists($key)
{
    $cacheFile = $this->getCacheFile($this->buildKey($key));
    return @filemtime($cacheFile) > time();
}
 

Sam Dark

Новичок
Зачем тут stat? Во-первых, он вытягивает больше информации, чем нам нужно. Во-вторых, warning никуда не девается при его использовании.
 

WMix

герр M:)ller
Партнер клуба
Redjik, извените, а более простой вариант не рассматривался?
PHP:
class Filesystem{
    public function __call( $m, $args ){
        if(in_array( $m, array('mkdir', /* просто перечислить методы с 104 по 1590 строку */ ) )){
            set_error_handler(function($errno, $errstr){
                //throw Exception::factory($errstr,$errno);
                echo $errno.' '.$errstr; // тестил ))
            });
            $result = call_user_func_array($m,$args);
            restore_error_handler();
            return $result;
        }
    }
}
 

HORO

Новичок
PHP:
if(in_array( $m, array('mkdir', /* просто перечислить методы с 104 по 1590 строку */ ) )){
мб method_exists() ? (если надо то && !in_array())
 

HORO

Новичок
Sam Dark, а что мешает воспринимать собаку как ещё один инструмент...мое мнение такое, что пусть люди пишут так как им удобнее, при условии что результат будет работать в рамках ТЗ :)
не понимаю я этих споров про собаки, eval, ООП и т.п.
 

Вурдалак

Продвинутый новичок
Не должно быть лишних инструментов. Не должно быть свободы. За несоблюдение соглашений по коду нужно бить в морду. За непринятие SOLID — в газваген как экстремиста. Только так можно добиться улучшения качества кода.
 

HORO

Новичок
Не должно быть лишних инструментов. Не должно быть свободы. За несоблюдение соглашений по коду нужно бить в морду. За непринятие SOLID — в газваген как экстремиста. Только так можно добиться улучшения качества кода.
ну так и пусть за этим тим-лид следит, а не сообщество..?
понятие качества, опять же у всех свое, тут не в свободе дело...
ну или можно посмотреть на исходники популярных проектов...
 

Sam Dark

Новичок
HORO, а она и есть инструмент. Просто довольно опасный.

Вурдалак, да ладно, такой строгости даже в Python нет со всеми его pep.
 

Redjik

Джедай-мастер
WMix, перебирал кучу разных вариантов, к этому пришел ибо
1) Автокомплит (+ ручками прописал какие Exception кидаются на каждый метод)
2) Не все функции можно так обернуть (пройдись поиском по stat)
 

Redjik

Джедай-мастер
Зачем тут stat? Во-первых, он вытягивает больше информации, чем нам нужно. Во-вторых, warning никуда не девается при его использовании.
Из-за невнятного теста ошибки - на любую ошибку получаем
Код:
root@ubuntu:/tmp# php -r "var_dump(filemtime('/tmp/teste'));"
PHP Warning:  filemtime(): stat failed for /tmp/teste in Command line code on line 1
поэтому я открывал поток и делал fstat, 90 процентов ошибок вылезут уже при открытии потока
 

Redjik

Джедай-мастер
WMix, тебе правда этот кусок дымящегося дерьма не кажется отвратительным?
Отлично, а главное конструктивно все обьяснил.
Все? Больше не чешется, ЧСВ то? Так ты не стесняйся - чеши сильнее, у нас же не хабр - тут можно!
 

Absinthe

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

Sam Dark

Новичок
Redjik, ОК. Просто в моём случае ошибка нам не особо интересна, что бы не произошло. Место критичное по производительности. Случай не единичный.
 

grigori

( ͡° ͜ʖ ͡°)
Команда форума
Не должно быть лишних инструментов. Не должно быть свободы. За несоблюдение соглашений по коду нужно бить в морду. За непринятие SOLID — в газваген как экстремиста. Только так можно добиться улучшения качества кода.
блин, так и тянет прокомментировать в тему ))) но без политики: есть другой опыт, решают не стандарты кодинга, решает проработка бизнес-логики и архитектура, стабильность есть когда ей уделяют внимание, а разные стили скобок уживаются отлично
 

Вурдалак

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

Дьявол в мелочах. Сегодня ты назвал переменную не совсем правильно, отражающую суть не очень точно, или даже с ошибкой, завтра эта переменная с именем попала в public API, послезавтра ты будешь объяснять клиентам, что название не совсем корректное, потом будешь менять API, поддерживать BC. Название переменной — это ни разу не архитектурный вопрос, тут нужно проявить достаточную скрупулезность, чтобы дать коллеге понять, что он пишет херню и пусть это поправит.

Дьявол в чёртовых мелочах. Сегодня ты пишешь $userRepository->getUserByName() throw new UserNotFound, а завтра — с return null. Это же не Java, сам язык не будет следить за соблюдением контрактов во многих случаях. Нужно быть педантичным, чтобы в yet another time нажать на reject в code review, даже если тут говорят, что задача очень критичная и вот уже скоро deadline.

Дьявол в этих ваших мелочах. Сегодня ты юзаешь новомодный foo()['bar'], а завтра вообще не заботишься об API своего класса, потому что можно написать getMess()['anything']. Нужно сразу бить по зубам.
 
Последнее редактирование:

grigori

( ͡° ͜ʖ ͡°)
Команда форума
Я с вами абсолютно согласен. (С) Легко давать в зубы на форуме.
Будете очень долго искать сотрудников с такими понтами: и грамотность, и скурпулезность, и переменные чтоб называл по-твоему, и хотел сделать лучше, а по факту возьмете живого обычного человека. Один из 30 join напишет, и его берете. Пару раз "в зубы" - всем пока и спасибо за рыбу, а вы просрали все полимеры.
У меня паренек один, отличный математик и алгоритмист из пригорода, писал "пожайлусто", и переменные называл так же. Уволить его за это? Да щаз! :)

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