Chciałbym poprosić Was o ocenę mojego niedawno rozpoczętego projektu z logiką w JavaScript w Node.js i z interfejsem CLI w Bashu:
https://github.com/silvuss/silvuss-bracket-string-validator
Projekt jest niewielki, jego funkcjonalność jest znikoma (zresztą przeczytajcie README). Niemniej pokładam w nim dwie nadzieje:
- stanie się kiedyś wizytówką mnie dla samego siebie; co przez to rozumiem? między innymi: będzie dobrze wypozycjonowany, będzie mieć dobrze wymyśloną architekturę, dobrze napisany kod i dokumentację, ukończone wszystkie issues, zrozumiałe commit messages i naprawione wszystkie błędy, jakie można w nim znaleźć (pomijając rzeczy niezależne ode mnie, np. pewne niezbyt trafne konstrukcje języków);
- będę mógł podpiąć pod niego – jako GUI – interfejs w Angularze; dzięki temu moja nauka podstaw Angulara pójdzie do przodu; obecnie jest jakby zamrożona.
Zależy mi na ocenie całego projektu na GutHubie (nie tylko aplikacji). M.in. chodzi mi o ocenę następujących rzeczy:
- wydań – czy opisy są zrozumiałe; może dobrze będzie dołączać jakieś pliki, może cały projekt w innym formacie niż obecnie (obecnie jest tylko skompresowany kod źródłowy);
- issues – szczególnie istotne; czy są dobrze wydzielone, czy nie za dużo / za mało;
- architektury, w tym obsługi błędów – szczególnie istotne; do poprawy, ale nie mam za bardzo pomysłów, więc chętnie poznam jakiekolwiek sugestie;
- kodu, w tym komentarze – podział na funkcje, pliki, czytelność, zwięzłość/rozwklekłość, nazwy zmiennych itd.;
- dokumentacji – szczególnie istotne; np. czy jest czytelna i zrozumiała, czy nie za długa, czy czegoś w niej nie brakuje;
- czy logika jest w odpowiednim miejscu; może np. trzeba przenieść część z CLI do logiki, a może część z logiki do CLI;
- czy struktura katalogów w projekcie jest w porządku (jest moja – nie sugerowałem się niczym konkretnym).
Z racji niewielkiego rozmiaru projektu (nie bardzo może być co krytykować :P) najbardziej proszę w powyższych punktach o wskazówki dotyczące wzorców projektowych, które mógłbym użyć, metodologii, bibliotek, frameworków oraz co jeszcze mógłbym dodać jako funkcjonalność do tego projektu. Nowa funkcjonalność powinna być jakoś powiązana ze starą; w tym projekcie nie zależy mi na robieniu aplikacji, która pierze, sprząta i gotuje.
Jak zwykle – wszelkie sugestie są mile widziane. :) W tym – literówki i błędy w dokumentacji czy w komentarzach (tym bardziej, że są po angielsku).
Postaram się tutaj opisywać zmiany w projekcie, dopóki wszystkich sugestii nie rozpatrzę.
Na koniec, korzystając z okazji, chciałbym podziękować dwóm osobom:
- użytkownikowi @Mr.YaHooo za umieszczenie na naszym forum pierwszej wersji algorytmu sprawdzającego, czy ciąg znaków jest wyrażeniem nawiasowym w tym poście;
- użytkowniczce @Kate321 za założenie tego wątku; dzięki temu w ogóle poznałem ideę wyrażeń nawiasowych. Trochę szkoda, że już nie wchodzi na forum. @Kate321, jeśli to czytasz, napisz proszę.
UPDATE 19 lipca 2019: Dodałem w projekcie komentarze JSDoc (jak ktoś zna Javę – Wikipedia określa je jako podobne do komentarzy Javadoc). Tutaj wydanie, które to opisuje: https://github.com/silvuss/silvuss-bracket-string-validator/releases/tag/v1.1.0
UPDATE 28 lipca 2019: Kolejne, duże, wydanie mojej aplikacji: 1.2.0 (link). Dodałem testy jednostkowe; wykorzystuję przy nich frameworki Mocha oraz Jest. Z innych zmian – nareszcie włączyłem wsparcie dla usługi Travis CI.