[Zegar szachowy #2]: Założenia projektu, pierwsze zmiany w kodzie

Поделиться
HTML-код
  • Опубликовано: 9 ноя 2024

Комментарии • 11

  • @Orionus83
    @Orionus83 8 месяцев назад +2

    Ale metamorfoza. Poznałem dopiero po głosie ;)

  • @zegarNotAvailable
    @zegarNotAvailable 8 месяцев назад

    Dawno nie grałem w szachy... 😉

  • @bumelant
    @bumelant 8 месяцев назад

    Szkoda, ze nie ukończyłeś pisania zegara szachowego z użyciem TDD. Zapowiadało się ciekawie.

    • @ucgosupl
      @ucgosupl  8 месяцев назад

      W tej wersji nie ma TDD od samego początku, ale testy wejdą później, kiedy okażą się niezbędne.
      Kilka razy mówiłem dlaczego porzuciłem tamtą wersję zegara. W skrócie - nie da się pisać projektu raz na 2 tygodnie po dwie godziny. Potem na live było przypominanie sobie co wcześniej było w kodzie. A w trakcie jeszcze większość czasu schodziła na dyskusje o pobocznych tematach i pokazywanie różnych rzeczy w odpowiedzi na pytania z czatu. Ten projekt napisałem w dwa tygodnie codziennie dodając coś do kodu. A dopiero potem nagrałem filmiki opisujące zmiany. Takie podejście gwarantuje ukończenie projektu.

    • @bumelant
      @bumelant 8 месяцев назад

      @@ucgosupl niekoniecznie musiałeś kontynuować ten projekt na żywo. Myślę, że warto by było go ukończyć, bo zostało już dużo zrobione.

    • @ucgosupl
      @ucgosupl  8 месяцев назад +2

      @@bumelant na razie myślałem, żeby robić inne projekty w stylu aktualnej serii o zegarze. Jak bym miał robić kolejny projekt o zegarze to pewnie w innym języku. Ale może kiedyś :)

  • @mjamrozek
    @mjamrozek 8 месяцев назад

    Cześć, podoba mi się formuła podążania najprostszą ścieżką. Sam ostatnio w projekcie wytworzyłem za dużo abstrakcji, które nie wiem czy do końca są zasadne. Skończyło się na zmianie podejścia i wyznaczeniu drogi którą będziemy iść z kilkoma przystankami (na każdym z nich decydujemy czy chcemy isc dalej) więc bardzo podobnie jak u Ciebie.
    Jak myślisz, czy rozsądnym byłoby w Twoim projekcie tworzyć ADR'y, które udokumentują decyzje jakie będziesz podejmował?
    Myślę, że nawet teraz na początku jest to zasadne bo już mamy jakieś decyzje, np moduł hd44780 zależy od modułu display itp.

    • @ucgosupl
      @ucgosupl  8 месяцев назад +2

      Akurat w tym projekcie ADRy by były nierealne. To jest stuprocentowy prototyp. Kod pisałem w przerwie bożonarodzeniowej i potem się wkręciłem i dodawałem kolejne rzeczy. Decyzja o nagraniu serii na YT powstała już później. Dlatego w tym projekcie ADRów nie będzie. Co do decyzji o modułach to dla mnie ten kod był właśnie odwlekaniem decyzji na później - z góry zakładam, że będę go jeszcze refactorować. Ale faktycznie później pojawią się też decyzje bardziej wiążące.
      A czy ADRy w prototypie by się sprawdziły? Dla mnie na samym początku to jest kolejna rzecz, która odciąga nas od najprostszej ścieżki. Jak bym robił taki zegar komercyjnie to pewnie pomyślałbym o ADRach dopiero w miejscu gdzie projekt jest teraz (czyli po odcinku nr 12, który dopiero się ukaże, albo aktualny master na githubie). Czyli pierwszy prototyp wykonany, potwierdziliśmy realizowalność projektu, mamy jakieś rozwiązania sprawdzone w praktyce i teraz będziemy pracować nad wersją komercyjną. Szczerze mówiąc pod koniec myślałem o jakiejś dokumentacji w markdownie i chyba nawet ADRach też. Tak samo w kolejnych krokach bym dodawał analizę statyczną, CI i różne inne dobrodziejstwa większych projektów.
      A sam temat ADRów od strony praktycznej jest ciekawy i chciałbym go eksplorować. Mam w planach kolejny projekt, bardziej skomplikowany i wtedy bardzo możliwe, że ADRy i inne procesy i narzędzia będą mi potrzebne zanim dojdę do realizacji wszystkich założeń.

  • @Bareizm
    @Bareizm 6 месяцев назад

    Dlaczego definicje pinów zostały umieszczone w pliku hd44780.c, a nie hd44780.h?

    • @ucgosupl
      @ucgosupl  6 месяцев назад

      Ze względu na ukrywanie prywatnych informacji modułu. Header zawiera publiczne definicje wykorzystywane przez inne moduły. Nie chcemy dawać innym modułom wiedzy o konkretnych pinach naszego wyświetlacza, nie chcemy żeby używały je w swoim kodzie i przy ewentualnych zmianach nie chcemy modyfikować zbyt dużo plików. Dlatego w publicznych headerach lepiej dawać tylko to co faktycznie jest niezbędne zewnętrznym modułom.

    • @Bareizm
      @Bareizm 6 месяцев назад

      @@ucgosupl wszystko jasne. Dziękuję za wyjaśnienie.