タグ

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

タグの絞り込みを解除

Programmingとprogrammingに関するdecoy2004のブックマーク (905)

  • より良いプログラムを書くための究極の奇策 – 「Data first, not code first」 | POSTD

    (訳注:2015/10/31、いただいた翻訳フィードバックを元に記事を修正いたしました。) 開発者は嫌うでしょう。 ここでは、標準的なコツや策略について書きますが、当に興味があるのは、別のことです。究極の奇策を見つけたいと思います。策略をひとつずつ試して、プログラミングの聖域に少しでも近づければ良いのですが。 はじめに 私が初めて書いたビデオゲームは、 Ninja Wars (忍者戦争)でした。 そう、これは、画像で埋めたHTMLのtableです。 src 属性を変えることで、動きを実現しています。JavaScriptファイルの冒頭は下記のようになっています。 var x = 314; var y = 8; var prevy= 1; var prevx= 1; var prevsw= 0; var row= 304; var endrow= 142; var sword= 296; v

    より良いプログラムを書くための究極の奇策 – 「Data first, not code first」 | POSTD
    decoy2004
    decoy2004 2015/10/27
    『データをプロセスから切り離せば、がぜん分かりやすくなります。』 これってジャクソン法のころから言われているのでは?
  • Windowsで無料で使える日本語対応プログラミングフォントまとめ

    プログラムをするときにフォントって結構大事だと思います。 最近プログラム用のエディターに良いフォントを設定したところ、多少なりとも作業効率も上がり、気持ちよくコーディングできるようになった気がします。 僕はWindowsとSublime Textを利用しているのですが、「Windowsで手軽に使える無料のプログラミングフォントはどれだけあるのかな?」と思ったので、調べたものをまとめてみました。

    Windowsで無料で使える日本語対応プログラミングフォントまとめ
  • Gitのコミットメッセージの書き方 | POSTD

    (訳注:2015/10/31、いただいた翻訳フィードバックを元に記事を修正いたしました。) (訳注:2015/11/1、いただいた翻訳フィードバックを元に記事を再修正いたしました。) 訳: プロジェクトが長引くほど、私のGitのコミットメッセージは情報が薄くなっていく。 イントロダクション | 7つのルール | ヒント イントロダクション:なぜ良いコミットメッセージを書くことが重要か Gitのリボジトリのログをランダムに閲覧すると、ひどいコミットメッセージを目にすることがあります。例として、私が昔書いたSpringにコミットした これらのgem を見てみましょう。 $ git log --oneline -5 --author cbeams --before "Fri Mar 26 2009" e5f4b49 Re-adding ConfigurationPostProcessorTest

    Gitのコミットメッセージの書き方 | POSTD
  • 組み合わせテストを科学的に効率化する――手法とツール、品質保証のための道具

    組み合わせテストを科学的に効率化する――手法とツール、品質保証のための道具:現場で使うためのオールペア法、直交表の基(2)(1/3 ページ) あらゆる条件を網羅したテストを実行することは現実的ではありません。しかし、職人技と勘、あるいは闇雲にテストツールに頼っても、科学的に品質を保証できません。最小のコストで品質を保証するための手法と、その考え方、制約がどのようなものかをじっくり見ていきましょう。 連載バックナンバー 前回はソフトウエアテストの問題点とテストの基的な考え方やその手法を紹介し、その中で「デシジョンテーブル」を例に挙げました。今回はデシジョンテーブルなどの「組み合わせテスト」を効率的に実施するための手法として、「オールペア法」や「直交表」の考え方を見ていきましょう。考え方や用語がやや難解に見えるかもしれませんが、テストケース自体はツールが生成してくれます。ツールを適切に使う

    組み合わせテストを科学的に効率化する――手法とツール、品質保証のための道具
  • ~ RESTX, the lightweight Java REST framework

    the lightweight, modular, feature rich, blazing fast, open source Java REST framework a simple resource definition import myapp.domain.Message; @Component @RestxResource public class HelloResource { @GET("/message") public Message sayHello(String who) { return new Message().setMessage(String.format( "hello %s, it's %s", who, DateTime.now().toString("HH:mm:ss"))); } } a RESTX spec title: should say

  • Javaのログ出力: 道具と考え方

    Concepts and tools of logging in Java. Javaにおけるログ出力の考え方と道具について説明. CC Attribution Licenseの元に公開します.

    Javaのログ出力: 道具と考え方
  • AngularJSのDirectiveを理解する. - Qiita

    はじめに ディレクティブは、AngularJSにおいて、ViewとModelの双方向バインドを実現するための根幹的な仕組みである。 ディレクティブは、開発者から見ると、Templateの要素・属性として現れる。 例えば、テキストボックスの入力値とscope.nameを紐付ける場合、Angularではhtmlに下記を記述するだけで、ユーザの入力値がscopeへ即時反映される。 上記コードの"ng-model"はAngularにデフォルトで組み込まれたディレクティブである。 もちろん、htmlの文法上は、ng-modelという名称の属性はinputタグには存在しない。Angularが独自にng-model属性を解釈して、双方向バインディングの機能を実現しているのである(Angularでは、これを「html文法の拡張」と呼んでいる)。 ディレクティブには、ng-repeatや{{...}}等、様

    AngularJSのDirectiveを理解する. - Qiita
  • JSONで疲弊したら試したい、アプリのデータをSQLiteで受け渡すという選択肢 - アニマネ開発日誌

    アニマネの内部ではアプリとサーバー間でどのようにデータを受け渡ししているかという話をしてみます。 一般的にアプリとサーバー間のデータの受け渡しだとJSONやXML、YAMLなどが多いと思います。 ここにSQLiteという選択肢を入れると色々幸せになれるという話です。 もはや何で今までJSONという固定観念が捨てられなかったのかというぐらい、個人的にはコロンブスの卵でした。 あまり事例はなさそうなので、ここで紹介してみます。 アニマネでの問題点 アニメアプリのアニマネでは主にアニメの番組表やニュースをサーバーから受け取って表示しています。 都道府県にもよりますが、一つの都道府県の1週間分の番組表(アニメだけ)をJSONにすると大体750KBぐらいになるんですね。 これを開発初期ではMessagePackに置き換えてました。 話の筋とは関係ないですが、JSONよりはMessagePackの方

    JSONで疲弊したら試したい、アプリのデータをSQLiteで受け渡すという選択肢 - アニマネ開発日誌
    decoy2004
    decoy2004 2015/10/13
    バージョン互換を維持できるなら、 Json に固執しなくてもいい。
  • Java スレッドダンプとの戯れ方 - A Memorandum

    プロセスIDの取得 スレッドダンプの取得 Windowsでプロセスをサービス起動している場合 スレッドダンプを読む プロセスIDの取得 まずは Java のプロセスIDを取得するところから始める。jps で取得できる。 $ <JAVA_HOME>/bin/jps -l 主要なオプションは以下の通り(SunVM)。 オプション 説明 -m main メソッドに渡される引数を出力 -l アプリケーションの主要なクラスのフルパッケージ名、またはアプリケーションの JAR ファイルへのフルパス名を出力 -v JVM に渡される引数を出力 JDK7 からは JRockit と統合されたため jcmd が使えるので以下でもプロセスIDを取得できる。 $ <JAVA_HOME>/bin/jcmd または、単に ps コマンドで取得するでもよい。 $ ps -ef | grep -v 'grep' | g

    Java スレッドダンプとの戯れ方 - A Memorandum
  • Checker FrameworkによるJavaのNullnessの静的解析 - Qiita

    Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article?

    Checker FrameworkによるJavaのNullnessの静的解析 - Qiita
  • JavaScriptのコメントは不要か? | POSTD

    コード中にコメントを書くべきでしょうか? 是が非でも避けるべきでしょうか? それとも控えめに書けばいいでしょうか? 開発者たちはそれぞれ、ソフトウェアを開発する際にどのように、そしてどんな時にコメントを書くかについて、独自の考え方を持っています。この記事では私の意見を述べますが、これが誰にも当てはまるというわけではありません。 なお、関数型プログラミングまたはオブジェクト指向プログラミングの原則に則ってJavaScriptで書かれたソフトウェアに絞った上で、私の意見を述べることにします。 コメントと保守性 この記事では、保守性のあるコードを書く場合について考えます。つまり、以下のようなコードです。 簡単に理解できる 簡単に拡張できる 簡単にデバッグできる 簡単にテストできる 保守性のあるコードには、大量のコメントが必要でしょうか? 明確に書かれたコードであるならば、大量のコメントは不要だと

    JavaScriptのコメントは不要か? | POSTD
  • 今夜わかる「スタック・オーバーフロー」の世界 - give IT a try

    はじめに プログラミングをやっている人であれば、スタック・オーバーフロー(Stack Overflow)を知らない人はいないと思います。 エラーメッセージをコピペしてググるとトップによく出てくる、このページのことです↓ Stack Overflow - Where Developers Learn, Share, & Build Careers また、ご存知の方も多いかもしれませんが、去年の12月からは日語版サイトも登場していて、現在は日語で質問と回答が投稿できるようになっています。 スタック・オーバーフロー とはいえ、ネットで見つけて回答を読むことはあっても、自分から質問したり回答したりする人はまだまだ少数派のような気がしています。 そこで、今回のエントリでは日語版サイトをメインターゲットにして、スタック・オーバーフローの使い方をまとめてみようと思います。 注:このエントリでは関数

    今夜わかる「スタック・オーバーフロー」の世界 - give IT a try
  • さよなら CoffeeScript - mizchi's blog

    prototype.js が jQuery に置き換えられた時、開発者が気づいたのは、自分に当に必要だったのはprototypeのメソッド拡張などではなく、クエリエンジンだったということ。 coffeescriptが当初、熱狂的に支持された背景はなんだっただろう。今思えば、それはアロー記法とクラス構文だったと思う。 javascriptの関数型への憧れ、prototypeベースの限界 javascript は断じて関数型言語ではないが、他の言語と同じぐらい関数型言語に憧れていたのも、また事実だろう。しかしビルトイン関数が高階関数を要求するデザインにしては function というキーワードはながすぎたし、その function が暗黙に作り出す this スコープの複雑な振る舞いも開発者の悩みの種だった。「あらゆる関数スコープで状態を持つことが"できすぎる"」という割れ窓だった。 ES5

    さよなら CoffeeScript - mizchi's blog
  • GitHub : ノマドなエンジニア達とRubyをスケールさせる | Yakst

    GitHub技術ディレクターが語る、GitHubのインフラの特徴と、社員の6割がリモート勤務という社風、Hubotを使った協力的かつ新しい働き方。 Sam Lambertは、2013年にGitHubの最初のデータベース管理者として入社し、現在はGitHub技術ディレクターを務めています。このインタビューで彼は、今や1000万以上のユーザと2500万以上のプロジェクトを誇るサービスが、比較的シンプルな技術的スタックの上でどのようにスケールし続けてきたのかを考察しています。また、自作のパワフルなチャットボットであるHubotを使ってコラボレーションしつつ、従業員の約6割がリモートで働いているという、GitHubの大規模なオフィスレスな仕事環境についても触れています。 SCALE: 私としては、GitHubテクノロジーのユーザーというよりは主にテクノロジーの提供者であると思っていますが、そ

    GitHub : ノマドなエンジニア達とRubyをスケールさせる | Yakst
    decoy2004
    decoy2004 2015/10/02
    『Hubotを通じてステータスページや更新ページにツイートすれば、書き込もうとしたものを誰かがダブルチェックしてくれます。』
  • Pythonや機械学習、そして言語の競争について – 極めて主観的な見地から | POSTD

    (訳注:2016/1/5、いただいた翻訳フィードバックを元に記事を修正いたしました。) よくある主観的で痛烈な意見を題名に付けたクリックベイト(クリック誘導)記事だろうと思われた方、そのとおりです。以前指導してくれた教授から教わったある洞察/処世術は、些細でありながら私の人生を変えるマントラとなったのですが、私がこの記事を書いたのはそれによるものです。「同じタスクを3回以上繰り返す必要があるなら、スクリプトを書いて自動化せよ」 そろそろ、このブログはなんだろうと思い始めているのではないでしょうか。半年振りに記事を書いたのですから。ツイッターで書いた Musings on social network platforms(ソーシャル・ネットワークプラットフォームについてじっくり考える) はさておき、この半年の間書き物をしていないというのはうそです。正確には、400ページの を書きました。

    Pythonや機械学習、そして言語の競争について – 極めて主観的な見地から | POSTD
  • npm とか bower とか一体何なんだよ!Javascript 界隈の文脈を理解しよう - Qiita

    背景 Javascript で Web アプリを作ろうとすると、よくわからないことだらけで超混乱します。 npm と bower の違いは? npm はサーバーサイド用、bower はクライアントサイド用らしいよ えっ、でもなんで bower のインストールに npm が必要なの? サーバーサイドは Rails で書きたいから npm 要らないと思うんだけど・・・ ていうかサーバーサイドJSとか node.js って何? よく見る browserify って何? こういった疑問が沸き上がるのは、各ツールが生まれた文脈がよくわかっていないからです。いろいろ調べてやっとちょっとわかってきたのでメモします。間違いがあったらご指摘ください。 「CommonJS」誕生 - Javascript は汎用プログラミング言語へ その昔、Javascript 大好きおじさんは言いました。 Javascrip

    npm とか bower とか一体何なんだよ!Javascript 界隈の文脈を理解しよう - Qiita
  • 障害の事後分析を読んで得た教訓 ― 「何がシステムを停止させるのか?」 | POSTD

    私はポストモーテム(事後分析)の記録を読むのが大好きです。ポストモーテムを読むと勉強になりますが、大抵の教材的資料とは違って、興味深いストーリーが含まれているのです。相当な時間をかけてGoogleMicrosoftのポストモーテムを読みました。大きな障害を招く最大の原因について、私は(まだ)きちんと分析していませんが、何度も繰り返し目にするポストモーテムのパターンがいくつかあります。 エラーハンドリング 適切なエラーハンドリングのコードを書くのは難しいものです。エラーハンドリングのコードに含まれるバグは、 大きな 問題を引き起こす主な原因となっています。つまり、エラーによってバグのあるエラーハンドリングのコードが実行されるということは、単に個々のエラーが重なるだけという事態にはとどまらないのです。障害が重なって重大なシステム停止につながることはよくあります。それはある意味明らかなことで、

    障害の事後分析を読んで得た教訓 ― 「何がシステムを停止させるのか?」 | POSTD
  • JMeterのメモ - Qiita

    この記事のJMeterは ver 2.12。 テストを一件ずつ実行する 1つのJMeterスクリプトファイルにスレッドグループを複数個並べると、JMeterは2,3個のスレッドグループを並行して実行する。このとき、例えば、ログイン/ログアウトの評価やコンテンツの参照/削除が同時に走ってしまうと情報に不整合が生じ、テストが失敗することがある。 そこで、「テスト計画」の「各スレッドグループを別々に実行」にチェックを入れると、スレッドグループを1個ずつ順番に実行してくれるようになる。 エラーを期待するテスト JMeterのステップは標準では4xxや5xxのレスポンスコードをエラー(レッド)として扱う。しかし、正常系評価ではなく異常系の評価をしたい場合、4xxのレスポンスでグリーンになって欲しいにも関わらずレッドとして表示されてしまい評価結果が見づらくなることがある。そこで4xxや5xx系レスポン

    JMeterのメモ - Qiita
  • やり直しC言語:複雑な宣言の読み方

    C言語は宣言文が非常に読みにくいことで有名で、後発のGo言語はこれを批判して宣言の構文を変えています。私もずっと読むのが苦手だったのですが、私の頭が悪いのではなく、C言語の仕様がヘン、ということらしい。 今まで飽きるほどこの手の解説は書かれてきてるわけですが、自分なりにまとめないと覚えた気がしないので、あえてまとめておきます。ここに書いてある内容は、「C言語ポインタ完全制覇」に詳しく書いてあります。 型の派生 C言語では、int, char, floatなどの基型から、配列やポインタを派生していくことができます。対象を並べたものが配列で、対象を指し示すのがポインタです。 配列やポインタからも配列やポインタを派生できるので、派生パターンは無限に存在します。 int int の配列 int の配列 の配列 ... int へのポインタ int へのポインタ へのポインタ ... int への

    やり直しC言語:複雑な宣言の読み方
  • 20億行のコードを保存し、毎日4万5000回のコミットを発行しているGoogleが、単一のリポジトリで全社のソースコードを管理している理由

    20億行のコードを保存し、毎日4万5000回のコミットを発行しているGoogleが、単一のリポジトリで全社のソースコードを管理している理由 Googleは検索サービスやGoogle Apps、Google Cloud Platformなど巨大なサービスを多数運営しています。その同社は、20億行にもおよぶソースコードの管理をサービスやプロジェクトごとに分けず、すべて単一のリポジトリで管理しているそうです。 先週9月14日にサンノゼで開催されたイベント「@Scale」で、Googleによるセッション「The Motivation for a Monolithic Codebase: Why Google Stores Billions of Lines of Code in a Single Repsitory」(単一コードベースへの取り組み:なぜGoogleは単一リポジトリに数十億行ものコー

    20億行のコードを保存し、毎日4万5000回のコミットを発行しているGoogleが、単一のリポジトリで全社のソースコードを管理している理由