Вы получили какие-либо лучшие практики, начиная работать над проектом с помощью технологии или языка, с которым Вы никогда не работали прежде?
Вы просто продолжаете то, что Вы знаете и получаете для узнавания больше, когда препятствия прибывают, или у Вас есть какие-либо необходимые как условие шаги, которые Вы всегда проходите?
Вопрос на самом деле, что дополнительные меры были бы Вы брать по сравнению с работой над известным предметом.
Править: И на точке зрения управления, как Вы обработали бы тот случай?
Тем не менее тот же вопрос действительно Вы обрабатываете эти проекты по-другому?
Мой предпочтительный подход к оценке технологий является использование следующих шагов:
Определить обязательные функции Решите, что Наиболее важные функции, которые вам нужны от технологии. Это формирует ваши критерии принятия.
Исследуйте технологию , чтобы получить первое впечатление. Вы ищете информацию, такую как стоимость, принятие сообщества, погашение погашения, особенности, проблемы лицензирования, совместимость с вашим существующим программным обеспечением
делает относительное сравнение . Определите небольшое приложение «домашнее животное», которое вы знаете наизнанку. Преимущество этого заключается в том, что вам не нужно думать о требованиях, и вы реализовали его перед использованием технологий, которые вы уже понимаете. Выберите «домашнее животное», которое попадает в основные точки реализации ваших типичных проектов. Например. Вы увидите, что многие разработчики веб-приложений реализуют простой механизм блогаюма как способ оценки или демонстрации технологии. Клиенты Twitter также были всеми яростью недавно.
Избегайте отвлекающих факторов Ключ к эффективной оценке должен быть сосредоточен и не позволить себе увязнуть с периферическими проблемами. Например. Не беспокоитесь о макете CSS GUI, если ваша задача оценки - посмотреть на веб-каркас. Иногда лучше всего наилучшим образом оценить задачи оценки времени, чтобы заставить себя сосредоточиться на том, что вы можете реально достичь.
Сделайте шипы по мере необходимости, чтобы понять новые технологии. Это можно сделать как учебные тесты (тесты единиц) для сохранения знаний.
Если вам нужно изучить несколько новых технологий (например, в данный момент, я изучающую структуру объекта + ASP.NET MVC 2), то я предлагаю создать концевую ссылочную реализацию. Попробуйте найти лучший способ создать его, а затем «скопировать» эту ссылку на другие области программы / веб-сайта и т. Д.
Обратите внимание, что ваш пример кода безопасен от впрыска SQL, как объяснено Alex, но он небезопасен из , используемых массовых эксплуатации .
-121--1906217-Может быть, это немного не имеет возможности, но:
Вы должны решить о своем процессе разработки, который является довольно нестандартным языком.
Это будет включать, как будет выполнено ваше тестирование
, вам необходимо посмотреть на лучшие практики от человека, который хорошо известен в этой технологии (для кода, можно посмотреть на практику кодирования из Известен проекты с открытым исходным кодом)
Постарайтесь найти несколько настоятельно рекомендуемых книг и имеющие высокие рейтинги в электронных книжных магазинах
по электронной почте и связываться с людьми, которые хорошо известны в этой области, и которые оставили свои письма на некоторой странице проекта, вы будете Удивлен количеством людей, которые требуют времени, чтобы ответить на ваши электронные письма, когда вы задаете их совету вежливо.
Старайтесь не быть потеряны слишком глубоко в реализации / зависимых инструментах вопросах, когда оно не является критическим, и принять лучшие практики и конвенции рано, когда вы начинаете использовать новую технологию, будет моим советом.
Энтони
То же самое, как я бы начал проект на языке, который я уже знаю, кроме руководства будет немного ближе.
Я пытаюсь прочитать на эту тему под рукой. PEEK на то, что доступно для других решений (потому что поставило настороженно, как часто это не было сделано раньше?). Я также стараюсь немного поэкспериментировать с технологией, если это возможно.
Лучший совет, который я могу дать вам - это проблемная область. Подходит ли технология для проблемы, которую вы пытаетесь решить?
Если на нее ответили и ответ - да.
Я недавно начал новый проект, используя wicket и postgresql. оба из которых я никогда раньше не использовал.
Я настоятельно рекомендую, чтобы как только вы освоили основы, если у вас есть какие-либо взаимодействия с другими технологиями (например, DB), попробуйте практиковать интеграцию им. Это гарантируется, что вы найдете там проблемы.
Это лучше для вас решить эти проблемы в начале, чтобы вы знали, что вы столкнетесь, и сможете спланировать его, чем позже в вашем проекте, когда могут потребоваться значительные изменения.
Я бы сказал, что это в основном сжимается таким образом:
На моей предыдущей работе у нас есть книжная библиотека.
Всякий раз, когда мы получили новый проект с новым Langauge или технологией, мы просто идем туда и взяли некоторые книги и начнем тестировать эти шаг за шагом.
Для меня важная вещь, которую нужно помнить, это то, что вам не нужно знать все это сразу.
Я начинаю смотреть на маленькие биты, пока я их понимаю - тогда посмотрите на большие кусочки.
Я также смотрю на большую картину - тогда я ухожу в более подробно.
В определенный момент они должны встретиться (я надеюсь!), И все это падает на место.
Мой нормальный подход - это начать работать над небольшими частями системы, чтобы получить понимание - как я работаю над ней и взаимодействую с другими частями, я учусь больше и больше. Это верно для использования новой технологии, начните с основы, а затем двигаться дальше.
Практикуя сначала с учебником «Hello World», является очень хорошей отправной точкой.
Более того, чтобы получить большую часть этого, я всегда пытаюсь ответить на вопрос: Почему это делается таким образом, а не так?
Моя цель состоит в том, чтобы получить философию за технологией Узнайте общую картину и намерение создателя, т. Е. Какую проблему ее технологии решают.
Обычно вы первые исследования ли эта технология подбирает ваш проект вообще.
Если он делает, вы идете вперед и начнем проект, проходя через препятствия, как вы идете.
Наиболее важным здесь является определение потенциальных проблемных случаев, сомнения, которые у вас есть о технологии, и устранить их с приоритетом. Может ли он интерфейс с другой технологией, поддерживает ли он какой-то протокол, независимо от того, сможете ли вы реализовать желаемую архитектуру с ним, достаточно ли ли он Performant в определенных случаях. Идея состоит в том, чтобы сначала определить, может ли корабль (ваш продукт) вообще двигаться вообще, прежде чем начать полировать корпус, чтобы вы не инвестировали слишком много времени и усилий в то, что не может работать в конце.
Говоря о предупрежденных шагах, может быть рекомендовано искать истории эквивалентных проектов, завершенных с этой технологией. Проекты с сопоставимой сложностью / размером, общей архитектурой, реализацией конкретных вещей, которые вы хотели бы иметь. Это должно дать вам представление, что может и что нельзя сделать.
Всегда всегда читайте эквивалентные учебные пособия «Hello World» и переехать оттуда.
Я начинаю новый документ Google Docs под названием «XXXX Библия», где XXXX - это новая технология. Тогда каждое маленькое препятствие или трюк или чтание уходит в это.
[neilb@GONERIL NeilB]$ gcc -Wall -pedantic sw.c
sw.c: In function 'main':
sw.c:11: warning: ISO C forbids casts to union type
sw.c:12: warning: ISO C forbids casts to union type
-121--2415541- От http://twidroid.com/plugins/
ACTION_SEND намерения Твидроида
Intent sendIntent = new Intent(Intent.ACTION_SEND);
sendIntent.putExtra(Intent.EXTRA_TEXT, "This is a sample message via Public Intent");
sendIntent.setType("application/twitter");
startActivity(Intent.createChooser(sendIntent, null));
-121--939679- Разрешить много дополнительного времени!
Вы всегда будете ошибаться, не осознавая этого - вместо того, чтобы тратить много времени на упреждающие попытки избежать ошибок, которые вы даже не знаете, почему они являются ошибками, просто согласитесь, что вы совершите ошибки и дадите время вернуться и исправить их .
Я всегда держу блокнот удобным.
На каждый день, когда я использую новый язык / Framework / API, я надену эту дату дня в качестве заголовка. И при этом я сделаю записку любых интересных причудов, которые я видел в тот день. Причина в том, что я нахожу это, мне часто приходится пересматривать что-то два или три раза, прежде чем он умудит в моей голове. Наличие заметки, чтобы отослать обратно, является серьезной помощью.
Читать и учиться - не лучший способ. Любое, что ты склонен забыть, что ты читаешь. Так что я всегда начинаю с маленькой программы что-то вроде мира приветствий и похлопываю себя "Хорошим мальчиком" по плечу просто для подзарядки.
Затем начните просматривать блоги и читать о практиках, которые другие гуру открыли для себя на трудном пути. И запишите это в блокнот под названием технологии или языка. Также напишите короткую строчку о том, почему ссылка сохранена, чтобы при необходимости я мог вернуться обратно. Также поставьте звездочку после одного лайнера, если его что-то связано с проектом, который я должен запустить.
Следующим шагом будет настройка базового проекта, начиная с задания под рукой. В промежутках между ними обращайтесь к языковому документу как можно чаще, чтобы я мог прочитать и попробовать что-нибудь.
Я бы начну с вопросом, является ли использование новых технологий или языка хорошей идеей. Иногда может показаться очень важно, чтобы использовать последние технологии на проекте, на который у вас есть большие надежды. Часто, когда я был семерен таким, я обнаружил, что последняя блестящая вещь так же, как ущерб, как технология, которую я уже знал.
Во многих случаях, если вы действительно заботитесь о проекте, лучше придерживаться того, что вы уже знаете.
Я обычно приближаюсь к этому на двух фронтах, параллельно.
, имея два параллельных, что вы получите пользу как из теоретической, так и практической, и будет меньше скучающий. Ни один не может быть пропущен, ИМХО. Многие спешите к коду без чтения, и он обычно приводит к плохому недидиоматическому коду.
Большинство случаев, я просто пишу программу, которую я написал на других языках и которая не дает мне головную боль с концептуальной точки зрения. Для меня это нейронная сеть, другие используют легко Raytracers или что-то еще.
Вы тогда видите, что сложно относиться к языку и где вещи отличаются от того, что вы знаете. Просто не начинайте с актуального проекта прямо сейчас.
Когда дело доходит до языков, есть одна вещь, которую я могу сказать:
Если использование языка на самом деле стоит того, чем весь код, который вы напишете в течение первых 6 месяцев, собирается быть дерьмом, измеренным тем, что Язык может сделать ... Есть важное правило, чтобы придерживаться: не пытайтесь использовать идиомы, которые вы знаете из других стран на этом новом языке, и жалуются, если язык не поддерживает его ... Скорее попытайтесь получить обзор Особенности языка и распространенные идиомы и распространяющиеся идиомы, и пытаются сосредоточиться на выражении решений, используя их ... попробуйте новые подходы, продвигаемые этим языком ... в противном случае вы выбираете, чтобы выбирать языки бессмысленные.
Для меня всегда пробный и ошибчатый подход работал хорошо. Я прочитаю какую-то основную информацию о новом языке / технологии, но после этого, если я не выберу свои руки и ноги мокрыми в технологии, я обычно не собираюсь многому. Я не уверен, если это хорошая практика, но вот как я узнаю.
Даже если компания не принимает новых технологий, я бы узнал новый язык. Конечно, это не может быть, как управление хочет, чтобы вы приблизились к вещам.
При попытке выучить новый язык, я бы порекомендовал Lurking на IRC . Многие из основных языков и технологий имеют каналы на Freenode и просто наблюдая за тем, что люди говорят, - это отличный способ узнать об аспектах, которые вы, возможно, даже не могли даже рассмотреть вопрос о том, чтобы сделать свое собственное чтение учебника или книги по теме.
Конечно, IRC будет отличным местом для задания вопросов, когда вы начинаете бегать в препятствия, однако я рекомендую ставить все эти вопросы на бумагу и оставить их, выполняя больше исследований. Часто требуется некоторое время для тех незнакомых терминов и синтаксиса для слота на место в вашем мозге и возможность вернуться и пересекать или переоценить любые предыдущие проблемы, которые я нашел очень полезным.