Książka "Czysty kod"

Książka "Czysty kod"

Wątek przeniesiony 2018-03-10 23:02 z Newbie przez flowCRANE.

V2
  • Rejestracja:około 7 lat
  • Ostatnio:ponad 6 lat
  • Postów:5
0

Hej, ostatnio zaczęłam programować (mam jakiś miesiąc doświadczenia w C i C#) i bardzo mi się to podoba. Dlatego gdy zobaczyłam na promocji książkę "Czysty kod" Roberta C. Martina to bez zastanowienia ją kupiłam. I gdy się trochę w nią wczytałam i zaczęłam oglądać jakie kody są w niej przedstawione to zauważyłam że wielu instrukcji nie rozumiem i nie jestem w stanie czerpać w pełni wiedzy którą ma ona przekazać. Więc mam pytanie do osób które ją przeczytały, czy powinnam się tym przejmować i odłożyć książkę na później dopóki nie podszkolę swoich umiejętności czy mimo wszystko warto ją dokończyć?

Wibowit
  • Rejestracja:prawie 20 lat
  • Ostatnio:około 8 godzin
0

Podaj przykład czegoś co nie rozumiesz.


"Programs must be written for people to read, and only incidentally for machines to execute." - Abelson & Sussman, SICP, preface to the first edition
"Ci, co najbardziej pragną planować życie społeczne, gdyby im na to pozwolić, staliby się w najwyższym stopniu niebezpieczni i nietolerancyjni wobec planów życiowych innych ludzi. Często, tchnącego dobrocią i oddanego jakiejś sprawie idealistę, dzieli od fanatyka tylko mały krok."
Demokracja jest fajna, dopóki wygrywa twoja ulubiona partia.
edytowany 1x, ostatnio: Wibowit
V2
  • Rejestracja:około 7 lat
  • Ostatnio:ponad 6 lat
  • Postów:5
0
Wibowit napisał(a):

Podaj przykład czegoś co nie rozumiesz.

Np kodów sprawdzających pliki albo jak się pojawiają jakieś zmienne Map czy instrukcje których jeszcze nie znam i nie jest mi łatwo je sobie przyswoić tak od razu. No i jeszcze nie robiłam nic na tablicach ale w następnym tygodniu się za to zabiore.

vpiotr
  • Rejestracja:ponad 13 lat
  • Ostatnio:prawie 3 lata
1
Viki2k napisał(a):

I gdy się trochę w nią wczytałam i zaczęłam oglądać jakie kody są w niej przedstawione to zauważyłam że wielu instrukcji nie rozumiem i nie jestem w stanie czerpać w pełni wiedzy którą ma ona przekazać.

Nie wiem którą wersje masz, ale ta którą czytałem miała kody w Javie, a ta ma mało (jeśli w ogóle) "instrukcji".
Instrukcje są zawarte w programach assemblerowych.
W Javie znajdziesz raczej obiekty, metody i ich wywołania.

Ta książka jest niezła, ale żeby ją w pełni docenić warto znać przynajmniej podstawy języka.

Tu masz kurs podstawowy języka:
https://docs.oracle.com/javase/tutorial/java/nutsandbolts/index.html

V2
no właśnie Javy jeszcze nie tykałam tylko C bo mam na studiach i C# bo w unity się nim bawię. A z tego co widzę to tam jest sporo javy o ile nie wszystko. Ale dzięki za linka może pomoże mi jak się na czymś zatnę.
AN
  • Rejestracja:prawie 11 lat
  • Ostatnio:2 minuty
  • Postów:973
4

Ogólnie to moim zdaniem warto do podobnych książek/rozwiązań zerkać z perspektywy czasu. Czyli np. za pół roku. I potem za rok. I zobaczysz jak zmienia się podejście itd. Zawsze coś więcej zrozumiesz. Teraz możesz uznać coś za bezsensu (co jest jak najbardziej zrozumiałe). Ale jak wrócisz po czasie do danej książki to zrozumiesz czemu coś ma sens.

Co to pytania to wydaje mi się, że lepiej będzie jak liźniesz więcej języka.


Zdalna praca dla Senior Python Developerów --> PW
Silv
Moderator Wiki
  • Rejestracja:ponad 10 lat
  • Ostatnio:prawie 3 lata
  • Lokalizacja:Warszawa
0

Od razu zaznaczam, że ja książki nie czytałem, więc nie wiem, czy moja wypowiedź będzie miała dla Ciebie znaczenie w kontekście Twojego pytania.

Dla mnie w takiej sytuacji należałoby rozpatrzyć kilka czynników:

  • Czy chcesz uczyć się podstaw z książek, czy z internetu – bo domniemywam, że dla C, C# i Unity jest sporo materiałów online wartych uwagi, w szczególności na stronach Microsoftu.
  • Jeśli chcesz uczyć się z książek, to czy masz pieniądze na kolejne, żeby móc z tej nie korzystać, czy jednak wolisz nie tracić pieniędzy i spróbować jakoś wykorzystać to, co już nabyłaś.
  • Dla mnie byłoby chyba niekomfortowo (czy faktycznie kiedyś było, nie pamiętam) uczyć się jednego języka z materiałów do innego, ale książka traktuje, jak mówi tytuł, o czystym kodzie, więc być może ma to mniejsze znaczenie.
  • Chyba największym problemem byłoby to, że jednak pewnie jest tam sporo przykładów. O ile znam Javę i C#, są to języki podobne w niektórych założeniach, w innych odmienne. Martwię się więc, że ucząc się na przykładach z Javy przeniesiesz praktyki w nich zawarte do C#, co oczywiście w szerszej perspektywie nauki nie miałoby sensu (ani kod nie byłby już "czysty", ani napisany zgodnie z dobrymi praktykami w C#, a mógłby też po prostu nie działać). Piszę o C#, bo myślę, że pomieszanie Javy z C byłoby trudne.

Jeśli po książkę wynikowo nie sięgniesz, popierałbym zdanie @anonimowy'ego, żeby wrócić do niej po jakimś czasie. No chyba, że ją sprzedasz.


edytowany 2x, ostatnio: Silv
mr_jaro
no właśnie tym postem pokazujesz że nie znasz tej książki i o co w niej chodzi :) Jest to jedna z tych książek, którą powinien mieć na swojej półce każdy programista niezależnie w jakim języku pisze.
DA
  • Rejestracja:ponad 10 lat
  • Ostatnio:około 2 miesiące
  • Postów:176
