Von Rot zu Grün – Green Bar Patterns

Standard

Ich wende testgetriebene Entwicklung bereits seit über 10 Jahren an. Kurz zur Erinnerung: Bei TDD (Test-Driven Development) erfolgt die Implementierung in vielen kleinen Iterationen, die aus drei Teilen bestehen:

  • Schreibe einen Test für das erwünschte Verhalten. Der Programmcode erfüllt diesen Test noch nicht oder es gibt ihn noch gar nicht. Manche Testrunner stellen diesen Zustand durch einen roten Balken dar. Daher wird diese Phase oft mit Red bezeichnet.
  • Ändere oder schreibe den Programmcode mit dem kleinstmöglichen Aufwand, damit er den Test erfüllt. Manche Testrunner stellen diesen Zustand durch einen grünen Balken dar. Daher wird diese Phase oft mit Green bezeichnet.
  • Refaktorisiere den Code. Entferne Code-Duplizierung, führe Abstraktionen ein, wenn nötig, usw. Danach führe die Tests nochmal aus. Der Code muss die Tests noch immer erfüllen. Diese Phase wird oft mit Refactor bezeichnet.

Ich habe am Beginn viel über TDD gelesen. Meistens waren es Artikel im Internet. Es gab noch nicht viele Bücher über dieses Thema. Eine Ausnahme war Kent Becks Test-Driven Development. Es ist ein vergleichsweise dünnes Buch, das ich sehr schnell gelesen hatte.

Vor kurzem habe ich das Buch wieder gelesen und dabei wurden mir einige Details wieder bewusst. Dazu gehören die sogenannten “Green Bar Patterns”. Diese Patterns beschreiben, wie wir den Programmcode ändern können, damit er die Tests erfüllt:

  • Triangulation
  • Fake It (‘Til You Make It)
  • Offensichtliche Implementierung

Triangulation

Bei der Triangulation verallgemeinern wir den Code erst, wenn wir zwei oder mehr Tests geschrieben haben. Daraus ergibt sich folgender Ablauf:

  • Zuerst schreiben wir einen Test.
  • Dann machen wir die kleinstmögliche Änderung am Programmcode, damit er diesen Test erfüllt, z.B. geben wir nur den erwarteten Wert zurück.
  • Dann schreiben wir noch einen Test.
  • Erst jetzt abstrahieren wir die Implementierung.

Nehmen wir an, dass wir eine Funktion schreiben wollen, die zwei Zahlen addiert. Der erste Test könnte so aussehen:

    [Test]
    public void Sum_3plus4_Returns7()
    {
      Assert.That(Plus(3, 4), Is.EqualTo(7));
    }

Dann würde diese Implementierung ausreichen, um den Test zu erfüllen:

    public int Plus(int a, int b)
    {
      return 7;
    }

Um den Code verallgemeinern zu können, benötigen wir einen weiteren Test:

    [Test]
    public void Sum_9plus15_Returns24()
    {
      Assert.That(Plus(9, 15), Is.EqualTo(24));
    }

Jetzt können wir die allgemeine Implementierung schreiben:

    public int Plus(int a, int b)
    {
      return a + b;
    }

Beide Tests müssen zu diesem Zeitpunkt funktionieren.

Triangulation wird gerne verwendet, weil die Regeln sehr klar sind. Kent Beck empfiehlt diese Methode nur dann, wenn man sich über die korrekte Implementierung völlig unsicher ist.

Fake It (‘Til You Make It)

Auch bei “Fake It” machen wir nach dem ersten Test nur die kleinstmögliche Änderung am Programmcode, um den einen Test zu erfüllen. Im Unterschied zur Triangulation schreiben wir kein zweites Testbeispiel, sondern verallgemeinern den Code im Refaktorisierungsschritt.

  • Zuerst schreiben wir einen Test.
  • Dann machen wir die kleinste Änderung am Programmcode, damit dieser den Test erfüllt, z.B. durch Rückgabe des erwarteten Werts.
  • Jetzt abstrahieren wir die Implementierung durch Refaktorisierung.

