I've taken note of all your comments. I've added some to my todo list as per the package and made a few improvements.
Note that none of these are "the right way", they give you options to make > the code more reusable. I completely get this. Thanks for your time. Uzondu On Wed, Oct 3, 2018 at 2:08 PM Tristan Colgate <tcolg...@gmail.com> wrote: > In case you haven't already checked it out, you can now see your package > at: > > https://godoc.org/github.com/willpoint/treemap > > You can do a sort of "GoDoc Driven Design" here, look at the godoc, and > decide if the interface is something you would like to use. > > Some suggestions: > > - A destination io.Writer is tradionally places as the first argument to a > function. > - DrawTreemap doesn't actually mention that the package writes SVG, the > function names could make it clearer. > - Along a similar line, maybe you could have a DrawToSVG that took an > *svg.SVG instead of a writer (or, better still, define an WriteSVG > interface that just includes the methods on the SVG that you use, this > would allow others to swap out the SVG implementation that was used. This > could allow an SVG to be drawn into an existing svg the user is building up > in sections.. DrawTreemap could still fall back to the default one). > - similarly, you could provide a method that draws to a pre-existing image > - in some scenarios, width/height might be inferrable, from some container > you might want to draw something in to. > - building on a richer underlying drawing abstraction might make things > more re-usable, The SVG interface thing above helps with that, you could > also look at something like https://godoc.org/github.com/llgcode/draw2d > (though > that obviously introduces depedencies). > > Note that none of these are "the right way", they give you options to make > the code more reusable. > > > On Wed, 3 Oct 2018 at 13:49 Uzondu Enudeme <willpo...@gmail.com> wrote: > >> Hi Tristan, >> >> Thanks again for your helpful feedback. Based on your observations, >> here's what I've done so far: >> >> This would be more useful as a package than a single program. You could >>> move main into an example/ folder and keep the rest of the content in the >>> top level as a package. Move the explanatory comment up as a Package >>> comment. >> >> >> I have now moved main to an example folder and left the rest as a >> package. I then defined an interface `TreeMapper` that represents any type >> that can be drawn by the treemap's DrawTreemap function. >> >> The standard library includes color handling, check the image package. >> >> I haven't yet figured this out. I'd look more carefully into the image >> package. >> >> The strconv wrapper is probably a bit excessive for the sake of the cast >>> (you might not need it if you use color.Color anyway) >> >> I removed the strconv wrapper, it really seemed excessive. I'm still yet >> to implement the use of color. >> >> The orientation might be better off as a tyoed parameter, look for docs >>> on typed constants. >> >> >> I read this article <https://blog.golang.org/constants> on the subject >> and found it really great! I have updated to code to reflect that. >> >> Any further advice would be greatly appreciated. The link still remains >> https://github.com/willpoint/treemap >> >> Thanks, >> >> Uzondu >> >> On Wed, Oct 3, 2018, 09:13 Uzondu Enudeme <willpo...@gmail.com> wrote: >> >>> Thanks a lot Tristan, >>> >>> The points you mentioned are really all very important ones. >>> >>> I'm currently following all your suggestions and would repost the link >>> to the updated code in case I missed some points. >>> >>> >>> On Wed, Oct 3, 2018, 06:52 Tristan Colgate <tcolg...@gmail.com> wrote: >>> >>>> A couple of quick observations. >>>> >>>> This would be more useful as a package than a single program. You could >>>> move main into an example/ folder and keep the rest of the content in the >>>> top level as a package. Move the explanatory comment up as a Package >>>> comment. >>>> >>>> The standard library includes color handling, check the image package. >>>> >>>> The strconv wrapper is probably a bit excessive for the sake of the >>>> cast (you might not need it if you use color.Color anyway) >>>> >>>> The orientation might be better off as a tyoed parameter, look for docs >>>> on typed constants. >>>> >>>> >>>> >>>> >>>> >>>> On Tue, 2 Oct 2018, 23:06 Uzondu Enudeme, <willpo...@gmail.com> wrote: >>>> >>>>> Hi everyone, >>>>> >>>>> I've been following the golang-nuts' email threads for a while now and >>>>> I'm amazed at how much I've learnt seeing ways solutions are profferred. >>>>> >>>>> I implemented a treemap for data visualization, and wrote a process.md >>>>> file giving some sort of background and detail. >>>>> >>>>> I want to use this opportunity to learn what I could have done better >>>>> by asking that the code be reviewed, it's in a single main.go file at >>>>> github.com/willpoint/treemap >>>>> >>>>> Thanks in advance for the time that would be spent and any advice >>>>> given. >>>>> >>>>> >>>>> Uzondu >>>>> >>>>> >>>>> -- >>>>> You received this message because you are subscribed to the Google >>>>> Groups "golang-nuts" group. >>>>> To unsubscribe from this group and stop receiving emails from it, send >>>>> an email to golang-nuts+unsubscr...@googlegroups.com. >>>>> For more options, visit https://groups.google.com/d/optout. >>>>> >>>> -- You received this message because you are subscribed to the Google Groups "golang-nuts" group. To unsubscribe from this group and stop receiving emails from it, send an email to golang-nuts+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.