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

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

PHP:
public function exists($key)
{
    $cacheFile = $this->getCacheFile($this->buildKey($key));
    return @filemtime($cacheFile) > time();
}
 
Зачем тут stat? Во-первых, он вытягивает больше информации, чем нам нужно. Во-вторых, warning никуда не девается при его использовании.
 
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;
        }
    }
}
 
PHP:
if(in_array( $m, array('mkdir', /* просто перечислить методы с 104 по 1590 строку */ ) )){
мб method_exists() ? (если надо то && !in_array())
 
Sam Dark, а что мешает воспринимать собаку как ещё один инструмент...мое мнение такое, что пусть люди пишут так как им удобнее, при условии что результат будет работать в рамках ТЗ :)
не понимаю я этих споров про собаки, eval, ООП и т.п.
 
Не должно быть лишних инструментов. Не должно быть свободы. За несоблюдение соглашений по коду нужно бить в морду. За непринятие SOLID — в газваген как экстремиста. Только так можно добиться улучшения качества кода.
 
Не должно быть лишних инструментов. Не должно быть свободы. За несоблюдение соглашений по коду нужно бить в морду. За непринятие SOLID — в газваген как экстремиста. Только так можно добиться улучшения качества кода.
ну так и пусть за этим тим-лид следит, а не сообщество..?
понятие качества, опять же у всех свое, тут не в свободе дело...
ну или можно посмотреть на исходники популярных проектов...
 
HORO, а она и есть инструмент. Просто довольно опасный.

Вурдалак, да ладно, такой строгости даже в Python нет со всеми его pep.
 
WMix, перебирал кучу разных вариантов, к этому пришел ибо
1) Автокомплит (+ ручками прописал какие Exception кидаются на каждый метод)
2) Не все функции можно так обернуть (пройдись поиском по stat)
 
Зачем тут 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 процентов ошибок вылезут уже при открытии потока
 
WMix, тебе правда этот кусок дымящегося дерьма не кажется отвратительным?
Отлично, а главное конструктивно все обьяснил.
Все? Больше не чешется, ЧСВ то? Так ты не стесняйся - чеши сильнее, у нас же не хабр - тут можно!
 
Прошу прощения, погорячился. Исходный код оригинальной библиотеки хорошо выполняет свою задачу.
Однако его сокращения до предложенного выше куска кода мне все равно кажется неприемлемым.
 
Redjik, ОК. Просто в моём случае ошибка нам не особо интересна, что бы не произошло. Место критичное по производительности. Случай не единичный.
 
Не должно быть лишних инструментов. Не должно быть свободы. За несоблюдение соглашений по коду нужно бить в морду. За непринятие 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']. Нужно сразу бить по зубам.
 
Последнее редактирование:
Я с вами абсолютно согласен. (С) Легко давать в зубы на форуме.
Будете очень долго искать сотрудников с такими понтами: и грамотность, и скурпулезность, и переменные чтоб называл по-твоему, и хотел сделать лучше, а по факту возьмете живого обычного человека. Один из 30 join напишет, и его берете. Пару раз "в зубы" - всем пока и спасибо за рыбу, а вы просрали все полимеры.
У меня паренек один, отличный математик и алгоритмист из пригорода, писал "пожайлусто", и переменные называл так же. Уволить его за это? Да щаз! :)

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