タグ

2016年5月31日のブックマーク (12件)

  • 「オブジェクト指向入門 第11章 契約による設計」を読んだ - $shibayu36->blog;

    オブジェクト指向入門 第2版 原則・コンセプト (IT Architect’Archive クラシックモダン・コンピューティング) 作者:バートランド・メイヤー翔泳社Amazon これまでの続きで、「オブジェクト指向入門 第11章 契約による設計」を読んだ。「オブジェクト指向入門 第6章 抽象データ型」を読んだ - $shibayu36->blog; で紹介した抽象データ型と同様に非常に面白い章であった。プログラムの設計を考える時に役立ちそうな知識が自分の中で言語化されたので、今後の設計時や、コードレビューの指摘の時にも役に立ちそう。 この章は信頼性の高いソフトウェアを記述するために、表明という概念を解説してくれる。例えば、ソフトウェアが正しいとは何かについての議論や、事前条件・事後条件・クラス不変表明のような表明の種類の説明、それぞれの表明の役割、表明の使いみち、表明の監視などについての

    「オブジェクト指向入門 第11章 契約による設計」を読んだ - $shibayu36->blog;
  • Netjsを使ってC#からTypeScriptへの変換をしてみた。 - 眠いしお腹すいたし(´・ω・`)

    github.com アイコンがイケメンです。素晴らしいライブラリです。間違いないです。 ではなくてC#をTypeScript/JavaScriptに変換してくれるライブラリです。 仕組み的にはC#で作成したクラスライブラリファイル(.dll)を読み込んで.ts/.jsファイルを作成するイメージになります。 使い方 GitHubからプロジェクトをクローンしてビルドします。 引数に変換したいdllを指定してexeをコマンドラインから実行します。 そのフォルダにファイルが作成されます。 mscorlib.tsを作成されたtsファイルと同じ階層に置きます。 .NetFrameworkはどこまでカバーされているのか? 基的にほとんど変換されません。 using Systemの範囲内は少しカバーされています。 具体的には Netjs/mscorlib.ts at master · praeclar

    Netjsを使ってC#からTypeScriptへの変換をしてみた。 - 眠いしお腹すいたし(´・ω・`)
  • 筆記用具で重視しているポイント - 頭2つ抜き出る仕事術

    3年位使っていたペンケース(右)にくたびれ感が出てきたので、新しいペンケース(左)を買いました。 この機会に私の文具のポイントを紹介します。 こだわりっていうほどのものではないので、「ポイント」としておきます。 ポイントは2つ。 『スリム』と『おしゃれ』です。 そんな私のペンケースの中身はこちらです。 入っているものは、 定規 消しゴム 蛍光ペン LAMYの万年筆 LAMYの4色ボールペン です。 定規 定規の大きさはどれでもたいして変わりませんが、これはデザイン重視です。 たしかイタリア製だった気がして、真ん中の茶色い部分は革です。 とはいえ、定規を使うことは年に数回です。 消しゴム スライド型の消しゴムで、かなりスリムです。今回、気付いたのですがペンケースの中に鉛筆/シャーペンなるものは入っていません。つまり、消しゴムが必要となる相方がないのです。そして、数年、この消しゴムは使ってませ

    筆記用具で重視しているポイント - 頭2つ抜き出る仕事術
  • ローカル関数の使いどころ - LINQ 拡張 - - xin9le.net

    C# 7 で搭載予定のローカル関数。その詳細は以下を参照いただくとして、どういうケースで使えそうかと考えていたら「あ、そうか LINQ だ!」と思ったので紹介します。 yield (遅延評価) の罠 と書くだけで察しの良い方はお気付きかと思いますが、yield を含むメソッドはその機能ゆえに若干クセがあります。以下をご覧いただければ分かるように、例外が飛ぶタイミングがメソッド呼び出し時ではありません。 public static void Main() { var xs = CreateEnumerable(); //--- 遅延評価されるのでここでは例外が飛ばない var x = xs.First(); //--- ここで初めて最初の yield までが評価されて例外が飛ぶ } public static IEnumerable<int> CreateEnumerable() { thr

    ローカル関数の使いどころ - LINQ 拡張 - - xin9le.net
    JHashimoto
    JHashimoto 2016/05/31
    "しかしこの書き方は先の遅延評価の罠に引っかかり、実際の評価時まで引数チェックが働きません。引数チェックだけはメソッド呼び出し時に実行されてほしいので、以下のようにメソッドを分離して実装するのが定石"
  • タプル構文 - 多値戻り値のサポート - xin9le.net

    C# 7 では言語機能としてタプル (複数の値をまとめる) 構文 がサポートされそうです。これまでも複数の値を簡易的にパッケージングする機能として System.Tuple<T1, T2, ...> が提供されていましたが、より可読性が高く、パフォーマンスが良くなる形になる見込みです。例えば、単純なものだと以下のようになります。 (string, int, 性別) GetUserInfo() { var tuple = ("xin9le", 31, 性別.男); return tuple; } タプル構文については以下で議論がまとめられています。 System.ValueTuple 型の提供 これまで複数の値/型をまとめる汎用型としては System.Tuple 型が提供されていました。これは参照型としての表現なのでインスタンスを作るたびにヒープ領域を使用します。C# 7 ではより高い性能

    タプル構文 - 多値戻り値のサポート - xin9le.net
  • ChromeのデベロッパーツールでJSをデバッグする方法(2018年版) - ICS MEDIA

    JavaScriptのデバッグは必ず覚えておきたいウェブ開発の必須スキルの1つです。プログラムの実行をデバッグすることで現在の変数の値や、処理がどのように進んでいるのかを確認します。これを利用してプログラムが意図した動作になっているかの分析に役立てることができます。 記事ではGoogle Chromeブラウザーの「Chrome Developer Tools」(以下「デベロッパーツール」)を使用してJavaScriptをデバッグする際の基的な使い方を解説します。「今までデベロッパーツールを使ったことのない」という方でもこの記事を読めば理解できるよう、チュートリアル形式になっています。20分ほどで理解できるようまとめているので、1つ一つ順番に試しながら読み進めてください。 この記事で学べること ・デベロッパーツールの使い方 ・JavaScriptのブレークポイントの使い方 ・実行中の変数

    ChromeのデベロッパーツールでJSをデバッグする方法(2018年版) - ICS MEDIA
  • 来年から誰でもOK 「個人型確定拠出年金」の“節税効果”|日刊ゲンダイDIGITAL

  • 食べるまでわずか2分。「水漬けパスタ」の作り方 | ライフハッカー・ジャパン

    パスタ料理は自炊料理の定番と言っても過言ではないほど手軽で簡単な料理の1つです。パスタを茹でてソースと絡めるだけで出来上がるので、週に何度もパスタを作る方も多いかもしれません。 ところで、パスタを作る時間を劇的に短縮できる方法をご存知ですか? 簡単だけど茹でる工程が面倒なパスタ料理 これから気温の高い時期に入ってくると火を使うキッチンが暑くて、自炊をする気がなくなります。 またパスタを茹でるには、お湯を沸かすのにまず5〜10分かかり、さらにそこからパスタを茹でるのに5〜10分かかるので、仕事で疲れたときなどにはたったそれだけの時間でも面倒です。 茹でる工程をカット&もちもちで美味しい「水漬けパスタ」がおすすめ そこでおすすめなのが今話題になっている「水漬けパスタ」という調理法がです。その名の通り、パスタを熱湯でゆでる代わりに「水に漬ける」という手法です。 「そんな方法でべられるものができ

    食べるまでわずか2分。「水漬けパスタ」の作り方 | ライフハッカー・ジャパン
  • 「EXCEL仕様書からコード生成」のアンバランス - 設計者の発言

    EXCELで書かれた仕様書は、その見かけから「EXCEL方眼紙」と揶揄されているが、今ではそれなりに進歩して、そこからDDLやクラスコードを出力できるようになっていたりする。しかし、そのような「気の利いた機能」を搭載すれば、EXCEL仕様書はますます奇妙なものになってゆく。 まず、生成されたコードが案外役に立たないという問題がある。たとえばCREATE TABLE文は文字通りテーブルを作成するためのものだが、現実の開発ではテーブルは何度も作り変えられる。それゆえに、CREATE TABLE文だけでなくALTER TABLE文も生成できるようであってほしい。ところが、EXCEL仕様書のテーブル定義からCREATE TABLE文を生成するのは簡単だが、定義修正後の差分からALTER TABLE文を生成するのは簡単ではない。 手段がないわけではない。テーブルオブジェクトのメタデータを読み出せばよ

    「EXCEL仕様書からコード生成」のアンバランス - 設計者の発言
  • 新R25 - シゴトも人生も、もっと楽しもう。

  • 【WPF】MVVMでBusyIndicatorを使う場合(または非同期コマンドでUIをブロックする場合)の最適ソリューションて何だと思いますか?

    訳あってWPFを使うことになり、MVVMで実装してるのですが、非同期コマンドでつまずきました。 ボタンを押してデータベースからリストを取ってくる間、BusyIndicatorを表示させたい(UIをブロックしたい)のですが、MVVMでやると難しくないですか? 結構当たり前にやる処理だと思ったのですが、調べてみても適当なソリューションが見つからず、皆さんどうやって実装してるのか気になってトピックを立てました。 みなさんの実装をご紹介いただけると幸です。 ちなみに、調べて見つかったのは ◆非同期プログラミング - 非同期 MVVM アプリケーションのパターン: コマンド https://msdn.microsoft.com/ja-jp/magazine/dn630647.aspx ↑この例は、UIブロックしてません。 ◆Implementing a busy indicator using a

    JHashimoto
    JHashimoto 2016/05/31
    "ユーザーが何もできなくしたいですけど、UIが固まるのは避けたい(アニメーションを見せて待たせたい)です。Webだと普通にある要求で、グルグルを回したりします。"
  • 「現在時刻」を外部入力とする設計と、その実装のこと - クックパッド開発者ブログ

    こんにちは。技術部 開発基盤グループの諸橋です。 クックパッドでは昨今の多くのWeb企業と同じように、GitHub EnterpriseのPull Requestを使ったコードレビューを広範に実施しています。わたしたちのコードレビューでは、ソースコードの字面にとどまらず、サービスの機能として魅力的かどうかや、保守性を含めた設計が適切かといった議論に発展することも良くあります。 きょうはそんななかで話題に上がった「現在時刻」の扱いかたに関する設計の話を書きます。 背景 サービスを開発・運営している我々には、時間帯によって出し分けたり、特定の期間のみに表示したいコンテンツがたくさんあります。 そのたびにデプロイし直すというのはつらいので(特に24:00に出なくなるコンテンツなど)なんとかしたくなりますが、一方で時限式のコンテンツはその時になるまでちゃんと動いているか確証が取れないので怖いです。

    「現在時刻」を外部入力とする設計と、その実装のこと - クックパッド開発者ブログ