W naszych przeważnie dużych aplikacjach zwykle mamy tylko kilka lokalizacji dla „stałych”: Jedna klasa dla graficznego interfejsu użytkownika i elementów wewnętrznych (tytuły stron tabulatora, tytuły pól grupy, współczynniki obliczeniowe, wyliczenia) Jedna klasa dla tabel i kolumn bazy danych (ta część jest generowana kodem) oraz czytelne nazwy dla nich (przypisane ręcznie) …
Lubię podnosić NotImplementedErrormetodę, którą chcę wdrożyć, ale tam, gdzie jeszcze się nie udało. Mogę już mieć częściową implementację, ale dodaj ją, raise NotImplementedError()ponieważ jeszcze jej nie lubię. Z drugiej strony lubię też przestrzegać konwencji, ponieważ ułatwi to innym osobom utrzymanie mojego kodu, a konwencje mogą istnieć z dobrych powodów. Jednak …
Kilka miesięcy temu zacząłem pracować w firmie jako inżynier. Jest to mała firma, a oni w zasadzie robią usługi telefoniczne. Teraz przechodzą z normalnych telefonów na telefony IP, dzięki czemu komputery zajmują ważniejsze miejsce w pracy. Jednak wszystkie komputery używane przez pracowników są wyposażone w pirackie oprogramowanie, w tym ich …
Jestem w sytuacji, w której mogę użyć wtyczki JavaScript typu open source do wykonania zadania. Ale kiedy spróbowałem go użyć, odkryłem, że muszę przeprojektować wiele rzeczy z tego, co już zrobiłem, i to dodaje mojej projektowi pewnej złożoności. Podczas gdy mogę wykonać to samo zadanie za pomocą czystego kodu, który …
Kontekst W Clean Code , strona 35, to mówi Oznacza to, że bloki w instrukcjach if, instrukcjach else, instrukcjach while i tak dalej powinny mieć długość jednego wiersza. Prawdopodobnie ta linia powinna być wywołaniem funkcji. To nie tylko sprawia, że funkcja zamykająca jest mała, ale także dodaje wartość dokumentalną, ponieważ …
W naszej firmie musimy robić wiele pozornie nieskomplikowanych rzeczy, takich jak tworzenie mobilnego interfejsu użytkownika. Powiedzmy, że doświadczeni programiści kosztują nas 4x tyle, co początkujący. Oba są w zasadzie w stanie wykonać pozornie proste rzeczy w tym samym czasie. Różnica polega na tym, że doświadczeni programiści produkują mniej błędów, a …
Mamy kilka danych: Programiści potrzebują repliki produkcyjnej bazy danych na swoich komputerach. Programiści mają hasło do wspomnianej bazy danych w plikach App.config. Nie chcemy, aby dane we wspomnianej bazie danych były zagrożone. Kilka sugerowanych rozwiązań i ich wady: Szyfrowanie całego dysku. To rozwiązuje wszystkie problemy, ale obniża wydajność laptopa, a …
Właśnie zaimplementowałem warstwę pamięci podręcznej w mojej aplikacji internetowej i teraz zastanawiam się, jak QA powinna to przetestować, ponieważ buforowanie jest przezroczyste dla użytkownika. Jednym z moich pomysłów jest wprowadzenie metod wywoływania kodu wypełniającego pamięć podręczną i rejestrowanie, kiedy obiekt jest pobierany z pamięci podręcznej i kiedy wymaga odtworzenia z …
W C ++ jest wiele wskazówek, ale szczerze mówiąc za około 5 lat w programowaniu w C ++ (szczególnie w Qt Framework) używam tylko starego surowego wskaźnika: SomeKindOfObject *someKindOfObject = new SomeKindOfObject(); Wiem, że istnieje wiele innych „inteligentnych” wskaźników: // shared pointer: shared_ptr<SomeKindofObject> Object; // unique pointer: unique_ptr<SomeKindofObject> Object; // …
Mam te dwa małe programy: do #include <stdio.h> int main() { if (5) { printf("true\n"); } else { printf("false\n"); } return 0; } Jawa class type_system { public static void main(String args[]) { if (5) { System.out.println("true"); } else { System.out.println("false"); } } } który zgłasza komunikat o błędzie: type_system.java:4: …
Czy potrafisz wymyślić jakiś konkretny powód, dla którego usunięcie jest zwykle znacznie trudniejsze do wdrożenia niż wstawienie dla wielu (większości?) Struktur danych? Szybki przykład: listy połączone. Wstawianie jest trywialne, ale usuwanie ma kilka specjalnych przypadków, które znacznie utrudniają. Samowyrównujące się drzewa wyszukiwania binarnego, takie jak AVL i czerwono-czarny, to klasyczne …
Zatem sprint scrumowy to ustalony okres, w którym należy wdrożyć określony zestaw funkcji. Zespół scrum składa się ze wszystkich osób zaangażowanych w dostarczanie tych funkcji, z których większość to zazwyczaj programiści i testerzy. Po ustaleniu tych zasad można się zastanawiać, jak utrzymać tych wszystkich ludzi w trakcie całego sprintu. Na …
Staram się przekonać mój zespół, aby zezwalał na stosowanie wyjątków w C ++ zamiast zwracania wartości bool isSuccessfullub wyliczenia z kodem błędu. Nie mogę jednak odeprzeć jego krytyki. Rozważ tę bibliotekę: class OpenFileException() : public std::runtime_error { } void B(); void C(); /** Does blah and blah. */ void B() …
W architekturze sterowanej zdarzeniami każdy komponent działa tylko wtedy, gdy zdarzenie jest wysyłane przez system. Wyobraź sobie hipotetyczny samochód z pedałem hamulca i światłem hamowania. Światło stop włącza się, gdy odbiera zdarzenie brak hamulca , i gaśnie, gdy odbiera zdarzenie brak hamulca . Pedał hamulca wysyła zdarzenie brake_on , gdy …
Właśnie omówiłem wybór projektu po przejrzeniu kodu. Zastanawiam się, jakie są twoje opinie. Jest ta Preferencesklasa, która jest wiadrem dla par klucz-wartość. Wartości zerowe są legalne (to ważne). Oczekujemy, że niektóre wartości mogą jeszcze nie zostać zapisane i chcemy automatycznie obsługiwać te przypadki, inicjując je z predefiniowaną wartością domyślną na …
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.