{"action":"closed","issue":{"url":"https://api.github.com/repos/arpad-m/dontfall/issues/8","repository_url":"https://api.github.com/repos/arpad-m/dontfall","labels_url":"https://api.github.com/repos/arpad-m/dontfall/issues/8/labels{/name}","comments_url":"https://api.github.com/repos/arpad-m/dontfall/issues/8/comments","events_url":"https://api.github.com/repos/arpad-m/dontfall/issues/8/events","html_url":"https://github.com/arpad-m/dontfall/issues/8","id":162913328,"number":8,"title":"etwas \"Code-Kritik\"","user":{"login":"jvoigtlaender","id":5853832,"avatar_url":"https://avatars.githubusercontent.com/u/5853832?v=3","gravatar_id":"","url":"https://api.github.com/users/jvoigtlaender","html_url":"https://github.com/jvoigtlaender","followers_url":"https://api.github.com/users/jvoigtlaender/followers","following_url":"https://api.github.com/users/jvoigtlaender/following{/other_user}","gists_url":"https://api.github.com/users/jvoigtlaender/gists{/gist_id}","starred_url":"https://api.github.com/users/jvoigtlaender/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jvoigtlaender/subscriptions","organizations_url":"https://api.github.com/users/jvoigtlaender/orgs","repos_url":"https://api.github.com/users/jvoigtlaender/repos","events_url":"https://api.github.com/users/jvoigtlaender/events{/privacy}","received_events_url":"https://api.github.com/users/jvoigtlaender/received_events","type":"User","site_admin":false},"labels":[],"state":"closed","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":6,"created_at":"2016-06-29T12:31:51Z","updated_at":"2016-07-14T11:23:55Z","closed_at":"2016-07-14T11:23:55Z","body":"Ich würde in der Regel mit Record-Patternmatching arbeiten, zum Beispiel:\r\n```elm\r\ninitGameData : InitFlags -> (GameData, Cmd GameMsg)\r\ninitGameData { width, height, seed } = ... width ...\r\n```\r\nstatt:\r\n```elm\r\ninitGameData : InitFlags -> (GameData, Cmd GameMsg)\r\ninitGameData initFl = ... initFl.width ...\r\n```\r\nDas funktioniert ja sogar falls die Funktion mal nicht jede Komponente des Records benutzt. Und falls Sie auch noch Zugriff auf das `initFl` als Ganzes brauchen, geht das ja per `as`-Matching.\r\n\r\nIch fände es besser, die \"Standardnamen\" für diverse Aspekte des Programms zu benutzen. Also `Model` statt `GameData` und `Msg` statt `GameMsg`, und `view` statt `render` etc. Falls Sie die Pre- und Postfixe für nötig halten mit Blick auf mögliche Erweiterungen (also dass es abseits des eigentlichen Spiels vielleicht noch ein Hauptmenü, dann mit `MenuData` und `MenuMsg`, geben soll): Modul-Qualifizierung wäre dann die passendere Variante. Also dann hätten Sie eben Module `Game` und `Menu`, beide mit je einem `Model`- und `Msg`-Typ, und würden die Dinge als `Game.Model` und `Menu.Msg` verwenden, und analog für eventuelle mehrere `init`-, `view`-, `update`-Funktionen.\r\n\r\nSind Sie sicher, dass Sie bei dem Mausereignis `\"clientX\"` wollen, nicht `\"offsetX\"`?\r\n"}}
{"actor":{"display_login":"arpad-m"}}