タグ

関連タグで絞り込む (301)

タグの絞り込みを解除

プログラミングに関するtjun1のブックマーク (583)

  • Web API 設計のベストプラクティス集 "Web API Design - Crafting Interfaces that Developers Love" - フリーフォーム フリークアウト

    移転しました http://please-sleep.cou929.nu/20130121.html

    Web API 設計のベストプラクティス集 "Web API Design - Crafting Interfaces that Developers Love" - フリーフォーム フリークアウト
  • sbt + sbt-idea + Intellij Scala Pluginを使ったScala開発 (in Mac OS X) - kmizuの日記

    注意:この記事の内容は、2013年7月2日現在、やや古くなっています。現在は「Use external build」のチェックはONにしたままで、「Use project FSC」をチェックしない方が安定して動作します。これは、最近のアップデート(ここ1〜2ヶ月くらいの話ですが)「Use external build」を使ったときに、IDEAが内部でzincというsbtベースのスタンドアロンなコンパイラを内部で使うようになった事に起因しています。コンパイラの設定以外は現在でもそのまま通用しますが、このエントリを読んでIntelliJ IDEA + ScalaプラグインによるScala開発を行おうとしている人は注意してください。 これは、Scala入門をIntelliJ IDEAでやろうとしている人向けのエントリではありません。このエントリでは、IntelliJ IDEAのScalaプラグイ

    sbt + sbt-idea + Intellij Scala Pluginを使ったScala開発 (in Mac OS X) - kmizuの日記
  • 読みやすいコードってどんなものか考えてみた -抽象化と名前重要- - tumblr

    あらすじ 人の綺麗なコードを読みまくると自分のコードも綺麗になっていくのに、イケメンを見続けても僕の顔が良くならないのは何故なの?? 2012-11-30 19:41:20 via web 今まであまり人のコードを読む習慣というか機会というかがあまりなかったのですが、最近になって、デスクの上がヨドバシのiMac売り場みたいと(僕の中で)話題沸騰中の@mitukiiiさんのコードを読む事があり、この人がまたすごく綺麗でスタイリッシュなコードを書くわけで、その時に、綺麗なコードというのはこういう感じに書くものなのかと結構な衝撃を受けたわけです。 またこれも最近なのですが、別の機会で、なんと言いますか、1つの関数が数千行あったり、しかもその内の大部分が共通処理として括り出せるような恐らくはコピペされたであろう部分が大量に入っていたりまぁ不可解な部分の多い、言うなればイケメンを見続けた僕みたいな、

  • TDDの自殺 #kyon_mmAdvent - うさぎ組

    はじめに 僕は熱心にTDDを勧めているエンジニアです。 ですが、この2年でTDDが銀の弾丸ではないことも気付き始めました。 その気づきの一つがこのTDDの自殺です。 先にFacebookで投稿したところ、評価をもらえたので投稿します。 「読み手を選ぶエントリーです、(`・ω・´)キリッ」 これを読んで「kyon_mmも落ちたものだ」と思ってもらっても構いませんし、「迷惑な話だ」ということであれば僕に猛抗議をしてもかまいません。 TDDとはなにか TDDは開発者を支援するフレームワークと定義します。 TDDは「開発者の意図を確認すること」「開発者が心地よいコードを書き始める事」を支援するフレームワークです。 TDDの基礎 TDDを支えるものとして次の要素があります。 客観的で頻繁にも実施できる検査群、確認し易い検査結果群、RED,GREEN,REFACTORのライフサイクル。 これらによって

    TDDの自殺 #kyon_mmAdvent - うさぎ組
  • NAVERまとめに見る遅延ロードのすすめ « NAVER Engineers' Blog

    あけましておめでとうございます。NAVERまとめのフロントエンドを担当している縣です。初詣で引いた大吉のおみくじを握りしめながら今年も張り切っていこうと思います。 今回はJavaScriptの遅延ロードの仕組みをNAVERまとめに導入した際のお話を紹介します。 遅延ロードの検討 昨年NAVERまとめのまとめ閲覧ページや、まとめ編集ページでのJavaScriptファイルの読み込みを遅延ロード化する作業をしました。元々はページ読み込み時に全て読み込ませていましたが、JavaScriptファイルが巨大になってきてパース・実行に時間がかかるようになったことから遅延ロードを検討することになりました。 遅延ロードの利点というとJavaScriptファイルの読み込み・実行によるブラウザのレンダリング停止を防ぐのはもちろんですが、どのファイルがいつどこで必要になるかを明確にすることもでき、依存関係を動的

  • 車輪の再発明×jsdo.itのススメ. 色々なコードを tmlib.js で作りなおしてみた | TM Life

    jsdo.it にある色々なコードを勉強がてら tmlib.js で作りなおしてみました. せっかくなので作ったコードを紹介したいと思います. っとその前にプログラミングを学んでいる方向けに, 車輪の再発明×jsdo.it の良さについて軽く書きたいと思います. Table of contents 車輪の再発明って? 車輪の再発明×jsdo.it サンプル Hexagon Phase 2 – tmlib.js version Fire Effect – tmlib.js version Water Effect – tmlib.js version Ice Effect – tmlib.js version 車輪の再発明って? 車輪の車輪再発明とは, 既存のものをまた改めて作ることを言います. 新たな付加価値がないことから良いニュアンスで使われることはあまりありません. ですが, プログラ

    車輪の再発明×jsdo.itのススメ. 色々なコードを tmlib.js で作りなおしてみた | TM Life
  • API設計に関する10のワーストプラクティス

    過半数の開発者が平均で3つ以上のAPIのインテグレーションを実装していると言われている昨今、「使い辛い設計のAPI」を実装するのは開発者にとっては頭の痛い問題ではないでしょうか? Programable Web上に投稿されたAPIのワーストプラクティスに関する記事が国内外の開発者の目に止まったようです。この記事によると悪いAPIに見られるプラクティスは下記のようなものだそうです。 貧弱なエラーハンドリング HTTPのルールを無視したREST API 裏に潜んだ生のデータモデルの露出 セキュリティの複雑さ ドキュメント化されていない予期せぬリリース 貧弱なデベロッパエクスペリエンス MVCフレームワークが良いAPIにしてくれるという思い込み 開発すれば使ってもらえると見なすこと 不十分なサポート 貧弱なドキュメンテーション APIを利用するだけでなく、APIを提供する場合に上記のようなポイン

    API設計に関する10のワーストプラクティス
  • Jenkins で MSTest の結果とコードカバレッジを表示する方法 - present

    はじめに Jenkins で .NET ソリューションのビルドとテストが出来るようになりました。これだけでも便利ですけど、欲を言えばテスト結果を Jenkins 上に表示したい。あと、コードカバレッジのレポートも表示できると、いろいろ捗りそうです。 ということで、テスト結果とコードカバレッジを Jenkins で表示することに挑戦しました。ちなみに Visual Studio 2010 のコードカバレッジ機能は Premium 以上のエディションで利用できます。 今回の作業は、次の記事を参考にしました。 hudsonでMSTestのテスト結果とカバレッジをレポートする設定をしてみた。 - 高知で働くひとのブログ そのままでは上手く動かないので、やったことをまとめておきます。 Visual Studio ソリューションの設定 テストプロジェクトが既に作成されていることを前提に進めていきます。

    Jenkins で MSTest の結果とコードカバレッジを表示する方法 - present
  • Objective-C用ユーティリティOverlineを公開しました - yaakaito.org

    こんにちは!うきょーです。寒いですね。 Objective-C(主にiOS開発)向けのユーティリティライブラリを公開しました。 バージョンは0.1.0で、まだAPIはそこまでそろってません。 Overline 似たようなライブラリではunderscore.mとかBlocksKitが近いかなーと思います。 基的な機能の拡張で、めんどくさいところを楽にする系のライブラリです。ひかえめです。 主に僕がだるいなーと思ったベースで追加しています。 なのでいわゆるmapもあれば、URLエンコードしてくれるメソッドもありますし、という感じ。あとはいつも忘れる系とか。 underscoreなんかと違うところは、underscoreとかってがんばってJSっぽく書こうとしてる感じが伝わってくるんですが、 僕はJavaScriptみたいに書くのが綺麗だなとか書きやすいとかまったく思ってないので、Objecti

  • ぷろぐらみんぐおさんぽまっぷ

    C83で配布した「ぷろぐらみんぐおさんぽまっぷ」の内容を無償公開しています。 プログラミングを学び始めた駆け出しプログラマが、これから何を学ぶべきか、どんな分野があるのかを俯瞰できるような文章です。部下や後輩を育てたいあなたにも、ぜひ読んでいただきたい内容です。 昔読んで感銘を受けたハッカーになろうの現代版(&&詳しく書いた)ともとれます。 PDFダウンロード(4MB) Webページ

  • Pythonを始めるなら、1ファイルの軽量Webフレームワーク「Bottle」がおすすめ - モジログ

    「全てのwebエンジニアPythonを勉強するべき2013年到来」(2013-01-01)という記事が人気を集めているようだ。巳年(ヘビ年)にひっかけて、これからPythonを勉強したい人を対象に、書籍やライブラリなどを紹介している。有益な情報が多数含まれているが、ちょっとPythonを試してみたいという程度の人には、これだと敷居が高すぎるように思う。 Pythonに限らないが、あたらしい言語をはじめるとき、もっとも障害になるのは「環境構築」だろう。Pythonの場合、LinuxMacであれば、Pythonインタプリタは最初から入っているので、Pythonそのものをインストールする必要はない。しかし、「そのあとどうするのか?」というのが、なかなかむずかしい。例えば、「Hello, World!」を出すWebアプリを書くには、そこからどうすればいいのか。なんらかのWebフレームワークを使

  • NoSQLの現状

    このため、NoSQLの知識を持つ開発者やアーキテクトに対する需要が高まってきています。最近の調査によると、最近必要とされる開発スキルは次の通りです。 HTML5 MongoDB iOS Android Mobileアプリ Puppet Hadoop jQuery PaaS ソーシャルメディア 技術的要求のトップ10の中で、NoSQLデータベースは2つあります。1つは、iOSよりも上です。これがNoSQLをほめているのでなかったら、何なのでしょう?! しかし、一見したところ、NoSQLはますます速く深いところまで適用されるようになっています。2011年の夏に、有名な報告書の中でOracleは次のように述べました。NoSQL DBがアイスクリームの味のように感じるかもしれないけれど、あまり深入りしない方がいい、NoSQLはそれほど長く残らないかもしれないから。そのわずか2、3ヶ月後、Oracl

    NoSQLの現状
  • Ruby on Railsのfind_by_*メソッドにSQLインジェクション脆弱性(CVE-2012-5664) | 徳丸浩の日記

    Ruby on Rails(3.2.9, 3.1.8, 3.0.17以前)のfind_by_*メソッドにSQLインジェクション脆弱性が見つかりました(CVE-2012-5664)。このエントリではその概要と対策について説明します。 概要 Ruby on Railsのfind_by_*メソッドの引数としてハッシュを指定することで、任意のSELECT文を実行できる脆弱性があります。 検証 Ruby on Rails3.2.9の環境を用意して、以下の2つのモデルを用意しました。 $ rails g scaffold user name:string email:string $ rails g scaffold book author:string title:string モデルUserは個人情報を保持しており、自分自身の情報のみが閲覧できるという想定です。モデルBookは書誌データベースであ

    Ruby on Railsのfind_by_*メソッドにSQLインジェクション脆弱性(CVE-2012-5664) | 徳丸浩の日記
  • 遅延評価いうなキャンペーンとかどうか - ぐるぐる~

    遅延評価については以前も書いてるんですが、そのときは結論なしでした。 が、ちょっと考えるところがあって、言語を Java に絞って自分の考えを明確にしておきます。 結論から書きましょう。 「Java(とC#) で遅延評価って書いてあるものは遅延評価ではない」です。 Java における「評価」とは まず一番最初に、Java で「評価」って言うと、どういうことを指すのかを確認しておきます。 言語仕様の該当部分を要約すると、こんな感じでしょうか。 プログラム中の式を評価すると、結果は 変数 値 無し のうちのどれかとなる。 評価した結果が値になる、というのはいいでしょう。それ以外の 2 つを軽く説明します。 評価の結果が「変数」とは? コメント欄で指摘が入っています。 代入の結果は変数ではありません(15.26)。 結果が変数となるのは、ローカル変数、現在のオブジェクトやクラスの変数、フィールド

  • 関数型プログラミングってエクセル方眼紙だよね | システム設計日記

    業務アプリケーションの開発をしていると、エクセルで、ひとつのセルを全角一文字分の小さな正方形にした、いわゆる方眼紙スタイルで書かれたドキュメントにお世話になることがある。 エクセル方眼紙 第一のメリットは、どんな内容でも、縦や横をそろえて見た目をきれいにできること。 箇条書きをインデントして書くのも楽だし、ドキュメントの一部に小さな表とか画面イメージとか、罫線使って簡易な図形表現が手軽にできるのもメリット。 図の貼り付けの位置合わせとかも、他の部分ときっちりそろえることができて超便利。 日語の組版の基は「全角」「半角」に象徴される「等幅」の文字を並べること。 日語のドキュメントを作るときエクセル方眼紙は、理に適っている。 パソコン普及前は、薄い青線の入った方眼紙に文章と図を手書きしてコピーするのが当たり前だったらしい。 エクセル方眼紙は、この電子版というわけだ。 「エクセルの来の使

  • Androidでレガシーコードを書き続けないためのたった1つの方法 - ブログなんだよもん

    答え:テストできるように作る 周りでAndroid開発してる話を聞くのですが、どうもテストがしづらかったり、修正が大変だったりする模様。ここを直してあそこがバグるみたいな。 屋で参考になりそうなを探すも、入門系かリファレンス系が殆どで、「どういう設計にするべきか?」とか「Android Test」とかAndroid向けフレームワークの話がさっぱり無い。そんな状況なので、入門書片手にアプリを書き始めた人は、ViewとLogicを始め、色々なものが適切に分けられてないコードを作り、テストの無いレガシーコードが量産されていくのかな、と。 そういう分けで最初の結論になります。 ちょうど、ちょっとしたAndroidアプリを書いてみようと思ってたので、ここら辺を参考に実際のアプリに先立っていくつかのフレームワークを組み合わせたAndroid-Development-Suiteを作成。 いわゆるサン

    Androidでレガシーコードを書き続けないためのたった1つの方法 - ブログなんだよもん
  • DCI の話をした - 鳩舎

    超重要追記 まじで鳩さんのスライドでDCIについて理解したつもりになるの危険だからやめた方がいいです。せめて d.hatena.ne.jp/digitalsoul/20… を読みましょう。DCIはエンドユーザのメンタルモデルを実装に落とし込むための設計パラダイムです— Naoto Takai (@takai) December 27, 2012 とのことなので、このスライドを参考にするのはやめてください。 元記事 会社で DCI の話をしました。 資料はこちらです。 いろんな人から全然便利そうじゃないと評判でした。俺の伝え方が悪い……

    DCI の話をした - 鳩舎
  • 今年の冬休みに電子書籍であなたがRubyを習得しなければいけないたった一つの理由

    冬休みです。多忙なあなたがまとまった自由時間を取れる唯一のチャンスです。こんなときは、遊んではいけません。なぜならその消費方法があなたの未来を決定付けるからです。もちろん、家族や両親や犬の世話をしてもいけません。寝正月などもっての外です。それはあなたの未来のための時間なのです。 そう、この時間を使ってあなたは学習するのです。 今年の冬こそはプログラミング言語を習得するのです。なぜならプログラミング言語を習得すれば、お見合いのときに「LispとRubyを少々」という相手に対して臆することなく「ほほぅでは関数型にも興味をお持ちかな?」などと返すことができるのです。 プログラミング言語といったら「Ruby」です。なぜならそれは日人が作った言語だからです。国語の勉強をせずにいきなり外国語を学ぶ人はいません。事情はプログラミング言語の世界でも同じです。ですからまずは国産言語「Ruby」を学ぶべきな

  • 構造化『並列』プログラミング - どらの日記

    構造化プログラミング。 といえば、順次、分岐、ループのパターンからなる、シリアルプログラミングにおける基スタイルですね。(これらだけしか使わなくてもシリアルプログラムは書けますっていうね) C++にはあらかじめこれらのパターンを簡単に使えるようにシンタックスが用意されています。 分岐はifやswitch、ループはwhile、for、doといったかんじで。 もちろんこれらのパターンは並列プログラミングでも使えます。 しかし並列プログラミングにおいては、これらのパターンだけで実装を行うことはほぼ不可能です。 そこで、並列プログラミングにおけるパターンとなる構造が考えられてきました。 これらを使うことで、よりパワフルかつ簡潔に並列プログラムのコードを書けるようになります。 1.マップ もっとも基的な並列パターンです。 まず、コードを見てください。 template <class T> voi

    構造化『並列』プログラミング - どらの日記
  • Android 開発者必須!SupportPackage で SDK バージョン間の実装の違いを解消しよう | DevelopersIO

    SupportPackage とは? SupportPackage は Android 4.0 から導入された、 SDK バージョン (APIレベル) 間の実装の違いを解消するために提供されたサポートライブラリです。 Android 4.0 で多くの機能が追加され、また実装方法もより効率的に、よりシンプルになりました。Android 4.0 用のアプリを開発するときは問題ないのですが、それ以前の SDK バージョンに対応しようとする場合、クラスが参照できなかったり、改善される前の方法でしか実装できなかったりします。 分かりやすい例として Fragment が挙げられます。 Fragment は Activity 内で UI や振る舞いを分割するときに便利な、 Android 3.0 で初めて導入されたコンポーネントです。標準では Android 3.0 以降の SDK でしか使うことができ

    Android 開発者必須!SupportPackage で SDK バージョン間の実装の違いを解消しよう | DevelopersIO