サービスの迷惑なチャタリング

3つの少し面白いことを共有します。

    ある日、私はレストランに行きました。シングルポイントの後、私は席に仕えるつもりです。待って、待って、突然、ウェイターが走ったと言った:「申し訳ありませんが、私達はちょうどあなたが、私たちはあなたが調理与えることができ、サイモンの野菜市場に行くために2個のトマトが戻ってくる購入するトマトのトラブル完売します..」

    ある日、私はレストランに行きました。シングルポイントの後、私は席に仕えるつもりです。場合にはあなたが自分のああを負担すること事を取得する必要があり、「私は申し訳ありませんが、我々はあなたが彼の革新的な料理についてのシェフを食べることを試してみたいが、彼は試されていない:待って、待って、突然、ウェイターが走ったと言いました。 "

    ある日、私はレストランに行きました。いつものように、食べるために最初の日。私が行った次の日、同じ皿の最初のポイント。意外なことに、ウェイターが突然、私のプレートを投げた私の頭を壊し置きます。

640?wx_fmt = JPEG&wxfrom = 5&wx_lazy = 1&wx_co = 1



    もちろん、現実にはそのようなレストランではありません。そのような「サービス」を導入するためにあえてどのレストラン、毎分は、彼がどこへ行ってもテーブルがヒット持ち上げあります。しかし、私たちのシステムが、そのような存在であるので、真があり、「サービスが。」


    私たちは、システムサービスを取りました。ある時、内部データ移行サービスは、ファイルシステムの別のセットにファイルストレージシステムからの移行、することができません。サービスプログラムに、発信者に提示するサービスの担当者は次のとおりです。彼らは、新しいクエリインターフェイスを提供します。サービスコールへの最初の呼び出し側は、古いインターフェース一度チェックすると?あなたはデータを検索し、再度新しいインターフェイスの再チェックを呼び出すことができない場合。これは、無トマトとキッチンで、同じではない、自分の顧客を買うために戻ってきますか?

640?wx_fmt = PNG&wxfrom = 5&wx_lazy = 1&wx_co = 1


    これは「顧客が自分のトマトを購入し、」プログラムの直接的な結果で使用するだけで問題を解決できるサービス・インターフェースにコードを変更する必要がありましたが、最後の発信者へのニーズが包括的スクリーニングをした、八十から九のためにコードを変更完了します。フォローアップをさらに修正を(例えば、すべてのファイルが完全にオフライン古いファイルシステムように、新しいファイルシステムに移行)行く場合、あなたはまた、発信者の完全なスクリーニングを行い、その後、いくつかの場所にコードを変更する必要があります完全な。

    把服务内部的实现细节“扩散”到服务外部,这就是所谓的“低内聚”。很多服务——不仅是跨系统服务,还有系统内部通过interface来提供的服务——都有这样的问题。有的Excel解析服务要求调用方传入JXL组件中声明的类。这样一来,它就把内部的实现细节扩散到了调用方,从而使得调用方和解析服务自己都被绑定在了JXL组件上。结果,这个Excel解析服务就无法“顺滑”地切换到POI,也很难升级到Office 2007及以后的版本了。


    另外一个系统提供的“服务”更令人啼笑皆非。有一天那个服务的负责人突然找到我,说你们调我们的接口时加几个参数吧!我有点奇怪的反问他,没有接到新需求上线的通知,为什么要加参数?他回答说,他们做了一些优化和改进,但是测试测不过来,所以想让我们直接在线上帮他们测一下。我当时差点没背过气去:这厨师一口都没吃过的新菜,就敢端上来给顾客吃?咸了淡了还是小事,万一食物中毒把顾客吃死了,这责任谁担?

    

    上面那俩“服务”好歹最后还没出错。还有一个服务提供的查询接口直接引发了线上问题:这个服务接口居然不幂等。第一次查询时,接口还能正常返回数据;同样的数据再次调用时,接口居然给返回了一个异常。这不就是那个第二次点同样的菜就拿盘子扔我的服务员吗?

640?wx_fmt = PNG&wxfrom = 5&wx_lazy = 1&wx_co = 1


    在没有其它操作的情况下,用同样的数据调用同样的接口,返回同样的结果,这就是幂等性。默认操作下,查询接口都应该是幂等的。我是真想不通这个查询操作是如何做到不幂等的——要让它不幂等,比让它保持幂等还更费精力。



    为什么会有这样的服务呢?因为这些系统提供的“服务”并不是面向它的用户、而是面向他们自己的:自己省心省力就万事大吉了,用户?管他呢!因为没有人去掀桌子砸场子,所以这样的劣币可以继续流通、甚至驱逐良币。

    私たちはそれをサービスをしなければなりませんか?特定要件 - 言うことではない1 - 、電力、堅牢で安定した、分離、ように高い内部凝集力及び低い結合、最大努力、高性能、およびAS。顧客はまた、完全な胃の苦情を食事を食べることを聞かせてはいけない:態度で少なくとも、私たちは自分の子供、および顧客など、ユーザがレストランをオープンする必要があります。悪い、良い態度だけでなく、開発は、良い能力、生活態度は、なくなってゴミの貧しい生活態度に陥るのは簡単です、この刻々と変化する技術でIT業界に導くためには本当に難しいです。


QRコード?シーン= 10000004&サイズ= 102&__ビズ= MzUzNzk0NjI1NQ ==&ミッド= 100000552&IDX = 1&SN = 620b5f68cd1fc9bd00699da69813693c&SEND_TIME = 1567089942


おすすめ

転載: blog.51cto.com/winters1224/2433792