3

Kod w książce jest w Javie, ale nie powinno to być większym problemem. Jeśli czegoś nie wiesz, wyszukaj w google na zasadzie: "Java map in C#", wtedy będziesz już wiedziała, że chodzi o Dictionary. Na pewno przeczytaj bardziej 'abstrakcyjne' rozdziały, na przykład o nazywaniu zmiennych. Część początkujących programistów nazywa zmienne 'a', 'b' - co jest straszną praktyką i wyrabianiem sobie złych nawyków. Książka zdecydowania warta polecenia, a jeśli trafisz na coś czego nie rozumiesz - na razie to olej, wrócisz do tego po jakimś czasie.

LP
  • Rejestracja:około 7 lat
  • Ostatnio:około 2 miesiące
  • Postów:365
2

Hej, gdy zaczynałem przygodę z programowaniem książka o której wspominasz też wydawała mi się nieznacznie niezrozumiała. Przeczytałem ją całą i wróciłem do niej po roku (przed startem nowego projektu). Czytało mi się ją zdecydowanie lepiej. Ze swojej strony na początek polecam: https://helion.pl/ksiazki/jak-stac-sie-lepszym-programista-przewodnik-pete-goodliffe,jakpro.htm#format/d Książka mniej techniczna, bardziej skupiająca się na umiejętnościach miękkich. Możesz zapoznać się też z "Mistrzem czystego kodu". Ona również jest mniej techniczna.

