On Wednesday, 18 May 2016 05:03:39 UTC+3, Harry wrote:
We are developing certain web service for those who use it by paying money.
I'd like to know suitable design pattern for development of Golang.
There are lots of useful packages on Github or another repository.
However our team tends to develop everything by ourself without such outer
packages even if it's useful.
In my opinion, I'd better to use more those useful packages to
To persuade my co-workers, I want to know best practice and that reasons.
Everything part of your system is your problem -- if you include a package,
then you have to maintain it, if there is a bug you need to fix it. If
there are other people using the same package, this means that there is a
bigger chance that the bug gets fixed. Packages also come with an
integration cost -- the better the package, the smaller the cost. For
example the Go standard library has a very small cost for the integration
However those aren't the most important factors. The major question should
be asking yourself is --- *how and why does it provide value to the
Basically ask yourselves, is it the most valuable thing that you could be
doing right now.
Sometimes finding a better color scheme for an application is more
important than getting 50ms off the response times. In other cases
optimizing 50ms could increase 10000$ of revenue per day for the customer.
*1.* is it the most valuable thing for the customer that you are doing
*2. *are there better and easier ways of creating the same value
*2.a* is doing it better than everyone else going to make a difference or
*2.b* can you just use some 3rd party library and move onto some other
Basically decide what you *don't work on*, it makes the question where to
put your effort easier.
I love a quote by Eric Evans:
*"Not all of a large system will be well designed."*
And this interpretation of it: *You need to decide what parts of your
system will be well designed and what parts will be poorly designed, that
way you spend more time on things that make a bigger difference.*
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 email@example.com.
For more options, visit https://groups.google.com/d/optout.