Возмем сферическую компанию в Москве из 10 человек. Всем купить SSD стоит 4к. Это стоимость двух недель работы одного программиста. За две недели можно прикрутить инкрементальную сборку. Эффект будет больше, чем от SSD.
На шестой пункт многие отвечают, особенно самоуверенные сеньоры, что тестирование — это не их задача и время они тратить не будут. Немного продвинутые напишут самый тривиальный тест. В итоге, на базе codereview, ошибка находится за первые 5 минут. Думаю, к тестированию тоже можно применить ту же фразу про пользователя-психопата, который знает, где вы живете.
Firewall с правильно настроенными правилами фильтрации спасает от таких Java-аплетов. Если передаваемые данные не шифруются, то их можно поймать и понять, что это контр-атака. Реальных анонимов, конечно, не раскрыть подсовыванием им трояна и воровством их кук.
Если ищем идеал, то openOutputStream() надо вызывать внутри try, так как сам метод openOutputStream, вначале получит outputStream, потом его вернет. Если между «получит» и «вернет» произойдет ошибка, то outputStream не закроется.
Используя в «Правильном решении» «catch (Throwable e)» и «closer.rethrow(e)», идет замена реального исключения на RuntimeException. Иногда так делать нельзя.
Те, кто постоянно говнокодят, не смогут сделать эволюционный рефакторинг в суперархитектуру. А те, кто смогут, никогда не говнокодят и пишут сразу нормальный код, и он работает даже без тестов.
>1. А сколько займет сделать этот раздел (дается ТЗ из одной строки)?
В большинстве своем это означает придумать решение какой-то проблемы и оценить его по срокам. На придумывание/оценку/согласование решения нужно время (1 час/день/неделя), а дальше видно будет. Чем опытнее программист и чем стандартнее проблема, тем быстрее он может выдать какое-то примерное решение и сказать вилку сроков реализации.
>2. Ты же ОБЕЩАЛ сделать за два дня, а прошла неделя! (моют мозг по сроку из пункта 1)
п1, не обещать точных сроков, обещать подумать как это сделать.
Если много платят, то дают самые сложные проекты/задачи/, и возлагают надежды, что ты их сделаешь/завершишь максимально быстро/правильно/удобно/гибко. Как-то так.
Распределение Пуассона моделирует случайную величину: если величина случайная, то можно строить распределение. Но если распределение Пуассона какой-то величины «невероятно точно соответствует реальности», то это не значит, что величина случайная. На этом ошибочном факте строятся все рассуждения. Можно, разве что, говорить о вероятности того, что величина случайна, но для этого должна быть большая выборка. В случае с акулами ее нет, в бомбами — более-менее.
В интернете не оплатить — есть sms-верификация. В банкомате не снять — нужно знать пин.
Между «получит» и «вернет» обычно всегда есть какой-то код, например, код конструктора: return new BufferedOutputStream(openOutputStream());
Используя в «Правильном решении» «catch (Throwable e)» и «closer.rethrow(e)», идет замена реального исключения на RuntimeException. Иногда так делать нельзя.
сайт лег, иммунитет не спас.
В большинстве своем это означает придумать решение какой-то проблемы и оценить его по срокам. На придумывание/оценку/согласование решения нужно время (1 час/день/неделя), а дальше видно будет. Чем опытнее программист и чем стандартнее проблема, тем быстрее он может выдать какое-то примерное решение и сказать вилку сроков реализации.
>2. Ты же ОБЕЩАЛ сделать за два дня, а прошла неделя! (моют мозг по сроку из пункта 1)
п1, не обещать точных сроков, обещать подумать как это сделать.