「Dialog」を含む日記 RSS

はてなキーワード: Dialogとは

2020-11-06

コード共通化するな

プログラミングできる気になった自称中級者は、ソースコード共通パターンが現れると決まって、その処理を関数などに共通化したがる。

しかに、そうすることでソースコードは短くなるし、一見して保守性が上がったような気になるのだが、それは間違った作法から止めろ。

かいこと言っても伝わらない自称プログラマが読んでることを想定して、先に結論簡単に書いておく。

お前は絶対コード共通化するな。

共通化してはいけない理由

なぜコード共通化するのがいけないのか。理由簡単だ。要するに、コードが似ているのは単なる偶然であって、それらは別の処理だからだ。

別の処理だから共通化するのはおかしいし、もし共通化した処理の一方のみ仕様が変わった場合、その修正は他方にも影響してしまう。つまり保守性が下がっている。

たとえば、同じプロジェクトの中に、10%の消費税を加える処理と、10%の金利を加える処理があったとする。この2つの処理はともに元の金額を1.1倍する処理であり、全く同じ処理であるが、共通化してはいけない。

これらを共通化してしまうと、たとえば金利が8%に変更になったとき金利計算の処理だけではなく、消費税計算している箇所すべてを変更しなければならなくなる。

実際のアプリケーションでやりがちなのは複数の処理の「事前処理」「事後処理」などを1つの関数にして、呼び出し毎に細かい挙動引数制御するようなパターンだ。

これは結局、改修を重ねる度に「事前処理」「事後処理」の内容が使用箇所によって全く異なるものとなり、それに対応するために

といった悲惨設計に陥る。

他にも、GUIアプリユーザーの応答を待つDialogクラスなんてものを作って、使用箇所ごとにメッセージボタンに割り当てる処理などを切り替えることがある。

これも間違いなく、プログラムが成長するにつれて破綻する。たとえば、ある場所ダイアログは、表示するメッセージテキスト形式のみではなくなり、脇に画像を表示するかどうかのフラグコンストラクタに渡したり、Dialog継承させて表組みを表示するTableDialogサブクラスを作ったりすることになる。ボタンが「OK」と「キャンセル」の2種類の場合じゃなくなって、表示するボタンの数をコンストラクタに渡したり、ボタンに割り当てる処理をリスト形式で渡したりし出す。

こうして、最初は良い設計に見えたDialogクラスはどんどん複雑になる。こうなった原因は明らかで、本来は異なるもの共通化したからだ。おかしな色気を出さずに、素直に別々に実装しておけばよかったのである

処理に名前をつけろ

プログラミングをする上で「コード共通化する」なんてことは意識しなくていい。それよりもプログラマがすべきことは、処理に適切な名前をつけることだ。そのプログラムにおいて「単なる変数操作」を超えた意味のある処理には名前をつけろ。そして、同じ意味の処理なら同じ関数を使うし、違う処理なら違う関数を使う。それだけだ。コード共通化できるかどうかなんて全く関係ない。

変数関数クラス名前空間等が再利用のための機構だという先入観は一旦捨てろ。それらの真の意義は、「関心の分離」にある。つまり実装隠蔽し、その意図抽象するために存在する。たまに勘違いしてる奴がいるが、別に1回しか使われない関数とか、1行しかない関数はあってもいい。というか、この原則にしたがって設計すると、ほとんどの関数(or メソッド)は数行になる。

上の消費税の例で言えば、「消費税を加える」「金利を加える」処理は、明らかに単なる算術演算以上の意味のある操作から関数化する。そして、それぞれの実装は当初の仕様では奇しくも全く同じになる。消費税を加える箇所では前者の関数を呼ぶし、金利を加える箇所では後者関数を呼ぶ。

これはこう言い換えることもできる。消費税を加える関数を変更するのは、消費税計算処理が変わったときのみであり、金利を加える関数を変更するのは、金利計算処理が変わったときのみである。つまり、すべての関数は、それを変更する理由がただ1つになるように設計しろということだ。

こういうアプローチプログラムを書くと、ソースコードはあたかもそのアプリケーションドメイン特化言語で書かれたかのような見た目になる。

また、一つ一つの関数は小さく、理解やすく、テストデバッグも容易になる。そして、結果として再利用もしやすくなるし、プログラムの変更も容易になる。

2020-04-04

常識で考えて?

コロナに関わらず感染症一般的常識(特定の層だけ安全とかない)、

各国で医師が死亡している、

各国の軍や情報機関が即座に動いた、

(空母が大感染機能停止、現在米国は軍関係者感染情報を非公開に移行)

航空会社は既に8割の客室乗務員に1年の一時帰休を出したり、

いろんな企業が即座に従業員解雇した

投資会社が疫病学者投資材料のためにインタビューしているが「短期での経済回復絶望的」との回答

Navigating Coronavirus and the Markets' ft. Dr. Ian Lipkin and Beacon Pointe CIO Michael Dow, CFA

