タグ

ブックマーク / qiita.com (418)

  • オブジェクト指向と10年戦ってわかったこと - Qiita

    この記事の内容 オブジェクト指向は難しい!わかった気になって実践すると詰みます... ウギャー この記事は10年以上オブジェクト指向と戦った筆者が、通常とは異なるアプローチでオブジェクト指向を解説したものです。 筆者はJavaを使って格的なシステム開発をしたことがありませんが、オブジェクト指向言語として最もポピュラーなJavaをベースにオブジェクト指向について解説させていただきました。 また、この記事の続編にあたります「なぜオブジェクト指向は難しいのか」を更に2年の時を経て執筆させて頂きました!是非こちらも一読していただけると嬉しいです。 オブジェクト指向三大要素の謎 オブジェクト指向三大要素ってありますよね。オブジェクト指向は「カプセル化」「継承」「ポリモーフィズム」の3つの要素で成り立つと言われています。最近では、この三大要素が語られる傾向は薄いようですが、一度は耳にしたことがある

    オブジェクト指向と10年戦ってわかったこと - Qiita
  • React + Redux + TypeScriptの最小構成 - Qiita

    ※更新履歴 webpack2-rc & TS2.1 & @types対応 webpack2 & TS2.3 対応 React16-beta & TS2.4 対応 こちらの記事の続編です。 http://qiita.com/uryyyyyyy/items/63969d6ed9341affdffb 問題提起 今時、型のない言語とか使いたくないですよね!(2回目) ReactといえばRedux(flux実装の実質デファクト)。 ということでTypeScriptでReduxのサンプルを作ってみます。 (reduxのおよその仕組みは他の記事を読んでください。) 環境 NodeJS 8.2 React 16.0-beta TypeScript 2.4 $ tree . . ├── index.html ├── package.json ├── src │   ├── counter │   │   ├

    React + Redux + TypeScriptの最小構成 - Qiita
  • 音楽系APIの一覧 - Qiita

    World Wide Echo Nest http://developer.echonest.com/ Gracenote https://developer.gracenote.com/ja/web-api YouTube https://developers.google.com/youtube/js_api_reference SoundCloud https://developers.soundcloud.com/docs Last.fm http://www.lastfm.jp/api Rdio Can't access the dev page from Japan http://www.rdio.com/developers/ iTunes Search API http://www.apple.com/itunes/affiliates/resources/document

    音楽系APIの一覧 - Qiita
  • 【翻訳】「Front-end Developer Handbook 2017」 2016年のまとめと2017年の予測 - Qiita

    会社のWebフロントエンドチームによる活動で、Cody Lindleyのfront-end-handbook-2017 を読んで2017年のWebフロントエンド開発のトレンドをつかむことにしました。多少のバイアスはあると思うものの全体感を得るにはちょうど良さそうと思います。2016年のまとめと2017年の予測が面白いのでここだけ翻訳しました。原文には至る所にリンクが貼られておりリンク先も面白いので原文もオススメします。誤訳があったらご指摘ください。 UIコンポーネントやUIコンポーネントツリーの一年だった。 1ファイルにHTMLCSS、JSを詰め込むのは、もはや神への冒涜ではなくなった。 React, Redux, Webpack, ECMAScript 2015 (またはES6), Babelが非常によく使われるようになった。投票の結果、これらのソリューションが最も使われる技術のトップ

    【翻訳】「Front-end Developer Handbook 2017」 2016年のまとめと2017年の予測 - Qiita
  • OAuth 2.0 + OpenID Connect のフルスクラッチ実装者が知見を語る

    はじめに この文書では、OAuth 2.0 + OpenID Connect サーバーをゼロから一人で実装した開発者(私)が、得られた知見について書いていきます。基的には「実装時に考慮すべき点」を延々と述べることになります。 そのため、この文書は、「素早く OAuth 2.0 + OpenID Connect サーバーを立てる方法」を探している方が読む類のものではありません。そのような情報をお求めの方は、「Authlete を使って超高速で OAuth 2.0 & Web API サーバーを立てる」を参照してください。そちらには、「何もない状態から認可サーバーとリソースサーバーを立て、アクセストークンの発行を受けて Web API をたたいて結果を得る」という作業を、所要時間 5 ~ 10 分でおこなう方法が紹介されています。 文書のバイアスについて 私は、OAuth 2.0 + Ope

    OAuth 2.0 + OpenID Connect のフルスクラッチ実装者が知見を語る
  • Scala選定の理由と移行の方針 - Qiita

    発端は(べられる方の)カリーうどん 弊社では、クラウド会計のA-SaaSがシリーズCで3億円を調達、システム刷新へという記事にもあるように、Javaで書かれているサーバーサイドのアプリケーションを、Scalaに移行していくことにしています。アドベントカレンダーの最後のエントリーでは、Scalaに決めた経緯というか、背景を述べて行こうと思います 今から約1年前の2016年の初頭、とある同じ会計関連ベンチャーのCTOが弊社オフィスのある白金高輪にランチに来てくれました。白金高輪は、他のオフィス地域、たとえば渋谷や新宿と比べて、ほんとにfuckなレベルで選択肢が少なく、特にランチ時間に人とゆっくり会える場所は、数えるほどしかありません。その一つが、[べられる方の]カリー[/べられる方の]うどんの美味しいおしゃれな群馬県料理の店なので、そこに行ったのでした。 当時、私は弊社の主要言語であるJ

    Scala選定の理由と移行の方針 - Qiita
  • Vue.js を vue-cli を使ってシンプルにはじめてみる - Qiita

    Vue.js を vue-cli でシンプルに過不足なくスタートする はじめに 可能なかぎり、この通りやればできるようにシンプルで過不足なくコマンドをまとめていきます。 (2019.02) Vue CLI 3対応するためにほぼサンプルコードを一新しました。 Vue-cli 2.x版が必要なかたはこちらにバックアップしておいたのでご参照ください。 vue-cli のインストール Vue.jsを使う環境を準備するためのコマンドラインインタフェースをインストールします。

    Vue.js を vue-cli を使ってシンプルにはじめてみる - Qiita
  • フロントエンド知らない私のwebpack入門 その1 - Qiita

    jQuery 1.7 あたりで知識が止まっている、最近のフロントエンド開発を知らない私が入門しています、という記事です。 なんか長くなったし、気力も持たないので、その1ということで書いています。 webpackってなあに? npm経由で入るアセットバンドラー (asset bundler)です。Webフロントエンド開発用のビルドツールです。 SPAなどを作る時、 HTML・JS・CSS・画像やウェブフォントなど一連のリソースをまとめてくっつけたり、 くっつけられるように加工したり、 JSをbabelで古いブラウザ向けに変換したり、 TypeScriptやらをJSに変換したり、 全部面倒見てくれます。 ただwebpackに上記の機能を全て内蔵しているわけもなく、プラグインやローダーとかいった追加の機能をプロジェクトにインストールして設定することにより利用できるようになります。 最近のフロント

    フロントエンド知らない私のwebpack入門 その1 - Qiita
  • 英語で自然言語処理するなら 〜Standford CoreNLP〜 - Qiita

    SmartNewsの中路です。こちらhttp://qiita.com/advent-calendar/2014/machinelearningの10日目のエントリーです。 はじめに Machine Learningの非常に重要な応用として、自然言語処理があります。弊社でも、いたるところで自然言語処理の技術を使っています。さて"自然言語処理を勉強したい"というのであれば、一からアルゴリズムを勉強して、学習データを準備して、という方法はとてもよいのですが、もし"アプリケーションを作りたいので気軽に試したい"というならば一から全部用意するのはめんどくさい。 ということで、簡単に試せるライブラリは当にありがたいわけです。 さて、弊社のサーバーサイドのシステムしかり、世の多くのシステムは、Javaで作られているわけですが、自然言語処理界隈ではC++pythonのツールがたくさんあって、「よし仕方

    英語で自然言語処理するなら 〜Standford CoreNLP〜 - Qiita
  • AWS LambdaをJavaから使ってみる - Qiita

    AWS LambdaRubyから使ってみる」のJava版です。 コードの部分がJavaに変わった以外に特に違いはありません。 なので、元記事も参照してもらえるといいかと思います。 AWS LambdaはS3やKinesis、DynamoDBのイベントをトリガーにJavaScript/Node.jsで書かれたコードスニペットを実行するというサービスです。 イベントの実行元として上記以外にAPIからの直接実行も可能となっているので今回はAWS SDK for Javaを利用してこれを試してみます。 Lambda functionは前回と同様のものを「invoke-from-sdk」という名前であらかじめ作成しておきます。実行される処理も前回と同様で渡されたパラメータ(JSON形式)のkey1というキーの値を読み取ってコンソールに出力します。 Java側のプロジェクトはMavenプロジェクト

    AWS LambdaをJavaから使ってみる - Qiita
  • webpackやGulpを使う時に覚えて幸せになったnpmの便利な使い方 - Qiita

    昨今のweb開発で必要なwebpackGulpといった技術は、Node.jsのパッケージ管理ツール「npm」を通して使われます。npmの機能は豊富で、覚えておくと便利な使い方がいくつもあります。とくにオススメのものをピックアップしました。 npm initには-yをつけると質問が表示されない npmのモジュールを用いたプロジェクトを作成する際、最初に使用するコマンドはnpm initです。実行すると、プロジェクト名や著作権の設定の質問が表示され、必要な項目を入力したり、Yes([Enter]キー)を入力する必要があります。 とくに設定が不要な場合、-yオプションを指定することで、質問を表示することなく初期化できます。 次に示すのは、npm initとnpm init -y実行後のコマンドラインの差です。npm initはnameやversionといった設定を対話形式で尋ねられますが、np

    webpackやGulpを使う時に覚えて幸せになったnpmの便利な使い方 - Qiita
  • ちょっといいJavaコードを書こう - Qiita

    一人でプログラムを書いてたりすると、環境によってはあまりコードの書き方には指摘を受けなくて困りますよね。プロになっても、曲がりなりにもちゃんと動くコードを書けてしまうとあまりに当たり前のことなんかは指摘されることも稀で、そのままある程度偉くなっちゃった日には、もはや自分で気付くしかなくなってしまいます。 FindBugsとか、Effective Javaなら使ったり読んでみたり読ませたりすることはできますが、それ以前のところって難しいんですよね。よいコードと言うよりそれが当たり前だと思われているので、指摘するにしても「こうすればいいよ」(アドバイス)じゃなくて「なんでこうしてないの?」(詰問)になってしまいがちです。 そこで、最近そういうJavaニュービーに指摘している(したい)ことの多い、Javaの基礎的な事柄をまとめてみました。ワタシJavaチョットデキルって人は、これ以外にもやりがち

    ちょっといいJavaコードを書こう - Qiita
  • TypeScript 2 のモダンな書き方 - Qiita

    はじめに 2016年11月に TypeScript 2.1 がリリースされ 、ES2016(ES7) と足並みを揃えつつより現代的なプログラミング言語の機能の大半が揃いました。Angular2 からの採択や TypeScript のネイティブ対応、 Visual Studio および Visual Studio Code の強力なコーディング支援によって、その存在感を増しつつあります。 この記事では TypeScript 2.1 で新たに導入された機能や TypeScript 1.8 頃から入っていった大きな変化をさらいつつ、実際のコードをどう書き換えればよいかを示していきます。 基的には TypeScript 1.5 から 1.7 くらいで止まっている人が対象ですが、Angular2 を機に入ってきたようなニュービーの方にも巷の古いサンプルコードを読み替える役に立つと思います。 #——

    TypeScript 2 のモダンな書き方 - Qiita
  • Vue.jsを使う際のベストプラクティスについて考える - Qiita

    Vue.jsは公式のドキュメントが非常に充実しており、またフォーラムでの議論やコミュニケーションもとても活発です。開発中に何か問題に遭遇した際には、ドキュメントやフォーラムに載っている情報を参照することで、多くの問題は解決できるといって差し支えないでしょう。しかしながら、現実世界のアプリケーションを開発していると、そういった情報だけでは解決が難しい個別具体的な問題や、そもそもどう実装すれば良いのかわからない、といった場面に遭遇することも多々あります。 筆者自身がVue.jsを利用してフロントエンド開発をしてきた経験に加え、Vue.jsの公式のドキュメントやサンプルプロジェクト、そしてVue.jsを利用しているOSSのプロジェクトVue.jsのプラグインなどのソースを読んで蓄えてきたノウハウを資料にまとめました。 「ベストプラクティス」と銘打ってはいるものの、筆者の好みや開発経験に依存す

    Vue.jsを使う際のベストプラクティスについて考える - Qiita
  • Vue.jsでVideoタグを扱う - Qiita

    気付けば単純なことだけど2日程思いつかなかったので書いておく。 なにがしたかったか Vueのメソッドの中で動画の再生制御 結論: カスタムディレクティブ使え Vue.directive('play',function (el, binding) { if(binding.value){ el.play(); }else{ el.pause(); } });

    Vue.jsでVideoタグを扱う - Qiita
  • AWSのIAMで支払い情報以外の権限をユーザーに付与する - Qiita

    AWSを運用する上で欠かせないのがユーザー管理ですよね。 特に自社案件以外の作業の場合は、新規にユーザーを作成し、必要な権限を付与する必要がありますが 「とりあえず、ユーザーに支払い情報以外を全て任せたい」 そんな時の手順をまとめておきます。 ※対象ユーザーは既に作成済みとします 【IAMを選択する】 【サイドメニューからポリシーを選び、ポリシーの作成へ】 【独自ポリシーを作成】 【ポリシー設定】 ・ポリシー名&説明:わかりやすい名称・説明を入れましょう 上記のSSでは「AllPermissionWithoutBilling」としています。 ・ポリシードキュメント:ここでポリシーの内容を定義します。 下記で設定すれば、支払い情報以外の権限を付与します。 ※IAMも利用可能の為、権限変更を許可しない場合は「NotAction」に「iam:""」を追記しましょう { "Version": "2

    AWSのIAMで支払い情報以外の権限をユーザーに付与する - Qiita
  • mockitoを使用したログメッセージの検証 - Qiita

    Mockito.reset(mockAppender); // Appenderの名前を設定 Mockito.when(mockAppender.getName()).thenReturn("MockAppender"); // Appenderとして利用できる準備ができていることを設定(下2行) Mockito.when(mockAppender.isStarted()).thenReturn(true); Mockito.when(mockAppender.isStopped()).thenReturn(false); // ROOTロガーを取り出し、Appenderの設定を行う。 LoggerContext ctx = (LoggerContext) LogManager.getContext(false); Configuration config = ctx.getConfigu

    mockitoを使用したログメッセージの検証 - Qiita
  • 行政サイトを作る時に気をつけておいた方がいい事 - Qiita

    県や市の公式ホームページ制作の経験から、気をつけておきたい点をメモに残しておきたいと思います。 納品前 納期が3月に集中する 行政サイトの場合、お金は年間予算や国からの特別補助金などから支払われます。つまり基的に年度を跨ぐことが出来ません。(保守にかかる費用は別です)その為、行政の案件に頼っている制作会社は納期が重なり3月が滅茶苦茶忙しくなります。 年度末は余裕を持ったスケジュールを組んでおきましょう。 見積もりは2割増しで ここで言う見積とは入札時の見積もりではありません。行政の案件をいくつかこなして担当者と仲良くなってくると、コンペの上限金額を決めるために事前に見積を頼まれる事があります。「もし○○みたいな案件だったらいくら位でできそう?期間と見積もり貰えると助かるんだけど。」みたいな感じです。サラリーマン金太郎の東北編で出てきたアレです。大事なのはここで割引など一切考えずに、むしろ

    行政サイトを作る時に気をつけておいた方がいい事 - Qiita
  • Javaで形態素解析と辞書のカスタマイズ - Qiita

    この記事で紹介すること この記事は次の2つのトピックについて記載しています。 Java形態素解析ライブラリKuromojiの使用方法 Kuromojiへのユーザ辞書の追加方法 Kuromojiはatilika社が開発し、Apache Software Foundationへ寄贈されているJava製の形態素解析ライブラリです。ライセンスは「Apache v2 License」となっています。形態素解析に必要な辞書をjarの中に格納しているため、ワンパッケージで形態素解析を行うことができます。また、用意されている辞書は以下のようなものがあります。 IPADIC (2.7.0-20070801) IPADIC NEologd (2.7.0-20070801-neologd-20151224) JUMANDIC (7.0-20130310) NAIST jdic (0.6.3b-20111013

    Javaで形態素解析と辞書のカスタマイズ - Qiita
  • (o1, o2) -> o1 - o2 なんて呪文はもうやめて! - Java8でのComparatorの使い方 - Qiita

    (o1, o2) -> o1 - o2 なんて呪文はもうやめて! - Java8でのComparatorの使い方Javajava8

    (o1, o2) -> o1 - o2 なんて呪文はもうやめて! - Java8でのComparatorの使い方 - Qiita