2010-09-28 3 views
4

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

  1. Библиотека не полной он находится в очень работоспособном состоянии, я бы сказал, что это версия 0.3, однако она по-прежнему не хватает ряд особенностей, которые я хотел бы в некоторые точки реализации, и контролировать, как они реализованы (что означает не слияние реализации someones).
  2. Я боюсь критики, я знаю, что есть несколько вещей, которые нужно реорганизовать/реорганизовать, но я быстро написал начальный класс, чтобы быть функциональным для другого проекта, над которым я работаю.

Итак, когда самое лучшее время для выпуска? Должен ли я просто бросить его на github и работать над выпуском выпусков? Или я должен подождать, пока не реорганизую и не почувствую себя полностью комфортно с тем, что я написал?

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

+0

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

ответ

17

Релиз раннего выпуска.

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

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

15

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

Линус Торвальдс
Linux Times (2004-10-25).

+1

+1, хорошая находка;) – Jimmy

4

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

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

2

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

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

EDIT

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

Пользователи ожидают, что вы сразу исправите свои проблемы или напишите их код, чтобы они могли использовать вашу библиотеку, или просто сказать, что «это не работает», без какого-либо объяснения того, что они означают. Вы должны научиться жить с этим 24x7x365.

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

+0

Это очень проницательно, особенно о том, как бороться с критикой. Следует ли ожидать, что вы сохраните обратную совместимость до версии 1.0? – tplaner

+0

Вы можете уйти с нарушением обратной совместимости, если все пользователи знают об изменениях заранее ... Пользователи, которые всегда загружают последнюю версию, как правило, ожидают быть тестировщиками (хотя пусть даже они знают заранее - это вежливость там, где это возможно) ... в противном случае следуйте аксиоме «релиз на раннем этапе, релиз часто», о котором упоминает Фрайхайт: тогда вы можете отказаться от более старых методов, чтобы ускорить изменение ваших бета-версий. Всегда старайтесь следить за тем, чтобы входы и выходы общедоступного метода оставались постоянными, но вы можете заранее предупредить, где не можете. –

0

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

Общественные API, навсегда - один шанс, чтобы получить это право

Вы можете проверить слайды here. Это определенно стоит прочитать. У меня есть его PDF-файл; сообщите мне, если вам это нужно.