News for hackers. Stuff that matters.
Re:Buffer: Composable Buffers for Go by stinos on Sunday April 05, 2015 @03:56PM (#9325134)

   // Buffer 32KB to Memory, after that buffer to 100MB chunked files
  buf := buffer.NewUnboundedBuffer(32*1024, 100*1024*1024)

  pool := NewFilePool(100*1024*1024, "") // "" -- use temp dir
I seem to have a twofold feeling about this code: on one hand I really like the brevity of these statements, but on the other hand it does come at the cost of being rather cryptic: without the comments one can only guess what exactly is going on. To the point that should I want to use this in my own code and make it understandable I'd almost would be forced to either copy the comments as well or else wrap it in a method with another name or. In such cases it probably would have been better if the original API already had done this.
Re:Buffer: Composable Buffers for Go by gouggoug on Sunday April 05, 2015 @04:15PM (#9325181)
I feel like we could say that about any code. It doesn't sound cryptic to me. It does require to read the doc (http://godoc.org/github.com/djherbis/buffer#NewUnboundedBuff...) but I'd argue that's the case for everything.
Re:Buffer: Composable Buffers for Go by djherbis on Sunday April 05, 2015 @07:13PM (#9325653)
Just to add to the other comments made here, the NewUnboundedBuffer is meant to be a convenience method. It's actually just a (hopefully useful) example of how to compose the other buffer types to create a more complicated buffer. Thanks for the comment, hope it helps clear that up.
Re:Buffer: Composable Buffers for Go by nkatsaros on Sunday April 05, 2015 @06:35PM (#9325567)
If anything this is just a nomenclature problem. It's common for Go packages to have New* functions for common use cases and this is one example. After looking at the source it is very clear what it does.
Re:Buffer: Composable Buffers for Go by TillE on Sunday April 05, 2015 @07:26PM (#9325686)
That's one problem that named arguments solve pretty nicely. Unfortunately, I don't think Go supports them.
Re:Buffer: Composable Buffers for Go by MetaCosm on Sunday April 05, 2015 @08:03PM (#9325775)
There are a lot of ways to make arguments nicer in Go. The simple on is to just use a configuration struct (or anon struct) at that has nice names. But, for complex stuff, functional options as laid out by Dave Cheney: http://dave.cheney.net/2014/10/17/functional-options-for-fri... (video: https://www.youtube.com/watch?v=24lFtGHWxAQ)
Re:Buffer: Composable Buffers for Go by lobster_johnson on Sunday April 05, 2015 @07:54PM (#9325750)
You have anonymous strict literals, though, which are nearly as succinct and can serve the same role.