• Зачем нужны абстрактные классы (PHP)?

    У разных языков по разному. Например в Java можно реализовывать кучу интерфейсов, но нельзя реализовать множественное наследование не больше 3-ех наследников и с помощью интерфейсов решают это.

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

    Абстрактный класс нужен, когда нужно семейство классов, у которых есть много общего. Конечно, можно применить и интерфейс, но тогда нужно будет писать много идентичного кода.

    Пример: Абстрактный класс заведомо не будет запрошен как объект. К примеру абстрактный класс - Транспорт: Но все его наследники будут Автомобилем, краном, лодкой, самолет и т.д. Например вы заведомо знаете, что весь транспорт будет двигаться. И вы объявляете абстрактный метод(движение) в абстрактном классе, который нужен будет 100% всем наследникам т.е. без движения это уже не транспорт и новый наследник обязан будет реализовать это. В самом же абстрактном классе, есть другие поля и свойства, которые будут унаследованы. Ну например мощность двигателя(очень грубо), или то что их роднит.
    Ответ написан
    2 комментария
  • Как правильно работать на oDesk?

    jff
    @jff
    Автор блога и форума про фриланс jff.name
    Хоть вопрос и старый, решил все-таки написать свое мнение, для тех кто приходит с поисковиков.
    1) С 3G интернетом (500kb и большие пинги) работать будет неприятно, но вполне возможно, потому что частенько необходимо пообщаться с заказчиком по скайпу, а также обменятся большими файлами. Для веба это особенно важно, при работе с сайтом напрямую по ftp.
    2) Отказаться от работы можно без всяких последствия до старта контракта(то есть даже на этапе интервью и приглашения на работу от клиента можно отказаться без последствий). Если проект уже в процессе, то единственным правильным вариантом будет договорится с заказчиком, вернуть ему все деньги и попросить не ставить отзыв, многие идут на встречу. Плохой отзыв можно сильно повлиять на успешность, если он единственный, в противном случае все поправимо.
    3) Если получили много отрицательных отзывов, то стоит регистрировать новый аккаунт и впредь быть более осторожным и профессиональным, ведь плохие отзывы не ставят просто так.
    4) Большинство заказчиков с понимаем относятся к увеличению бюджета и сроков проекта, особенно если изначальное ТЗ было не идеальным(в большинстве случаев). Однако есть и дотошные и непонимающие заказчики, но их обычно легко определить еще на этапе интервью и не начинать с ними работать.
    5) Быть в онлайне постоянно не обязательно, обычно назначается время, например каждый вторник и четверг вечером для обсуждения текущего прогресса. Однако при релизе проекта или плотном взаимодействии с командой клиента нужно быть онлайн каждый день хотя бы несколько часов.
    6) Из личного опыта: работаю пару дней без отдыха, но зато потом 2-3 дня полностью отдыхаю и успеваю делать при этом несколько проектов параллельно. На мой взгляд у меня как фрилансера намного больше свободы, чем когда я работал в офисе.
    7) Обычно все баги учитываются в тайм трекинге и оплачиваются, но это надо заранее обговорить с заказчиком, чтобы не было недопонимания.
    8) Если лимит исчерпан то стоит доделать текущий milestone до логического конца и ставить перед клиентом вопрос ребром, либо увеличение квоты времени, либо отказ от проекта. Однако если вы заранее указали сроки и совсем в них не попали, то это скорее ваша вина и стоит работать бесплатно и в следующей раз быть осторожней.
    9) При фуллтайме работа на oDesk может приносить от 3-4k$ в месяц. Так что вывод очевиден.
    10) 1-2 дня задержки обычно не влияют, но профессиональные фрилансеры сразу ищут возможности сообщить об этом клиенту и если необходимо(баг исправить срочно) поработать через резервный канал (сосед или кафе).
    11) На мой взгляд лучше не брать долгосрочные заказы, пока точно не определитесь, хотите ли вы заниматься фрилансом полностью или нет. Усидеть на двух стульях не получится.
    12) Никакой лени нету у фрилансера. Наоборот даже. В офисе есть комманда, есть менеджер, на котором вся ответственность, а в фрилансе вы отвественно за любой свой косяк и это сильно дисциплинирует.
    13) Задания в фрилансе есть разные, от разработки алгоритма с сильным мат аппаратом, до набора текста с картинок. На не тупых программистов, хотя бы с начальным английским больше спроса чем предложения в данный момент.
    14) Наилучший вариант при форс мажоре и длительном отсутствии. Найти нового исполнителя заказчику и ввести его в курс дела.

    Больше информации можно найти в моем блоге про фриланс - jff.name
    Ответ написан
    1 комментарий