To pytanie ma wyłącznie na celu naukę i zwiększenie mojego technicznego zrozumienia. Wiem, że nie ma idealnego rozwiązania i to pytanie może mieć niekończącą się listę rozwiązań, ale myślę, że dla każdego architekta bardzo ważne jest zrozumienie różnicy między wersją demonstracyjną a projektem na żywo.
W przeszłości stworzyłem wiele rozwiązań demonstracyjnych w .Net. Teraz zostałem przydzielony do architekta i wdrożenia rozwiązania sieciowego na poziomie produkcyjnym, więc chciałem zapytać - na bardzo wysokim poziomie, co jest potrzebne do przekształcenia wersji demo w rozwiązanie na poziomie produkcyjnym. Z mojego zrozumienia wymaga to (innego niż funkcjonalne wdrożenie wymagań klientów):
- Testowanie jednostkowe każdej metody
- Osiągnięcie ~ 100% zasięgu kodu
- Rejestrowanie wszystkich wyjątków i możliwych skrótów - możliwe z AOP
- Korzystanie z wzorca projektowania interfejsu, wstrzykiwanie zależności, być może przy użyciu frameworka, np. Spring.net
- Korzystanie z liczników wydajności i profilerów do oprzyrządowania
- Stosowanie odpowiednich zabezpieczeń - tj. Uwierzytelnianie systemu Windows (jeśli tego wymaga klient).
- Zarządzanie transakcjami każdą metodą
- Wykonaj kopię zapasową plików aplikacji sieci Web przed nowym wdrożeniem rozwiązania
Co jeszcze?
Moje pytanie jest bardziej związane ze stroną techniczną niż z funkcjonalnością / dokumentacją, ponieważ w przeciwnym razie przejdziemy inną ścieżkę :-)
Dziękuję Ci.