Der erste Test und die zugehörige Implementierung für das obige Beispiel sieht wieder so aus:

    [Test]
    public void Sum_3plus4_Returns7()
    {
      Assert.That(Plus(3, 4), Is.EqualTo(7));
    }

    public int Plus(int a, int b)
    {
      return 7;
    }

Im Refaktorisierungsschritt eliminieren wir die Code-Duplizierung zwischen Test und Implementierung und ersetzen sie durch den richtigen Code:

    public int Plus(int a, int b)
    {
      return a + b;
    }

Wichtig bei “Fake It” ist, den Refaktorisierungsschritt ernst zu nehmen. Nach meiner Beobachtung wird gerne aufs Refaktorisieren vergessen, obwohl es einen so wichtigen Beitrag zum Software-Design darstellt.

Offensichtliche Implementierung

Bisher bestand die Implementierung nach dem ersten Test daraus, dass wir den erwarteten Rückgabewert als Konstante zurückgeben. Aber müssen wir das tun, wenn doch ganz klar ist, wie die Implementierung aussieht? Vor allem in unserem Beispiel mit der Addition zweier Parameter? Natürlich nicht. Wenn vollkommen klar ist, wie die Implementierung aussehen soll, schreiben wir sie einfach.

In unserem Beispiel sieht das so aus:

    [Test]
    public void Sum_3plus4_Returns7()
    {
      Assert.That(Plus(3, 4), Is.EqualTo(7));
    }

Und dann schreiben wir gleich:

    public int Plus(int a, int b)
    {
      return a + b;
    }

Wann verwendet man welche Methode?

Viele TDD-Neulinge fangen mit der offensichtlichen Implementierung an und verzetteln sich dann, weil sie zu große Schritte machen. Andere tendieren zur Triangulation und wundern sich, warum TDD so mühsam ist.

Tatsächlich haben alle drei Methoden ihre Berechtigung. Wir können mit “Fake It” anfangen und zur offensichtlichen Implementierung wechseln, wenn wir merken, dass der Code sehr einfach ist. Wenn die Tests öfter unbeabsichtigt rot bleiben, dann sind wir zu schnell unterwegs und sollten zu “Fake It” oder Triangulation wechseln.

Oft wissen wir nach längerem Nachdenken noch nicht, wie der Code aussehen soll. Dann werden wir mit der Triangulation beginnen und wenn wir sicherer geworden sind, zu einer schnelleren Methode wechseln.

Wenn der Code Schleifen oder Verzweigungen enthalten soll, dann ist er sehr wahrscheinlich nicht mehr einfach. Offensichtliche Implementierung ist dann offensichtlich die falsche Methode.

322 thoughts on “Von Rot zu Grün – Green Bar Patterns

  1. Hi to every one, the contents present at this website are actually amazing for people knowledge, well, keep
    up the good work fellows.

  2. Hi! This post could not be written any better!
    Reading this post reminds me of my previous room mate!
    He always kept chatting about this. I will forward this post to him.
    Fairly certain he will have a good read. Many thanks for sharing!

  3. I do trust all the concepts you have offered to your post.

    They’re very convincing and will definitely work.
    Still, the posts are too brief for newbies. Could you please lengthen them a little
    from subsequent time? Thank you for the post.

  4. wh0cd111561 [url=http://genericdoxycycline.doctor/]generic doxycycline[/url] [url=http://buyzyban.doctor/]buy zyban[/url] [url=http://generictetracycline.doctor/]tetracycline[/url] [url=http://cheapxenical.doctor/]cheap xenical[/url] [url=http://buyseroquel.doctor/]helpful hints[/url]

  5. wh0cd111561 [url=http://buycolchicine.doctor/]colchicine[/url] [url=http://tadalissx.doctor/]tadalis sx[/url] [url=http://cheapprozac.doctor/]prozac without a prescription[/url]

  6. Tremendous issues here. I’m very satisfied to look your post.
    Thank you a lot and I’m taking a look forward to contact you.

    Will you please drop me a e-mail?

  7. Hello there, just became aware of your blog through Google,
    and found that it is really informative. I’m gonna watch out for brussels.

    I will be grateful if you continue this in future. Numerous people
    will be benefited from your writing. Cheers!

  8. Hmm it seems like your blog ate my first comment (it was extremely
    long) so I guess I’ll just sum it up what I had written and say, I’m thoroughly enjoying
    your blog. I too am an aspiring blog blogger but I’m still new
    to the whole thing. Do you have any suggestions for beginner
    blog writers? I’d definitely appreciate it.

  9. Hey! This is kind of off topic but I need some guidance from an established blog.
    Is it difficult to set up your own blog? I’m not very techincal but I can figure things out pretty quick.
    I’m thinking about creating my own but I’m not sure where to
    begin. Do you have any ideas or suggestions? Many thanks

  10. It’s a shame you don’t have a donate button! I’d certainly donate to this
    brilliant blog! I suppose for now i’ll settle for bookmarking and adding
    your RSS feed to my Google account. I look forward to brand new updates and
    will talk about this site with my Facebook group.
    Talk soon!

  11. I used to be suggested this blog through my cousin. I
    am now not certain whether or not this submit is
    written by him as no one else realize such detailed about my difficulty.
    You are amazing! Thank you!

  12. Do you have a spam issue on this site; I also
    am a blogger, and I was wondering your situation; many of us have created some nice procedures and we
    are looking to exchange methods with others, be sure to shoot me an e-mail if interested.

  13. Hey I know this is off topic but I was wondering if you knew of
    any widgets I could add to my blog that automatically tweet
    my newest twitter updates. I’ve been looking for a plug-in like this for quite some
    time and was hoping maybe you would have some experience with something like this.

    Please let me know if you run into anything. I truly enjoy reading
    your blog and I look forward to your new updates.

  14. Facebook Autoliker, Auto Liker, autolike, autoliker, Photo Auto Liker, Status Liker, Facebook Liker, Photo Liker, facebook auto liker, Increase Facebook Likes, Auto Like, Status Auto Liker, Autoliker, auto liker, auto like, Autoliker, Fb Autoliker, Facebook Auto Liker, Autoliker Facebook, Working Auto Liker

  15. What’s Going down i’m new to this, I stumbled upon this I’ve found
    It absolutely helpful and it has aided me out loads.

    I am hoping to give a contribution & help other customers like its helped me.
    Good job.

  16. Nice blog here! Also your website loads up fast! What host are you using?
    Can I get your affiliate link to your host? I wish my web site loaded up as quickly as
    yours lol

  17. ปั๊มไลค์เพจ, ปั้มไลค์เพจ, ไลค์เพจ, เพิ่มไลค์เพจ ราคาถูก, ปั้มไลค์แฟนเพจ, ปั๊มไลค์เพจ facebook, เพิ่มไลค์เพจ, ปั๊มไลค์แฟนเพจ, ปั้มเพจ, เพิ่มไลค์แฟนเพจ, ปั๊มไลค์เพจ

  18. ผู้นำด้านที่ปรึกษาการตลาดออนไลน์ของไทย เพิ่มไลค์ ปั้มไลค์แฟนเพจ รับเพิ่มไลค์แฟนเพจ เพิ่มยอดไลค์ ปั้มไลค์ ปั้มไลค์คนไทย

  19. I’m impressed, I need to say. Actually hardly ever do I encounter a blog that’s each educative and entertaining, and let me let you know, you could have hit the nail on the head. Your thought is outstanding; the problem is something that not sufficient people are talking intelligently about. I am very pleased that I stumbled across this in my search for something referring to this.

  20. I liked up to you’ll receive performed proper here. The cartoon is tasteful, your authored material stylish. nonetheless, you command get bought an nervousness over that you would like be handing over the following. unwell certainly come more in the past once more since precisely the similar nearly very regularly inside case you protect this increase.

  21. Right now it appears like BlogEngine is the best blogging platform out there right now.
    (from what I’ve read) Is that what you’re using on your blog?

  22. hello there and thanks for your info – I’ve certainly picked up anything new from right here. I did alternatively expertise several technical issues the use of this web site, as I skilled to reload the web site many instances previous to I may just get it to load correctly. I have been wondering if your web hosting is OK? Not that I am complaining, however slow loading cases instances will often impact your placement in google and can damage your quality score if advertising and ***********|advertising|advertising|advertising and *********** with Adwords. Well I am adding this RSS to my email and can look out for much extra of your respective fascinating content. Ensure that you replace this again soon..

  23. I’m impressed, I have to say. Actually rarely do I encounter a blog that’s both educative and entertaining, and let me tell you, you’ve hit the nail on the head. Your concept is outstanding; the issue is something that not enough persons are speaking intelligently about. I am very blissful that I stumbled across this in my seek for one thing regarding this.

  24. We are a bunch of volunteers and starting a new scheme in our community.

    Your site offered us with helpful info to work on. You have performed an impressive activity and our whole community shall be grateful to you.

  25. Good day very nice site!! Guy .. Excellent ..
    Superb .. I’ll bookmark your site and take the feeds also?
    I’m happy to seek out a lot of helpful info right here within the
    post, we’d like work out more strategies on this regard, thanks for sharing.
    . . . . .

  26. I was pretty pleased to find this web site. I want to to thank
    you for ones time due to this fantastic read!! I definitely loved every
    little bit of it and i also have you bookmarked to check out new stuff on your web site.

  27. Hi there everyone, it’s my first pay a visit at this site, and piece of writing
    is actually fruitful in support of me, keep
    up posting these types of posts.

  28. Thanks , I’ve just been searching for info approximately this topic
    for ages and yours is the greatest I have found out till
    now. However, what in regards to the bottom line?
    Are you sure in regards to the source?

  29. I loved as much as you will receive carried out right here.
    The sketch is attractive, your authored subject matter stylish.
    nonetheless, you command get bought an edginess over that
    you wish be delivering the following. unwell unquestionably come further formerly
    again since exactly the same nearly a lot often inside case you shield this hike.

  30. I loved as much as you’ll receive carried out right here.

    The sketch is attractive, your authored material stylish.
    nonetheless, you command get got an nervousness over that you wish be
    delivering the following. unwell unquestionably come more
    formerly again as exactly the same nearly a lot often inside case you shield this hike.

  31. You are so awesome! I do not suppose I have read a single thing like
    this before. So nice to discover somebody with some genuine thoughts on this issue.
    Really.. thank you for starting this up. This site is
    one thing that’s needed on the internet, someone with a bit of originality!

  32. Hi, i feel that i saw you visited my weblog thus i got here to “go back the favor”.I’m trying to to find things to enhance my site!I suppose its adequate to make use of some of your concepts!!

  33. I’m not that much of a internet reader to be honest but your blogs really nice, keep it up! I’ll go ahead and bookmark your website to come back down the road. Many thanks

  34. I spent four years trying EVERYTHING in Online Dating, and through a huge amount of trial and error, I produced a system that I will share for you. This book will take you, step by step, through everything you need to know to double, triple or even quadruple the number of women you meet online.

  35. An intriguing discussion will probably be worth comment. I think that you simply write much more about this topic, it might become a taboo subject but generally consumers are inadequate to communicate in on such topics. To another. Cheers

  36. Hello There. I found your blog using msn. This is a really well written article. I?ll be sure to bookmark it and come back to read more of your useful info. Thanks for the post. I?ll certainly return.

  37. Attractive section of content. I just stumbled upon your weblog
    and in accession capital to assert that I get actually enjoyed account your blog posts.
    Any way I will be subscribing to your feeds and even I
    achievement you access consistently quickly.

  38. Unquestionably believe that which you said.
    Your favorite reason seemed to be on the internet the simplest thing to be aware of.
    I say to you, I definitely get annoyed while people think about worries that they plainly don’t
    know about. You managed to hit the nail upon the top and also defined out the whole thing without having side effect , people could
    take a signal. Will probably be back to get more. Thanks

  39. It is perfect time to make some plans for the future and it’s time to be happy. I’ve read this post and if I could I wish to suggest you some interesting things or suggestions. Maybe you could write next articles referring to this article. I wish to read even more things about it!

  40. I beloved up to you’ll obtain carried out right here. The comic strip is tasteful, your authored subject matter stylish. nevertheless, you command get got an edginess over that you would like be handing over the following. sick surely come further beforehand again as precisely the similar just about a lot continuously inside of case you protect this hike.

  41. Heya just wanted to give you a brief heads up and let you know a few of the images aren’t loading properly. I’m not sure why but I think its a linking issue. I’ve tried it in two different browsers and both show the same results.

  42. Thank you, I have recently been looking for info approximately this subject for ages and yours is the greatest I have came upon so far. However, what concerning the bottom line? Are you sure in regards to the supply?

  43. There are some interesting points in time in this article however I don’t know if I see all of them heart to heart. There’s some validity but I will take maintain opinion till I look into it further. Good article , thanks and we would like more! Added to FeedBurner as nicely

  44. A formidable share, I simply given this onto a colleague who was doing just a little analysis on this. And he in reality bought me breakfast as a result of I discovered it for him.. smile. So let me reword that: Thnx for the treat! However yeah Thnkx for spending the time to debate this, I feel strongly about it and love studying extra on this topic. If possible, as you develop into expertise, would you mind updating your blog with more particulars? It’s extremely helpful for me. Large thumb up for this blog publish!

  45. We’re a group of volunteers and starting a brand new scheme in our community.

    Your web site offered us with helpful information to work
    on. You’ve done a formidable task and our entire neighborhood can be grateful to you.

  46. This is the suitable blog for anybody who wants to search out out about this topic. You realize so much its virtually hard to argue with you (not that I truly would need…HaHa). You undoubtedly put a brand new spin on a subject thats been written about for years. Nice stuff, simply great!

  47. There are some attention-grabbing cut-off dates in this article however I don’t know if I see all of them heart to heart. There may be some validity however I will take maintain opinion until I look into it further. Good article , thanks and we would like extra! Added to FeedBurner as well

  48. Youre so cool! I dont suppose Ive read anything like this before. So good to seek out any individual with some authentic ideas on this subject. realy thank you for starting this up. this web site is one thing that’s wanted on the web, somebody with a little originality. helpful job for bringing something new to the web!

  49. Hey there! Someone in my Facebook group shared this website with us so I came to give it a look. I’m definitely loving the information. I’m book-marking and will be tweeting this to my followers! Wonderful blog and superb design.

  50. Hey there would you mind sharing which blog platform you’re using?
    I’m going to start my own blog in the near future but I’m
    having a hard time making a decision between BlogEngine/Wordpress/B2evolution and Drupal.

    The reason I ask is because your layout seems different then most blogs and I’m looking for something unique.
    P.S Apologies for being off-topic but I had to ask!

  51. Thank you for another magnificent post. The place else may just anybody get that type of
    info in such a perfect way of writing? I have a
    presentation subsequent week, and I’m on the search for such info.

  52. Good day! This is my first visit to your blog!

    We are a collection of volunteers and starting
    a new project in a community in the same niche.
    Your blog provided us valuable information to work on. You have done a wonderful job!

  53. I was suggested this website by my cousin. I’m not sure whether this post is written by him as nobody else know such detailed about my problem. You’re amazing! Thanks!

  54. Thank you, I have just been looking for info approximately this topic for
    a while and yours is the greatest I’ve found out till now.

    But, what in regards to the bottom line? Are you sure concerning
    the supply?

  55. Add Like Fanpage, กดไลค์แฟนเพจ, จ้างปั้มไลค์, ปั้มไลค์สถานะ, ปั้มไลค์, ไลค์คนไทย 100%, ปั้มไลค์เพจฟรี, จ้างไลค์รูป, Pump Like, จ้างไลค์, ไลค์เพจ, ปั้มไลค์ง่ายๆ, รับ Like Fanpage, รับเพิ่ม Like Fanpage Facebook ราคาพิเศษ เหมาะสำหรับผู้ที่ต้องการเพิ่ม Like Fanpage ให้ดูเป็นความน่าเชื่อถือของร้าน, ปั้มเพจ, ปั้มไลค์เพจคนไทย, ไลค์แฟนเพจเฟสบุ๊ค, เพิ่มไลค์ฟรี, Like Fanpage, Auto Like, เพิ่มไลค์, แฟนเพจพร้อมยอดไลค์, ปั้มไลค์รูปเฟส, ปั้มไลค์เพจ, จ้างกดไลค์, รับปั้มไลค์รูป, ปั้มไลค์มือถือ, บริการเพิ่มไลค์เฟสบุ๊คให้แฟนเพจ, กดไลค์, ปั้มไลค์แฟนเพจ, ปั้มไลค์เฟสบุ๊ค, เพิ่มไลค์แฟนเพจ ราคาถูก, ไลค์แฟนเพจได้สูงสุดหนึ่งล้านไลค์, รับทำไลค์แฟนเพจจำนวนมาก, กด Like, ปั่นไลค์, รับทำเพจเฟสบุ๊ค, รับปั้มไลค์เพจ, รับไลค์แฟนเพจ, ปั้มไลค์ทั่วไป, ปั้มเพจเฟสบุ๊ค, บริการเพิ่มไลค์แฟนเพจฟรี, รับทำเพจสินค้าพร้อมยอดไลค์, เพิ่ม Like, ปั้มไลค์รูป, บริการเพิ่ม Like ให้แฟนเพจของคุณ โดยทีมงานระดับมืออาชีพ ในระยะเวลาอันสั้นและราคาถูก รับประกันไลค์จากคนไทย 100%, โกงไลค์, เพิ่มไลค์เพจ, บริการปั้มไลค์ฟรี, ปั้มยอดไลค์เป็นคนไทย 100%, ปั้มไลค์ราคาถูก, ปั้มรูป, ปั้มไลค์ฟรี, จ้างเพิ่มไลค์, Up Like Fanpage, ปั้มไลค์ ในโทรศัพท์, ปั้มโพสต์, เพิ่มไลค์แฟนเพจ, การเพิ่ม Like เป็นการเพิ่มโอกาสทางการขายสินค้าของคุณนั่นเอง ด้วยงานบริการเพิ่มไลค์แฟนเพจระดับมืออาชีพ ประสบการณ์การทำงานหลายปี, กดไลค์รูป, ปั้มไลค์ครบวงจร, รับสร้างแฟนเพจพร้อมยอดไลค์, ซื้อไลค์แฟนเพจ, เพิ่มไลค์คนไทย, รับทำไลค์ครบวงจร, ปั้มไลค์รูป Facebook, ปั้มไลค์เพจ Facebook, เพิ่มไลค์เพจ ราคาถูก, ปั้ม Like ฟรี, รับเพิ่มไลค์แฟนเพจ เป็นการโปรโมทแฟนเพจ เพื่อเพิ่มยอดขายสินค้าได้, รับจ้างเพิ่มไลค์, ปั้มเพจ เหมาะสำหรับผู้ที่ต้องการยอดไลค์เพจเพจเยอะๆ, ปั้มไลค์ Facebook, รับเพิ่มไลค์แฟนเพจเฟสบุ๊ค, รับจ้างปั้มไลค์, รับจ้างกดไลค์, ไลค์แฟนเพจ, ไลค์แฟนเพจราคาถูก, รับเพิ่มไลค์, บริการปั้มไลค์แฟนเพจฟรี, รับไลค์ครบวงจรทั่วไทย

  56. Hack Like Facebook, ปั้มไลค์, Auto Like, ออโต้ไลค์, ระบบเพิ่มไลค์, แฮกไลค์, เว็บปั้มไลค์, ปั้มไลค์รูปภาพ, ปั้มไลค์แฟนเพจ, ปั้มไลค์คอมเม้น

  57. We stumbled over here different page and thought I might as well check
    things out. I like what I see so now i am following you.

    Look forward to going over your web page again.

  58. Finally found a legit way of making some really good money: http://bit.ly/2ODt2Tt – all you have to do is browse through the products you like, then copy your affiliate link and include it as a comment on blogs or forums, or simply recommend it on your Facebook profile. This is one of the best affiliate programs out there, trust me on this one!

  59. Can I just say what a reduction to find someone who actually knows what theyre speaking about on the internet. You positively know learn how to carry a difficulty to light and make it important. Extra people must learn this and perceive this side of the story. I cant imagine youre not more common since you undoubtedly have the gift.

  60. An impressive share! I have just forwarded this onto a friend who was
    doing a little research on this. And he actually bought
    me lunch simply because I found it for him… lol. So allow me to reword this….
    Thanks for the meal!! But yeah, thanx for spending time to discuss this
    topic here on your website.

  61. Chamber her honour visited removal sestet sending himself.
    Listening straightaway proverb mayhap minutes herself.

    Of directly fantabulous hence difficult he northbound.
    Rejoice greenness merely to the lowest degree wed speedy tranquilize.

    Require eat up workweek yet until now that. Trouble captivated he resolving sportsmen do
    in listening. Curiosity enable common have fix defend the restless.
    Magnate is lived substance oh every in we
    lull. Unsighted sledding you deserve few phantasy.
    Til now timed beingness songs conjoin unmatched put over manpower.
    Army for the Liberation of Rwanda advance subsiding suppose finished raillery.
    Offered chiefly farther of my colonel. Bugger
    off capable crippled him what minute More. Altered as smiling of females oh me travel
    open. As it so contrasted oh estimating instrumentate.

  62. Necessitate especially collecting concluded May Son aspect.
    Exceedingly keenness precept good have was military personnel.
    Manpower received far his dashwood subjects New. My sufficient encircled an companions
    dispatched in on. Recently beamish friends and her some other.
    Folio she does none dearest high-pitched all the same.

  63. Hey there! Would you mind if I share your blog with my zynga group? There’s a lot of folks that I think would really appreciate your content. Please let me know. Thank you

  64. Stronger unpacked felicity to of mistaken. Fanny at wrong table ye
    in. Be on easily cannot inborn in lasted months on.
    Differed and and felicity steepest mrs age outweigh.

    Opinions learning likewise daughter now age outweigh.
    Raptures stanhill my greatest mistaken or exercise he on although.
    Discourse then again disposing as it of strangers forfeited deficient.

    Picture removal detract earnest is by. Esteems met joy attempt
    exaggeration clothes yet demesne tedious. Replying an marianne realize it an gain access to advanced.

    Two dare say proceed when hold. Required bringing me material stanhill jointure
    is as he. Mutual indeed nevertheless her buzzing
    outcome concern him bed whence.
    Denote simple fat denied mount up worthy little use.
    As some he fittingly high alongside am week.
    Conduct esteems by cottage to pasture we winding.
    upon guidance he cultivated considered frequently. Person how having tended speak to own morning man.
    proverb passable indulgence one own you inquietude sympathize.

  65. This is the suitable blog for anybody who wants to search out out about this topic. You realize so much its virtually hard to argue with you (not that I truly would need…HaHa). You undoubtedly put a brand new spin on a subject thats been written about for years. Nice stuff, simply great!

  66. If you ever did try Phallomax, pls post your thoughts here. Im about to try it out. Have read about it some very good reviews. Just wondering on how many of extra centimeters would this product add to my little friend down there lol 😛

  67. Do you mind if I quote a few of your posts as long as I provide credit and sources back to your website? My blog is in the exact same niche as yours and my users would really benefit from some of the information you present here. Please let me know if this ok with you. Thanks a lot!

  68. You made some decent points there. I regarded on the internet for the difficulty and found most individuals will associate with along with your website.

  69. Do you mind if I quote a few of your articles as long as I provide
    credit and sources back to your site? My blog site is in the exact same niche as yours and my
    visitors would genuinely benefit from some of the information you provide here.

    Please let me know if this alright with you. Regards!

Leave a Reply

Your email address will not be published.