Zastanawiałem się, jak zająć się projektowaniem literału „idealnego” zakresu, gdybym zaprojektował język. Dla tych, którzy nie znają literału zakresu w instrukcji reprezentującej zakres wartości, np. 1-4. Są najczęściej używane w pętlach for / foreach Wydaje się, że należy wziąć pod uwagę kilka kwestii Obsługa przedziałów włączających i wyłącznych, przypisywanie +1 …
Najpierw trochę tła. Piszę odnośnik z Wiek -> Stawka. Istnieje 7 przedziałów wiekowych, więc tabela przeglądowa składa się z 3 kolumn (od | do | stawki) z 7 wierszami. Wartości rzadko się zmieniają - są to stawki legislacyjne (pierwsza i trzecia kolumna), które pozostają takie same od 3 lat. Doszedłem …
Najpierw przeczytałem fragment artykułu Edsgera W. Dijkstry z 1974 r. „O roli myśli naukowej”: Pozwól, że wyjaśnię ci, co według mojego gustu jest charakterystyczne dla każdego inteligentnego myślenia. Chodzi o to, że chce się dogłębnie przestudiować aspekt przedmiotu w oderwaniu dla własnej spójności, cały czas wiedząc, że zajmuje się tylko …
Natknąłem się na debatę między kilkoma przyjaciółmi i mną. Wolą ogólne wyjątki, takie jak ClientErrorExceptioni ServerErrorExceptionze szczegółami jako pola wyjątku, podczas gdy ja wolę sprecyzować rzeczy. Na przykład mogę mieć kilka wyjątków, takich jak: BadRequestException AuthenticationFailureException ProductNotFoundException Każdy z nich zbudowany w oparciu o kod błędu zwrócony z interfejsu API. …
Piszę dużo kodu, który obejmuje trzy podstawowe kroki. Zdobądź skądś dane. Przekształć te dane. Umieść te dane gdzieś. Zazwyczaj używam trzech rodzajów zajęć - zainspirowanych ich wzorami projektowymi. Fabryki - aby zbudować obiekt z jakiegoś zasobu. Mediatorzy - aby skorzystać z fabryki, przeprowadzić transformację, a następnie użyć dowódcy. Dowódcy - …
Mam hierarchię klas, dla której chciałbym oddzielić interfejs od implementacji. Moim rozwiązaniem jest posiadanie dwóch hierarchii: hierarchii klas uchwytów dla interfejsu i niepublicznej hierarchii klas dla implementacji. Podstawowa klasa uchwytu ma wskaźnik do implementacji, który pochodne klasy uchwytów rzutują na wskaźnik typu pochodnego (patrz funkcja getPimpl()). Oto szkic mojego rozwiązania …
Tworzę interfejs w Javie dla niestandardowej procedury obsługi błędów. Chcę przekazać obiekt błędu argumentu, ale potrzebuję go, aby był dzieckiem Exceptionklasy. Czy mogę używać mojej zdefiniowanej nazwy klasy w interfejsie? Czy nie zmniejszy to interfejsu, ponieważ nie będzie zależny od żadnej implementacji? Próbuję zrobić coś takiego: public class CustomException { …
Na PPCG często mamy wyzwania King of the Hill , które rzucają przeciwko sobie różne boty kodu. Nie lubimy ograniczać tych wyzwań do jednego języka, dlatego prowadzimy komunikację między platformami w stosunku do standardowych operacji we / wy. Moim celem jest napisanie frameworka, w którym autorzy wyzwań będą mogli ułatwić …
Część naszej bazy kodu napisana jest w następującym stylu: // IScheduledTask.cs public interface IScheduledTask { string TaskName { get; set; } int TaskPriority { get; set; } List<IScheduledTask> Subtasks { get; set; } // ... several more properties in this vein } // ScheduledTaskImpl.cs public class ScheduledTaskImpl : IScheduledTask { …
Z Agile Software Development, zasad, wzorców i praktyk: Pearson New International Edition : Czasami metody przywoływane przez różne grupy klientów nakładają się. Jeśli nakładanie się jest niewielkie, interfejsy dla grup powinny pozostać osobne. Wspólne funkcje powinny być deklarowane we wszystkich nakładających się interfejsach. Klasa serwera odziedziczy wspólne funkcje z każdego …
Tak, diagramy mogą być czasami nieodpowiednie. Kiedy są nieodpowiednie? Kiedy tworzysz je bez kodu, aby je zweryfikować, a następnie zamierzasz ich przestrzegać. Nie ma nic złego w rysowaniu diagramu, aby zbadać pomysł. Zwinne tworzenie oprogramowania: zasady, wzorce i praktyki - Robert C. Martin Co on dokładnie przez to rozumie? Czy …
Czytałem tę wiki na temat Stable Abstractions Principle (SAP) . SAP stwierdza, że im bardziej stabilny pakiet, tym bardziej powinien on być abstrakcyjny. Oznacza to, że jeśli pakiet jest mniej stabilny (bardziej prawdopodobne, że się zmieni), powinien być bardziej konkretny. Nie do końca rozumiem, dlaczego tak powinno być. Z pewnością …
Załóżmy, że masz jakąś strukturę danych, która jest utrwalona w jakiejś bazie danych. Dla uproszczenia nazwijmy tę strukturę danych Person. Masz teraz zadanie zaprojektowania interfejsu CRUD API, który pozwala innym aplikacjom tworzyć, czytać, aktualizować i usuwać Persons. Dla uproszczenia załóżmy, że dostęp do tego interfejsu API można uzyskać za pośrednictwem …
Piszę aplikację C ++. Większość aplikacji odczytuje i zapisuje dane potrzebne do cytowania, a ten nie jest wyjątkiem. Stworzyłem projekt wysokiego poziomu dla modelu danych i logiki serializacji. To pytanie wymaga przeglądu mojego projektu z uwzględnieniem tych konkretnych celów: Aby mieć łatwy i elastyczny sposób odczytywania i zapisywania modeli danych …
Słyszałem, że zalecane jest sprawdzenie poprawności argumentów metod publicznych: Czy należy sprawdzić wartość zerową, jeśli nie spodziewa się wartości zerowej? Czy metoda powinna zweryfikować swoje parametry? MSDN - CA1062: Sprawdź poprawność argumentów metod publicznych (mam tło .NET, ale pytanie nie jest specyficzne dla C #) Motywacja jest zrozumiała. Jeśli moduł …
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.