Opublikowane 02 kwietnia 2017 5 minut
bookmark_border

DevLog #4

Piąty tydzień. Plan zrealizowany, ale uprzedzam to nie będzie najciekawszy post. Ten tydzień to liczne małe kroki w dobrym kierunku.

Po refactoringu

Życie po refactoringu jest piękne.

Teraz wszystko logicznie pasuje do siebie. Wykonanie jest wykonaniem, generowanie odbywa się w generatorze. Teraz tylko jechać dalej i budować!

thecodinglove jest świetnym źródłem gifów :)

Streamowanie

Miały być streamy i próbowałem, ale znów problemy natury technicznej mnie próbują w tym powstrzymać. Prawdopodobnie problemem jest obciążenie mojej słabiutkiej maszyny. W końcu 2 rdzenie to nie kosmos, ale powiedziałem sobie: nie poddam się.

Zacznę po prostu nagrywać filmy. Są one nieco mniej wymagające sprzętowo, ale wymagają większego przygotowania się, bo nie wystarczy rozmawiać i pokazywać co się aktualnie robi, czas uwagi widza jest mocno ograniczony i godzinne tutoriale nie są tyle warte.

Nawyki są prawie funkcjonalne

Frontend dalej wygląda jak na budowie, przydałby się magik od CSS. Za to w kwestii funkcjonalności jest znacznie lepiej. Można tworzyć, edytować (choć nie do końca) i otrzymywać punkty za wykonywanie nawyków.

Materialize ma piękne powiadomienia
Obecna jest też sekcja profilu. Wymagało to stworzenia punktu użytkownika, małej zabawy z wartościami od OAuth i co ciekawe --- pierwszej rzeczywistej styczności z race condition. Rozwiązałem też problem z ustawieniem bocznego panelu pod divem, aby Vue.js mógł się do niego odnieść.
Spokojnie, te ikonki tu nie zostaną!

Chyba nadszedł czas na Spocka

FixedBaseCoinGeneratorTests

@Test
public void amountsAreGood() throws Exception {
    assertEquals(1500, coinGenerator.generate(CoinAmount.HIGH));
    assertEquals(1000, coinGenerator.generate(CoinAmount.MEDIUM));
    assertEquals(500, coinGenerator.generate(CoinAmount.SMALL));
}
Więcej...

MillionLevelGeneratorTests

@Test
public void experienceAmountsAreGood() throws Exception {
    assertThat(levelGenerator.generate(100), is(1000000));
    assertThat(levelGenerator.generate(1), is(100));
    assertThat(levelGenerator.generate(27), is(72900));
    assertThat(levelGenerator.generate(84), is(705600));
    assertThat(levelGenerator.generate(58), is(336400));
}

@Test
public void levelsAreGood() throws Exception {
    assertThat(levelGenerator.getLevel(110), is(1));
    assertThat(levelGenerator.getLevel(800000), is(89));
    assertThat(levelGenerator.getLevel(476100), is(69));
    assertThat(levelGenerator.getLevel(220950), is(47));
    assertThat(levelGenerator.getLevel(3600), is(6));
    assertThat(levelGenerator.getLevel(67599), is(25));
}

Tabelki by się przydały.

Mogę też powiedzieć, że w ciągu ostatnich dwóch tygodni udało mi się dojść do nawyku robienia testów. JUnit, Mockito, Hamcrest, integracyjne żaden problem!

Bartosz Wiśniewski

Full Stack do wszystkiego (serio). Z programowaniem mam do czynienia już od ponad 5 lat. Zajmowałem się tworzeniem aplikacji mobilnych i gier. Lubię Pythona, Go i JavaScript (ale tą dobrą stronę). Czasem buduję zabawki z Arduino.