Nieuw Project: Rival Guns

    This site uses cookies. By continuing to browse this site, you are agreeing to our Cookie Policy.

    • Hiya,

      Nice dat je wilt leren :-). Als je wat feedback wilt; wellicht kan je hier wat mee.

      Composer psr-4;
      Je gebruikt composer maar niet de Autoloading functie ervan. Je registreert nu je eigen autoloading functie. Als je iets van standarisatie in je code wilt voegen (psr-4 inclusief dus namespaces) dan raad ik je aan de autoloading functie te gebruiken.


      getcomposer.org/doc/01-basic-usage.md#autoloading


      Controllers;

      In je controllers zie ik eigenlijk constant terug dat je de zelfde models in laad, wellicht met wat logica verplaatsen naar je base class? Of in je middelware afvangen? Voelt op één of andere manier niet geheel lekker om je __construct in je controller zelf aan de te roepen :-).


      Hierdoor heb je ook kans dat je zaken in base controller wordt overschreven. Ik zou zelf iets van een setup() functie o.i.d. creeren welke wordt aangeroepen in plaats van de __construct functie.


      Type hinting

      Soms gebruik je type hinting (executables) en soms niet (controllers) pick one, doe het wel of doet het niet (DOE HET WEL! :-)). En als je dan toch bezig met ook gelijk type hinting voor je return meepakken:


      PHP Source Code

      1. public function foo(string $bar) : string
      2. {
      3. return $bar;
      4. }

      Zelfde programmeren
      Het zelfde programmeren en uniform tabs etc gebruiken is lastig, wellicht een tool als StyleCI? Trekt in één keer je code recht naar een standaard waardoor je code ook een stuk cleaner en overzichtelijker lijkt :-).


      Er zullen vast nog meer tips zijn :-); maar keep up the good work; indereen begint ergens.
    • Patrick wrote:

      Hiya,

      Nice dat je wilt leren :-). Als je wat feedback wilt; wellicht kan je hier wat mee.

      Composer psr-4;
      Je gebruikt composer maar niet de Autoloading functie ervan. Je registreert nu je eigen autoloading functie. Als je iets van standarisatie in je code wilt voegen (psr-4 inclusief dus namespaces) dan raad ik je aan de autoloading functie te gebruiken.


      getcomposer.org/doc/01-basic-usage.md#autoloading


      Controllers;

      In je controllers zie ik eigenlijk constant terug dat je de zelfde models in laad, wellicht met wat logica verplaatsen naar je base class? Of in je middelware afvangen? Voelt op één of andere manier niet geheel lekker om je __construct in je controller zelf aan de te roepen :-).


      Hierdoor heb je ook kans dat je zaken in base controller wordt overschreven. Ik zou zelf iets van een setup() functie o.i.d. creeren welke wordt aangeroepen in plaats van de __construct functie.


      Type hinting

      Soms gebruik je type hinting (executables) en soms niet (controllers) pick one, doe het wel of doet het niet (DOE HET WEL! :-)). En als je dan toch bezig met ook gelijk type hinting voor je return meepakken:


      PHP Source Code

      1. public function foo(string $bar) : string
      2. {
      3. return $bar;
      4. }
      Zelfde programmeren
      Het zelfde programmeren en uniform tabs etc gebruiken is lastig, wellicht een tool als StyleCI? Trekt in één keer je code recht naar een standaard waardoor je code ook een stuk cleaner en overzichtelijker lijkt :-).


      Er zullen vast nog meer tips zijn :-); maar keep up the good work; indereen begint ergens.
      Ik heb je raad opgevolgd en eens de moeite gedaan om de code op te schonen qua intendation en type hinting.

      Ik heb ook namespaces en de Composer autoloader erin gestoken.
      Er is wel 1 ding dat ik niet snap. Buiten die aanpassing in composer.json heb ik nergens de composer Autoloader "ge-include" zoals je normaal zou doen bij een PHP script. Hoe kan het dat de autoloader dan alsnog werkt?

      Nu ben ik me alleen nog aan het afvragen hoe ik een Model kan laden zonder de __construct functie maar op een nette manier. Zou evt. een constructie met Annotations handig zijn? (Het zou in ieder geval wel een interessante oefening zijn.)
    • Nog enkele andere tips:

      • Maak gebruik van npm. Goed versie en dependency beheer. Vergemakelijkt ook imports.
      • Maak gebruik van ES6.
      • Stop met jQuery. Het is verouderd en omslachtig. Ik zie ook dat je Bootstrap gebruikt. Bootstrap 5, die binnenkort uitkomt, stapt af van jQuery.
      • Je zegt te kijken naar React, maar kijk ook eens naar Vue. Heeft een lagere instap en vind het persoonlijk fijner werken.
      • Maak gebruik van een bundler zoals Webpack (makkelijke instap is iets als Laravel-mix). En dan bijv. gebruik maken van de hot-reload.
      • Waarom een eigen framework? Er ligt dan zo veel gevaar op de loer. Wel leuk uiteraard. Maar kans op fouten, bugs en veiligheidsrisico's is wel goed aanwezig. Ook onderhoudbaarheid is lastiger. Minder documentatie, minder 'ondersteuning' vanuit de community, minder goed overdraagbaar, minder goed up te daten. Makkelijke suggestie hiervoor is, gebruik Laravel.
      • Maak gebruik van user stories.
      • Ik zie dat je doet aan tests. Netjes! Maar doe je ook aan TDD? Zo niet, ook een tip.
      Master student IT-recht en Master student Ondernemingsrecht & software ingenieur
      My Personal profile
      My professional profile (LinkedIn/CV)
    • Tim wrote:

      Nog enkele andere tips:

      • Maak gebruik van npm. Goed versie en dependency beheer. Vergemakelijkt ook imports.
      • Maak gebruik van ES6.
      • Stop met jQuery. Het is verouderd en omslachtig. Ik zie ook dat je Bootstrap gebruikt. Bootstrap 5, die binnenkort uitkomt, stapt af van jQuery.
      • Je zegt te kijken naar React, maar kijk ook eens naar Vue. Heeft een lagere instap en vind het persoonlijk fijner werken.
      • Maak gebruik van een bundler zoals Webpack (makkelijke instap is iets als Laravel-mix). En dan bijv. gebruik maken van de hot-reload.
      • Waarom een eigen framework? Er ligt dan zo veel gevaar op de loer. Wel leuk uiteraard. Maar kans op fouten, bugs en veiligheidsrisico's is wel goed aanwezig. Ook onderhoudbaarheid is lastiger. Minder documentatie, minder 'ondersteuning' vanuit de community, minder goed overdraagbaar, minder goed up te daten. Makkelijke suggestie hiervoor is, gebruik Laravel.
      • Maak gebruik van user stories.
      • Ik zie dat je doet aan tests. Netjes! Maar doe je ook aan TDD? Zo niet, ook een tip.

      Dankjewel voor het advies Tim!
      De front-end is idd compleet achterhaald, maar ik wil eerst even gewoon die back-end helemaal lopend hebben en daarna echt aandacht gaan besteden aan een degelijke front-end. (Hetzelfde voor de user stories: eerst even alle functionaliteiten die ik wil hebben erin steken.)

      De reden waarom ik een eigen framework heb gemaakt is vrij simpel: het is een leerprojectje. Ik wou het mooi allemaal zelf doen. Op zich wil ik ook wel Symfony, Laravel oid leren, maar dan begin ik weer van 0 af. Dus dat gaat waarschijnlijk best wat tijd kosten om het goed te doen.

      Verdorie, nou heb ik ergens weer zin om helemaal opnieuw te beginnen :p
    • Frameworks maken zeker je leven heel wat makkelijker en ook naar upgrades en updates toe. Ze blijven echter wel altijd open-source en voor heel wat bekende frameworks worden er wel dagelijks interessante bugs of exploits gevonden de een wat ernstiger dan de ander. Als je deze weg zou intreden moet je zeker ernstige bugs laten patchen, alhoewel veel frameworks ook dag na dag robuster worden gemaakt.

      Ikzelf zie geen problemen met je eigen framework project! Maar mocht je dit willen verder ontwikkelen zoals je bezig bent kan ik je zeker aanraden om eens een kijkje te nemen op cheatsheetseries.owasp.org/ om eens snel te achterhalen waar je applicatie op vlak van beveiliging eventueel nog lekken zou kunnen bevatten, raad je zeker ook aan om 1 onderwerp rustig per keer te benaderen aangezien de cheatsheets zelf wel vrij uitgebreid kunnen zijn!

      En om dieper te gaan op Tim zijn opmerking waarom enkel beperken tot user stories? Personas, use cases, ga evt. ook wat spelen met wireframes kunnen allemaal netjes samenvloeien tot een geweldige user interface en experience naar 't einde toe!

      Veel succes voor welke weg je ook verder wilt!
      MiCa - Basketbal <3