タグ

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

  • Uncle Bobが”プログラマの誓い”を提案

    Spring BootによるAPIバックエンド構築実践ガイド 第2版 何千人もの開発者が、InfoQのミニブック「Practical Guide to Building an API Back End with Spring Boot」から、Spring Bootを使ったREST API構築の基礎を学んだ。このでは、出版時に新しくリリースされたバージョンである Spring Boot 2 を使用している。しかし、Spring Boot3が最近リリースされ、重要な変...

    Uncle Bobが”プログラマの誓い”を提案
  • Google Chromeが採用した、擬似乱数生成アルゴリズム「xorshift」の数理

    2015年12月17日、Google ChromeJavaScript エンジン(処理系)である V8 の公式ブログにて、 JavaScript の標準的な乱数生成APIである Math.random() の背後で使われているアルゴリズムの変更がアナウンスされました。 Math.random() 関数は JavaScript を利用する際には比較的よく使われる関数ですので、親しみのある方も多いのではないかと思います。 新たなバグの発見や、従来より優秀なアルゴリズムの発見によってアルゴリズムが変更されること自体はそれほど珍しくはないものの、 技術的には枯れていると思われる Math.random() のような基的な処理の背後のアルゴリズムが変更されたことに驚きを感じる方も少なくないかと思いますが、 それ以上に注目すべきはその変更後のアルゴリズムです。 実際に採用されたアルゴリズムの原

    Google Chromeが採用した、擬似乱数生成アルゴリズム「xorshift」の数理
  • Joel on Software 日本語訳 まとめ - #tech

    2012年 Trelloは何が違うのか 2012/01/06 2010年 分散バージョン管理で間違いないって、ベイビー 2010/03/17 子犬だ! 2010/03/14 なぜテスターが必要なのか? 2010/01/26 2009年 プログラマのサーチエンジン 2009/12/02 自分の会社が何であるかを理解する 2009/11/01 ダクトテーププログラマ 2009/09/23 Clearの底知れぬ楽天主義 2009/06/26 プラットフォームベンダ 2009/06/10 2008年 「承諾期限付き内定」の季節 2008/11/26 躍進を続けるアーキテクチャ宇宙飛行士たち 2008/03/01 2007年 事例によるスケジューリング 2007/10/26 カリフォルニア 2007/10/05 FogBugz On Demand 2007/07/09 マネジメントの 2007/0

    Joel on Software 日本語訳 まとめ - #tech
  • Qiita Advent Calendar 2015ランキング結果を発表します - Qiita Blog

    エンジニアの風物詩ともなっている12月のAdvent Calendar。毎年多くのユーザーにご参加いただいていますが、今回からはカテゴリやタイトル検索、購読機能を儲けるなど、Advent Calendarを通じてさらに広く、そして深く技術を知ることができるような仕組みを提供しました。いかがだったでしょうか? ランキングについて今年から提供した機能の1つに、ランキングがあります。今どんな技術が注目されているか、どのコミュニティや企業が盛り上がっているかを可視化してみたらどうだろうという試みです。11/26にランキングを公開することを発表し、12/16からは実際にランキングをリアルタイムで公表しました。 ランキングは購読数によるものとストック数によるものの2種類を提供しました。なお、既報の通り、ストック数はQiitaで公開された記事のみを対象としています。また、集計期間は12/1から1/4まで

  • あきらめるにはまだ早い!ソースコードの品質向上に効果的なアプローチ - Qiita

    エンジニア組織を強くするためのを出版しました Qiitaでエンジニアリングをめぐる様々なコミュニケーションの問題とその解決策や考え方を書いてきた。それらの背後にあるエッセンスをこの度書籍として出版するに至りました。 エンジニアリング組織論への招待 ~不確実性に向き合う思考と組織のリファクタリング この書籍は、エンジニアリングを「不確実性を削減する」という第一原理で捉え直し、様々なエンジニアリングとその間のコミュニケーションをめぐる現象を説明していくものです。 はじめに この記事は数百万行の動的型付き言語のWebアプリケーションのリファクタリング、アプリケーションアーキテクチャの再設計の経験を基に、有効だと思われる考え方やアプローチを抜粋して紹介するものです。言うまでもなくあらゆるコードベース、アーキテクチャにおいて有効なものとは限りませんので、各々の環境や状況から適切に判断してください。

    あきらめるにはまだ早い!ソースコードの品質向上に効果的なアプローチ - Qiita
  • まとめ本 - Strategic Choice

    まとめ記事を書いたの一覧です。まとめ記事の内容も、簡単に説明しています。一覧出典まとめ記事オブジェクト指向設計原則パッケージ設計の原則オブジェクト指向を効果的に活用するための、クラス設計の原則についてまとめています。(SOLID原則) また、クラスレベルだけでなく、パッケージレベルの原則についてもまとめています。GRASPパターンオブジェクト指向設計の基は「適切なクラスに適切な責任を割り当てること」です。この指針である「GRASP」についてまとめています。構造化プログラミング構造化プログラミングのエッセンスについてまとめています。 パラダイムが異なっても(=オブジェクト指向でも)通用する・適用できる考え方です。 GoFのデザインパターンGoFのデザインパターンを全てまとめています。 各パターンのまとめ後、「なんでこんなことするのか?」「こうするとどういう効果がうまれるのか」を考察して

  • 間違ったコードは間違って見えるようにする - The Joel on Software Translation Project

    Joel Spolsky / 青木靖 訳 2005年5月11日 水曜 私が最初の当の仕事をはじめたのは1983年9月に遡る。それはオラニムというイスラエルの大きな製パン工場で、16台の飛行機ほどもある巨大なオーブンで、毎晩10万個のパンが作られていた。 はじめて工場に入った時、そのあまりの汚さに信じられない思いだった。オーブンの側面は黄ばんでいるし、機械は錆びていて、そこらじゅうが油だらけだった。 「いつもこんなに汚いの?」と私は聞いてみた。 「なんだって? なんの話をしてるんだ?」とマネージャが答えた。「掃除したばかりだから、今が一番きれいな状態なんだ」 なんてこった。 毎朝の工場の清掃を何ヶ月か続けて、ようやく彼らの言っていたことが理解できるようになった。パン工場では、きれいというのは機械にパン生地が付いてないことを言うのだ。きれいというのは、ゴミ箱に発酵したパン生地が入ってないこと

  • ドラゴンボールで学ぶオブジェクト指向 改 - 達人プログラマーを目指して

    ドラゴンボールといえば、大変に人気の高い国民的、いや世界的な漫画、アニメですが、昨日匿名ダイアリーでドラゴンボールをネタにしたオブジェクト指向の解説がホッテントリに入っていました。 ドラゴンボールで学ぶオブジェクト指向 多くの人に親しみやすい題材でオブジェクト指向の考え方を解説するというのは非常に興味深い試みなのですが、オブジェクト指向の説明としては不適切なところがあり、ちょっと残念な内容になっています。私自身ドラゴンボールの専門家(ドメインエキスパート)ではないため、不正確なところがあるかもしれませんが、ストーリーを思い出しながら、私なりにドラゴンボールをネタとしたオブジェクト指向の解説にリトライしてみたいと思います。 なお、オブジェクト指向でもプログラミング言語によって表現できる内容が異なるため、当然設計技法は違ってきます。ここではJavaC++、C#、Visual Basicといっ

    ドラゴンボールで学ぶオブジェクト指向 改 - 達人プログラマーを目指して
  • 20120706-readablecode

    6. ⾃⼰紹介訳書(1/2) Martin Fowler's Bliki (2003) ↓ 『アジャイルレトロスペクティブズ』 (2007) ↓ スクラムガイド (2010) ↓ 『メタプログラミングRuby』 (2010) ↓ 『ウェブオペレーション』 (2011) ↓ 『Facebookマーケティング』 (2011) ↓ 6/58 7. ⾃⼰紹介訳書(2/2) ↓ 『Clean Coder』 (2012) ↓ 『リーダブルコード』 (2012) ←【イマココ】 ↓ 『Service Design Patterns』 (2012) ↓ 『Seven Databases in Seven Weeks』 (2012) ↓ 『Running Lean』 (2012) ↓ 『...』(2012?) 7/58

    20120706-readablecode
  • コーディングガイドライン

    コーディング指針 基方針 こんなコードはよいコード 読みやすいことはよいことだ 見た目が単純だと読みやすい 皆がよく知っている構成は読みやすい (標準に従う。すでに知っているもの (Unix のコマンドとか) に従う。すでにあるものに従う) 書かないことはよいことだ 一画面で読める文字の量は一定 頭の中に同時にロードしてられるコードの量も一定 (せいぜい多くて数十行分程度) しつこい説明よりも、一つの決めごと 変数の意味は変数名が表現しています (だから、説明のためのコメントは付けません) プログラマは言語の基礎を知っています (だから、言語の標準機能・ライブラリ関数について逐一説明はしなくていいです) などなど タイプ量が少ないことはよいことだ タイプ量が少ないと単純に見えやすい 言語によらず、開発者が一定時間に打てるキーの上限はほぼ均一 つまり、タイプ量が少ないと時間あたりの開発量が

    コーディングガイドライン
  • デザイナに知っていて欲しい10個のAndroidのUIルール - ReDo

    iPhoneのそれと比較して、よくかっこわるいと評価されてしまうAndroidですが、正しくは「標準UI同士で比べた際にイケてない」のが真実だと思っています。 今現実として、Androidアプリにイケてないものが多いのですが、そもそもデザインを考慮するプロセスが省略されてしまっていたり、時間(コスト)が無いとかそういうこともあったと思いますが、流石にこれだけメジャーなデバイスになってしまうとそれが許される時代は終わってしまいました。 ドットコム全盛期の様なGeocities+IBMホームページビルダーのデザインがはるか昔にキャハハされた様に、もうそろそろ標準UIで未カスタマイズのAndroidアプリもキャハハされる時代です。 そんな中、効率よくかっこいいUIを構築するために頭の片隅で把握しておくとちょっと幸せになれる、独断と偏見で捻りあげた10個のAndroidUIルールを紹介します。

  • はてなグループの終了日を2020年1月31日(金)に決定しました - はてなの告知

    はてなグループの終了日を2020年1月31日(金)に決定しました 以下のエントリの通り、今年末を目処にはてなグループを終了予定である旨をお知らせしておりました。 2019年末を目処に、はてなグループの提供を終了する予定です - はてなグループ日記 このたび、正式に終了日を決定いたしましたので、以下の通りご確認ください。 終了日: 2020年1月31日(金) エクスポート希望申請期限:2020年1月31日(金) 終了日以降は、はてなグループの閲覧および投稿は行えません。日記のエクスポートが必要な方は以下の記事にしたがって手続きをしてください。 はてなグループに投稿された日記データのエクスポートについて - はてなグループ日記 ご利用のみなさまにはご迷惑をおかけいたしますが、どうぞよろしくお願いいたします。 2020-06-25 追記 はてなグループ日記のエクスポートデータは2020年2月28

    はてなグループの終了日を2020年1月31日(金)に決定しました - はてなの告知
  • IDEA * IDEA

    ドットインストール代表のライフハックブログ

    IDEA * IDEA
  • EfficientJavaScript - Dev.Opera - 効率的な JavaScript

    EfficientJavaScript - Dev.Opera - 効率的な JavaScript 目次 この文書について 効率的な JavaScript ECMAScript eval や Function のコンストラクタを使うのはやめよう eval を書き換えよう 関数を使いたいなら function を使おう with を使うのはやめよう 性能を決める関数で try-catch-finally を使うのはやめよう eval と with は隔離しよう グローバル変数を使うのはやめよう 暗黙のオブジェクト変換に気をつけよう 性能を決める関数で for-in を使うのはやめよう 文字列は累積スタイルで使おう プリミティブの操作は関数呼び出しより速い setTimeout() や setInterval() には文字列でなく関数を渡そう DOM 再描画と再フロー 再フローの回数をでき

  • アルゴリズムの紹介

    ここでは、プログラムなどでよく使用されるアルゴリズムについて紹介したいと思います。 元々は、自分の頭の中を整理することを目的にこのコーナーを開設してみたのですが、最近は継続させることを目的に新しいネタを探すようになってきました。まだまだ面白いテーマがいろいろと残っているので、気力の続く限りは更新していきたいと思います。 今までに紹介したテーマに関しても、新しい内容や変更したい箇所などがたくさんあるため、新規テーマと同時進行で修正作業も行なっています。 アルゴリズムのコーナーで紹介してきたサンプル・プログラムをいくつか公開しています。「ライン・ルーチン」「円弧描画」「ペイント・ルーチン」「グラフィック・パターンの処理」「多角形の塗りつぶし」を一つにまとめた GraphicLibrary と、「確率・統計」より「一般化線形モデル」までを一つにまとめた Statistics を現在は用意していま

  • FAQ形式によるJavaScriptの本質がわかる超入門 - 風と宇宙とプログラム

    はじめに JavaScriptは簡単な言語のようでいて、実は奥が深く、初心者にとってなかなかその質がわかりにくい言語です。ここでは、JavaScriptの言語的エッセンスを理解できるようなものをFAQ形式で書いてみました。ご意見や誤り等を指摘してもらえたら嬉しいです。 なお、JavaScriptの標準化であるECMAScriptは、今年末にEdition 5 がリリースされる予定です。このFAQは、現在のバージョンであるEdition 3をベースにしています。 ECMAScriptって何ですか? ECMAはEuropean Computer Manufacturer Association(欧州電子計算機工業会)の略で、標準化団体です。NetscapeのJavaScriptMicrosoftのJScriptをベースに、純粋なプログラム言語部分を抽出したものをECMAで標準化したスクリプ

    FAQ形式によるJavaScriptの本質がわかる超入門 - 風と宇宙とプログラム
  • vbUnit3 Basic + vbUnitFree でタダ(無料)でVB6ベースプロジェクトの自動単体テスト環境を構築してみる - 今日もスミマセン。

    VB6向けのテスティングフレームワークとしてvbUnit3というものがある。 ただ、コアのフレームワーク部分は無償だが*1、 IDEと協調してテストの実行等を行うためプラグインは"Professional版"として有償となっている。 残念。 と思ったら、 その有償の機能を独自に実装してvbUnitFreeというオープンソースとして公開してくれている人がいた。 そこで、vbUnit3(無償版) + vbUnitFree で単体テスト環境を構築してみた。 vbUnit3の導入 まず、単体テストフレームワークである vbUnit3 を導入する。 http://www.vbunit.com/Download.htm 上記サイトからダウンロード ダウンロード時の注意このとき、真っ先に目に入る"Downlonload Now"のリンクではなく、その下に記述されている以下の一文*2のhereのリンクから

    vbUnit3 Basic + vbUnitFree でタダ(無料)でVB6ベースプロジェクトの自動単体テスト環境を構築してみる - 今日もスミマセン。
  • データ & アナリティクス | アクセンチュア

    データ分析から導き出されたインサイト無しにAI人工知能)の活用は始まりません。私たちは、各業界知識とデータ・アナリティクス技術を駆使しデータドリブン経営を強力に支援します。 データ、アナリティクス、AIは企業にとって競合他社との差別化を図るかつてないほど大きな要因になっています。今日の経営幹部が効率を向上しながら新たな収益源を開拓し、新しいビジネスモデルをタイムリーに構築する方法を模索する中、価値を生み出し成長を続ける企業には「データ活用」という共通項があります。私たちは、無数のデータから企業にとって当に必要なデータを活用するための方法を知っています。 将来を見据えたオペレーション体制を備えている企業の半数以上(52%)は、すでにデータとアナリティクスを大規模に活用しています。データとAIに関する取り組みをビジネス戦略に沿って実施することで投資利益率を迅速に最大化し、最終的にはAIをビ

    データ & アナリティクス | アクセンチュア
  • 「レガシーコード改善ガイド」のススメ 第3回:既存のコードに極力手を加えずに機能を追加する

    CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

    「レガシーコード改善ガイド」のススメ 第3回:既存のコードに極力手を加えずに機能を追加する
  • De Bruijn sequence を列挙するコード - 当面C#と.NETな記録

    いろいろとコメントをいただいているうちに De Bruijn sequence がわかってきました。初めは数学的な背景には興味がなかったんだけど、De Bruijn sequence をすべて列挙する問題が最近遊んでいるデータマイニングの頻出集合を求める問題とそっくりなことに気づいて、ちょっと練習がてらコードを書いてみました。かのダイクストラもコード書いて遊んでみたんなら自分もちょっと遊んでみようかなと。求めてどうするかは知りませんw De Bruijn sequence の詳しい説明はこちら http://chessprogramming.wikispaces.com/De+Bruijn+sequence 深さ優先探索をする再帰によるバックトラックの簡単なコードです。De Bruijn sequence は爆発的な勢いで解の数が増えていくので小さい数字で動かしてみてください。解の数は |

    De Bruijn sequence を列挙するコード - 当面C#と.NETな記録