Czytałem o (nie) wygodzie posiadania nullzamiast (na przykład) Maybe. Po przeczytaniu tego artykułu , jestem przekonany, że byłoby znacznie lepiej do użytkuMaybe (lub coś podobnego). Jestem jednak zaskoczony, widząc, że wszystkie „dobrze znane” imperatywne lub obiektowe języki programowania nadal używają null(co pozwala na niekontrolowany dostęp do typów, które mogą reprezentować …
Czytam „Współbieżność Java w praktyce” i powiedziano: „Na szczęście te same techniki obiektowe, które pomagają pisać dobrze zorganizowane, możliwe do utrzymania klasy - takie jak enkapsulacja i ukrywanie danych - mogą również pomóc w tworzeniu bezpiecznych wątków klasy ”. Problem nr 1 - Nigdy nie słyszałem o ukrywaniu danych i …
Po ponad 10 latach programowania w języku Java / C # zaczynam tworzyć: klasy abstrakcyjne : umowa nie ma być tworzona jako taka, jaka jest. klasy końcowe / zapieczętowane : implementacja nie ma służyć jako klasa bazowa dla czegoś innego. Nie mogę wymyślić żadnej sytuacji, w której prosta „klasa” (tj. …
Jestem programistą od dawna (mam 49 lat), ale raczej nowością w programowaniu obiektowym. Czytałem o OO od czasu Eiffla Bertranda Meyera, ale zrobiłem naprawdę niewiele programowania OO. Chodzi o to, że każda książka na temat projektowania OO zaczyna się od przykładu łodzi, samochodu lub innego wspólnego obiektu, którego często używamy, …
Prawdopodobnie uważałbym za zapach kodu, a nawet anty-wzorzec, aby mieć klasę, która implementuje 23 interfejsy. Jeśli to rzeczywiście jest anty-wzór, jak byś to nazwał? A może po prostu nie przestrzega zasady pojedynczej odpowiedzialności?
Jako programista Java / C # / C ++ dużo słyszę o językach funkcjonalnych, ale nigdy nie musiałem się ich uczyć. Słyszałem również, że wyższy poziom myślenia wprowadzony w językach funkcjonalnych sprawia, że jesteś lepszym programistą języka OOP / języka proceduralnego. Czy ktoś może to potwierdzić? W jaki sposób poprawia …
Przy projektowaniu i wykonawczym języka programowania obiektowego, w jakimś jednym punkcie musi dokonać wyboru o realizacji podstawowych typów (jak int, float, doublelub odpowiedników) jako klasy lub czegoś innego. Wyraźnie, języków z rodziny C mają tendencję nie je zdefiniować jako klasy (Java ma specjalnych typów prymitywnych, C # wdraża je jako …
Jest klasyczny artykuł zatytułowany „Kryteria do zastosowania w rozkładaniu systemów na moduły”, który właśnie przeczytałem po raz pierwszy. Ma to dla mnie idealny sens i jest prawdopodobnie jednym z tych artykułów, na których oparto OOP. Wniosek: Na podstawie tych przykładów próbowaliśmy wykazać, że prawie zawsze niewłaściwe jest rozpoczęcie rozkładu systemu …
Śledziłem to wysoko głosowane pytanie dotyczące możliwego naruszenia zasady substytucji Liskowa. Wiem, czym jest zasada podstawienia Liskowa, ale wciąż nie jest jasne, co może pójść źle, gdybym jako programista nie myślał o tej zasadzie podczas pisania kodu zorientowanego obiektowo.
Rozumiem, co SOLID ma osiągnąć i używać go regularnie w sytuacjach, w których modułowość jest ważna, a jej cele są wyraźnie przydatne. Jednak dwie rzeczy uniemożliwiają mi konsekwentne stosowanie go w mojej bazie kodu: Chcę uniknąć przedwczesnej abstrakcji. Z mojego doświadczenia wynika, że rysowanie linii abstrakcji bez konkretnych przypadków użycia …
Zawsze widzę, że abstrakcja jest bardzo przydatną funkcją OO do zarządzania bazą kodu. Ale w jaki sposób zarządzane są duże bazy kodu inne niż OO? A może ostatecznie stają się „ Wielką Kulą Błota ”? Aktualizacja: Wydawało się, że wszyscy myślą, że „abstrakcja” to po prostu modularyzacja lub ukrywanie danych. …
Niedawno miałem rozmowę z moim przyjacielem na temat OOP w tworzeniu gier wideo. Wyjaśniałem architekturę jednej z moich gier, która, ku zaskoczeniu mojego przyjaciela, zawierała wiele małych klas i kilka warstw abstrakcji. Argumentowałem, że był to wynik mojego skupienia się na nadaniu wszystkim Jednej Odpowiedzialności, a także na poluzowaniu sprzężenia …
Im bardziej funkcjonalne programowanie, tym bardziej czuję, że dodaje dodatkową warstwę abstrakcji, która wydaje się, że warstwa cebuli obejmuje wszystkie poprzednie warstwy. Nie wiem, czy to prawda, więc odejście od zasad OOP, nad którymi pracowałem od lat, może ktoś wytłumaczyć, jak funkcjonalne dokładnie przedstawia lub nie przedstawia żadnej z nich: …
Mam trudności ze znalezieniem zasobów na temat pisania programów w funkcjonalnym stylu. Najbardziej zaawansowanym tematem, jaki mogłem znaleźć w Internecie, było użycie pisania strukturalnego w celu ograniczenia hierarchii klas; większość po prostu zajmuje się tym, jak używać map / fold / zmniejsz / etc, aby zastąpić imperatywne pętle. Naprawdę chciałbym …
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.