elementary-dev-community team mailing list archive
-
elementary-dev-community team
-
Mailing list archive
-
Message #02345
Re: Test Driven Development
I dunno, I am a newbie here.
On 26 April 2013 22:24, Craig <weberc2@xxxxxxxxx> wrote:
> That's exactly what I'd like to know: how can I help. I can try and post
> some tutorials, but I'd like to know who is interested and what the
> development community already knows.
>
> On Apr 26, 2013 6:39 AM, "Pál Dorogi" <pal.dorogi@xxxxxxxxx> wrote:
>>
>> Hi Craig,
>>
>> I agree 100% /w you, but I think you should write some tutorials and
>> post them in your blog, if you have any. But in my opinion that the
>> human beings do not like "re-learn" things and the real OOP, Design
>> Patterns, SOLID, TDD etc. etc. are very steep and time for a non-real
>> OOP/DP experienced Programmer/Developer.
>> Also, the learning curve is very steep for these advanced stuffs and
>> needs long time to get there. But, nobody would not know how good are
>> they until haven't learnt and used those stuffs, would they?.:)
>>
>> I did sine similar things, getting some new fresh things (TDD,
>> MvvM/Presentation Model Design Pattern) to programming in Vala
>>
>> ((http://ilapstech.blogspot.com/2013/04/advanced-programming-in-vala-dafs.html)
>> but you should keep in mind that this kind of new things (TDD, DP,
>> SOLDI, MVVM etc. etc.) are like evolution (evolution in Programming)
>> which needs some time to get it succeeded (or failed).:)
>>
>> On 26 April 2013 20:36, Craig <weberc2@xxxxxxxxx> wrote:
>> > Hello everyone,
>> >
>> > I'm just leaving San Jose after having spent a week listening to a lot
>> > of
>> > smart people talk about, among other things, Test Driven Development
>> > (TDD).
>> > I know I keep harping on this, but among the people who write the
>> > coolest,
>> > best software (and other average software folks) TDD is seen as
>> > absolutely
>> > critical. I can't point to anything other discipline in the software
>> > world
>> > that is of comparable importance. And here's why:
>> >
>> > When we start writing software, we can manage it with a couple of
>> > developers, perhaps all the way up through the first release; however,
>> > as we
>> > add features, our software becomes more complex. It's hard for us to
>> > remember what parts of our programs worked well before and what parts
>> > are
>> > broken. We often make changes to the underlying architecture to
>> > facilitate a
>> > new feature, but we're not exactly sure if in doing so, we broke an
>> > existing
>> > feature. And we'll of course do a little ad hoc manual testing to verify
>> > that things still work, but we're only going to really check 5-10% of
>> > the
>> > code that we most suspect would break. And even if we do power through,
>> > we're only going to ever check 60-70% of the code, and it's all a very
>> > slow,
>> > unreliable process. Soon we spend all of our time fighting bugs and we
>> > can
>> > never get around to any interesting work. Does this pattern sound
>> > familiar?
>> >
>> > With TDD, you write a simple, small test for every piece of interesting
>> > code
>> > you write, and every time you rebuild the project, all of your old tests
>> > run. If you're writing good tests, you can be assured that all of your
>> > code
>> > works as you intend it to every single time you build, and if someone
>> > merges
>> > in a bug, it will be caught immediately (and the test that fails will
>> > give
>> > you some good information about what broke/where the bug is hiding).
>> >
>> > Of course, it takes time to write tests; however, it's still much less
>> > time
>> > than you would spend debugging your code. Furthermore, when you write
>> > tests
>> > before you write your production code, you are forced to design your
>> > code
>> > modularly just to make it testable. Among software professionals, TDD is
>> > seen as the fastest way to write software. I mean, Luna has been 90%
>> > complete for 90% of its development cycle, and this is a common pattern
>> > in
>> > the software world.
>> >
>> > With all of this in mind, I'd like to know how I can help you guys start
>> > practicing TDD? If this hasn't persuaded you, I'd appreciate it if you
>> > would
>> > respond and give your perspective so we can talk about it. I'm very
>> > interested in seeing you guys continue to put out great software, but
>> > I'm
>> > concerned that as you write more code, you're going to be creating more
>> > for
>> > yourselves to maintain and the amount of time you spend writing new
>> > software
>> > is going to drop off exponentially as the complexity (as complexity
>> > produces
>> > bugs) increases.
>> >
>> > Please let me know if/how I can help you.
>> >
>> > Craig
>> >
>> > --
>> > Mailing list: https://launchpad.net/~elementary-dev-community
>> > Post to : elementary-dev-community@xxxxxxxxxxxxxxxxxxx
>> > Unsubscribe : https://launchpad.net/~elementary-dev-community
>> > More help : https://help.launchpad.net/ListHelp
>> >
Follow ups
References