Классическим решением является свой NuGet-репозиторий. При первом запуске происходит авторизация и скачиваются пакеты (с учетом всех зависимостей). Потеря 2-3 минут единоразово не критична.
Можно хранить пакеты и с исходным кодом — есть плюсы и минусы такого решения. В таком случае у вас уйдет больше времени на постоянное обновление папки с пакетами (в итоге может даже больше потеряете).
А вы NuGet используете только для внешних библиотек, или и для своих? У вас есть свой (внутренний) репозиторий-NuGet для пакетов, или храните их вместе с исходниками?
1. Я в эти 10 минут включил и смену потока. Скопировать одну строчку и поменять два значения в новой строчке не занимает более 1й минуты работы
Для правильных языков (.Net, Java) вы сначала достаете из репозитория нужну ветку (1-2 мин.), открываете проект в студии (до 5 мин, если большой проект), находите эту страницу, исправляете (1-2 мин.), компилите, запускаете, проверяте что все работает (до 5 мин.), коммитите изменения в репозиторий (1-2 мин.), деплоите новую версию на сервер (если вы имеете права — 1-2 мин., при этом сайт будет не доступен.).
Итого, для сайта на .Net (на Java будет то же самое) — от 14 до 18 минут только изменение, без учета смены контекста.
Вопрос, сколько изменений можно вносить руками, чтобы это наконец стало затратным? Ответ: 234
Два момента:
1. Это только кажется «10 минут». Вы отвлекаете программиста, выводите из контекста. Потом он пойдет пить кофе, т.к. не сможет сосредоточиться.
2. Хороший архитектор это не тот, кто делает сам каждый кирпичик. Вполне можно не клепать самим HTML-меню а купить готовое. Я однажды пришел к выводу, что делать контрол под проект — практически всегда плохая идея. Хорошее меню — уже отдельный проект на несколько месяцев работы.
На мой взгляд, при минимальном планировании, такие вещи как меню изменяются не часто. Предварительно нужно продумать все «за» и «против», сделать прототип, оценить…
Так что в данной ситуации, похоже, конкуренты имеют преимущество.
У конкурентов начинается срач между ведущими, которым жалко менять спроектированное меню и две недели крутого правильного программирования, плюс у них замылен глаз. В итоге мы получили две недели времени.
А что было бы, если бы в этой конкретной ситуации трехуровневое меню оказалось правильным выбором?
Конкуренты экономят уйму времени, т.к. их меню обновлялется автоматически. А вы бы тратили драгоценное время своих программистов на «Вась, а ну добавь как еще один подпункт для сковородок...». И ведь признайтесь — раз оно работает, то лень было бы делать правильную архитектуру, вроде проще руками добавить пару пунктов…
Если уж Вы следуете каким-то принципам, то следуйте им с самого начала, не думая, что по первости можно и без них обойтись
А разве я не об этом написал? Некоторые сразу делают качественно (TDD — это признак качественной работы). Другие же стремятся сделать чем быстрее и дешевле, не взирая на качество.
Кто прав а кто нет — вопрос не однозначный. Строго говоря, не всем людям нужно качество. Кто-то любит дорогую и качественную обувь, которую комфортно носить (за $300-500), а кто-то дороже $20-50 ничего в жизни не обувал. И что лучше: делать качественную обувь или ширпотреб?
2 диаметрально противоположных мнения по данному вопросу:
1. Одна группа громко доказывает, мол нужно писать как можно быстрее без учета качества. А уж потом, когда проект взлетит, наймете того лоха, который оказался в жопе, пока вылизывал свой код.
2. Мысли второй группы изложены в статье.
Хотелось бы конкретики, а именно исследования реальных стартапов, как они делались.
Я не специалист, но похоже, когда вы о чем-то думаете, оно попадает в фоновую программу. И потом, когда вам нужно начать, фоновые программы вступают в конфликт (что-то типа dead lock), и вы не можете начать.
Спасибо за такое ценное наблюдение :)
Механизм действительно не до конца понятен, однако работает 100%.
Возможно проблема вот в чем: хочется погнаться за двумя зайцами. Но в глубине души понимаете, что и за одним то не просто угнаться (и времени и сил уйдет значительно больше, чем хотелось бы)… И вот эта внутренняя борьба: жадность говорит беги за двумя, разумный смысл говорит умерь свой аппетит и выбери одно. А всякая борьба (даже внутренняя) — это потеря и времени и сил.
Бывает хуже. Выбрал одно, но оно, по независящим от вас причинам, повисло. Ну ждете решения другого человека. Или ждете пока посылка дойдет. И это время ожидания, казалось бы, нужно использовать со смыслом (особенно когда ждать хрен знает сколько). А не получается… Ведь в любой момент ожидаемое событие наступит и придется бросить начатое недоделанным — 2 начатых дела на вашей шее будет висеть.
Я, было, загорелся идеей полной виртуализации рабочего пространства. Главная причина: переносимость между железом (как то сменил комп — не нужно тратить 2 дня на установку и конфигурацию софта).
Но, проверив разные варианты, пришел к выводу о малополезности данной затеи. Причины такие:
1. Железо. Моя проблема — на ноуте нет Intel VT и маловато памяти (всего 4 Гб). Чуток притормаживает даже без вирт. машины, покупать новый ради виртуализации пока смысла нет. Виртуализация отъест ~1 Гиг. памяти.
2. Как оказалось, операционная система обновляется чаще чем железо. Ноутом пользуюсь 5 год и за это время сменилось уже 3 версии операционки: Vista, 7, 8. Может доживет и до IX (хотя вряд ли, начал барахлить).
По этому, если вы используете современный софт, тратить время на переустановки все равно придется.
3. Восстановить систему быстрее всего с помощью ImageX и Windows PE. Образ диска вашей вирт. машины будет дольше копироваться, чем пройдет восстановление моего системного диска со всеми программами.
4. Переносимость между железом возможна и без вирт. машины (есть Sysprep /generalize). У меня, правда, такой необходимости не возникало, т.к. использую всегда один ноут (подключаю к монитору и клавиатуре).
Было бы выгодно, если бы не выпускали новые версии операционных систем. Настроил все раз в жизни — и пользуйся на любом железе до конца дней своих да еще и детям по наследству можно передать. Или если бы рабочаее пространство обновлялось не мной а предоставлялось мне третьей стороной для использования по подписке. Тогда бы не тратилось время на установки. А если поддерживаешь сам — то экономия времени сомнительна.
Договор был аннулирован, а аванс возвращён мне в виде премии.
Жестоко. Очень жестко. К вам пришел молодой специалист, а вы его так опустили да еще и, по сути, обобрали. Вы что не понимаете, что человек без опыта не может оценить сложность работы и продумать подходящую архитектуру? Тут с 10 годами опыта заявляют, что оценка сроков и стоимости — это задача менеджера, а не разработчика.
Loose переводится как «проиграть». «Лузер» — проигрывающий.
Как переводится, думаю, тут все знают. Но в психологии/медицине такого термина нет — каждый подразумеваент что ему вздумается. Вы что подразумеваете?
Если вы подразумеваете буквальный перевод (ака «проигрывать») — значит ли это, что вы советуете не сотрудничать с людьми, которые рискуют проиграть (вероятность успеха проекта не значительна)?
Присоединяюсь к вопросу. Поиск в wiki ничего не дал.
Если понятие алкаш, халявщик, псих и даже пофигист — более менее определены, то лузер — это что-то абсолютно эмпирическое. Того же Гитлера в начале его жизненного пути считали лузером, Тараса Шевченко…
Поясните более конкретно кто подпадает под эту категорию людей и с кем не нужно иметь дело? Вы имели в виду несостоятельного человека или кого?
Можно хранить пакеты и с исходным кодом — есть плюсы и минусы такого решения. В таком случае у вас уйдет больше времени на постоянное обновление папки с пакетами (в итоге может даже больше потеряете).
Ну а почему одни люди носят обувь за $300-500, а другие дороже $20-50 ничего в жизни не обували?
Это высший класс. Да, технологии дорогие, но есть люди, которые не гонятся за дешивизной. И мне приятнее работать с такими людьми.
Для правильных языков (.Net, Java) вы сначала достаете из репозитория нужну ветку (1-2 мин.), открываете проект в студии (до 5 мин, если большой проект), находите эту страницу, исправляете (1-2 мин.), компилите, запускаете, проверяте что все работает (до 5 мин.), коммитите изменения в репозиторий (1-2 мин.), деплоите новую версию на сервер (если вы имеете права — 1-2 мин., при этом сайт будет не доступен.).
Итого, для сайта на .Net (на Java будет то же самое) — от 14 до 18 минут только изменение, без учета смены контекста.
Два момента:
1. Это только кажется «10 минут». Вы отвлекаете программиста, выводите из контекста. Потом он пойдет пить кофе, т.к. не сможет сосредоточиться.
2. Хороший архитектор это не тот, кто делает сам каждый кирпичик. Вполне можно не клепать самим HTML-меню а купить готовое. Я однажды пришел к выводу, что делать контрол под проект — практически всегда плохая идея. Хорошее меню — уже отдельный проект на несколько месяцев работы.
Так что в данной ситуации, похоже, конкуренты имеют преимущество.
А что было бы, если бы в этой конкретной ситуации трехуровневое меню оказалось правильным выбором?
Конкуренты экономят уйму времени, т.к. их меню обновлялется автоматически. А вы бы тратили драгоценное время своих программистов на «Вась, а ну добавь как еще один подпункт для сковородок...». И ведь признайтесь — раз оно работает, то лень было бы делать правильную архитектуру, вроде проще руками добавить пару пунктов…
А разве я не об этом написал? Некоторые сразу делают качественно (TDD — это признак качественной работы). Другие же стремятся сделать чем быстрее и дешевле, не взирая на качество.
Кто прав а кто нет — вопрос не однозначный. Строго говоря, не всем людям нужно качество. Кто-то любит дорогую и качественную обувь, которую комфортно носить (за $300-500), а кто-то дороже $20-50 ничего в жизни не обувал. И что лучше: делать качественную обувь или ширпотреб?
1. Одна группа громко доказывает, мол нужно писать как можно быстрее без учета качества. А уж потом, когда проект взлетит, наймете того лоха, который оказался в жопе, пока вылизывал свой код.
2. Мысли второй группы изложены в статье.
Хотелось бы конкретики, а именно исследования реальных стартапов, как они делались.
Спасибо за такое ценное наблюдение :)
Механизм действительно не до конца понятен, однако работает 100%.
Возможно проблема вот в чем: хочется погнаться за двумя зайцами. Но в глубине души понимаете, что и за одним то не просто угнаться (и времени и сил уйдет значительно больше, чем хотелось бы)… И вот эта внутренняя борьба: жадность говорит беги за двумя, разумный смысл говорит умерь свой аппетит и выбери одно. А всякая борьба (даже внутренняя) — это потеря и времени и сил.
Бывает хуже. Выбрал одно, но оно, по независящим от вас причинам, повисло. Ну ждете решения другого человека. Или ждете пока посылка дойдет. И это время ожидания, казалось бы, нужно использовать со смыслом (особенно когда ждать хрен знает сколько). А не получается… Ведь в любой момент ожидаемое событие наступит и придется бросить начатое недоделанным — 2 начатых дела на вашей шее будет висеть.
Я, было, загорелся идеей полной виртуализации рабочего пространства. Главная причина: переносимость между железом (как то сменил комп — не нужно тратить 2 дня на установку и конфигурацию софта).
Но, проверив разные варианты, пришел к выводу о малополезности данной затеи. Причины такие:
1. Железо. Моя проблема — на ноуте нет Intel VT и маловато памяти (всего 4 Гб). Чуток притормаживает даже без вирт. машины, покупать новый ради виртуализации пока смысла нет. Виртуализация отъест ~1 Гиг. памяти.
2. Как оказалось, операционная система обновляется чаще чем железо. Ноутом пользуюсь 5 год и за это время сменилось уже 3 версии операционки: Vista, 7, 8. Может доживет и до IX (хотя вряд ли, начал барахлить).
По этому, если вы используете современный софт, тратить время на переустановки все равно придется.
3. Восстановить систему быстрее всего с помощью ImageX и Windows PE. Образ диска вашей вирт. машины будет дольше копироваться, чем пройдет восстановление моего системного диска со всеми программами.
4. Переносимость между железом возможна и без вирт. машины (есть Sysprep /generalize). У меня, правда, такой необходимости не возникало, т.к. использую всегда один ноут (подключаю к монитору и клавиатуре).
Было бы выгодно, если бы не выпускали новые версии операционных систем. Настроил все раз в жизни — и пользуйся на любом железе до конца дней своих да еще и детям по наследству можно передать. Или если бы рабочаее пространство обновлялось не мной а предоставлялось мне третьей стороной для использования по подписке. Тогда бы не тратилось время на установки. А если поддерживаешь сам — то экономия времени сомнительна.
Жестоко. Очень жестко. К вам пришел молодой специалист, а вы его так опустили да еще и, по сути, обобрали. Вы что не понимаете, что человек без опыта не может оценить сложность работы и продумать подходящую архитектуру? Тут с 10 годами опыта заявляют, что оценка сроков и стоимости — это задача менеджера, а не разработчика.
С чего бы это? NoSQL-решения не используют файловых индексов?
Как переводится, думаю, тут все знают. Но в психологии/медицине такого термина нет — каждый подразумеваент что ему вздумается. Вы что подразумеваете?
Если вы подразумеваете буквальный перевод (ака «проигрывать») — значит ли это, что вы советуете не сотрудничать с людьми, которые рискуют проиграть (вероятность успеха проекта не значительна)?
Если понятие алкаш, халявщик, псих и даже пофигист — более менее определены, то лузер — это что-то абсолютно эмпирическое. Того же Гитлера в начале его жизненного пути считали лузером, Тараса Шевченко…
Поясните более конкретно кто подпадает под эту категорию людей и с кем не нужно иметь дело? Вы имели в виду несостоятельного человека или кого?