Я впевнений, що існує якась різниця між розробкою рамки чи бібліотеки та додатком.
Процеси розвитку по суті однакові. Відмінності можуть зводитися до питань маркетингу та розгортання, хоча я вважаю, що найбільші відмінності, як правило, стосуються обсягу та визначення проекту. Пам'ятайте, що Додаток може включати або використовувати рамку або бібліотеку, а рамка може бути колекцією бібліотек.
У мене є певні сумніви щодо того, як впоратися з організацією та управлінням цим проектом: Чи є якісь загальні правила, яких слід дотримуватися, поради, найкраща практика або щось, що слід пам’ятати при розробці такого проекту?
Організація та управління проектами знову однакові для будь-якого проекту розвитку. Знову він зводиться до розмаху. Що стосується написання фреймворку, то він повинен мати дуже чітке бачення того, чого саме ви намагаєтеся досягти, та розміщення строгих правил дизайну на публічному інтерфейсі до рамки, щоб забезпечити узгодженість щодо презентації API. Якщо ви дозволите кожному розробнику зробити свою справу, ви закінчитеся складним безладом і дуже неелегантним дизайном API.
Я скористаюсь рекомендацією Райана Хейса, щоб прочитати Правила дизайну Framework, навіть якщо сама книга спрямована на розробку рамок на основі .NET, оскільки загальна порада застосовується незалежно від конкретних технологій впровадження, які ви можете обрати.
З досвіду я б радив дотримуватися класичного принципу YAGNI, застосовуючи спочатку найпростіші публічні інтерфейси, а потім розширюючи, щоб згодом запропонувати більший контроль та глибину, але будьте обережні, використовуючи корисні імена, щоб показати, чому методи чи класи розширюються. Я ніколи не любив додавати "Ex" або інші подібні суфікси до назв методів або додавати числа до розширених визначень інтерфейсу. Розрізняйте функціональність, і назви вашого інтерфейсу / методу мають стати чіткішими, і, сподіваємось, менш заплутаними та заплутаними.