Ответы пользователя по тегу Программирование
  • Какой материал для изучения алгоритмов вы можете порекомендовать?

    @svsanek
    На coursera отличный курс Седжвика. https://www.coursera.org/instructor/~211
    Вообще круто рассказывает. С наглядной демонстрацией. На курсе есть форум с тонной проблем и решений. Короче - рекомендую
    Ответ написан
    Комментировать
  • Как организовать работу удаленных программистов?

    @svsanek
    Из личного опыта - много работал сам удаленно, сам нанимал людей. Больше всего понравилось как работают американцы.
    1. Все проекты на github либо bitbucket. Баг трекер там же
    2. Каждой задаче дается оценка и за оплачивается только оценка. Т.е. ты сказал, что сделаешь за 4 часа - заплатят только за 4-ре часа и не кого не волнует сколько ты провозился.
    3. Задачи дробят до самого маленького уровня. По каждой задаче все обсуждения через коменты к задаче. Никакого скайпа.
    4. Каждый час-два пинг "как дела? на каком этапе?". Пропал больше чем на 2 дня - уволен.

    Итого:
    - Возможно ли найти ответственных и самостоятельных людей?
    да
    - Каким образом следует контролировать сотрудников?
    Регулярно пингуй. Требуй решения задач в срок. Если пропал больше чем на два дня - проще избавиться и найти нового (я так за одним долго бегал). Лог задачи веди в коментах к этой задаче.
    Если ли смысл использовать тайм-трекеры на ПК работников?
    бессмысленно
    - Как начислять ЗП? Использовать фикс. ЗП / оплачивать позадачно / почасово?
    Давай оценить задачу, сам прикинь сколько в часах ее делать. Договоритесь, что на эту задачу столько-то часов. Плати только за часы. Ты не крупная компания, которая может оплачивать перекуры и болтовню за кофе.
    - Сколько в среднем платить удаленному PHP-программсту средней квалификации (junior / middle)?
    Есть знакомый - очень хороший PHP-девелопер (больше 5 лет стажа только удаленной работы) - берет от 750р за час. Посмотри по фриланс площадкам - сколько ребята просят за час.
    Ответ написан
    7 комментариев
  • Насколько полезен Hibernate? Сильно ли он упрощает работу?

    @svsanek
    Смотри. Что дает Hibernate - мапинг объектов на реляционную базу. И тут сразу куча вопросов - а как отображать ООП на реляционную модель (где нет наследования, инкапсуляции, полиморфизма). Отсюда много сложностей. Еще возникают такие вопросы - ты получил объект из базы, передал его в какой-нибудь UI - там 10 раз поменяли одно и то же поле - так 10 раз делать апдэйт базы или один? Хайбернейт должен догадаться или программист ему подсказать. Отсюда появляются всякие циклы жизни сущности, кэши и куча всякой дополнительной головной боли. Это если не касаться наследования, отношений один к одному, многие ко многим.
    Мой вердикт - хайбернейт несет много дополнительной нагрузки - не зря по нему столько книг написано.
    Но у него есть и плюсы

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

    Итак плюсы
    1. Ты продолжаешь работать с объектной моделью и забываешь про все эти 100000+ строк sql запросов.
    2. Тебе легко добавлять новые сущности, рулить транзакциями, про оптимизацию думают за тебя (кэши)
    3. Ты вообще забыл что такое джойны и по каким полям. Ты начинаешь верить в волжебство. Квэри билдеры просто сумасшедшие. А на груви код в одну строку просто сводит с ума!
    4. У тебя реально много таблиц (сущностей)
    5. Ты познал хайбернейт и оформил код конвеншн на проекте и вообще забыл, что такое проблемы

    Минусы
    1. Если у тебя 2 таблицы - нафига тащить тонну сложностей в свой проект. Посмотри книги по хайбернейту. Книга только по одной технологии джава. Целая книга!!!
    2. Ты должен четко понимать цикл жизни сущности. Когда она в сессии, когда нет, как она попадает в сессию, что с кэшем, а если у сущности релейшеншипы, а если лэйзи лоадинг. Просто тонна всего.
    3. Ты понимаешь, что ты перестаешь рулить запросами - и что-то оптимизировать нереально сложно. Что в sql правиться одной строчкой - используя хайбернейт неудивительно если ты перепишешь всю иерархию наследования с попутным рефакторингом контроллеров, юйа и т.д.
    4. В один момент ты можешь понять, что пропустил тему с лэйзи лоадингом и начал класть на лопатки оракл. А знающие люди подскажут сколько стоит это поправить.
    5. И да. Если тебе нужен перформанс - пиши запросы сам. ORM тут явно не подойдет.

    По-этому - просто составь табличку плюсов и минусов и реши.
    Хайбернейт крут, только когда он обоснован
    Ответ написан
    Комментировать