Aplikacja internetowa do tworzenia ankiet real time

0

https://github.com/Arturek1/chickenpoll

https://chickenpoll.com

Napisałem małą aplikację internetową do tworzenia ankiet real time.

Proszę o jak najbardziej szczere i konstruktywne komentarze na temat mojego kodu, szczególnie backendu. Proszę wybaczyć brak testów jednostkowych, jestem w trakcie ich tworzenia.

1

"VPN detection We effectively block any proxy or VPN traffic and prevent from voting in our polls."

No to wygląda na to, że to nie działa :-)

3

Nie znam się na PHP, ale zawsze jak widzę w kontrolerze nawalone pętle i logikę biznesową, to dla mnie jest to słabe.
Klasa UserObserver skopiowana z neta, 3/4 metod nie zaimplementowane. YAGNI?

3

Trochę mi się śmiać chce jak to mikro apki z jednym w sumie kontrolerem do ankiety trzeba nawalić vaganta, webpacka, mixa, vue, bootstrap, socket i pińcet innych paczek, pewnie ze 150MB na kilka klików :)

1

Dziękuję jeszcze raz @czysteskarpety, @urke i @katakrowa za dobrą krytykę.

Nie znam się na PHP, ale zawsze jak widzę w kontrolerze nawalone pętle i logikę biznesową, to dla mnie jest to słabe.
Klasa UserObserver skopiowana z neta, 3/4 metod nie zaimplementowane. YAGNI?

Trochę mi się śmiać chce jak to mikro apki z jednym w sumie kontrolerem do ankiety trzeba nawalić vaganta, webpacka, mixa, vue, bootstrap, socket i pińcet innych paczek, pewnie ze 150MB na kilka klików :)

Cała ta aplikacja powinna ważyć max 100kB ( zakładając nawet użycie jakiegoś framework z MVC ). Tymczasem mamy 15MB zipa

Jednak po za krytyką prosiłbym jeszcze o jakieś porady, linki do tutoriali albo do podobnych projektów na których mógłbym się wzorować (nie muszą być w PHP) cokolwiek żebym poprawił mój kod. Szczególnie chciałbym się nauczyć pisać czystsze kontrolery, bo tak jak @urke napisał zbyt bardzo logika biznesowa jest nawalona. Nie wiem jak mam się za to zabrać.

3
200 napisał(a):

Jednak po za krytyką prosiłbym jeszcze o jakieś porady, linki do tutoriali albo do podobnych projektów na których mógłbym się wzorować (nie muszą być w PHP) cokolwiek żebym poprawił mój kod. Szczególnie chciałbym się nauczyć pisać czystsze kontrolery, bo tak jak @urke napisał zbyt bardzo logika biznesowa jest nawalona. Nie wiem jak mam się za to zabrać.

To nie logika biznesowa jest zbyt "nawalona" tylko cała aplikacja zrobiona jest zwyczajnie do bani.

  • Brakuje projektu ( jakiegokolwiek opisu );
  • Brakuje wyraźnej koncepcji i celu ;
  • Zły dobór narzędzi do realizacji celu ;

Ostatecznie wyszedł potwór o wadze 30Mb zamiast zgrabnej aplikacji, która mogłaby zajmować do ~100kB a z punktu widzenia użytkownika robić i wyglądać dokładnie tak samo.
Można powiedzieć, że wyjechałeś kombajnem przycinać trawę przy krawężnikach w ogródku, do tego widać, że tym kombajnem jeszcze jeździsz dość słabo. Dlatego wyszło jak wyszło.

Ja osobiście jestem przeciwnikiem projektowania i pisania programów w taki sposób. Potem leży na serwerach milion aplikacji z jakimiś nie wspieranymi, nieaktualnymi i dziurawymi jak ser framework`ami, które zajmują gigabajty i nikt nie wie co robią. Zazwyczaj ostatecznie okazuje się, że mogły je zastępować skrypty składające się z 2 - 10 plików.

Do zrobienia tego co pokazałeś wystarczyło użyć bootstrap ( jeśli rzeczywiście zupełnie nie znasz się na CSS ) + czysty PHP a jak już musi coś być to do takich małych rzeczy można użyć np.: http://www.slimframework.com/

0

W sumie też to mógłbym w czystym PHP, ale dla wygody wolałem wybrać Laravela. W przyszłości planuję też dodać takie feature'sy jak: możliwość wstawiania obrazków PDF'ów pól tekstowych tak jak w Google Forms, możliwość stworzenia konta i wgrania na niego avataru, możliwość głosowania tylko dla zalogowanych, możliwość komentowania, możliwość wstawiania opisu do ankiety, możliwość automatycznego zamknięcia ankiety po kilku dniach. Moim zdaniem (nie wiem, może się myle) zrobienie tego w Laravelu jest lepszym rozwiązaniem niż czyste PHP.

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