Запуск проекта с использованием новой технологии или языка


есть ли у вас какие-либо рекомендации, когда вы начинаете работать над проектом с использованием технологии или языка, с которым вы никогда не работали раньше ?

вы просто идти вперед с тем, что вы знаете, и получить, чтобы узнать больше, как препятствия приходят или у вас есть какие-либо предварительные шаги вы всегда пройти ?

вопрос в том, какие дополнительные меры вы принимаете по сравнению с работой на известный предмет.

EDIT: И на точку управления как бы вы справились с этим делом ?

  • как вы оцениваете время проекта ?
  • вы предпочитаете назначать опытных программистов (более неудобный проект) или вы предпочитаете назначать молодых (кто бы это ни был, им все равно придется учиться)?

все тот же вопрос действительно ли вы обрабатывать эти проекты по-разному ?

24 57

24 ответа:

мой предпочтительный подход к оценке технологии заключается в использовании следующих шагов:

  • определить должны иметь функции решите, какие наиболее важные функции, которые вам нужны от технологии. Это формирует ваши критерии принятия.

  • исследование технологии чтобы получить первое впечатление. Вы ищете информацию, такую как стоимость, принятие сообщества, зрелость, функции, проблемы лицензирования, совместимость с помощью существующего программного обеспечения

  • сделать относительное сравнение. Определите небольшое приложение "домашнее животное", которое вы знаете наизнанку. Преимущество этого заключается в том, что вам не нужно думать о требованиях, и вы реализовали его перед использованием технологий, которые вы уже понимаете. Выберите приложение "pet", которое попадает в основные точки реализации ваших типичных проектов. Например, вы увидите, что многие разработчики веб-приложений реализуют простой блог двигатель, как способ оценки или демонстрации технологии. Клиенты Twitter также были в моде в последнее время.

  • избегайте отвлекающих факторов ключ к эффективной оценке должен быть сосредоточен и не позволять себе увязнуть с периферийными проблемами. Например, не беспокойтесь о CSS-макете графического интерфейса, если ваша задача оценки-посмотреть на веб-фреймворк. Иногда лучше всего ставить оценочные задачи timebox, чтобы заставить себя сосредоточиться что вы можете реально достичь.

в большинстве случаев я просто пишу программу, которую я написал на других языках и которая не дает мне головной боли с концептуальной точки зрения. Для меня это нейронная сеть, другие используют простые raytracers или что-то еще.

затем вы видите, что трудно о языке и где вещи отличаются от того, что вы знаете. Просто не начинайте с самого проекта сразу.

Я всегда держу блокнот под рукой.

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

Как правило, вы сначала исследуете, подходит ли эта технология для вашего проекта вообще.

Если это так, вы идете вперед и начинаете проект, проходя через препятствия, как вы идете.

самое важное здесь-определить потенциальные проблемные случаи, сомнения, которые у вас есть в отношении технологии, и решить их с приоритетом. Может ли он взаимодействовать с другой технологией, поддерживает ли он какой-либо протокол, можете ли вы реализовать желаемую архитектуру с ним, достаточно ли он работоспособен в определенных случаях. Идея состоит в том, чтобы сначала определить, может ли корабль (ваш продукт) двигаться вообще, прежде чем вы начнете полировать корпус, чтобы вы не вкладывали слишком много времени и усилий в то, что может не сработать в конце концов.

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

Я запускаю новый документ Google Docs под названием "XXXX Bible", где XXXX-это новая технология, о которой идет речь. Тогда каждое маленькое препятствие или трюк или gotcha входит в это.

всегда, всегда читайте эквивалентные" Привет мир " учебники и двигаться дальше оттуда.

Я обычно подхожу к этому на двух фронтах, параллельно.

  1. прочитайте хороший / рекомендуемый учебник или книгу по этому вопросу.
  2. начните реализовывать небольшие функциональные фрагменты, относящиеся к вашему приложению/проекту, снизу вверх, на этом новом языке и технологии. Это "исследовательское Программирование", вы будете использовать много гуглить здесь, и читать некоторый код, написанный другими, чтобы понять, как все работает

наличие двух параллельных средств вы выиграете как от теоретического, так и от практического, и будете меньше скучать. Ни то, ни другое нельзя пропустить, ИМХО. Многие спешат на код, не читая, и это обычно приводит к плохой не-идиоматические код.

практика сначала с" hello world " учебник является очень хорошей отправной точкой.

более того, чтобы получить большую его часть, я всегда стараюсь ответить на вопрос: почему это делается так, а не так?

моя цель состоит в том, чтобы получить философию технологии, чтобы выяснить общую картину и намерение создателя, т. е., какую проблему решает его технология.

для меня важно помнить, что вы не должны знать все это сразу.

Я начинаю смотреть на маленькие кусочки, пока не пойму их-тогда посмотрите на большие куски.

Я также смотрю на общую картину-тогда я иду в более подробно.

в определенный момент они должны встретиться (я надеюсь!), и все это становится на свои места.

мой обычный подход заключается в том, чтобы начать работать над небольшими частями системы, чтобы получить понимание-как я работаю о нем и взаимодействии с другими частями я узнаю все больше и больше. Это верно для использования новой технологии, начать с основ, а затем двигаться дальше.

недавно я начал новый проект с использованием Wicket и postgreSQL. оба из которых я никогда не использовал раньше.

Я настоятельно рекомендую, как только вы освоите основы, если у вас есть какое-либо взаимодействие с другими технологиями (такими как DB), попробуйте практиковать интеграцию с ними. Это гарантирует, что вы найдете там также проблемы.

Это лучше для вас, чтобы решить эти проблемы в начале, так что вы знаете, что вы столкнулись, и можно планировать вокруг него, чем позже в вашем проекте, когда могут потребоваться значительные изменения.

Я бы сказал, что это в основном идет так:

  • читать как / форумы / ...
  • решить проблему (ведь это, вероятно, почему вы используете то, что вы не знаете)
  • через некоторое время и знания накапливаются ... РЕФАКТОРИНГ / ПЕРЕЗАПИСЬ ваш исходный код

разрешить много дополнительного времени!

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

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

всякий раз, когда мы получаем новый проект с новым языком или технологией, мы просто идем туда и берем некоторые книги и начинаем тестировать их шаг за шагом.

Я стараюсь читать на эту тему под рукой. Посмотрите на то, что когда-либо другие решения, которые доступны (потому что давайте посмотрим правде в глаза, как часто это не было сделано раньше?). Я тоже попробую поэкспериментировать с технологией, если это возможно.

Так же, как я бы начал проект на языке, который я уже знаю, за исключением того, что руководство будет немного ближе.

лучший совет, который я могу вам дать, - это проблемная область. Технология права для проблемы, которую вы пытаетесь решить?

Если на него был дан ответ и ответ да.

  1. делайте заметки, о которых упоминалось ранее.
  2. смотреть видео, я, как правило, узнать намного проще, когда вижу и понимаю, что делает человек.
  3. есть документация под рукой.

может быть, это немного выходит за рамки, но:

  1. вы должны решить о своем процессе разработки, который является довольно независимым от языка.

  2. Это будет включать в себя, как ваше тестирование будет сделано, а также

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

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

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

старайтесь не теряться слишком глубоко в вопросах, связанных с реализацией/инструментом когда это не критично, и принять лучшие практики и Конвенции рано, когда вы начинаете использовать новую технологию будет мой совет.

Энтони

Если вам нужно изучить несколько новых технологий (например, на данный момент я изучаю Entity Framework + ASP.Net MVC 2) Затем я предлагаю создать сквозную ссылочную реализацию. Попробуйте найти лучший способ его создания, а затем" скопировать " эту ссылку в другие области программы / веб-сайта и т. д.

Я бы начал с вопроса, Является ли использование новой технологии или языка хорошей идеей. Иногда может показаться очень важным использовать новейшие технологии в проекте, на который вы возлагаете большие надежды. Часто, когда меня соблазняли подобным образом, я обнаруживал, что последняя блестящая вещь так же несовершенна, как и технология, которую я уже знал.

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

читать и учиться что-то не очень хороший способ. Любой из вас склонен забывать то, что Вы читаете. Так что я всегда начинаю с небольшой программы что-то вроде hello world и дать себе "хороший мальчик" похлопать по плечу только для повышения.
Затем начните искать блоги и читать о практиках, которые другие гуру обнаружили трудным путем. И запишите это в блокнот под названием технологии или языка. Также напишите короткую строку о том, почему ссылка сохранена, чтобы я мог вернуться назад если понадобится. Также поставьте звезду после одного лайнера, если его что-то связано с проектом, который я должен начать.
Следующим шагом будет настройка базового проекта, начиная с задания под рукой. В промежутках ссылайтесь на язык doc как можно больше, чтобы я читал и пробовал вещи.

для меня всегда подход проб и ошибок работал хорошо. Я читаю некоторую базовую информацию о новом языке / технологии, но после этого, если я не намочу руки и ноги в технологии, я обычно не узнаю много. Я не уверен, что это хорошая практика, но так я учусь.

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

Do шипы по мере необходимости, чтобы понять новые технологии. Это можно сделать как обучающие тесты (модульные тесты) для сохранения знаний.

при попытке выучить новый язык, я бы порекомендовал скрывается на IRC. Многие из основных языков и технологий имеют каналы на freenode и просто смотреть, что люди говорят о Является отличным способом, чтобы узнать о аспектах, которые вы, возможно, даже не рассматривали при выполнении вашего собственного чтения учебника или книги по этому вопросу.

конечно IRC будет отличным местом, чтобы задавать вопросы, когда вы начинаете сталкиваться с препятствиями, однако я рекомендую поставив все эти вопросы на бумаге и оставить их, делая больше исследований. Часто требуется некоторое время, чтобы эти незнакомые термины и синтаксис встали на место в вашем мозгу и смогли вернуться и вычеркнуть или переоценить любые предыдущие проблемы, которые вы имели, я считаю очень полезными.

когда дело доходит до языков, есть одна вещь, я могу сказать:

Если использование языка действительно стоит того, чем весь код, который вы напишете в течение первых 6 месяцев, будет дерьмом, измеряемым тем, что может сделать язык ... есть важное правило, которого нужно придерживаться: не пытайтесь использовать идиомы, которые вы знаете из других мест в этом новом языке, и жаловаться, если язык не поддерживает его ... скорее попытайтесь получить обзор особенностей языка и распространенных идиом, и постарайтесь сосредоточиться на выражении решений, используя их ... попробуйте новые подходы, продвигаемые этим языком ... в противном случае ваш выбор для переключения языков бессмыслен.