edytowany 1x, ostatnio: lubie_programowac
mr_jaro
  • Rejestracja:ponad 13 lat
  • Ostatnio:około 3 lata
  • Lokalizacja:Grudziądz/Bydgoszcz
  • Postów:5300
0

Nie przejmuj się tym, że jest w javie, nie ma to znaczenia. Tam masz przykład w wersji przed refaktoringiem i kolejne etapy refaktoringu więc widzisz jak kod sie zmienia, są też wystarczające opisy by zrozumieć dlaczego takie zmiany zachodzą i tylko o to w tym chodzi. Masz po zobaczeniu wersji przed i po refaktoringu uznać, że wersja po jest dużo czytelniejsza i stosować te triki w praktyce w językach których sam używasz. Oczywiście od razu zaznaczę by nie popadać w paranoje i nie stosować tego zawsze i wszędzie, bo nie wszystko tego wymaga szczególnie jak ma się mało czasu na zrobienie projektu typu "zrób i zapomnij".


It's All About the Game.
Kliknij, aby dodać treść...

Pomoc 1.18.8

Typografia

Edytor obsługuje składnie Markdown, w której pojedynczy akcent *kursywa* oraz _kursywa_ to pochylenie. Z kolei podwójny akcent **pogrubienie** oraz __pogrubienie__ to pogrubienie. Dodanie znaczników ~~strike~~ to przekreślenie.

Możesz dodać formatowanie komendami , , oraz .

Ponieważ dekoracja podkreślenia jest przeznaczona na linki, markdown nie zawiera specjalnej składni dla podkreślenia. Dlatego by dodać podkreślenie, użyj <u>underline</u>.

Komendy formatujące reagują na skróty klawiszowe: Ctrl+B, Ctrl+I, Ctrl+U oraz Ctrl+S.

Linki

By dodać link w edytorze użyj komendy lub użyj składni [title](link). URL umieszczony w linku lub nawet URL umieszczony bezpośrednio w tekście będzie aktywny i klikalny.

Jeżeli chcesz, możesz samodzielnie dodać link: <a href="link">title</a>.

Wewnętrzne odnośniki

Możesz umieścić odnośnik do wewnętrznej podstrony, używając następującej składni: [[Delphi/Kompendium]] lub [[Delphi/Kompendium|kliknij, aby przejść do kompendium]]. Odnośniki mogą prowadzić do Forum 4programmers.net lub np. do Kompendium.

Wspomnienia użytkowników

By wspomnieć użytkownika forum, wpisz w formularzu znak @. Zobaczysz okienko samouzupełniające nazwy użytkowników. Samouzupełnienie dobierze odpowiedni format wspomnienia, zależnie od tego czy w nazwie użytkownika znajduje się spacja.

Znaczniki HTML

Dozwolone jest używanie niektórych znaczników HTML: <a>, <b>, <i>, <kbd>, <del>, <strong>, <dfn>, <pre>, <blockquote>, <hr/>, <sub>, <sup> oraz <img/>.

Skróty klawiszowe

Dodaj kombinację klawiszy komendą notacji klawiszy lub skrótem klawiszowym Alt+K.

Reprezentuj kombinacje klawiszowe używając taga <kbd>. Oddziel od siebie klawisze znakiem plus, np <kbd>Alt+Tab</kbd>.

Indeks górny oraz dolny

Przykład: wpisując H<sub>2</sub>O i m<sup>2</sup> otrzymasz: H2O i m2.

Składnia Tex

By precyzyjnie wyrazić działanie matematyczne, użyj składni Tex.

<tex>arcctg(x) = argtan(\frac{1}{x}) = arcsin(\frac{1}{\sqrt{1+x^2}})</tex>

Kod źródłowy

Krótkie fragmenty kodu

Wszelkie jednolinijkowe instrukcje języka programowania powinny być zawarte pomiędzy obróconymi apostrofami: `kod instrukcji` lub ``console.log(`string`);``.

Kod wielolinijkowy

Dodaj fragment kodu komendą . Fragmenty kodu zajmujące całą lub więcej linijek powinny być umieszczone w wielolinijkowym fragmencie kodu. Znaczniki ``` lub ~~~ umożliwiają kolorowanie różnych języków programowania. Możemy nadać nazwę języka programowania używając auto-uzupełnienia, kod został pokolorowany używając konkretnych ustawień kolorowania składni:

```javascript
document.write('Hello World');
```

Możesz zaznaczyć również już wklejony kod w edytorze, i użyć komendy  by zamienić go w kod. Użyj kombinacji Ctrl+`, by dodać fragment kodu bez oznaczników języka.

Tabelki

Dodaj przykładową tabelkę używając komendy . Przykładowa tabelka składa się z dwóch kolumn, nagłówka i jednego wiersza.

Wygeneruj tabelkę na podstawie szablonu. Oddziel komórki separatorem ; lub |, a następnie zaznacz szablonu.

nazwisko;dziedzina;odkrycie
Pitagoras;mathematics;Pythagorean Theorem
Albert Einstein;physics;General Relativity
Marie Curie, Pierre Curie;chemistry;Radium, Polonium

Użyj komendy by zamienić zaznaczony szablon na tabelkę Markdown.

Lista uporządkowana i nieuporządkowana

Możliwe jest tworzenie listy numerowanych oraz wypunktowanych. Wystarczy, że pierwszym znakiem linii będzie * lub - dla listy nieuporządkowanej oraz 1. dla listy uporządkowanej.

Użyj komendy by dodać listę uporządkowaną.

1. Lista numerowana
2. Lista numerowana

Użyj komendy by dodać listę nieuporządkowaną.

* Lista wypunktowana
* Lista wypunktowana
** Lista wypunktowana (drugi poziom)

Składnia Markdown

Edytor obsługuje składnię Markdown, która składa się ze znaków specjalnych. Dostępne komendy, jak formatowanie , dodanie tabelki lub fragmentu kodu są w pewnym sensie świadome otaczającej jej składni, i postarają się unikać uszkodzenia jej.

Dla przykładu, używając tylko dostępnych komend, nie możemy dodać formatowania pogrubienia do kodu wielolinijkowego, albo dodać listy do tabelki - mogłoby to doprowadzić do uszkodzenia składni.

W pewnych odosobnionych przypadkach brak nowej linii przed elementami markdown również mógłby uszkodzić składnie, dlatego edytor dodaje brakujące nowe linie. Dla przykładu, dodanie formatowania pochylenia zaraz po tabelce, mogłoby zostać błędne zinterpretowane, więc edytor doda oddzielającą nową linię pomiędzy tabelką, a pochyleniem.

Skróty klawiszowe

Skróty formatujące, kiedy w edytorze znajduje się pojedynczy kursor, wstawiają sformatowany tekst przykładowy. Jeśli w edytorze znajduje się zaznaczenie (słowo, linijka, paragraf), wtedy zaznaczenie zostaje sformatowane.

  • Ctrl+B - dodaj pogrubienie lub pogrub zaznaczenie
  • Ctrl+I - dodaj pochylenie lub pochyl zaznaczenie
  • Ctrl+U - dodaj podkreślenie lub podkreśl zaznaczenie
  • Ctrl+S - dodaj przekreślenie lub przekreśl zaznaczenie

Notacja Klawiszy

  • Alt+K - dodaj notację klawiszy

Fragment kodu bez oznacznika

  • Alt+C - dodaj pusty fragment kodu

Skróty operujące na kodzie i linijkach:

  • Alt+L - zaznaczenie całej linii
  • Alt+, Alt+ - przeniesienie linijki w której znajduje się kursor w górę/dół.
  • Tab/⌘+] - dodaj wcięcie (wcięcie w prawo)
  • Shit+Tab/⌘+[ - usunięcie wcięcia (wycięcie w lewo)

Dodawanie postów:

  • Ctrl+Enter - dodaj post
  • ⌘+Enter - dodaj post (MacOS)