Zawsze staram się śledzić DRY zasadę ściśle w pracy; za każdym razem, gdy powtarzam kod z lenistwa, gryzie go później, kiedy muszę go utrzymywać w dwóch miejscach. Ale często piszę małe metody (może 10-15 linii kodu), które trzeba ponownie wykorzystać w dwóch projektach, które nie mogą się nawzajem odnosić. Metoda …
Całkiem proste, dlaczego miałbym chcieć pisać kod, który działa dla wszystkich przypadków i skalowalnych danych, gdy wszystko, co muszę zrobić, to powtórzyć ten sam proces kilka razy z kilkoma drobnymi poprawkami? Prawdopodobnie nie będę musiał ponownie tego edytować w najbliższym czasie. Wygląda na to, że po prostu dużo pracy jest …
Rozważmy na przykład, że mam klasę dla innych klas do rozszerzenia: public class LoginPage { public String userId; public String session; public boolean checkSessionValid() { } } i niektóre podklasy: public class HomePage extends LoginPage { } public class EditInfoPage extends LoginPage { } W rzeczywistości podklasa nie ma żadnych …
Mam trochę kodu, który jest prawie identyczny, ale używa absolutnie różnych typów, bez dziedziczenia między nimi, na głównej zmiennej. W szczególności piszę analizator z Roslyn dla C # i VB.NET, z następującymi typami: Microsoft.CodeAnalysis.CSharp.Syntax.AttributeSyntax Microsoft.CodeAnalysis.VisualBasic.Syntax.AttributeSyntax Zastanawiam się, czy, ponieważ kod robi to samo, powinienem zachować jak najbardziej OSUSZANIE, dzieląc jak …
Zastanawiam się, co jest lepsze pod względem dobrego projektowania OOP, czystego kodu, elastyczności i unikania zapachów kodu w przyszłości. Sytuacja obrazowa, w której masz wiele bardzo podobnych obiektów, które musisz reprezentować jako klasy. Klasy te nie mają żadnej konkretnej funkcjonalności, tylko klasy danych i różnią się tylko nazwą (i kontekstem) …
Mam kilka klas, które wszystkie dziedziczą od ogólnej klasy podstawowej. Klasa podstawowa zawiera zbiór kilku obiektów typu T. Każda klasa potomna musi być w stanie obliczyć interpolowane wartości ze zbioru obiektów, ale ponieważ klasy potomne używają różnych typów, obliczenia różnią się nieznacznie w zależności od klasy. Do tej pory kopiowałem …
Buduję interfejs API REST, aby udostępnić większość funkcjonalności istniejącego interfejsu API Java. Oba interfejsy API są do użytku wewnętrznego w mojej organizacji; Nie muszę projektować do użytku zewnętrznego. Mam wpływ na oba interfejsy API, ale wdrażam interfejs REST. Interfejs API Java będzie nadal używany w aplikacjach lokalnych (nie jest „wycofywany”), …
Jestem w 100% zaangażowany w sprawę, że zdecydowanie należy używać zarówno weryfikacji danych po stronie klienta, jak i serwera. Jednak w ramach i środowiskach, w których pracowałem, podejścia, które widziałem, nigdy nie były SUCHE. Przez większość czasu nie ma planu ani wzorca - weryfikacje są zapisywane w specyfikacji modelu, a …
Właśnie natknąłem się na artykuł „ Reguła trzech ” w Wikipedii Zasada trzech jest podstawową zasadą refaktoryzacji kodu, która decyduje, kiedy zreplikowany fragment kodu powinien zostać zastąpiony nową procedurą. Stwierdza, że kod można skopiować raz, ale gdy trzy razy użyje się tego samego kodu, należy go wyodrębnić w nowej procedurze. …
Gdzie jest najlepsze miejsce do sprawdzania poprawności parametrów wejściowych funkcji: w funkcji wywołującej lub w samej funkcji? Chciałbym ulepszyć swój styl kodowania, dlatego staram się znaleźć najlepsze praktyki lub reguły dotyczące tego problemu. Kiedy i co jest lepsze. W moich poprzednich projektach sprawdzaliśmy i traktowaliśmy każdy parametr wejściowy wewnątrz funkcji …
Załóżmy, że mamy moduł oprogramowania A, który implementuje funkcję F. Inny moduł B implementuje tę samą funkcję co F '. Istnieje wiele sposobów na pozbycie się duplikatu kodu: Niech A użyje F 'z B. Niech B użyje F z A. Umieść F we własnym module C i pozwól, aby korzystały …
Szukam wskazówek na temat łączenia DRY vs Code. Nie lubię powielać mojego kodu, a także nie lubię łączenia kodu między niepowiązanymi modułami. Dlatego zmieniam kod zduplikowanego kodu, jeśli znajdę identycznie zduplikowany kod rok po wprowadzeniu duplikacji. Jednak coraz częściej doświadczam sytuacji, w których świat rzeczywisty jest znacznie bardziej nieprzewidywalny, a …
Aby uniknąć nietrywialnego powielania związanego z C ++ const, czy istnieją przypadki, w których const_cast działałoby, ale prywatna funkcja const zwracająca non-const nie? W Effective C ++ pozycja 3 Scott Meyers sugeruje, że const_cast w połączeniu z rzutowaniem statycznym może być skutecznym i bezpiecznym sposobem na uniknięcie powielania kodu, np. …
Zawsze stosowałem ograniczenia na poziomie bazy danych oprócz moich modeli (ActiveRecord). Ale zastanawiałem się, czy to jest naprawdę wymagane? Trochę tła Niedawno musiałem przetestować jednostkę podstawową metodę automatycznego generowania znaczników czasu dla modelu. Zwykle test utworzyłby instancję modelu i zapisałby ją bez sprawdzania poprawności. Są jednak inne wymagane pola, które …
Używamy plików cookie i innych technologii śledzenia w celu poprawy komfortu przeglądania naszej witryny, aby wyświetlać spersonalizowane treści i ukierunkowane reklamy, analizować ruch w naszej witrynie, i zrozumieć, skąd pochodzą nasi goście.
Kontynuując, wyrażasz zgodę na korzystanie z plików cookie i innych technologii śledzenia oraz potwierdzasz, że masz co najmniej 16 lat lub zgodę rodzica lub opiekuna.