Tak, zachowaj opinie w sposób doceniający, profesjonalny i techniczny, jak to możliwe, poprzyj swoje obawy możliwymi scenariuszami "najgorszego przypadku", aby wady tych funkcji i/lub tej konkretnej implementacji stały się oczywiste.
Ponadto, jeśli chodzi o funkcje/kodu, które są bardzo specyficzne i nie są w jakikolwiek sposób użyteczne dla większości użytkowników, wyrazić swoje obawy dotyczące stosunku Kod/obsłudze - wskazujących obawy o zwiększonej złożoności kodu bazowego itp
Idealnie, przedstaw swoje obawy jako otwarte pytania - w sensie: "Chociaż zastanawiam się, czy ten sposób działania może działać w dłuższej perspektywie, ze względu na ...". Abyś rzeczywiście zachęcał do aktywnego dialogu między współpracownikami.
Zaproś swoich współpracowników i użytkowników, aby przedstawili swoje opinie na temat tych problemów, w rzeczywistości poproś inne osoby/współpracowników o to, co myślą o tym dodatku (pod względem zalet & wad, wymagań, jakości kodu), zrób oświadczenie że chcesz ponownie rozważyć swoją aktualną pozycję, jeśli inni współpracownicy/użytkownicy mogą zapewnić odpowiedni wgląd.
Jesteś w zasadzie zachęcanie nieformalną opinię, że sposób, prosząc społeczność również przyjrzeć się z proponowanymi dodatkami, tak że zalety i wady mogą być dyskutowane.
Bez względu na to, jaka będzie decyzja, będzie ona wspierana przez społeczność, a nie tylko przez Ciebie.
Ty jako architekt oryginalnego projektu, są również w doskonałej pozycji, aby zapewnić przyczyn architektonicznych, dlaczego coś nie jest (jeszcze) nie nadaje się do włączenia/wdrożenia.
Jeśli stabilność, kompleksowość i jakość kodu są poważnym problemem, nie pokazują, jak inne wkłady musiał także przejść pewien proces przeglądu, aby być do zaakceptowania.
Można również wspomnieć, jak konkretny kod nie pasuje do obecnego projektu lub w jaki sposób może nie być zbyt dobrze skalowany z przyszłym rozszerzeniem do obecnego projektu, podobnie można podkreślić, dlaczego pewne rzeczy zostały wyraźnie pominięte.
Jeśli rzeczywiście jak funkcji lub ideą, należy podkreślić doskonały dodatek te cechy stałaby jeśli prawidłowo wdrożony i zintegrowany, ale także podkreślić, że obecna implementacja nie jest to właściwe ze względu na liczba powodów.
Jeśli możesz, poczyń konkretne sugestie dotyczące ulepszeń, podaj przykłady, jak robić rzeczy lepiej, a czego unikać i wyrażać, że masz nadzieję, że można je przerobić, aby dodać je z pomocą społeczności Twojego projektu.
Najlepiej, jeśli przedstawisz swoje wymagania dotyczące faktycznego zaakceptowania tego wkładu i wspominasz kontekst swoich wymagań, możesz w rzeczywistości powiedzieć, że sam nie cierpisz niektórych z tych wymagań.
Najlepiej, prezentuj i omawiaj sytuacje, w których sam przyczyniłeś się do podobnego kodu (lub nawet gorzej) i że skończyłeś z poważnymi problemami związanymi z własnym kodem, więc zasady te są już dostępne, aby zapobiec takim problemom. Mówiąc o swoim złym kodzie, możesz być bardzo subiektywny.
Podkreśl, że na ogół doceniasz sam wysiłek i że jesteś gotów udzielić niezbędnej pomocy i wskazówek, aby dany kod był lepszy i lepiej dopasowany. Zachęcaj także, aby podobny wkład w przyszłości był odpowiednio koordynowany w obrębie twojej społeczności, aby uniknąć podobnych problemów.
Zawsze myśl w kategoriach funkcji i funkcjonalności (i przypomnij o tym, aby Twój współpracownik robił to samo), a nie kodu - wyobraź sobie, że jest to proces dokładnego sprawdzania kodu, w którym ostateczny kod, który ostatecznie zostanie zatwierdzony/zaakceptowany, może nie mieć cokolwiek wspólnego z pierwotną implementacją.
To znowu dobra okazja, aby zaprezentować przykłady, w których sam opracowałeś kod, który w dużej mierze został przerobiony, tak że znaczna jego część została zastąpiona przez znacznie lepszą implementację.
Podobnie, zawsze jest problem z kodem, który nie ma aktywnych opiekunów, więc równie dobrze możesz zasugerować, że jesteś zaniepokojony kodem, który może zakończyć się brakiem opieki, możesz nawet zapytać, czy odpowiedni programista byłby skłonny pomóż zachować ten kod, być może w oddzielnym oddziale.
W tym samym znaczeniu zawsze należy wymagać dodania nowego kodu wraz z odpowiednimi komentarzami, dokumentacją i innymi aktualizacjami. Innymi słowy, kod, który dodaje nowe lub zmienia istniejącą funkcjonalność, powinien zawsze być uzupełniony aktualizacjami do całej stosownej dokumentacji.
Ostatecznie, jeśli od razu wiesz, że nie możesz i nie zaakceptujesz żadnego z tych kodów w najbliższej przyszłości, możesz przynajmniej zaprosić programistę do oddziału, a nawet do rozwidlenia projektu, być może w twoim repozytorium iz twoją pomocą i wskazówki, aby nadal wyrażać swoją wdzięczność za współpracę z projektem.
Co powiesz na pokonanie go z książką o dobrych praktykach w zakresie kodowania? ;-) –