Jestem pewien, że istnieją pewne różnice między tworzeniem frameworku lub biblioteki a aplikacją.
Procesy rozwojowe są zasadniczo takie same. Różnice mogą sprowadzać się do problemów marketingowych i wdrożeniowych, chociaż uważam, że największe różnice dotyczą zwykle zakresu projektu i jego definicji. Pamiętaj, że aplikacja może zawierać lub używać frameworka lub biblioteki, frameworkiem może być zbiór bibliotek.
Mam wątpliwości co do sposobu organizacji i zarządzania tym projektem: czy istnieją jakieś ogólne zasady, których należy przestrzegać, wskazówki, najlepsze praktyki lub coś, o czym należy pamiętać przy opracowywaniu tego rodzaju projektu?
Organizacja i zarządzanie projektem są znów takie same dla każdego projektu deweloperskiego. Ponownie sprowadza się to do zakresu. Jednak jeśli chodzi o pisanie frameworka, opłaca się mieć bardzo jasną wizję tego, co próbujesz osiągnąć, i wprowadzić surowe reguły projektowania publicznego interfejsu do frameworka, aby zapewnić spójność prezentacji interfejsu API. Jeśli pozwolisz każdemu deweloperowi robić swoje, skończy się skomplikowanym bałaganem i bardzo nieelegacyjnym projektem interfejsu API.
Poparnę zalecenie Ryana Hayesa do przeczytania Wytyczne dotyczące projektowania ram, mimo że sama książka ma na celu opracowanie ram opartych na .NET, ponieważ ogólne porady mają zastosowanie niezależnie od konkretnych technologii wdrażania, które możesz wybrać.
Z doświadczenia radziłbym trzymać się klasycznej zasady YAGNI, wdrażając najpierw najprostsze publiczne interfejsy, a następnie rozwijając, aby zapewnić większą kontrolę i głębię, ale bądź ostrożny, używając użytecznych nazw, aby pokazać, dlaczego metody lub klasy są rozwijane. Nigdy nie byłem fanem dodawania „Ex” lub innych podobnych sufiksów do nazw metod, ani dodawania liczb do rozszerzonych definicji interfejsów. Zróżnicuj funkcjonalność, a nazwy interfejsów / metod powinny stać się jaśniejsze, i mam nadzieję, że mniej zaciemnione i mylące.