タグ

programmingに関するimo_jo_chuのブックマーク (9)

  • re:僕にとってMaybe / Nullable / Optional が、どうしてもしっくりこないわけ。 - ぐるぐる~

    元ネタ: 僕にとってMaybe / Nullable / Optional が、どうしてもしっくりこないわけ。 - 亀岡的プログラマ日記 OOPの文脈で見ると、元の記事が言っていることもわからなくはないのですが、対象が広すぎていろいろと不正確になってしまっているので、ちょっとまとめてみます。 元の記事が対象にしているのは、Maybe / Optional / Nullableの3つです。 対応する型を持つ言語を見てみると、下記のようになります。 Maybe(Haskell) Optional(Swift/Java) Nullable(C#) これらは、「値がないこと」を表すもの、という見方では同じですが、それぞれ異なる価値観の元に作られています。 Maybe/OptionalとNullable これらはすべて型パラメータを取ります*1。 しかし、この中でNullableだけは型パラメータに

    re:僕にとってMaybe / Nullable / Optional が、どうしてもしっくりこないわけ。 - ぐるぐる~
  • 404 Blog Not Found:アルゴリズム百選 - 二分探索(binary search)

    2007年12月04日08:30 カテゴリアルゴリズム百選Math アルゴリズム百選 - 二分探索(binary search) 今回は二分探索を取り上げます。 検索:コンピューターの最もよくある利用法 「二分探索って何?」「ググレカス」と言われないためにこの記事は存在するのですが、Webの検索に限らず、「目的のデータを見つけて取り出す」というのは、およそコンピューターの利用法で最もポピュラーなものです。 配列:コンピューターがデータを扱う根的な方法 そのデータはコンピューターのなかでどう置かれているかというと、非常に単純です。デジタル化されたデータ=数値が一定間隔で並んでいるだけです。こういうデータ構造を、配列(array)といい、この数値一個一個のことを要素(element)と言います。 現代のコンピューターでは、最小要素はバイト(byte)と呼ばれています。このバイトの中には0と1

    404 Blog Not Found:アルゴリズム百選 - 二分探索(binary search)
  • 暗算で 16 進数を 2 進数に変換する方法 | プログラマーズ雑記帳

    C 言語などでビットの定義を行う場合、 ビットシフト(<<)も使いますが、 16 進数で表記することも多いです。 何故 16 進数で記述するかというと 16 進数は 2 進数に変換しやすいためです。 C 言語でゴリゴリ書くのが主流だった時代は、 結構みんな独自の計算方法を持っていて、すぐに 2 進数に変換していました。 しかし、最近ではこの変換をできない人が増えてきた気がします。 そこで今回は私がやっている暗算で 16 進数を 2 進数に変換する方法を紹介したいと思います。 ただ、魔法のような便利な方法があるわけではなく、掛け算における九九のように暗記よる部分が多いです。 進数表記の基礎 まず最初に進数表記について簡単に説明します。 進数表記の種類としては 16, 10, 8, 2 進数などがあり、 通常、私達が使っているのは 10 進数です。 2, 8 進数などの場合、たまに 2, 8

    imo_jo_chu
    imo_jo_chu 2015/07/16
    いつ使うかわからんけどとりあえずブクマ
  • 「PHPコードではなくPHPコードの「書き方」を知る」を発表してきました

    PHPカンファレンス関西2014で「PHPコードではなくPHPコードの「書き方」を知る」を発表してきました。 写真提供:久岡写真事務所 別トラックに人気セッションがひしめく中、多くの方に聴いて頂き、ありがとうございましたm(_ _)m 発表内容 PHP 中級者(中級がどこかというのはありますが)を目指す初心者の方を対象に、FizzBuzz のコードを、関数にまとめて、クラス化するというのをライブコーディングで行いました。 また、関数にまとめた段階で、自動テストを書いて、実行結果を目で確認するのではなく、テストを実行して確認するというスタイルを取りました。 発表資料は以下です。 コードを書きながら進めていく形なので、資料だけでは少し伝わらない部分があるかもしれません。 デモで書いた PHP コードは、GitHub で公開しています。Sample1, Sample2 とディレクトリが分かれてい

  • プログラミングで変数名や関数名のネーミングに迷ったときに便利なカンニングペーパーまとめ

    僕は、プログラムをする上で変数や関数に良い名前を付けるのはとても重要と考えています。 というのも、良い名前を付ければ、それだけでそのコードがしたいことの説明になり、コメントと同等の働きをすることもあるからです。 自分がちゃんとそれをできているのかはさておき、僕は普段から、できれば読みやすくて分かりやすい名前を付けたいと思っています。他の人も読むコードであれば、できればプログラムでよく使われるような単語を利用して書いた方がより分かりやすいです。 ただ、よい名前を考えるのって、ちょっと面倒くさいんですよね。僕はこれまで、英語の辞書を利用して、考えたりしていたのですが、「何か、プログラムでよく使われる単語をまとめたものはないか?」と探したら、ドンピシャのものがいくつかあったので、それらをまとめて以下で紹介します。 photo by Michael Coté codic codic – デベロッパ

    プログラミングで変数名や関数名のネーミングに迷ったときに便利なカンニングペーパーまとめ
  • Python in Mac OS X - プレイヤーズ・ハイ

    目次 環境 既存 Python 環境の確認 Python easy_install pip インストール Homebrew で pyenv をインストール Homebrew で pyenv-virtualenv をインストール pyenv を使って複数の Python をインストール インストール可能な Python のリスト pyenv で Python 2.7.6 をインストール pyenv で Python 3.3.5 をインストール pyenv でインストールされた Python を確認 pyenv コマンド一覧 ローカルバージョン 特定のディレクトリー配下のみで有効な「ローカルバージョン」をセット ローカルバージョンの解除 pyenv-virtualenv pyenv-virtualenv を用いた仮想環境の構築 pyenv-virtualenv 仮想環境の削除 Amazon L

    Python in Mac OS X - プレイヤーズ・ハイ
  • レガシーコード改善の戦略と戦術

    自己紹介 name: 和田 卓人 hatena : t-wada twitter : t_wada github : twada レガシーコード改善コンサルティングも多いです

    レガシーコード改善の戦略と戦術
  • テスト考2014 - Hidden in Plain Sight

    年々、ウェブアプリを開発するときにテストを書こうという機運が強くなっていると感じる。 これは、開発パラダイムの成熟を意味することであり、基的に良いことだと思っている。 しかし同時に「テスト原理主義」とでもいうような極端な考え方もでてきていて、開発スタイルをめぐって摩擦が起こっている。 そして、この議論は「テストは、ないよりあったほうが良いよね」という、微視的には誰も反論できないロジックに押し通されがちで、「地獄への道は善意で舗装されている」の典型的な現象に見えて仕方がない。 テストを書かない、というと背景にどんな深い考えがあっても素人くさく聞こえ、逆にテストを書くというだけで良いプログラマーに見える、という非対称な化粧効果がある。ソフトウェア・コンサルティング会社がテスト好きなのは決して偶然ではない。 ソフトウェアというのは、結局のところ、動いてナンボ、使われてナンボである。 期待するも

    テスト考2014 - Hidden in Plain Sight
  • JavaScript Garden

    JavaScript Garden はJavaScriptというプログラム言語の一番奇妙な部分についてのドキュメント集です。 このドキュメントはJavaScriptという言語に慣れていないプログラマーがこの言語について深く知ろうとする際に遭遇する、良くある間違い・小さなバグ・パフォーマンスの問題・悪い習慣などを避ける為のアドバイスを与えます。 JavaScript GardenはJavaScriptを教える事を目的にしていません。このガイドの項目を理解する為には、この言語に対する前提知識がある事を推奨します。この言語の基礎部分についてはMozilla Developer Networkのガイド がオススメです。 著者 このガイドは愛すべきStack Overflowの2人のユーザーIvo Wetzel (執筆)とZhang Yi Jiang (デザイン)によって作られました。 貢献者 貢献

    imo_jo_chu
    imo_jo_chu 2013/10/24
    JavaScriptのややこしい仕様の詳細解説ドキュメント。一通り読んでおくべし
  • 1