Giter Club home page Giter Club logo

imgedit.rs's People

Contributors

jaakkolipsanen avatar

Watchers

 avatar

imgedit.rs's Issues

Katselmointi

Kokeilin ohjelmaa muutamalla kuvalla eri filtterein, ja täytyy sanoa että on kiinnostava idea. Rust on toisaalta hieman vieras kieli itselleni, erityisesti importtien toiminta on hieman kryptistä, mutta noin yleisesti vaikuttaa järkevältä kieleltä.

Itse koodiin liittyen:

  • Koodi on erittäin luettavaa, jopa henkilölle joka ei ole koskaan ennen paneutunut Rust-projektiin. Muutama huomio kuitenkin:
    • Joissakin kohdissa olisi toki voitu käyttää vähän kuvaavampia muuttujanimiä, kuten esim. tiedostossa hsl.rs olevassa to_rgb-funktiossa. Tässä funktiossa ei ole oikein selvää mitä x ja m ovat, tai mitä ne tekevät.
    • Koodissa kommentointi on muuten hyvällä tasolla, mutta esim. tiedostoissa hsl.rs ja implementations.rs käytetään jonkin verran "magic numbers", jotka tekevät koodin toimintalogiikasta epäselvän. Esim. unsharp_mask on hieman kryptinen, ja voisi olla selvempi jos kommentissa annettaisiin perustelu numeroiden valinnalle kommentissa linkin lisäksi – linkit eivät välttämättä elä ikuisesti. Muutamaan muuhun funktioon pätee sama asia.
  • Projektin rakenne on järkevä, ja toiminnallisuuden erittely projektitasolla selkeä.
  • Osittain liittyen rakenteeseen, tuli mieleen pieni kysymys (ja mahdollisesti parannusehdotus): täytyykö testien olla samassa tiedostossa toteutuksen kanssa? Jos ei täydy, niin ehdottaisin siirtämään testit dedikoituun testikansioon samalle tasolle missä src löytyy.
  • Pakko mainita että CliArgs on aika näppärä implementaatio structopt:in avulla.

Kaiken kaikkiaan siisti projekti – mielenkiinnolla odottelen miltä projekti tulee näyttämään valmiina!

Vertaisarviointi

Ladattu 25.4. klo 17

Vertaisarviointi

Koodi vaikuttaa hyvältä ja hyvin kirjoitetulta, vaikka Rust ei olekaan entuudestaan tuttu, joten vaikea kommentoida muuta kuin pintapuolisesti koodia.

Kokeilin ohjelmaa muutamalla kuvatiedostolla ja se vaikutti toimivan hienosti! Ohjelman kanssa leikkiessä hieman ihmetytti miksi tuki vain png-kuvatiedostoille? En ainakaan nopealla vilkaisulla keksinyt tähän syytä, mutta se voi hyvinkin löytyä syvältä koodin toteutuksesta.

Itse olisin saattanut eritellä filttereiden toteutukset omiin tiedostoihin niin yhdestä tiedostosta ei tule massiivista. Tosin osa filttereiden toteutuksista on hyvin lyhyitä, joten implementations.rs ei ole tällä hetkellä kovin suuri, vaikka testitkin näyttävät olevan samassa tiedostossa.

Koodi oli mielestäni hyvin dokumentoitua, erityisesti filttereiden osalta. JavaDoc-tyylistä kommentointia olisin ehkä kaivannut enemmän, mutta pääsääntöisesti metodit olivat melko simppeleitä ja niistä ymmärsi hyvin mitä ne tekevät.

Nopealla kokeilulla oletin ohjelman olevan nopeampi simppeleissä filttereissä (esim inverse), mutta varmasti esimerkiksi I/O-operaatiot vie oman aikansa joten varsinaista suorituskykyä vaikea kommentoida. Vertailu vaikka ImageMagick-kirjastoon voisi olla mielenkiintoinen! Kokonaisuudessaan projektin rakenne on hyvä ja ohjelman toiminnallisuuteen oli helppo päästä sisään, vaikka kieli olikin vieras. Mielenkiintoinen aihe!

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.