Sunday, June 17, 2018

Digest for comp.lang.c++@googlegroups.com - 4 updates in 2 topics

Mr Flibble <flibbleREMOVETHISBIT@i42.co.uk>: Jun 17 04:57PM +0100

The following is the number 1 ranked website describing the merits and
methods of TDD:
 
http://www.koolaid.com
 
/Flibble
 
--
"Suppose it's all true, and you walk up to the pearly gates, and are
confronted by God," Bryne asked on his show The Meaning of Life. "What
will Stephen Fry say to him, her, or it?"
"I'd say, bone cancer in children? What's that about?" Fry replied.
"How dare you? How dare you create a world to which there is such misery
that is not our fault. It's not right, it's utterly, utterly evil."
"Why should I respect a capricious, mean-minded, stupid God who creates a
world that is so full of injustice and pain. That's what I would say."
Daniel <danielaparker@gmail.com>: Jun 17 09:32AM -0700

On Sunday, June 17, 2018 at 11:57:59 AM UTC-4, Mr Flibble wrote:
> The following is the number 1 ranked website describing the merits and
> methods of TDD:
 
> http://www.koolaid.com
 
Feel free to drink koolaid that you don't know works.
woodbrian77@gmail.com: Jun 17 10:23AM -0700

On Sunday, June 17, 2018 at 11:32:42 AM UTC-5, Daniel wrote:
> > methods of TDD:
 
> > http://www.koolaid.com
 
> Feel free to drink koolaid that you don't know works.
 
"Down these mean streets a man must go who is not himself mean"
Read more at http://quotationsbook.com/quote/18970/
 
"No prophet is acceptable in his hometown." Luke 4:24
 
 
Brian
Ebenezer Enterprises - Enjoying programming again.
https://github.com/Ebenezer-group/onwards
"Öö Tiib" <ootiib@hot.ee>: Jun 17 03:02AM -0700

On Sunday, 17 June 2018 01:09:21 UTC+3, Vir Campestris wrote:
 
> But back to TDD. The hard problems to test for are timing issues. I have
> no faith that any reasonable suite of tests will pick up complex races
> or deadlocks. (Though TSAN helps)
 
TDD tends to make the implementation details overexposed so there are
more ways how clumsy maintenance can break thread-safety. Then yes,
helgrind can help and tsan can help.
 
One way to avoid it is to keep objects that have noteworthy work to
do self-contained, active and asynchronous. If such is serviced only
by single thread then the locks are not needed. Locks guard outside
queues but those are likely stock stuff and well-tested. Have all the
messages (whatever these are called "signals", "tasks", "requests",
"responses") also self-contained. Basically pay attention that data
is moved or copied into those. When data in messages is not shared
then these are also "embarrassingly parallel" to process.
 
TDD helps us also somewhat to see that object (or related message) is
self-contained. Otherwise there will be outside dependencies to mock.
Code-review that people don't cheat the policy and have fun. There
will be issues (silver bullets don't exist) and it takes some
learning like everything. Positive side is that when product matures
such self-contained modules can be more easily extracted to separate
processes (over pipes) and then services (over sockets).
You received this digest because you're subscribed to updates for this group. You can change your settings on the group membership page.
To unsubscribe from this group and stop receiving emails from it send an email to comp.lang.c+++unsubscribe@googlegroups.com.

No comments: