• Кто практикует code-review?

    gricom
    @gricom
    — Под ревью попадает весь код
    — Используем инструмент reviewboard
    — Перед любым коммитом дифф должен быть проревьюен. В reviewboard есть чекбокс «Ship it», который выставляется ревьюером, если у него нет замечаний. Если дифф не получил «Ship it», то он не может быть закоммичен
    — Результатом ревью является коммит, в комментариях к которому указан id ревью. Код, к которому есть незакрытые замечания на reviewboard не может быть закоммичен. Таким образом в репозиторий попадает только тот код, в котором устранены все замечания
    — Отслеживается очень просто — после устранения замечаний дифф для текущего ревью обновляется, поэтому каждый может увидеть, что его замечания учтены. Т.е. в репозиторий попадает именно тот дифф, который лежит на reviewboard.
    Ответ написан
    2 комментария
  • Кто практикует code-review?

    clamaw
    @clamaw
    — Ревьювится дифф одного или нескольких коммитов
    — Crucible (http://www.atlassian.com/software/crucible/overview).
    — Автоматизация в расмках crucible
    — Ревьювер оставляет замечания, они обсждаются в комментах к коду, правятся, коммитятся, добавляются в ревью и так пока не будет достигнут консенсус по всем вопросам.
    — Раньше был хук на коммит в транк (без id рувью в crucible в коммит-месадже нельзя было закоммитить код), сейчас что-то аналогичное применяем в гите.
    Ответ написан
    2 комментария
  • Кто практикует code-review?

    @cencio
    Когда использовали ревью то:
    -весь код(точней все изменения + тикет в Jira к которому код относился, в тикетах были не только баги, но и новые фичи) который комитился, кроме находящегося в «личном» бренче програмиста
    -дифиренсы остылались ревьюверу(емейл), еслы были замечания — правились и отсылались еще раз, пока не будет добро на комит.
    -есть инструменты, которые это автоматизируют, но ими не пользовались.
    Ответ написан
    Комментировать
  • Кто практикует code-review?

    «Какой код ревьювится?»
    — Который не дописан полностью или в который добавляются новые возможности.

    «Какие используете инструменты?»
    — Насколько понял вопрос, конкретных инструментов не используется. Периодически используется копия старого проекта для сравнения.

    «Как код попадает на review?»
    — см. пункт 1.

    «Как используются результаты review?»
    — Непонятный вопрос. Результаты идут в текущий вариант проекта.

    «Как отслеживается что замечания сделанные во время review были исправлены?»
    — Ведётся дневник проделанных работ, дневник последующих изменений, дневник существующих багов.
    Ответ написан
    Комментировать
  • Не соблюдение авторских прав или перепост и незачем тут шуметь?

    @antivir
    Уже обсуждалась тема.
    habrahabr.ru/qa/11165/
    Ответ написан
    Комментировать
  • Не соблюдение авторских прав или перепост и незачем тут шуметь?

    @bondbig
    Таких сайтов-сателлитов просто миллион. Сеошники, мать их.
    Ответ написан
    Комментировать
  • Arduino USB Shield примеры?

    Ocelot
    @Ocelot
    Совсем недавно тут, на Хабре, была статья — как специально для вас: Arduino + USB Host Shield + Android. Свяжитесь с автором, думаю, он вам поможет.
    Ответ написан
    1 комментарий
  • Идеологически правильный setter?

    Я так понимаю, у вас больше стоит вопрос когда и как проверять на валидность? Лично мне очень по душе концепция баррикад. Тем более если у вас это все глубоко в функционале. Просто фильтруйте входящие данные на ранних стадиях.
    Ответ написан
    1 комментарий
  • Идеологически правильный setter?

    blog.byndyu.ru/2009/10/blog-post.html
    Начать читать с 2. Валидация данных.
    ето для примера.
    Ответ написан
    3 комментария
  • Пара специфических вопросов по Java

    red1ynx
    @red1ynx
    Первая ссылка по запросу «java microphone capture»:
    docs.oracle.com/javase/tutorial/sound/capturing.html

    По запросу «java media processing»:
    java.sun.com/javase/technologies/desktop/media/
    Java Media Framework

    По запросу «java arduino»:
    www.arduino.cc/playground/Interfacing/Java

    Удачи.
    Ответ написан
    1 комментарий
  • Идеологически правильный setter?

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

    Subscriber::setEmail(EmailAdress val)

    А уже в сеттере самого класса EmailAdress сделать проверку.
    Ответ написан
    4 комментария
  • Идеологически правильный setter?

    Akson87
    @Akson87
    Все зависит от того, где этот сеттер доступен. Есть подход с разделением безопасных и небезопасных участков. Если у Вас в приложении есть UI и данные приходят из него, тогда код пользовательского интерфейса должен проверять корректность email, а сеттер должен устанавливать то, что ему дадут. Если же этот сеттер доступен пользователю или каким-то третьим лицам, тогда надо делать эту проверку внутри сеттера и тут уж надо смотреть на то, как реакция на ошибку обычно обрабатывается другими методами. Если везде исключения, пусть будут исключения, если везде возвращение False, то можно и так. Если же этот код только для разработчиков, то можно в дебаге делать assert, а в релизе кидать большое и страшное исключение (но только в случае, если некорректные данные приходят из-за кривой логики, пользовательский ввод должен проверяться задолго до этого).
    Ответ написан
    1 комментарий
  • Идеологически правильный setter?

    @gelas
    Проверять корректность должен.
    При этом он остается ответственным за одно действие — за установку именно email'a, а не произвольной строки.
    Поэтому и генерировать исключение при неправильных данных тоже должен.
    Метод же неспроста называется setEmail.
    Вы же не удивляетесь, что при попытке присвоить строку в integer поле получаете ошибку (вероятно даже компиляции).
    Здесь же происходит фактически тоже самое.
    Если говорить про идейность, то еще лучше сделать тип Email и проверки делать в нем. Но в обычном, а не идеальном коде, это почти наверняка будет излишним. Поэтому проверка в setter'e — хороший компромисс.
    Ответ написан
    Комментировать
  • Идеологически правильный setter?

    Sardar
    @Sardar
    > каждый метод должен быть ответственен за одно действие
    Не надо понимать все так буквально. Не стоит к примеру подключаться к базе, выбирать инфу, закачивать обратно результаты и сливать инфу в лог одной большой простыней в одной функции. Но это не значит, что каждую простейшую операцию (такую как присваивание) нужно выносить в отдельный метод.

    > а в нашем случае исключение кажется не совсем уместным
    Исключение говорит «я не могу выполнить команду», в данном случае не допускаем некорректный ввод. Не надо боятся и экономить на исключениях, это удобный механизм (вплоть до таких задач как остановить map(), но это уже вопрос вкуса). Не важно как глубоко «вложен» вызов до вашей функции/свойства, вы на самом деле этого не знаете и не можете знать.

    Да, ваш сеттер должен проверять ввод и присваивать значение, если оно съедобно, иначе генерить исключение.
    Ответ написан
    2 комментария
  • Как правильно осуществлять выбор зеркалки?

    SFx
    @SFx
    Друг купил Canon 600D с китовым 18-135. Мне удалось его пощупать некоторое время, так вот — впечатления самые положительные. одна лишь проблема: нечего фоткать. по сути такой девайс нужен только на время отпуска или какой либо поездки\мероприятия. все остальное время он лежит на полке (и хорошо если в сумочке и не пылится).
    На ту цену, которую мой друг заплатил, я прикинул — можно нанимать профессионального фотографа, каждый раз когда хочется просто хороших фоток — и это будет дешевле.
    В этот canon можно запихать кучу разных интересных прошивок, которые будут делать очень интересные эффекты, но по сути все если находишься на работе с 8 до 20 и работа не связана с путешествиями, зеркалка становится не нужной. Я для себя решил, что покупка зеркалки — это инвестиции в полку :)
    Но всетаки раз решили покупать, поглядите на sony еще, знаю одного профессионального фотографа, который canonу и nikonу предпочитает альфы. говорит что ему больше нравится цветопередача у них.
    кстати, вам еще потребуется дорогой IPS мониторчик, чтобы не было мучительно больно за потраченные оранжевые бумажки из-за засветов и кривой цветопередачи…
    Ответ написан
    3 комментария
  • Как правильно осуществлять выбор зеркалки?

    deniamnet
    @deniamnet
    New Yorker, web developer
    Начинал с Nikon D5000 с китовым 18-55 VR.
    Потом прикупил 55-300 VR, мегавещь, правда, немного медленный в некоторых ситуациях.
    В будущем собираюсь сделать апгрейд до Nikon D700.
    Вообще, конечно, стоит упомянуть, зачем покупается камера, что собираетесь снимать и так далее. Потому что снимать людей в студии и снимать природу в различных условиях — совершенно разные вещи.
    Ответ написан
    1 комментарий
  • Проектирование БД

    gennad
    @gennad
    ====intervals====
    id
    company_id: INT
    start: DATETIME
    end: DATETIME
    type_id: Foreign key to events

    ====events====
    id: PK
    type_name: CHAR
    is_work_time: BOOLEAN


    Запрос будет примерно такой:
    SELECT TIMEDIFF(end, start) as diff FROM intervals SORT BY diff;
    Ответ написан
    Комментировать
  • Как правильно осуществлять выбор зеркалки?

    Ogra
    @Ogra
    Если решите брать кит, то берите Nikon D90, с объективом 18-105.
    Ответ написан
    3 комментария
  • Как правильно осуществлять выбор зеркалки?

    @airmile
    начинал с канон 350д + кит
    со временем понял, что кита не достаточно как заметил выше у кенона киты так себе. поэтому теперь я всегда советую, что бы было максимально выгодно и практично брать только тело, где нибудь на ебай, и покупать отдельно линзу, посмотрите в сторону линз от SIGMA 17-70mm цена\качество снимков очень хорошее.
    если не нужно видео (например я не снимаю видео) по можно глянуть и предыдущие модели, так как матрица одинаковая везде APC-S и снимая в RAW разницы не будет )
    Ответ написан
    1 комментарий
  • Как правильно осуществлять выбор зеркалки?

    gmist
    @gmist
    Если это первая покупка камеры со сменным объективом, то однозначно брать кит, стандартный 18-55 — это типичные фокусные расстояния почти для всех производителей под кроп-матрицы, что дает в эквиваленте полнокадровых что-то около 24-70 (увы, но бюджет не вытянет даже весьма потрепанного полнокадроваго бу, если только совсем старые и поношенные модели). Если есть возможность, то стоит взять дабл-кит — 18-55 + 55-200 + сам фотоаппарат. Уже потом, спустя полгода, можно будет сделать вывод о ваших любимых фокусных расстояниях и задумываться о покупке фиксов.

    Как бывший владелец NEX-5 могу сказать одно — беззеркалки хороши, даже очень хороши, но только до момента, пока фотография остается эпизодическим занятием. Дело в том, что потом захочется иметь объективы с другим фокусным, например 70-400, чтобы устроить «охоту», или что-то типа 85/1.4 — 135/1.8 чтобы иметь в арсенале хороший портретник, или же захочется «ширик» и тут выясняется, что нужен переходник на A байонет, ибо среди выпускаемых под байонет E нет альтернативы. Потом оказывается, что с этим переходником + объективом, конструкция напоминает базуку и чрезвычайно неудобна в эксплуатации — объективы тяжелые, перевешиваю, норовят вырвать байонет из фотоаппарата и удержать эту связку одной рукой рукой почти невозможно. Поэтому, если есть хоть малейший шанс, что это все перерастет в нечто большее, чем съемка пару раз в году, то не стоит рассматривать беззеркалку — парк объективов слишком мал (пока мал — Сони/Тамрон планируют в 2012 значительно его расширить, но что это будут за стекла, какие они будут давать картинки — это вопрос). Лично у меня NEX-5 лежал без дела (при покупке думал, что он будет прекрасным дополнением, фотоаппаратом на каждый день, а на деле оказалось, что на каждый день удобнее таскать тонкую пыле-влагозащищенную мыльницу TX-5) и я его успешно задарил знакомым.
    Ответ написан
    3 комментария