Лучший способ запустить [закрытый] проект

У вас есть ряд проблем с вашим кодом:

  1. string.index(letter) дает индекс первого вхождения letter, поэтому, если у вас есть несколько, например, D, pos будет обновляться только до положения первого. Вы можете исправить это, перебирая как позицию, так и букву, используя enumerate, например. for pos, letter in enumerate(string):
  2. Вы ставите подчеркивание перед каждой заглавной буквой, т.е. _i_d
  3. Вы перезаписываете предыдущие правки, ссылаясь на string в parsed_string=string[:pos] + '_' + string[pos:]
  4. ]

Исправление всех этих проблем, которые у вас возникли бы:

def parse_variables(string):
    new_string=''
    for pos, letter in enumerate(string):
        if letter.isupper() and pos+1 < len(string) and string[pos+1].isupper():
            new_string += f'_{letter}'
        else:
            new_string += letter
    return new_string.lower()

Но гораздо более простой метод:

"courseID pathID apiID".replace('ID', '_id')
<час>

Обновление: ]

Учитывая разнообразие строк, которые вы хотите захватить, кажется, что регулярное выражение - это инструмент, который вы хотите использовать:

import re

def parse_variables(string, pattern=r'(?<=[a-z])([A-Z]+)', prefix='_'):
    """Replace patterns in string with prefixed lowercase version.
    Default pattern is any substring of consecutive
    capital letters that occur after a lowercase letter."""

    foo = lambda pat: f'{prefix}{pat.group(1).lower()}'
    return re.sub(pattern, foo, text)

text = 'courseID pathProjects apiCode'
parse_variables(text)

>>> course_id path_projects api_code
24
задан 2 revs, 2 users 100% 14 September 2008 в 05:04
поделиться

14 ответов

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

16
ответ дан 28 November 2019 в 23:13
поделиться

Все вышеперечисленное, но начать закреплять план на месте .....

Выберите некоторые инструменты SmartSheet - даже если вы работаете самостоятельно, вам следует указать некоторые этапы и даты yEd - и Graphity с www.yworks.com

0
ответ дан 28 November 2019 в 23:13
поделиться

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

0
ответ дан 28 November 2019 в 23:13
поделиться

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

0
ответ дан 28 November 2019 в 23:13
поделиться

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

использование Fusion Управления исходным кодом важно также. Занимает 2 минуты для установки SVN.

0
ответ дан 28 November 2019 в 23:13
поделиться

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

0
ответ дан 28 November 2019 в 23:13
поделиться

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

2
ответ дан 28 November 2019 в 23:13
поделиться

Это зависит от проекта - насколько он велик?

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

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

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

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

1
ответ дан 28 November 2019 в 23:13
поделиться

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

2
ответ дан 28 November 2019 в 23:13
поделиться

Определите цель проекта. Похоже, вы смотрите почти исключительно на решение, а не на проблему.

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

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

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

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

Программирование намного веселее, когда вы решаете проблемы. Но вам нужно держать проблему перед собой. Совместное использование проблемы создает сообщество. В этом все дело, не так ли?

3
ответ дан 28 November 2019 в 23:13
поделиться

Я соглашаюсь с уже данным советом:

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

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

я нахожу трудным начать создавать что-то, когда у меня нет четкого представления о том, как это должно посмотреть, по крайней мере, на первый уровень разложения. Думайте о том, что делает Вам нужно помимо функциональности: высокая производительность?, сценарии расширяемости?, которые?, цели удобства использования?, высокая масштабируемость?, простота развертывания и installability?, и т.д. Спросите себя: Какие компоненты я должен буду создать для достижения тех архитектурных качеств?.

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

3
ответ дан 28 November 2019 в 23:13
поделиться

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

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

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

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

Hope это помогает.

10
ответ дан 28 November 2019 в 23:13
поделиться

От 7 Привычек к Очень Эффективным Людям , Привычка 2: Начните с Конца В памяти.

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

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

11
ответ дан 28 November 2019 в 23:13
поделиться

Как и другие, мои личные проекты всегда имеют:

  • Конечная цель
  • Список задач
  • Небольшие полезные единицы
  • Источник control

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

2
ответ дан 28 November 2019 в 23:13
поделиться
Другие вопросы по тегам:

Похожие вопросы: