ФорумПрограммированиеPHP для идиотов → Плохой тон

Плохой тон

  • Абырвалг

    Сообщения: 6480 Репутация: N Группа: Джедаи

    Spritz Дек. 22, 2010, 11:35 д.п.

    Профи, расскажите о плохом тоне при программировании на пыхе. Желательно с описанием, почему это плозо. Например: определять конструкторы в интерфейсах. Или это не плохо?

    Или вот когда-то @NRG писал о передаче по ссылке в приватный метод.
  • Mars

    Сообщения: 304 Репутация: N Группа: Кто попало

    Spritz Дек. 22, 2010, 11:39 д.п., спустя 3 минуты 51 секунду

    интерфейсы не нужны в пхп
  • NRG

    Сообщения: 4761 Репутация: N Группа: в ухо

    Spritz Дек. 22, 2010, 11:48 д.п., спустя 9 минут 24 секунды


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

    Сообщения: 26646 Репутация: N Группа: в ухо

    Spritz Дек. 22, 2010, 12:08 п.п., спустя 20 минут 25 секунд


    интерфейсы не нужны в пхп
    нуб
    Сапожник без сапог
  • kostyl

    Сообщения: 5210 Репутация: N Группа: Джедаи

    Spritz Дек. 22, 2010, 1:17 п.п., спустя 1 час 8 минут 29 секунд

    определять конструкторы в интерфейсах

    тут надо определить что есть "плохой тон"… а потом посмотреть какие категории можно определить в php
  • Frozzeg

    Сообщения: 5641 Репутация: N Группа: Джедаи

    Spritz Дек. 22, 2010, 1:25 п.п., спустя 8 минут 1 секунду

    Например: определять конструкторы в интерфейсах. Или это не плохо?

    в C# например так делать нельзя)
    You can be anything you want to be. Just turn yourself into anything you think that you could ever be.
  • kostyl

    Сообщения: 5210 Репутация: N Группа: Джедаи

    Spritz Дек. 22, 2010, 3:34 п.п., спустя 2 часа 8 минут 41 секунду

    в C# например так делать нельзя)

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

    ))))
  • Абырвалг

    Сообщения: 6480 Репутация: N Группа: Джедаи

    Spritz Дек. 22, 2010, 3:44 п.п., спустя 10 минут 34 секунды


    public sealed class Singleton : ISerializable
    {
    private static readonly Singleton theOneObject = new Singleton();
    }

    отэта у вас такую хуйню можно проворачивать при описании класса? не внутри метода а просто так сплошняком. В пыхе только скаллярные значения можно так ассигнить + константы
  • kostyl

    Сообщения: 5210 Репутация: N Группа: Джедаи

    Spritz Дек. 22, 2010, 3:54 п.п., спустя 9 минут 42 секунды

    Вот допустим спорный момент. Является ли плохим тоном не ставить структурные знаки в структурах поддерживающих их? Например:
    $i = 10;
    while (i)
    i -= 2;

    Этот вариант сразу отпадает, т.к. он плохо оформлен и декларирует ошибку при рефакторинге

    $i = 10;
    while (i)
    i -= 2;

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

    $i = 10;
    while (i)
    {
    i -= 2;
    }


    Этот вариант тоже хорошо оформлен. Я ни вижу в нём недостатков.

  • NRG

    Сообщения: 4761 Репутация: N Группа: в ухо

    Spritz Дек. 22, 2010, 4:05 п.п., спустя 10 минут 42 секунды

    kostyl, последний вариант нормальный, только я бы поднял открывающую скобку на ту же строку что и while
  • Frozzeg

    Сообщения: 5641 Репутация: N Группа: Джедаи

    Spritz Дек. 22, 2010, 4:17 п.п., спустя 12 минут 21 секунду

    отэта у вас такую хуйню можно проворачивать при описании класса?

    можно
    You can be anything you want to be. Just turn yourself into anything you think that you could ever be.
  • Абырвалг

    Сообщения: 6480 Репутация: N Группа: Джедаи

    Spritz Дек. 22, 2010, 4:19 п.п., спустя 2 минуты 7 секунд

    {} всегда ставлю
    а еще я привык декларировать пустые массивы перед их заполнением
    Спустя 75 сек.
    мне читабельнее по другому

    +1

    можно

    это как-то некрасиво. Где же дуд, восхвалающий сишарп и в то же время ругающий первичную инициализацию значений свойств вне конструктора?
  • master

    Сообщения: 3244 Репутация: N Группа: Джедаи

    Spritz Дек. 22, 2010, 6:59 п.п., спустя 2 часа 39 минут 48 секунд

    плохо когда функция возвращает разные типы данных в зависимости от контекста или входных данных
    чуть мнее плохо когда функция принимает разные типы данных
    не всё полезно, что в swap полезло
  • master

    Сообщения: 3244 Репутация: N Группа: Джедаи

    Spritz Дек. 22, 2010, 7:07 п.п., спустя 8 минут 11 секунд

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

    в пыхе делаю так
    $entry->getIssues();

    или все булевые методы оканчиваются знаком "?"
    word.real?

    в пыхе начинаю булевые выражения с is_
    $word->is_real;
    $word['is_real'];
    if ($is_real) { … }
    не всё полезно, что в swap полезло
  • Абырвалг

    Сообщения: 6480 Репутация: N Группа: Джедаи

    Spritz Дек. 22, 2010, 7:08 п.п., спустя 48 секунд

    воот. Это уже интересней. Допустим есть $db->query(); Возвращает Database_ResultAbstract|int (кол-во затронутых рядов/вставленный ИД). Как сделать иначе? Добавить методы $db->queryUpdate(), $db->queryInsert(); ?
    Спустя 46 сек.
    is тоже использую, но camelCase-style

Пожалуйста, авторизуйтесь, чтобы написать комментарий!