Podsumowanie trzech części

  1. Część pierwsza
  2. Część druga
  3. Część trzecia

Zadaniem była zmiana kodu w aplikacji stworzonej kilka lat temu, zmiana pod kątem dobrych praktyk i czystego kodu. Refaktoryzacja ta dotarła do pewnego etapu, nie które rzeczy zostały zmienione ale dość sporo można by jeszcze uprościć. Po za tym jest tu duży potencjał do rozbudowy. W wersji oryginalnej miała być funkcja cofania zmian, która w refaktoryzaji nie została ujęta. Pozostają problemy ze sklalowaniem oraz bardzo prawdopodobne, że nie które stare błędy również nie zostały naprawione. Kod sam w sobie „domaga się” pewnych zmian za duży natłok zmiennych w głównej klasie formy. Kwestia wyboru aktywnego narzędzia również mi  się nie podoba za dużo if-ów.

Kod

Te posty zawierają ostateczene wersje kodu ale czuje się zobligowany do tego żeby wytłumaczyć, że kod, który powstał w tej wersji był wielokrotnie zmieniany (co widać w commitach na githubie). Celem było napisanie jak najlepszego kodu, czy to się udało? to zależy, od tego, co ktoś, rozumie przez „dobry kod”. Dla nie których „dobry kod” to taki, który działa dla innych taki, który się dobrze czyta, wszystko zależy od……

Pomysły (nawet nierealne)

Co do rozbudowy , można by pokusić się o zastosowanie sztucznej inteligencji, która pomagała by rysować „idelane figury”. Wiem, że to brzmi śmiesznie, kto w paincie AI chciałby stosować ale pomył jakiś jest.

Trzy opcje użytkownikowi dać można:

  • rysowanie bez wspomagania czyli zwykły paint,
  • rysowanie ze wsparciem, czyli poprawianie kółek czy kwadratów,
  • rysowanie na podstawie opisu użytkownika czyli wygenerowanie jakiegoś sensownego bardziej lub mniej obrazka

Co do bardziej realnych opcji rozbudowy, to stworzenie aplikacji tak aby  mogła być rozbudowywana w bardzo łatwy sposób, który można by przyrównać do budowania z klocków i dokładania kolejnych funkcjonalności.  Nowe opcje programu mogły by być definiowane w sposób tekstowy, opisowy za pomocą specjalnego zdefiniowanego języka i/lub wrzucenia kolejnej ikonki na pasek narzędzi i wyklikanie jej możliwości.

Repertuar zmian i przyszłościowych rozwiązań na pewno się nie zakończył. Na tę chwile uważam jednak, że można zamknąć ten etap refaktoryzaji.

Wersje programu: