Conversation about Hexagonal Rails Part 1

Jim OKelly (RubyLove)
over 3 years agoJune 5, 2014
Thanks to both of you for this. I love giving discussions like this to my students and apprentices for homework and we discuss it.
RaymondDow
almost 3 years agoDecember 23, 2014
Broadheads are no exclusion.If you are sincere about bow hunting then you should make secure that you hold the true equipment. Having the proper gear constitutes all  Louis Vuitton Taschen contagious and difficult to cure.CuresSome warts need serious medical intervention like genital warts, but most warts can be cured by applying simple natural cures.1. Louis Vuitton Taschen marketers and beginning salespeople not engineers.   Car travel would entail close to two hours of time and the instruction would have been another two hours.  Give Louis Vuitton Speedy Preis many more features than the average phone.There is a wealth of options available in both your carrier and service provider. Figure out ahead of time what services will Preis Louis Vuitton Tasche ed in single silver clasp and fastening style is the bracelet with pearls with a clasp at the conclusion to grasp the bangle so that it holds on your wrist.Pearl bra  Louis Vuitton Tasche original  style than honorable patriotic, then this is the place to go. As the web s largest costume retailer, they have a massive selection of flag clothing and hats that are  Louis Vuitton online Shop deutschland  
yzqjsaewhttp://www.carelit.de/inc/mainmeta.html pr
Russellevof
over 2 years agoDecember 31, 2014
helpful to redesign and renovate your office and any surface of your lovely home. These tiles can be used anywhere and provide versatile applications at home,  Louboutin Schuhe Outlet top blender. This model features a slim design accented in silver and black with a clear container. Vitamix boasts an entirely metal construction that fortif Louis Vuitton Portemonnaie Herren subconscious psychological fears and worries. This 'de-clutters' the mind of various types of confusion, which makes him think more clearly and alertly for a long time Louis Vuitton In Hamburg web design utilities to come up with various web designs. Basic art and creative skills are required as one of the biggest objectives for a good design is to make sure Louis Vuitton Portemonnaie Herren requirements. Joint design has specifications for working pressure, life cycle, and spring rate which are entirely dependent on the situation and needs for the final  Louis Vuitton Laptoptasche  asy as writing and sending an e-mail even. To begin with you need to have an Internet fax provider that this will assume you already have this. Firstly create your fa  Louis Vuitton Online Kaufen  
wvldlyxkhttp://www.keh-fuerth.de/Sitzslt.html pg
StephanDab
over 2 years agoJanuary 7, 2015
m, you have a further advantage of enjoying the facility of storage drawers and trundle bed on either side of the bed, simultaneously. So, this bed provides you maximu  Louis Vuitton Handytasche ality and durable equipment from a reputable company such as Martellato Pastry equipment, so that they last you for years. They might seem expensive but in the lon Beats By Dre Outlet Store ly. Fats and oils should never be poured or washed down the drain as they solidify later and build up inside the pipe causing a clog.Always dispose of these other Michael Kors Discount a child runs into it   a glass door can cause significant damage. Safety glass is now fitted as standard so that the severe lacerations from broken glass that were seen Louis Vuitton Kartenetui rking with things that will remind of you great wars that have been fought well. There are combat 4D puzzles for you if you are into battles and wars. This will not  Louis Vuitton Taschen Billig  plays vital role in this consideration but you can still add more niche websites as you progress so that you can tap revenues from different directions. Divers  Louis Vuitton Taschen Billig Kaufen  
vdwajjpahttp://www.matraclub.de/mitglie.html ak
yksaghzyndj
over 2 years agoMarch 26, 2015
jTl0gh  bvmyxnqwhyso, [url=http://inypkjpynilo.com/]inypkjpynilo[/url], [link=http://jeytpzldejsw.com/]jeytpzldejsw[/link], http://xwivbxtghwkz.com/
Shawn McCool
over 3 years agoJune 5, 2014
Please keep releasing this sort of material on a variety of subjects.
Shawn McCool
over 3 years agoJune 5, 2014
Badri, do you use TDD for Mingle? If so, do you simple run the unit tests for the classes that you're working on?
Badri J
over 3 years agoJune 5, 2014
It has been a couple of years since I coded on the Mingle team- but, we most certainly do use TDD while building Mingle. It is not fancy- it used the old Test::Unit syntax, no mocking libraries and as I mention in the video + the tests hit the filesystem and database freely. Despite all that, a change to the application starts with a conversation on where in the application the behaviour ought to go, a brief design session possibly on whiteboard or an index card (a few minutes long)- followed by tests before implementation. We do run tests for the few class which are being modified locally first before committing to a pending head.
Jesus Leon
over 3 years agoJune 5, 2014
Martin Fowler, your contributions (books, videos, talks and discussions, etc.) have gave me a valuable insight to a higher level of programming. They are so valuable to me and for my programming career. Thank you for your commitment on sharing your knowledge and experience. I identify this sharing spirit, to be in the very hearth of the programming branch. Without a question, one of the reasons that makes this branch one of the most exciting ones.
Yuriy
over 3 years agoJune 13, 2014
Thanks !
Stephen
about 3 years agoAugust 21, 2014
Hi, interesting video. On the topic of Mingle dynamically adding tables to the database - I was wondering if you guys published anything that explains how you did this? It sounds like an interesting approach, but I was wondering how you 'wire-up' the new tables to ActiveRecord models without restarting the Rails application? Is it a relatively simple matter of dynamically creating all the required classes when a table is created? Is Mingle a multitenant Rails application, with each tenant potentially having its own set of tables alongside the core application tables?
Alistair Cockburn
almost 3 years agoOctober 22, 2014
12:15:86
Lovely video and discussion. Thanks. Interesting misunderstanding of hex arch at around 12:20. wish I could have been there at that moment. A "db" that stays inside memory and does not persist is not a "db" as I understand it, but that's what he says, it seems to me.  Bringing a non-persisting "db" inside is actually OK per the pattern, but linking the persistence to the system hard still presents the disadvantages the HA pattern is intended to address.  if "db" does not mean "persist" (odd language he has there, but this is what he is discussing at this instant); rerun that section and see if I'm misinterpreting him/them. Super discussion. Alistair
Badri
almost 3 years agoOctober 22, 2014
Thank you so much for viewing/listening and participating this conversation, Alistair! 

In this specific instance- I should clarify that what I meant was that we wedded the structure and behaviour of some objects in the system directly to tables in the database and let the shape and capabilities of the tables and the database drive out the functionality of the application. 

It is in this conceptual sense that I said we chose to bring the database "inside" - in that the capabilities of the database were directly used to provide a lot of the capabilities of the application rather than implementing the functionality in POJOs that could then be persisted into a durable system without the capabilities of the databases that we supported.

Once we made this choice, we gave up the ability to say "I don't care what the database supports or doesn't support or if it really is even a relational database". In return for giving that up, we were able to implement a system that possibly really needed something like Cassandra or BigTable - but have it implemented to work on less exotic RDBMS that actually were around in 2006/2007.

Does that help clarify what I meant?
Alistair Cockburn
almost 3 years agoOctober 22, 2014
17:32:09
at 17:00, 30 seconds of describing the exact perfect time to use the right side of HA, and at 17:30, deciding therefore, "all our unit tests would hit the database." ugh. so, exactly not the HA pattern, and giving up the exact stated purpose and advantages of HA; but posing as a valid implementation of HA by using the sleight of hand phrase "we decided to bring the database "inside" the application". oh well.
Badri
almost 3 years agoOctober 23, 2014
Alistair - you are absolutely right. What we did on Mingle to talk to the database was the exact opposite of the HA pattern. I apologize if I seemed to imply that what we did there was in any way recognizable as HA. It was most definitely not.
Alistair Cockburn
almost 3 years agoOctober 22, 2014
Badri,  I was on a project, and the mapper people took down the access to the db for about 6 days during heavy refactoring. All work stopped during that time, since no one could run any tests without access to the real database. The HA pattern says there should be an adaptor to the db that is passed in as a configuration parameter, so that when the real db is inaccessible, the folks can still develop and run tests from a substituted, in memory or in-flat-file or local db instead of the real db. That's the point you missed when you said, "We got away successfully without having that." The Hexagonal Architecture pattern is not the Data Mapper, but the Configurable Dependency pattern, the protection is not changing the database, but allowing it to be unhooked. That you succeeded once is not yet a disproof, it only means you were lucky once. A pattern is there as protection for contingencies; you, as most people, assumed you would not have those contingencies, and you, as many people do, managed to escape those contingencies on that project. That doesn't yet say what the project looked like had you had an in-memory, or local persistence available to the team. Cheers, Alistair
Badri
almost 3 years agoOctober 23, 2014
I have been in very similar situations in the past. 

In our case, Rails shipped with ActiveRecord as the default and only way to bridge the world of object-graphs and the world of tabular data with reference keys. Due to ActiveRecord, Rails wouldn't even bootstrap without a running database to connect to. The decision to need a running database was thus, in effect, made for us.

You are absolutely right in that we were in control of a lot more than the average project team in a typical IT organization- because we were building products. We were able to make decisions about which sort of contingencies we needed to prepare for and which ones we could possibly skirt by without planning for them. We certainly didn't get them all right - but this one turned out to be not problematic :)

For examples of how in the same application, we employed the ports-and-adaptors approach to be able to handle external systems that could be up/down and/or configured/left-unused- I bring up some in the second part of this conversation (available at this URL: http://thoughtworks.wistia.com/medias/jhdk2wa37j) between 17:10 and 20:40.

Hopefully what people take away from this is how in one application, the forces you are dealing with can make you take one set of tradeoffs in one circumstance; and another set of tradeoffs in another circumstance - both with attendant consequences. 

I would hope that people don't see this is a blanket statement of applicability or lack-of-applicability of the HA pattern- but more of a case study of a couple of different examples in a long lived application where it was both applied *and* avoided with reasons about why in each case.

I hope the second part either speaks to some of the points you make- or better still generates further conversation! Thank you so much once again for engaging on this. :)
Alistair Cockburn
almost 3 years agoOctober 23, 2014
Thanks, Badri - Yes, forces cause different design choices and that is appropriate. Active Record has its own life, inhibits the configurable persistence port, as is well known by now, and you lived with it just fine. Only things: 1. it is not a debate of whether the persistence is in or out in HA, it is out. So you should say you chose not to use that piece of HA, not that you used it but brought the db inside. 2. the purpose of HA is the configurable link to db, not the use of Data Mapper. with those two caveats in hand, I still think this is a marvelous video; have already appended it to my Hex A page as recommended viewing. Kudos to you for the implementations you did, and to you and Martin for making and posting the video. cheers, Alistair (yet to view the 2nd part).
Badri
almost 3 years agoOctober 23, 2014
Alistair- I think you do make a subtle but important point there about choosing to not use a part of HA vs. saying that it somehow becomes internal. I hadn't thought of the distinction between the two and understand where you are coming from on that. Will make sure to draw that distinction in the future.

Also agreed on your second point about data mapper not at all being in anyway related to HA/db. Completely orthogonal concern. We went on that tangent because it could be contrasted nicely with AR and also because it was fun! :)

Thank you so much for adding it to the references on your site. Much appreciated!
Kevin Rutherford
almost 3 years agoOctober 23, 2014
I wrote about this same idea in 2005: http://silkandspinach.net/2005/05/23/databases-as-life-support-for-domain-objects/. Since then I have gained a lot more experience with hexagonal architecture (and with databases!), and I have never again put the database inside the domain...
John Kevin Basco
over 2 years agoJanuary 4, 2015
Great discussion guys. Thanks a lot for this!
ボッテガヴェネタ 財布 使い心地
over 2 years agoMarch 4, 2015
それはだ場合に|他のみんな遭遇経験 の問題を私は知らないがわからないあなたのウェブサイト。 それは次のように表示されますの一部テキストあなたにコンテンツがオフに実行されている画面。 他の誰かがことができますしてくださいコメント、これは彼らに何が起こっているなら、私に知らせてあまりに?私はこれが起こる持っていたので、  これは可能性が前に以前、私と問題問題であること。 乾杯
ボッテガヴェネタ 財布 使い心地 http://www.apexharmony.org.sg/apexh.asp?gthn-7cfxr842.html
RajuK
about 2 years agoSeptember 14, 2015
Translations please!
ミズノクラシック 結果 速報
over 2 years agoMarch 5, 2015
私は疑問したあなたは今までにみなさ場合は、変更してくださいの ブログサイトを?その非常によく書かれ;私はyouveは言うようになったものが大好きです。しかし、多分あなたは少しより多くのコンテンツの方法で人々はそれで良い接続できるできるよう。 写真画像|または22|ホードは11持つためにテキストの非常に多くを得た。たぶん、あなたは宇宙、それをより良いだろうか?
ミズノクラシック 結果 速報 http://www.waldspielgruppe-berneck.ch/wal.asp?bnji-5285yi.html
マイケルコース 時計 製造
over 2 years agoMarch 6, 2015
|あなたがしている方法の仕方私は 何提示この特定問題プラス本当にない与えない私個人的に考慮|思考の飼料がたくさん。 しかし、ためのまさに私が持っている観察 、I 単純信託として実際解説スタック滞在であり続けるポイントとません にを始める伴う日の。 とにかくそれでもポイント、この をありがとうございました、私は行い、中するが 同意全体でのアイデア、I に関して 展望。
マイケルコース 時計 製造 http://www.psychiatrie-pflege-martinez.ch/psy.asp?hijo-2389oa.html
マルベリー 福岡
over 2 years agoMarch 7, 2015
それは、恥だ、ボタンを寄付していない!私は、間違いなくたいブログこの華麗に寄付!私は、としますブックマークブックマーキングと私のGoogleアカウントにRSSフィードを追加することになりました私はのために解決しますため。私は、新鮮な新しいを楽しみにして更新とシェア意志私のFacebookのグループと この。すぐに|トークチャット!
マルベリー 福岡 http://www.bulldogsinthebigeasy.com/bul.asp?hadw-34536.html
セリーヌディオン mp3
over 2 years agoMarch 7, 2015
私ダウン| WPワードプレステンプレート、場所を正確にうあなたは入手するには、感謝負荷を通して|それはからを手に入れる?
セリーヌディオン mp3 http://www.ruine-landskron.eu/rui.asp?gnad-8mrta058.html
マルベリー del rey
over 2 years agoMarch 7, 2015
私ダウン| WPワードプレス Webテンプレート、場所を正確にやったあなたはを通して|それはからを手に入れる?
マルベリー del rey http://www.rfd-rational-kuechen.ch/rfd.asp?abck-2154yr.html
ポールスミス店舗検索
over 2 years agoMarch 8, 2015
これはです優れたウェブページは、可能性あなたがあること関与そうすることでインタビューに関して|あなたはどれだけどのように デザインさを、それ?もしそうであればメールを受け取る!
ポールスミス店舗検索 http://sharingboard.jabs.com.pe/sha.asp?vhyr-2343ab.html
クロムハーツ ターコイズ 通販
over 2 years agoMarch 8, 2015
私はブログ何かを見つけるために好奇心システム あなたがされている利用と協力?いくつかの小セキュリティを|私の写真と一緒に問題問題|私は持つ経験だと私は思います見つけたいものよりリスクフリー安全な。 提案ソリューション何かありますか?
クロムハーツ ターコイズ 通販 http://www.nordheide360.de/nor.asp?sal-6244zd.html
ヘッドホン おすすめ beats
over 2 years agoMarch 8, 2015
スウィートブログ!ヤフーニュースでの周りサーフィンブラウジング間、私はそれを見つけました。ヤフーニュースに記載されて取得する方法について| 提案のヒント何かありますか?私はしばらくの間しようとしてきたが、私はそこに着くように見えることはありません! 乾杯
ヘッドホン おすすめ beats http://www.nikefr3.com/20150228A/28/htua-1341.html
アグ ブーツ ショート コーディネート
over 2 years agoMarch 9, 2015
まず第一に|偉大と言う私がしたいと私がしたいブログ!私は簡単な質問を持っていた心|私はあなたがいないをすればそうでない場合は、聞きしたいのですが、その中で。 あなた自身とクリアを中央にどのように  見つけるために知っている前書き込み私がいた。 私がしたいた困難な時期|アイデアを得ることに私のクリア思考の心を出。 失われた無駄な 私は|書き込みしかし、それはでの喜びを取る楽しむちょうど最初の10〜15分のように思える単純に開始する方法を把握しよう。どれ推奨またはヒント? おかげ!
アグ ブーツ ショート コーディネート http://www.petalarm.jabs.com.pe/pet44.asp?vgts-444361xo.html
セリーヌ ラゲージ lune
over 2 years agoMarch 9, 2015
ご挨拶!私は、これは知っているオフトピックが、あなたは私ができる場所を知っていたかと思いまして、見つける私のコメントフォームのためのキャプチャプラグインを?私はあなたと同じブログのプラットフォームを使用していると私はあるんです問題1を見つけること?どうもありがとう!
セリーヌ ラゲージ lune http://www.landjugend-rugendorf.de/lan.asp?mkmk-0282gq.html
モンクレール ダウン エディフィス
over 2 years agoMarch 10, 2015
ヘイ!ポスト|私は本当に|あなたのこれは私のまず第一がある。同じカバー他のブログ/ウェブサイト/フォーラム被験者|あなたはお勧めを提案することはできますか? 感謝それ!
モンクレール ダウン エディフィス http://www.singulart.ch/sin.asp?njld-9327lj.html
バーバリー ブラックレーベル 指輪
over 2 years agoMarch 11, 2015
こんにちはで作業あなたがしているWebホストあなたが気になります私はどれを知らせる? ウェブブラウザ|私は3異なる完全に異なるであなたのブログをロードしていると私はこのブログが多くのことを速くロードすると言わなければならない、最も。良いホスティング|あなたはをお勧め示唆するな価格合理的公正、正直でプロバイダに? 賛辞は、私はそれを感謝!
バーバリー ブラックレーベル 指輪 http://www.healthyglasstinting.com/default.asp?*&sderd-3164nt.html
coach 財布 大学生
over 2 years agoMarch 11, 2015
この設計はオオワシ!あなたは明らかに読者を維持する方法を知っている。仕事あなたのウィットとあなたのビデオの間に、私はほとんど自分のブログ(!よく、ほとんど...笑) を開始するために移動されました。私は本当に|あなたが言っていた、そしてあなたがそれを提示する方法、それよりも何楽しん愛さ。あまりにもクール!
coach 財布 大学生 http://www.globetech-group.com/glo.asp?ghi-9625zv.html
アナスイ コスメボックス
over 2 years agoMarch 12, 2015
イケテルブログ!あなたのテーマのカスタムが行われていますし、それがどこかからダウンロードしましたか? |いくつかの簡単な tweeksとあなたのようなデザインテーマは輝き目立つ本当にブログを作るでしょう。 あなたを持ってどこに私に知らせてください。 ありがとうございます
アナスイ コスメボックス http://www.incomeprotectionpartners.com/?*&sda-140hd.html
chanel ロゴ
over 2 years agoMarch 12, 2015
私と 今日はに行ってきました。私は貝殻を見つけて、私の4歳の娘にそれを与えたと言った"あなたはあなたの耳にこれを置けばあなたが海を聞くことができます。"彼女の耳にシェルをして叫んだ|彼女は置か置く。あり内側ヤドカリだった、それは彼女の耳に挟ま。彼女が戻って行きたがっていることはありません!大爆笑私は、これは知っているオフトピック が、私は誰かを教えていた!
chanel ロゴ http://www.sammel-bar.ch/sam.asp?ahnf-9979.asp
プラダ 財布 イメージ
over 2 years agoMarch 13, 2015
こんにちは使用して利用することあなたがしているWebホストあなたが気になります私はどれを知らせる? インターネットブラウザ|私は3異なる完全に異なるであなたのブログをロードしていると私はこのブログが多くのことを速くロードすると言わなければならない、最も。良いウェブホスティング|あなたはをお勧め示唆するな価格でプロバイダに? 謝辞、私はそれを感謝!
プラダ 財布 イメージ http://www.slowfoodbern.ch/slo.asp?dsaw-o59np.html
コーチジャケット ロック
over 2 years agoMarch 14, 2015
非常にあなたの文章の ながら|快い 登場鳴っ最初、 座らない沈降さよく私と一緒に。 内|どこかでどこか段落あなたはしばらく。 I しかし|ジャンプあなたに問題があることに持っている仮定と1だろう何うまくへギャップヘルプ} {ものを記入。 もしあなたが実際それを達成することができ、私はう間違いなくになってしまう魅了。
コーチジャケット ロック http://www.anyidea.nl/?*&ghi-2031zh.html
クロムハーツ ターコイズ ネックレス
over 2 years agoMarch 15, 2015
ワンダフルブログ!ヤフーニュースで 間、私はそれを見つけました。ヤフーニュースに記載されて取得する方法について| 提案のヒント何かありますか?私はしばらくの間しようとしてきたが、私はそこに着くように見えることはありません! おかげ
クロムハーツ ターコイズ ネックレス http://www.restaurant-aufiberg.ch/res.asp?adgd-6032ol.html
Anonymous
almost 2 years agoNovember 9, 2015

cdcd
over 1 year agoJune 6, 2016
cdcdcdc
Your comment