Wątek przeniesiony 2017-10-11 21:22 z Off-Topic przez furious programming.

VfNotes - program do szybkich notatek.

Odpowiedz Nowy wątek
2017-10-11 23:16
0

Witajcie, napisałem w C++ z użyciem Qt program do szybkiego i wygodnego zarządzania notatkami. Po lewej stronie znajduje się lista z notatkami, po prawej pole do edycji notatki. Program ten z założenia ma pomóc szybko i wygodnie zarządzać krótkimi notatkami, szybciej niż z użyciem notatnika. Jego obsługa jest też w tym celu uproszczona do maksimum. Jak ogólnie oceniacie program pod względem praktycznego użycia oraz jakości kodu?
Kod źródłowy: https://github.com/arkadiusz97/VfNotes
Skompilowany program: https://drive.google.com/file[...]MSKkbPwjBTzh1bVMyZF8zWmM/view
zdjęcie

edytowany 2x, ostatnio: arkadiusz97, 2017-10-12 20:28

Pozostało 580 znaków

2017-10-11 23:24
0

No cóż, Evernote, czy OneNote mi tym nie wygryziesz ;p
Jest spoko, ale apka prosi się przede wszystkim o skróty klawiszowe.


edytowany 1x, ostatnio: ekhart, 2017-10-11 23:24

Pozostało 580 znaków

2017-10-11 23:33
5

Techniczne:

  1. Zakomentowany kod - po to masz podpięty system kontroli wersji, że w razie potrzeby w historii zajrzysz co tam było - naprawdę do prezentacji nie jest on kompletnie potrzebny.
  2. Za bardzo oszczędzasz na białych znakach, np. tu: stream<<ui->plainTextEditContent->toPlainText().toUtf8()
  3. Kod sam się komentuje, jeśli wszystko pakujesz w funkcje i metody z sugestywną nazwą - ty masz wszystko upakowane w eventy.
  4. Testy, testy

Nietechniczne:

  1. Nie dostarczyłeś screenów, szkoda - sam nie zamierzam nic pobierać, a tak mógłbym zobaczyć jak aplikacja wygląda
  2. Angielski z README jest na niezbyt wysokim poziomie (ucięty phrasal verb allow to i inne).

Co do użyteczności: Gratuluję, napisałeś notatnik. Nie wiem czy miałeś kiedyś styczność z programami do notatek ale na dzień dzisiejszy są one czymś więcej niż notatnikiem.

Nie jestem pewien czy proszenie o recenzję 100-linijkowych projektów to dobry pomysł.

edytowany 3x, ostatnio: spartanPAGE, 2017-10-12 10:39
dodalbym jeszcze ze miesza logike z prezentacja - fasadin 2017-10-16 09:20

Pozostało 580 znaków

2017-10-12 08:29
0

@spartanPAGE Jak będę w domu, to wrzucę screeny. Co do tego czy widziałem program do notatek, to pisałem ten program wzorując się trochę na pewnej aplikacji na Androida do takich notatek. Co też miałeś na myśli z pierwszym punktem? To, że komentarzy do kodu nie dodałem? W każdym razie, dzięki za uwagi.

No screeny by się przydały, bo pierwsze co chciałem zobaczyć na tym gicie to nawet nie kod, a właśnie screeny. - grzesiek51114 2017-10-12 08:35
Z komentarzami chodziło o to, że mając system kontroli wersji pozostawianie zakomentowanego kodu jest błędem. - kq 2017-10-12 11:07

Pozostało 580 znaków

2017-10-12 08:37
3

Hmm... nie wiem jak w C++, bo to już jednak trochę dla mnie przeszłość ale zauważa się takie napakowanie wszystkiego do klasy MainWindow. W zasadzie wszystko wrzucone jest do jednej tzw. god class i o ile w tak małym projekcie nie ma problemu to w dużych to się naprawdę mocno mści. Wiem z autopsji.

Można by oddelegować jakąś klasę do obsługi plików, jakąś jeszcze inną np. do kolorowania składni etc... Miałbyś takie moduły, które mógłbyś dopisywać :)

edytowany 2x, ostatnio: grzesiek51114, 2017-10-12 08:40
Co innego mieć god class, a nie mieć i pakować wszystko do klasy formularza – a to jeszcze gorsze. :D - furious programming 2017-10-12 21:41
God form class :) - grzesiek51114 2017-10-12 22:35

Pozostało 580 znaków

2017-10-12 20:32
0

@grzesiek51114: Jak by można było rozplanować takie dodatkowe klasy? Użyć jednego obiektu klasy do wczytywania plików, innego obiektu do zapisu, gdzie podawałoby się np. nazwę notatki i jej treść? O to chodzi?
@spartanPAGE: Dodałem screen.
Dzięki za uwagi. W wolnej chwili wprowadzę te zmiany :)

Pozostało 580 znaków

2017-10-12 21:30
0

Wyobraź sobie co byś zrobił gdybyś musiał np. szybko zmienić widok i podłączyć do niego całe zarządzanie danymi. Zwyczajnie masz zrobić inne GUI, a wszystko inne ma działać tak jak teraz.

Pozostało 580 znaków

2017-10-12 21:38
0

@grzesiek51114: Aha, czyli nie zmieniać samego mechanizmu działania programu, tylko zrobić inny interfejs graficzny?

Pozostało 580 znaków

2017-10-12 22:34
1

Przykład: dostarcz widokowi np.: jeno listę notatek, a cała reszta niech się dzieje pod spodem.
Chodzi o to żeby dostarczyć jedynie "interfejsy" dla widoku. Nie implementować logiki w widoku, tak jak masz teraz, a korzystać z "interfejsów" dostarczanych przez klasy realizujące logikę. Enkapsulacja logiki "biznesowej" generalnie.

Interfejsy czyli np. metody publiczne.

edytowany 2x, ostatnio: grzesiek51114, 2017-10-12 22:35

Pozostało 580 znaków

2017-10-12 23:09
0

@grzesiek51114: Czyli po prostu zrobić to tak, że np. wczytywanie nazw plików do listy zrobić w jednej metodzie klasy, a w drugiej metodzie zrobić wczytywanie danych z listy z nazwami plików do graficznej listy widocznej dla użytkownika?

Pozostało 580 znaków

2017-10-12 23:22
0

Widok odpytuje moduł o listę plików po czym ten moduł ową listę dostarcza. Tak jak mówię: nie wiem za bardzo jak coś takiego robi się w C++ i jakie ma do tego narzędzia np. QtCreator itp. ale generalnie podziel projekt na coś co można nazwać takimi: units of work. @kq pomusz i podpowiedz, bo ja się też nawet chętnie dowiem: da się dla Qt zrobić coś a'la MVC? Są do tego narzędzia czy trzeba rzeźbić samodzielnie?

PS: @amb00: rzeźbienie samodzielne w sumie Ci się przyda, bo separacji logiki od widoku się przy okazji nauczysz :)

Chociaż w sumie to się tyczy głównie wyświetlania tabelek i list - kq 2017-10-13 08:18
No właśnie chyba tak. - grzesiek51114 2017-10-13 08:19

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0