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

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

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

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

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

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

По-прежнему остается тот же вопрос, что вы справляетесь с этими проектами по-разному?

Ответ 1

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

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

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

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

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

Ответ 2

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

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

Ответ 3

Я всегда поддерживаю записную книжку.

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

Ответ 4

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

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

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

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

Ответ 5

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

Ответ 6

Всегда, всегда читайте эквивалентные учебники "Hello world" и переходите оттуда.

Ответ 7

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

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

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

Ответ 8

Практика с помощью учебника "hello world" - очень хорошая отправная точка.

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

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

Ответ 9

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

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

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

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

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

Ответ 10

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

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

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

Ответ 11

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

  • прочитайте инструкции/форумы/...
  • решить проблему (ведь возможно, именно поэтому вы используете то, что не знаете)
  • через некоторое время и накопленные знания... РЕАКТОР /REWRITE ваш исходный код

Ответ 12

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

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

Ответ 13

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

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

Ответ 14

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

Ответ 15

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

Ответ 16

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

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

  • Делайте заметки, о которых упоминалось ранее.
  • Смотрите видеоролики, я стараюсь учиться намного легче, когда вижу и понимаю, что делает человек.
  • Подготовьте документацию.

Ответ 17

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

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

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

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

  • Попробуйте найти некоторые рекомендуемые книги и иметь высокие рейтинги в электронных книжных магазинах

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

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

Энтони

Ответ 18

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

Ответ 19

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

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

Ответ 20

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

Ответ 21

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

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

Ответ 22

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

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

Ответ 23

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

Ответ 24

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

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