Пользователь пока ничего не рассказал о себе

Достижения

Все достижения (5)

Наибольший вклад в теги

Все теги (54)

Лучшие ответы пользователя

Все ответы (112)
  • Как эффективно использовать GIT одному человеку в разных проектах?

    @heahoh
    Full stackoverflow developer
    Посмотрите на SourceTree: разделение на проекты, ветки под фичи и баги да и вообще удобный и приятный в использовании GUI для Git. И почитайте про git flow
    Ответ написан
  • Почему Yii/Yii2 не подходит для крупных проектов?

    @heahoh
    Full stackoverflow developer
    Есть крупный проект на Yii1, порядка 500 моделей и 300 контроллеров и 2000 вьюх. Изменений в фреймворке не делалось, при необходимости создавались наследники которые и используются по проекту вместо стандартных компонентов фреймворка. Бывают встречаются небольшие проблемы связанные с говнокодом и большим объемом данных (изменение afterFind модели, к примеру, с необоснованным использованием связей AR), которые приводили к тормозам, но это редко. Собственно, правильно спроектированный проект избавляет от многих проблем говнокода. К сожалению, не использовал другие php-фреймворки в энтерпрайзе и сравнить удобство использования не могу
    Ответ написан
  • Код ревью или что не так с моим тестовым заданием?

    @heahoh
    Full stackoverflow developer
    Мнение относительно оформления, так как скилзами в java не обладаю, - код, конечно, пишется для машины, и ей без разницы, как он написан - лишь бы работал, но читать человеку и разбираться для сопровождения и расширения функционала - человеку.

    adapter/TaskListAdapter.java
    public boolean areItemsTheSame(Task item1, Task item2) {
                    return !(item1 == null || item2 == null) && item1.getId() == item2.getId();
                }

    Если не (item1 или item2 равны null) и id итемов одинаковы...
    Как я понимаю, если в метод передать item1 = null, то у вас будет nullPointerException или что-то подобное?
    Почему бы не изменить конструкцию на item1 != null && item2 != null && item1.getId() == item2.getId(), мне кажется будет читабельней. Возможно покажется глупым использовать длинные названия переменных, вроде originalTask и taskToCompare, но они явно лучше, чем item1 и item2, да и автокомплит IDE поможет в наборе названий

    Тернарный оператор внутри if пугает также, как и if без открытия скобок
    model/Task.java
    if (ActualEndDate != null ? !ActualEndDate.equals(task.ActualEndDate) : task.ActualEndDate != null)
                return false;

    Поясню - замыленный глаз, конец рабочего дня и голова совсем не варит. Нужно срочно закрыть таску - открываем код и видим необходимый участок, который собираемся закомментить
    ...
    if (длинное условие)
                doSomething();
    doAnotherThing();
    ...


    ...
    if (длинное условие)
    //            doSomething();
    doAnotherThing();
    ...

    и теперь наш doAnotherThink выполняется не всегда, а лишь при выполнении условия.
    Вот пример такой ошибки в реальном проекте (пункт "Неправильно закомментированная строка")

    Ну и
    result = 31 * result;
    Где 31 используется несколько раз. По мне удобней завести локальную переменную с адекватным значению названием.

    Почитайте "Совершенный Код" Макконнелла - шикарнейшая книга для разработчиков
    Ответ написан
  • Бывало ли у вас, что скрипт на php подвисает на несколько минут просто так?

    @heahoh
    Full stackoverflow developer
    Пока логов не будет - это все гадание на кофейной гуще. Обложите путь выполнения скрипта трэйсами, посмотрите в чем дело - быть может поймали лок в бд или внешний сервис долго отвечает на запрос. Плюс выглядит так, что while(true) можно поменять на запуск по крону - говорят php рожден, чтобы умирать
    Ответ написан
  • С какой версии начинать изучение PHP?

    @heahoh
    Full stackoverflow developer
    Судя по сроку поддержки версий следует начинать с PHP7. Однако знать отличия версий PHP5.4+ стоит из-за огромного количества написанного legacy-кода, который еще долго будет поддерживаться компаниями
    Ответ написан

Лучшие вопросы пользователя

Все вопросы (9)