https://www.youtube.com/watch?v=CxVG7PNLgRE&app=desktop#dialog


さらウイルスは強毒化しがち


たぶん、スペシャリティではなく常識の話

anond:20200404183919

anond:20200404214030

anond:20200404220324

2019-12-04

Dialog

message

OK

なんでNOボタンがないんだ?

承諾しないボタンはないのか?

Closeでいいだろ?

たったこれだけのことでもGUIを作るうえでのノウハウから

無料じゃない

たとえばWindows

結婚してください

OK

ってダイアログが起動時に毎回出たら?

Wiondowsの開発者の一人が恋人にやった

どうおもう?

 

いわれなきゃ、わからないことなのかな・・・

そんなわけないよね。

まりわざとやってる

 

おれなんかみんなにきらわれてよ

こうやっておいだされちゃう

もう行く場所がない。

2016-03-30

climactic feat in “The Avengers.”) In Snyder’s new film, Superman appears, from the sff

But while pundits have occasionally contorted themselves into logical pretzels to explain away Ford’s casual racism and misogyny — “He was just drunk!” “He always fights for the little guy!” — none has ever been able to explain away his deliberate and calculated anti-LGBT statements and actions.

Ford never hid anti-LGBT animus. From his earliest days on council, when he opposed funding small grants to diversity and AIDS-prevention campaigns, he made it explicit that his opposition stemmed from disgust with LGBT people, not from a desire to protect the public purse.Superman grany przez Cavilla to ten sam poziom, co w Człowieku ze Stali - moim zdaniem Cavill bardzo się stara, żeby jak najciekawiej zagrać Supermana, ale to i tak jedna z najnudniejszych postaci w całym komiksowym uniwersum, więc niektóre wysiłki pozostaniezauważone. Moim zdaniem to wina postaci i fani muszą się do tego przyzwyczaić.

Trzecią postacią, która ma szanse zaprezentować nam się trochę dłużej na ekranie jest oczywiście “ten zły”, czyli Lex Luthor, który grany przez Eisenberga kojarzył się raczej z o wiele bardziej szalonym Zuckerbergiem z The Social Network, niż komiksowym czarnym charakterem. Być może się czepiam, ale gdyby Luthor się w tym filmie nie przedstawił, nie miałbym pocia kim właściwie jest ten rudy gość, który z jakiegoś powodu postanowił być bardzo złośliwy.

he astonishments of the quasi-Biblical clashes and catastrophes in the director Zack Snyder’s “Man of Steel” left me impatient to see hisBatman v Superman: Dawn of Justice.” The earlier film conveyed an awed and even terrified sense of the colossal, a delight in the cinematic ability to realize wrenching destruction and, at the same time, to shiver at the very imagination of it. Snyder turned the superhero universe around on itself, constructing backstories and out-there stories of an apocalyptic force; it was silly but potent, shallow but thrilling. Perhaps Snyder’s new film is the victim of great (or any) expectations, but “Batman v Superman: Dawn of Justice” remains literally Earth-bound, and this fair planet is where Snyder bumps up against the limits of his vision.

Where “Man of Steel” opens big, with an intergalactic origin story that has the heightened tone of pseudo-scripture, the first big set piece in “Batman v Supermanis a catastrophe from home, a virtual replay of the 9/11 attack on the World Trade Center, with Bruce Wayne (Ben Affleck) looking on with horror and hatred as the tower of Wayne Industries collapses (vertically) into a blinding gust of light-gray powderas a result of the battle waged by Superman (Henry Cavill) against the Kryptonian usurper General Zod.

That start gives off a strange whiff of competition with—or emulation of—Marvel’s irrepressibly successful “Avengers” films, the first of which, in particular, is an unabashed post-9/11 allegory. (The connection is surprisingly direct. One of the climactic moments of “Batman v Superman”—a leap from the ground that vaults through the atmosphere and into outer space—is a virtual duplication, both dramatically and visually, of a similar climactic feat in “The Avengers.”) In Snyder’s new film, Superman appears, from the start, as a hopeless naïf, a battler for good who doesn’t admit to his own capacity to do incidental evil, a blinkered warrior who deploys his nearly infinite powers according to his unquestioned moral intuition rather than to the prudent calculation of results.

O Wonder Woman, która zgodnie z obietnicami zadebiutowała w tym filmie mogę w sumie napisać tylko tyle, że… do tej roli wybrano świetną aktorkę. Przynajmniej z wyglądu, bo po tych strzępkach dialogów, które pojawiają sie na ekranie z jej udziałem ciężko się zorientować kim właściwie jest ta pani, która w pewnym momencie pojawia się z tarczą i mieczem u boku Supermana i Batmana.

http://www.chatakatka.sk/mega-hqtvdownload-batman-v-superman-dawn-of-justice-full-movie-hdq/

http://www.chatakatka.sk/mega-hqtvdownload-batman-v-superman-dawn-of-justice-full-movie-hdq/

 
ログイン ユーザー登録
ようこそ ゲスト さん