Ankündigung

Einklappen
Keine Ankündigung bisher.

Neuer Forenbereich: Codereview?

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Neuer Forenbereich: Codereview?

    Hallo!

    ich beschäftige mich zur Zeit intensiver mit JavaScript und glaube ich würde euch da vielleiiiicht gerne mal drüber gucken lassen, damit man mir sagt was ich falsch/schlecht/ungünstig mache.
    Im JS-Forum würde ich das ungern posten, da dort ja eher konkrete Problemstellungen reinsollen als "Was kann ich besser machen". Off-Topic finde ich auch unpassend.

    Generell würde so ein Bereich viel bringen wenn dort die erfahrenen User ab und zu ihr Zeug posten um von anderen Usern high-value Ratschläge einzuholen und damit dann gleich den unerfahreneren Usern zeigen worum man sich alles Gedanken machen kann - Vorbild und so. Und die unerfahreneren User hätten dort natürlich auch einen Platz um ihre funktionierenden aber "nicht schönen" Lösungen zu präsentieren - wie bei meinem JS.

    Regeln wären in dem Bereicht vielleicht sinnvoll:
    • werde nicht bockig
    • Geduld, hier gehts um Qualität
    • genutzte Sprache / Framework mit in den Threadtitel aufnehmen ([JS], [PHP], [Angular]) damit man grob sehen kann wo der Fokus liegt
    • große Diskussion über Frameworkwahl nur auf Wunsch vom TE ("mit x könntest du" = ok; "du hast zwar gesagt du willst x nicht aber guck mal.." = zu aufdringlich)
    Relax, you're doing fine.
    RTFM | php.de Wissenssammlung | Datenbankindizes | Stay fit


  • #2
    Finde ich ebenfalls eine gute Idee.

    Stellt sich nur die Frage dann, inwiefern das eingegliedert werden könnte. Unterscheidung Einsteiger und Fortgeschritten oder nach Bereichen (PHP, HTML, JS, etc.) oder alles zusammen?


    Zitat von VPh Beitrag anzeigen
    Regeln wären in dem Bereicht vielleicht sinnvoll:
    • werde nicht bockig
    • Geduld, hier gehts um Qualität
    Good luck with that

    "Software is like Sex, it's best if it's free." - Linus Torvalds

    Kommentar


    • #3
      Alles zusammen würde imo reichen.
      Nächste Regeln:
      • genutzte Sprache / Framework mit in den Threadtitel aufnehmen
      • große Diskussion über Frameworkwahl nur auf Wunsch vom TE ("mit x könntest du" = ok; "du hast zwar gesagt du willst x nicht aber guck mal.." = zu aufdringlich)
      Good luck with that
      ye einfach mal versuchen
      Relax, you're doing fine.
      RTFM | php.de Wissenssammlung | Datenbankindizes | Stay fit

      Kommentar


      • #4
        Das Forum Projekthilfe haben wir ja schon, da würde das denke ich reinpassen. Wir müssten wohl intern mal klären, ob es Sinn macht, das zu erweitern bzw. eine Unterteilung zu erstellen.
        Ich werf' das mal beim Admin ein.
        Competence-Center -> Enjoy the Informatrix
        PHProcks!Einsteiger freundliche Tutorials

        Kommentar


        • #5
          Da JS auch nicht nach Noob/Pro getrennt ist fände ich das als JS Thema dort auch nicht falsch.

          Es gehen jetzt schon viele Threads ins falsche Forum.. Noch mehr Foren = noch mehr Verschieben. Ich weiß nicht.. Sry.
          PHP.de Wissenssammlung | Debugging: Finde DEINE Fehler selbst! | mysql_* ist veraltet! | Gegen Probleme beim E-Mail-Versand | Sicheres Passwort-Hashing | Includes niemals ohne __DIR__ | Kein Support per PN

          Kommentar


          • #6
            Ich finde auch, das es schon zu viele Sub-Foren sind. Warum eigentlich diese Unterteilungen, alles hat mit Web und Programmieren in irgend einer Art zu tun und daher denke ich ein Forum für alles wäre OK und die neuen Schreiber müssten nicht immer raten ob sie hier nun posten dürfen oder es gleich beim ersten Mal schon Mecker gibt..

            Kommentar


            • #7
              Ist grundsätzlich eine Sichtweise. Unabhängig davon, das ich den Vorschlag hier nicht ganz schlecht finde ( deshalb muss es aber nicht gut sein ), ist aber genau das von Dir erwähnte Gemecker aus meiner Sicht ein Pro für Unterteilungen ( allgemein betrachtet ).

              Wenn ich mal das Beispiel "ein Forum für alles" abgreife, gehe ich ganz stark davon aus, dass viele Neulinge erst recht einen vorn Koffer bekommen, weil wir hier viele wirklich kompetente Mitglieder haben, die aber leider nicht immer daran denken jemanden vor sich zu haben, dem das Thema schwer fällt. Dann kommen als erstes Brachial-Verse, die dem TE suggerieren, dass er alles falsch macht und sich lieber etwas anderem widmen sollte.
              Da kann ich verstehen, dass der ein oder andere sich hier nicht mehr wohl fühlt.

              Natürlich kann man das als halbwegs intelligenter Helfer im gröbsten auseinander halten, ob jemand wirklich ein Problem damit hat, es zu verstehen oder komplett Beratungsresistent ist.
              Aber um die Kurve zu dem Vorschlag hier zu bekommen, könnte man in einem solchen Forum über gewisse Regeln "steuern", dass die Helfer wirklich nur auf gravierende Sicherheitslücken, wie Injection-Gefahr usw. hinweisen, anstatt gleich den gesamten Code madig zu machen, weil es vielleicht kein OOP ist. Klar, Tipps sollten auch dort erlaubt sein, aber es liegt dann im Ermessen und im Aufgabenbereich der Moderation, den Tenor einzuschätzen und ggf. auch mal einen Helfer entsprechend zu ermahnen, auf das wesentliche zu achten, anstatt wieder mal Composer & Co. zu verheiligen.

              Ich gebe zu, das sind so Beispiele, die mir in den "normalen" Foren hier echt auf die Nerven gehen ( also mein persönliches Problem! ). Aber das würde in dem anderen Forum abgegrenzt werden können ( wenn alles gut läuft ).
              Einsteiger hätten dann vielleicht auch weniger Hemmungen, Ihren Code mal zu zeigen und Tipps von den erfahrenen zu holen.

              Aus diesen und anderen Gründen, fände ich so eine Unterteilung wirklich nicht verkehrt, aber es kann durchaus sein, dass ich mich täusche und das Schiff fährt in eine ganz andere Richtung wie erwartet, denn hellsehen kann ich noch nicht...

              Aus Sicht des Aufwand für die Moderation wäre ein solches Forum natürlich weniger praktisch, daher ist es mir letztendlich auch gleich, ob wir es machen oder nicht.
              Wenn die Pro-Meinungen überwiegen und Sinn machen, bin ich gern bereit, den Mehraufwand zu wagen, kloppe mich aber nicht drum, nur weil ich die Idee im Ansatz gut finde.
              Competence-Center -> Enjoy the Informatrix
              PHProcks!Einsteiger freundliche Tutorials

              Kommentar


              • #8
                Die aktuelle Unterteilung des Forums würde ich überhaupt nicht anzweifeln, diese finde ich doch sehr sinnig, gerade die Unterscheidung von Einsteiger und Fortgeschrittenen bei PHP. Einheitsbrei (also viel weniger Unterforen) würde meiner Meinung nach nicht wirklich funktionieren, da gewisse Themen einfach untergehen würden, die von einigen gerne diskutiert worden wären.
                Als Beispiel muss man ja nur mal das Verhältnis von Threads in "Einsteiger" und "Fortgeschritten" vergleichen. Nicht jeder ist Bereit Zeit in Anfängerfragen zu investieren, dahingegen bring jener gerne Zeit in eine fortgeschrittenere Diskussion ein. Oder sehe ich das falsch?

                Bzgl. Codereview, wäre ich ebenfalls für eine Unterteilung anhand des Wissensstand, nicht anhand des Themengebiets.
                Je nach Wissenstand kann dann beurteilt werden, also auf Injections hinweisen, oder eben dann auf OOP Probleme.
                Sprache oder Framework sollten dann einfach im Titel genannt werden (wie VPh schon gesagt hat).
                "Software is like Sex, it's best if it's free." - Linus Torvalds

                Kommentar


                • #9
                  Hey,

                  diese Idee finde ich sehr gut. So kann man da sein funktionierenden Code posten und Verbesserungsvorschläge dazu bekommen, was man besser machen kann und was nicht so gut ist. Und dies finde ich wirklich gut. Denn dann sehen z.b. die Einsteiger/Fortgeschrittene auf was man alles achten muss und wie es noch besser geht.

                  Ich bin dafür. Daumen hoch (y)
                  Wenn jemand Hilfe bei einem Projekt braucht bin ich bereit kostenfrei mitzuhelfen, denn ich möchte mehr Erfahrung sammeln.

                  Kommentar


                  • #10
                    Hallo,

                    die Idee finde ich auch gut. Allerdings hätte ich einen ganzen anderen Vorschlag, welches Board man dafür aufsplitten könnte: Das würde ja am besten zu Software Design passen. Es ist ja streng genommen "Software Design", nur nicht, wie ursprünglich von diesem Board angedacht theoretisch, sondern praktisch. Deswegen würde ich das zu einem Hauptboard hochstufen und die folgenden Unterboards erstellen:
                    - theoretische Ansätze (als "wie gehabt"-Board)
                    - Code Reviews ECMAScript (JavaScript, TypeScript, CoffeeScript, Dart, etc.)
                    - Code Reviews PHP (alles, Plain, mit Lib oder Framework mit Präfixes für die beliebtesten Libs / Frameworks: Symfony, Laravel, Doctrine, Blade, Twig, Codeception, PHPUnit
                    - Build Systeme und Plugins (wäre auch cool, würde zwar bestimmt weniger genutzt werden, aber dann könnte man hier zum Beispiel seine Jenkins oder Konfiguration oder sein Ant XML vorstellen)

                    Zu den Regeln hätte ich noch folgende Ergänzung, was mir persönlich hier auch immer sauer aufstößt (egal welches Board): Nicht an Kleinigkeiten aufhängen, nicht (Wort-) verbesserisch sein. Oder auf gut Deutsch gesagt: Nicht klug scheißern, wenn man sich mal bei einem Wort oder so verschrieben hat oder die Bedeutung in ein anderes Licht gerückt hat.


                    MFG

                    derwunner


                    Edit: Die Argumentation von den Moderatoren kann ich nachvollziehen, dass sie dann mehr Arbeit hätten. Kann ich aber aus Sicht eines normalen Board-Nutzers nicht verstehen. Dann müssen halt mehr Moderatoren her. Das wäre mein Vorschlag zur Güte, bzw. zur Beilegung der Argumentation

                    Kommentar


                    • #11
                      So einen Bereich würde ich auch begrüßen, mitunter sieht man den Wald vor lauter Bäumen nicht. Damit meine ich, dass PHP und JS einen sehr großen Befehlsschatz haben, aber man trotzdem oft immer wieder die gleichen Funktionen oder Klassen nutzt. Es wäre wirklich hilfreich, wenn mal ein anderer darüber schaut und sagt: "Mensch, versuche es mal auf diese Weise".

                      Deswegen auch von mir eindeutig "Daumen hoch".

                      Wie man aber hier die Spreu vom Weizen trennt, keine Ahnung, ich weiß manchmal selber nicht - bin ich Anfänger oder Fortgeschritten oder was auch immer. Das kommt auf das Problem an und ob man diesem Problem schon mal begegnet ist.


                      Kommentar


                      • #12
                        Zitat von kaminbausatz Beitrag anzeigen
                        So einen Bereich würde ich auch begrüßen, mitunter sieht man den Wald vor lauter Bäumen nicht. Damit meine ich, dass PHP und JS einen sehr großen Befehlsschatz haben, aber man trotzdem oft immer wieder die gleichen Funktionen oder Klassen nutzt. Es wäre wirklich hilfreich, wenn mal ein anderer darüber schaut und sagt: "Mensch, versuche es mal auf diese Weise".
                        Das kannst Du übrigends auch "maschinell" haben durch Code Anylsen. Eine Technik der Code Analyse wäre zum Beispiel die Auswertung nach Komplexiät. Hier helfen speziell in PHP zum Beispiel Tools PHP Mess Detector (phpmd) und PHP Code Sniffer (phpcs). Die beiden genannten Tools beschäftigen sich mit den folgenden Fragen (im groben):
                        - wie viele Verschachtelungen bzw. Verzweigungen gibt es? Zu wie vielen möglichen Pfaden kann das führen?
                        - entspricht der zu analysierende Code den definierten Konventionen?

                        Auch kann eine Code Coverage hilfreich sein: Wie viel toten Code habe ich, also wie viel functions bzw. Methoden habe ich im Projekt, die keine Verwendung mehr haben? Wie oft wird eine function bzw. Methode aufgerufen?

                        Weiterhin kann auch ein Profiler hilfreich sein. Denn der zeigt an, wie lange bestimmte function oder Methode für die Ausführung gebraucht hat. Das kann auch ein Indiz für qualitativ schlechten Code sein, wenn hier ein Ausreiser zu erkennen ist. Manche Profiler gehen sogar noch weiter und zeigen Datenbanken Query Execution Zeiten an, bzw. zeigen alle an die Datenbank abgefeuerte Queries an. Das kann zum Beispiel hilfreich sein, um doppelte Queries zu vermeiden. Bei einem großen Projekt an den mehrere Leute arbeiten kann man schnell mal den Überblick verlieren, da ist so ein Profiler echt praktisch.

                        Außerdem sind Unit Tests hilfreich. Die können unter anderem folgende Fragen beantworten: Kommen unerwartete Ergebnisse zurück? Geht wirklich alles so wie es sollte?
                        Ganz wichtig hier ist auch immer die Testabdeckung. Eine gute Testabdeckung kann nur erzielt werden, wenn die zu verarbeitenden Daten so umfangreich sind, dass man alle Testfälle abdecken kann. Das wäre dann eine 100 prozentige Testabdeckung. Die ist natürlich nicht immer möglich, sollte aber dennoch immer das angestrebte Ziel sein.


                        All das sind Methoden, die man zur Qualitätssicherung von Code bzw. Software verwenden kann (und auch sollte). Wenn hier also jemand eine Code Review haben will, dann wäre es hilfreich für die anderen zu wissen, was eventuell schon bei der Qualitätssicherung festgestellt, bzw. entdeckt wurde. Das ganze kann man sich wenn man will so vorstellen, wie die AutoKorrektur in den Office Programmen. Die kann auch schon viele Fehler korrigieren, bevor man selbst das 2. Mal sich seinen gerade eben geschriebenen Text durchliest.

                        Zitat von kaminbausatz Beitrag anzeigen
                        Wie man aber hier die Spreu vom Weizen trennt, keine Ahnung, ich weiß manchmal selber nicht - bin ich Anfänger oder Fortgeschritten oder was auch immer. Das kommt auf das Problem an und ob man diesem Problem schon mal begegnet ist.
                        Joa, ich denke schon, dass man das fest machen kann. Wenn man schonmal in einen großen Projekt mitgearbeitet hat und dort quer durch die Bank mal alles gemacht hat ( Algorithmen, Importe, Exporte, Backend Entwicklung, Core Logik, Frontend, Frontend Seiten nach Screendesign umsetzen, etc. ), dann kann man sich schon mindestens als Fortgeschritten bezeichnen. Kommt halt immer bisschen auch auf die eingesetzten Techniken im Projekt an. Wenn es Plain PHP und jQuery "nur" war, dann würde ich eher sagen leicht fortegeschrittener Fortgeschrittener. Wenn man jedoch dagegen Symfony, Angular, Typescript, NPM und diverse Task Runner eingesetzt hat, dann würde ich denjenigen als Fortgeschrittener mit starkem Hang zu Profi einordnen. Fortgeschrittener bei letzterem nur deshalb, weil selbst so jemand nicht jede PHP Funktion, Klasse, Methode oder Interface kennt. Auch heißt das nicht, dass man mit den nötigen Design Patterns vertraut ist. Design Patterns und Software Gestaltung, bzw. Software Architektur ist wieder ein ganz anderes Thema. Erst wer beides sicher beherrscht, kann sich meiner Meinung nach als Webentwickler Profi bezeichnen, wenn nicht sogar als Software Entwickler Profi. Ich mache die Unterscheidung deshalb, weil es im Web Bereich nicht alle Techniken gibt, die es sonst bei der klassischen PC Programmierung bzw. bei der App Programmierung gibt. Speziell habe ich da gerade zum Beispiel das Thema Threads und dessen richtige Verwendung, sowie 3D Verarbeitung und Multimedia Programmierung im Hinterkopf.

                        Kommentar


                        • #13
                          derwunner
                          Wie würdest Du Dich einstufen?

                          Ansonsten sind Code Analysen kein Fremdwort. Mir geht es darum ggf. mal von komplett eingetreten Pfaden abzuweichen. Ein Beispiel hierzu ist folgender Thread. https://www.php.de/forum/webentwickl...en#post1508907

                          Hier bist Du beispielsweise einen ganz anderen Weg gegangen als ich. Der Weg mit dem klassischen Gruppenwechsel ist m.E. so ein eingetretener Pfad.

                          Kommentar


                          • #14
                            kaminbausatz Ich würde mich selbst als Profi einstufen. Das hat mehrere gute Gründe, warum ich zu dieser Einstufung letztendlich komme, unter anderem den, dass ich alle beliebten Programmiersprachen kann und diese bereits gewerbsmäßig nutzbringend eingesetzt habe für verschiedene Projekte in verschiedenen Firmen. Zum Selbstzweck (interne Programmierabteilung) und im Kundenauftrag.
                            Genau auf die Gründe möchte ich aber in einem öffentlichen Forum nicht eingehen, um hier niemanden Angriffsfläche gegen mich zu bieten.
                            Wer mehr dazu wissen möchte, dem kann ich das gerne per PN mitteilen, öffentlich werde ich mich dazu jedoch nicht weiter äußern aus dem eben genannten Grund.

                            Wegen der Gruppenwechsel Thematik: Nun ja, ich habe ja schon erlebt, dass sich Webentwickler wehement gegen den Einsatz von Threads sträuben, obwohl das längst nichts mehr Neues ist und so kompliziert, wie die meisten tun, ist es gar nicht. Die Kunst des Könnens liegt im Wollen... Aber dass sich jemand gegen einen Algorithmus sträubt, mit der Begründung "ist zu kompliziert", ist mir auch noch nicht unter gekommen. Es gibt wohl für alles ein erstes Mal... Und ich finde immer noch, dass in dem Thread meine Gruppenwechsel Lösung die einzige Lösung ist. Deine Lösung mit dem unblock MySQL Connection lindert allerhöchstens nur die Auswirkungen des Problems, bekämpft jedoch nicht die Ursache. Außerdem wozu überhaupt erst der Aufwand mit Objekten zu jounglieren, wenn es hier für den Einmalzweck der Ausgabe viel leichter geht anhand eines Gruppenwechsels?! Er will das ganze ja nur einmal ausgeben und braucht danach die Daten nicht mehr. Dafür eignet sich immer ein Gruppenwechsel am besten, gerade wie bereits erwähnt, auf einen Server, wo vielleicht 20 Applikationen gleichzeitig laufen, die sich den vorhandenen Arbeitsspeicher teilen müssen. Deine "Lösung" ist alles andere als Ressourcen sparsam. Bei einer kleinen Tabelle mit nur 100 Einträgen mag das noch ohne Probleme gehen, aber lass mal die Tabelle wesentlich größer werden. Spätestens dann ist Deine Lösung ein Flaschenhals für jeden Server, egal wie viel RAM der hat und ebenfalls egal wie teuer oder billig RAM Riegel heutzutage sind. Also deine Argumentation "man kann ja unblocking Statements verwenden" zieht nicht wirklich.
                            Und eines noch dazu: Der Gruppenwechsel mit den verschachtelten Schleifen lässt sich schon ohne größeren Aufwand debuggen. Er ist ebenfalls wartbar, weil er klein und überschaubar ist. Zu kompliziert und unwartbar zieht also auch nicht. Außerdem denke ich nicht, dass die Applikation von dem TE jemals einen produktiven Zwecke dienlich sein wird. Das wird wahrscheinlich höchstens mal kurz in einer Bildungseinrichtung oder so laufen.

                            Kommentar


                            • #15
                              Genau auf die Gründe möchte ich aber in einem öffentlichen Forum nicht eingehen, um hier niemanden Angriffsfläche gegen mich zu bieten.
                              Nicht dein Ernst.
                              Der Rest passt in den entsprechenden Thread besser rein.
                              Relax, you're doing fine.
                              RTFM | php.de Wissenssammlung | Datenbankindizes | Stay fit

                              Kommentar

                              Lädt...
                              X