Czesc
chciałbym się nim pochwalić i wystawić na ogień krytyki.
Pierwsze co, to gratulacje działającego projektu, który pomysł jest ciekawy/inny, duzy plus
a teraz po slodkosciach czas na krytyke
- struktura projektu. Wszystko masz pod /ColorBookCS. png, cs, config, ico. Nie otworzylem tego w visual studio/rider, wiec nie wiem jak tam wyglada ta struktura
- ColorBook.cs
MenuStrip menuBar;
ToolStripMenuItem colorBookMenu, pencilMenu, optionsMenu, helpMenu;
ToolStripMenuItem nextPageMenuItem, prevPageMenuItem, saveAsMenuItem, exitMenuItem;
ToolStripMenuItem pastelMenu, marineMenu, groundMenu;
ColorMenuItem yellowMenuItem, orangeMenuItem, lightPinkMenuItem,
pinkMenuItem, redMenuItem, purpleMenuItem, violetMenuItem;
ColorMenuItem skyBlueMenuItem, blueMenuItem, darkBlueMenuItem, yellowGreenMenuItem,
darkGreenMenuItem, seledineMenuItem;
ColorMenuItem lightGrayMenuItem, slateGrayMenuItem, blackMenuItem, goldMenuItem, brownMenuItem;
ToolStripMenuItem customColorMenuItem, rubberMenuItem;
ToolStripMenuItem pencilSizeMenu, zoomMenu, resetMenuItem;
ToolStripMenuItem smallPencilMenuItem, mediumPencilMenuItem, bigPencilMenuItem, largePencilMenuItem;
ToolStripMenuItem zoom50MenuItem, zoom100MenuItem, zoom200MenuItem, zoom400MenuItem;
ToolStripMenuItem aboutMenuItem;
ToolStrip toolBar;
ColorBarButton yellowButton, pinkButton, redButton, blueButton, darkGreenButton, lightGrayButton,
brownButton, blackButton, orangeButton, skyBlueButton, yellowGreenButton, slateGrayButton;
ToolStripButton rubberButton, customColorButton;
ToolStripLabel pencilSizeLabel;
ToolStripButton pencilSmallButton, pencilMediumButton, pencilBigButton, pencilLargeButton;
StatusBar statusBar;
StatusBarPanel colorPanel, pagePanel, coordPanel;
eeee, moze ja tego nie widze, ale jakie jest zadanie klasy ColorBook? Bo poki co wyglada ze ona robi wszystko tak zwany GOD OBJECT (czasami zwany sfinksem)
poczytaj o SOLID https://pl.wikipedia.org/wiki/SOLID_(programowanie_obiektowe).
Takze, na tym etapie przestane patrzec na architekture, bo po prostu wypadaloby ja przepisac od nowa
- Page.cs
zakomentowany kod. Co on tam robi? Od tego jest git, by tego nie robic. Jezeli potrzebujesz jakas wersje zapisac to zapisz i o taguj sobie i zawsze mozesz szybko wrocic do tego
Graphics g = Graphics.FromImage(_canvas);
poczytaj o var https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/keywords/var
nazywaj zmienne tak by wiadomo bylo czym sa https://docs.microsoft.com/en-us/dotnet/standard/design-guidelines/general-naming-conventions
usun magic numbers
sadze ze poki co wystarczy, jest nad czym popracowac ;)