impl < forever > Procrastinate for Me (Polski)

fn do_something (self) – >! {loop {}}

(George Shuklin) (8 grudnia 2019 r.)

Z radością bawiłem się zabawkami graficznymi w Rust, dopóki nie zdecydowałem się przejść na GTK. Wcześniej ukradłem kawałek lub dwa z GTK i decyduję się napisać pełnoprawną aplikację, używając jej z ciosami, gwizdkami i drop boxami. Oczywiście musiałem przeczytać w tym celu książkę GTK. Chodzi o C. Przeczytałem dziesięć stron na pierwszej sesji, trzy na drugiej, jedną na trzeciej i prawdopodobnie około dwóch zdań na czwartym.

Byłem kompletnie znudzony. Potrafię sobie radzić z tego rodzaju nudą, używając marchewki pieniędzy, którą mój pracodawca wisi przede mną, ale nie jako hobby. To było BOOOOORING. Chodziło o C. See. Widzieć. Widzisz, to głupiec z C.

Oczywiście utknąłem w martwym punkcie. Od czasu do czasu oglądałem filmy o asynchronicznej rewolucji w Rust i drżały mi palce. Przeczytałem nawet dwie kolejne strony książki GTK o C. (z powodu asynchronizacji w Rust, dlaczego nie widzisz związku). I to wszystko przez bardzo, bardzo długi czas.

Więc oficjalnie zwlekałem.

Przestań. Nigdy więcej GTK, dopóki uraz się nie zagoi.

W mojej aplikacji graficznej pojawił się drugi problem. To był problem z iteratorami, nie można się skompilować.

Chociaż był to trudny problem (spoiler: właśnie napisałem swoją pierwszą własną implementację dla IntoIterator dla struktury bez użycia żadnych pomocników std), było to: przynajmniej związane z rdzą.

Bingo, koniec z prokrastynacją. Mam nadzieję.

Chociaż GTK zwlekało ze zwlekaniem, niektóre pomysły dotyczące Rusta powoli wsiąkały w moją intuicję, więc przy ogromnym skręcie mózgu byłem w stanie znaleźć właściwe rozumowanie.

Ponieważ w trakcie tego procesu wykręciłem i stopiłem mózg, chętnie zapisuję moje (bardzo ważne) spostrzeżenia. Bardzo różnią się od tego (pełnego jęków) postu, więc opublikuję je osobno.

Wniosek: podczas pracy z Procrastination cecha dla Self, w przeciwnym razie Twoja implementacja będzie się różnić.

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *