Inżynieria oprogramowania

53
Dlaczego nie ujawnić klucza podstawowego

W mojej edukacji powiedziano mi, że wadliwym pomysłem jest udostępnianie użytkownikowi rzeczywistych kluczy podstawowych (nie tylko kluczy DB, ale wszystkich głównych akcesorów). Zawsze myślałem, że to problem z bezpieczeństwem (ponieważ osoba atakująca może próbować czytać rzeczy, które nie są...

53
Kiedy testowanie typu jest OK?

Zakładając język z pewnym nieodłącznym rodzajem bezpieczeństwa (np. Nie JavaScript): Biorąc pod uwagę metodę, która akceptuje a SuperType, wiemy, że w większości przypadków, w których możemy ulec pokusie przeprowadzenia testów typu w celu wybrania akcji: public void DoSomethingTo(SuperType o) {...

53
Konwencje nazewnictwa protokołu Swift [zamknięte]

Pochodząc głównie z języka c #, przyzwyczaiłem się używać terminu „interfejs” do opisywania obiektu bez implementacji, która określa zachowanie. W języku c # konwencja polega na dodawaniu nazw interfejsów do „I”, jak w IEnumerableitd. Oczywiście koncepcja ma różne nazwy w różnych językach. W Swift...

53
Czy złą praktyką jest nie usuwać zbędnych plików od razu z VCS, ale zamiast tego oznaczać je jako „Do usunięcia” z komentarzami?

Chciałem wiedzieć, czy sposób postępowania z plikami źródłowymi, które należy usunąć z kontroli wersji, można uznać za złą praktykę. Chcę ci to wyjaśnić na podstawie tego przykładu: Niedawno bardzo się zdenerwowałem, ponieważ musiałem żmudnie sortować klasy Java w programie, który był w zasadzie...

53
Czy korzyści rozwojowe wynikające z używania Dockera są zaniżone podczas korzystania z Java w porównaniu z innymi językami bliższymi binariom Uniksa?

Miałem przyjaciela, który powiedział: Docker jest niesamowity. Możesz go użyć do replikacji produkcji i wszystkich jej dziwactw na komputerze lokalnym. Następnie możesz szybko wdrożyć tę instancję przez wszystkie przepływy pracy pomostowej . Byłoby to prawdą, gdyby programiści pisali Ruby, PHP...