タグ

ブックマーク / atmarkit.itmedia.co.jp (34)

  • ダイソーが6年でIT内製化、マイクロサービス化、サーバレスに成功した理由

    大創産業は1972年、家庭用品を販売する商店として創業された。今やよく知られた『100円SHOPダイソー』を運営する事業者である。ダイソーの展開に着手したのは1987年。2019年には国内3367店舗を数え、海外ではアジア、北米を中心に28の国、地域で2175店舗を構えるほどのグローバル展開を果たしている。 キッチン用品や文具、衣服やコスメ品やガーデン用品など、幅広い商品展開もダイソーの魅力の一つだ。商品数は7万点を超え、売れ筋の電池は1秒間に5、ネクタイも15秒に1、“つけまつげ”は1.3秒に1つ売れる勢いとのことだ。 取り扱う商品が多く、また尋常ではない速度で売れていくことは、それだけデータ管理の難しさが増すということでもある。アイティメディアが2019年9月17日に開催した「ITmedia DX Summit 2019年秋・ITインフラ編」に登壇した大創産業 情報システム部

    ダイソーが6年でIT内製化、マイクロサービス化、サーバレスに成功した理由
  • React/Redux/Node.jsのSSR/SPAを速くする6つのチューニングポイント

    React/Redux/Node.jsのSSR/SPAを速くする6つのチューニングポイント:大規模ブログサイト表示速度改善 大解剖(終)(1/3 ページ) 2004年から続くブログサービス「アメブロ」が2016年9月にシステムをリニューアル。連載では、そこで取り入れた主要な技術や、その効果を紹介していく。今回は、React/Redux/Node.jsを使ったIsomorphic JavaScript特有のパフォーマンスチューニング手法や実際にあった問題および、その解決方法について。 2004年から続くブログサービスである「アメブロ」は、2016年9月にシステムをリニューアルしました。連載「大規模ブログサイト表示速度改善 大解剖」では、そこで取り入れた主要な技術や、その効果を紹介しています。 アメブロのリニューアルでは、React/Reduxを採用し、サーバサイドとフロントエンド両方での

    React/Redux/Node.jsのSSR/SPAを速くする6つのチューニングポイント
  • キャリア理論は役に立つ?

    連載は、さまざまなキャリア理論を紹介する。何のため? もちろんあなたのエンジニア人生を豊かにするために。キャリア理論には、現在のところすべての理論を統一するような大統一理論は存在しない。あなたに適した、納得できる理論を適用して、人生を設計してみようではないか。 皆さん、こんにちは。キャリア・アドバイザーの松尾順です。 今月から毎回、さまざまな「キャリア理論」についてできるだけ分かりやすく解説していきたいと思います。今回は第1回、総論的な話を書かせていただきます。 話の内容は大きくは2つ。1つは、「キャリアと何か」ということ。もう1つは、「キャリア理論とは何か」ということについてです。 題に入る前に、@IT自分戦略研究所でこれまでに掲載された記事をご紹介します。実は@IT自分戦略研究所には、キャリア理論に関連した記事があったのです。 例えば、堀内浩二氏の「自分戦略を考えるヒント」は、キャ

    キャリア理論は役に立つ?
  • 米NetflixがAWSへの移行を完了。7年かかった理由を説明

    NetflixAWSへの移行を完了。7年かかった理由を説明:サービスアップタイムは99.99%に近づく 米Netflixは2016年2月11日(米国時間)付けのブログポストで、同社の動画ストリーミングサービス関連システムのAmazon Web Services(AWS)への移行を、1月初めに完了したことを明らかにした。 米Netflixは2016年2月11日(米国時間)付けのブログポストで、同社の動画ストリーミングサービス関連システムのAmazon Web Services(AWS)への移行を、1月初めに完了したことを明らかにした。 ブログポストは、AWSへの移行が2008年に始まったと説明している。自社データセンターで運用していたリレーショナルデータベースの障害により、顧客へのDVDの発送が3日間にわたりストップしてしまったことがきっかけだった。それ以降、Netflixは同社の動画ス

    米NetflixがAWSへの移行を完了。7年かかった理由を説明
  • Visual Studio Codeの拡張機能を使ってみよう

    Visual Studio Codeの拡張機能を使ってみよう:特集:Visual Studio Code早分かりガイド(2/2 ページ) 拡張機能のインストール Go言語について Go言語はグーグルが開発しているプログラミング言語だ。VS Codeはデフォルトで、Go言語の構文ハイライト表示をサポートしているが、ここでインストールするGo言語用拡張機能(と追加のツール)をインストールすることで、それ以外にもコード補完、定義へ移動、参照の表示などの機能が利用できるようになる。Go言語用拡張機能単体では、使用できるのは構文のハイライト表示とスニペット程度のようなので、興味のある方はぜひともその他のツールも一緒にインストールしておこう。 なお、Go言語自体のインストールについてはここでは触れないこととする。Go言語のインストールと各種設定についてはGo言語の公式サイト以下にある[Getting

    Visual Studio Codeの拡張機能を使ってみよう
  • RailsのテンプレートエンジンSlimの書き方とActionViewのヘルパーメソッド、レイアウトの使い方

    前回の「Rails開発を面白くするアクションコントローラーの5大機能とルーティングの基」までの連載で、MVCアーキテクチャにおけるモデル(M)とコントローラー(C)について解説してきました。今回は最後の主要なコンポーネントのビュー(V)について解説します。 ビューはアプリケーションの出力テンプレートの機能を担っています。Web向けにはHTML形式、メール文向けにテキスト形式、アプリ向けにJSON形式など、Railsのビューはさまざまな形式の出力に対応できます。 稿では、まずテンプレートにデータを当てはめるテンプレートエンジンについて解説します。その後で定型的な出力を補助するヘルパーメソッドの紹介とオリジナルのヘルパーメソッドの作成方法について説明します。最後にビューの実装時に押さえておきたいポイントを紹介します。 説明に使用するサンプルプログラムはGitHubにある「book_lib

    RailsのテンプレートエンジンSlimの書き方とActionViewのヘルパーメソッド、レイアウトの使い方
  • 大量データをスムーズに処理 失敗しないバッチ処理のアーキテクチャ設計、5つのポイント

    バッチ処理とは 前回はWebアプリのアーキテクチャ設計の基礎を解説しました。今回はバッチ処理を円滑に行うためのアーキテクチャ設計のポイントを紹介します。 バッチ処理とは、蓄積された複数件のデータを、まとめて一括処理する処理形態のことを指します。このような処理形態においては、大量データの処理を一定時間以内に完了させるためのアーキテクチャを、さまざまな角度から検討していく必要があります。 また、画面オンライン処理とは異なり、ユーザーとの対話なく処理が進められます。よって、バッチ処理の途中でエラーが発生した場合の対応を考慮して、アーキテクチャを設計しなければなりません。バッチ処理の基についてより深く知りたい方は、下記参考記事をご参照ください。 参考リンク:鉄板焼のお店から学ぶ、バッチ処理"超"入門(@IT) バッチ処理におけるアーキテクチャ設計時の検討ポイント バッチ処理のアーキテクチャを考え

    大量データをスムーズに処理 失敗しないバッチ処理のアーキテクチャ設計、5つのポイント
  • Rails Hub : Ruby on Rails開発者のための技術情報フォーラム - @IT

    政府の新たな成長戦略の中で小学校の「プログラミング教育」を必修化し2020年度に開始することが発表され多くの議論を生んでいる。特集では、さまざまな有識者にその要点を聞いていく。今回は、プログラミングの考え方を身に付けられる絵『ルビィのぼうけん』に関するワークショップイベントの模様をお伝えする。(2016年8月10日)

  • グーグルのプログラミング言語「Dart」、ECMA標準に

    グーグルのプログラミング言語「Dart」、ECMA標準に:次はenumとdeferred loadingの正式サポートを 米グーグルはオープンソースのプログラミング言語「Dart」が国際標準化団体ECMAの正式仕様として承認されたことを発表した。 DartJavaと同じクラスベースのオブジェクト指向言語で、複雑なWebアプリケーションの開発に使われる。 Dartグーグルが2011年に発表。2013年12月には、ECMAによってDartの標準化を目指す技術委員会「TC52」が設置された。2014年6月25日に開かれたECMAの総会では、Dart 1.3をベースとする標準仕様「ECMA-408」の第1版が承認されている。 DartGoogle+に掲載された情報によると、ECMA TC52委員会はこのほど開いた第3回会合で、enum(列挙型)やdeferred loading、async(

    グーグルのプログラミング言語「Dart」、ECMA標準に
  • キュー構造をJavaで実装してジェネリック型を理解する

    キュー構造をJavaで実装してジェネリック型を理解する:【改訂版】Eclipseではじめるプログラミング(19)(1/3 ページ) これからプログラミングを学習したい方、Javaは難しそうでとっつきづらいという方のためのJavaプログラミング超入門連載です。最新のEclipse 3.4とJava 6を使い大幅に情報量を増やした、連載「Eclipseではじめるプログラミング」の改訂版となります 安全なままコレクションフレームワークを利用するために 今回は、「ジェネリックス(Generics)」について説明します。 Javaでは、すべてのクラスはjava.lang.Object型から派生しているので、どのオブジェクトもObject型として扱えば、ある処理をさまざまなデータ型に対して適用できます。 ただし、この場合は型について安全であることを保証するために、自分でチェックコードを記述したりキャス

    キュー構造をJavaで実装してジェネリック型を理解する
  • 強く型付けされているJavaの理解に必修の“型変換”

    強く型付けされているJavaの理解に必修の“型変換”:【改訂版】Eclipseではじめるプログラミング(18)(1/3 ページ) これからプログラミングを学習したい方、Javaは難しそうでとっつきづらいという方のためのJavaプログラミング超入門連載です。最新のEclipse 3.4とJava 6を使い大幅に情報量を増やした、連載「Eclipseではじめるプログラミング」の改訂版となります プログラマは特に知っておきたい型変換の常識 今回は、さまざまな「型変換」について説明します。また、型変換に関連する基データ型の「ラッパークラス」や文法事項についても解説します。型変換には「暗黙の変換」「明示的な変換」があるので、注意が必要です。 特に暗黙の変換について理解していないと、誤って自動変換された値を使ってしまい、プログラムの結果が思ったとおりにならず大変なことになってしまうことがあるからです

    強く型付けされているJavaの理解に必修の“型変換”
  • @IT:DNS Tips:digコマンドとは

    % dig @ns1.jprs.co.jp jprs.co.jp mx ; <<>> DiG 9.2.1 <<>> @ns1.jprs.co.jp jprs.co.jp mx ;; global options: printcmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 59551 ;; flags: qr aa rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 2, ADDITIONAL: 4 ;; QUESTION SECTION: ;jprs.co.jp.      IN     MX ;; ANSWER SECTION: jprs.co.jp.   86400 IN    MX     20 mx2.jprs.co.jp. jprs.co.jp.   86400

  • Playの充実したテスト環境で行う5種のテスト

    Playの充実したテスト環境で行う5種のテスト:Javaの常識を変えるPlay framework入門(6)(1/3 ページ) サーブレット/JSPを基にする重厚長大なJavaのWeb開発のイメージを変える軽量フレームワーク「Play」について解説し、Webアプリの作り方を紹介する入門連載。今回は、シンプルな単体テストに加え、ビューやコントローラ、routeファイルのテスト、ブラウザテスト、テスト用の環境設定について解説します。 前回「Playで体得するRESTfulアーキテクチャの基礎知識」までの連載で、Play frameworkのMVCモデルを解説し、簡単なアプリケーションを作ることができるようになりました。 今回は、作成したコードに対してテストを書いていきます。 連載第1回「Java開発で泣かないためのPlay frameworkの基礎知識」で述べたとおり、Play framew

    Playの充実したテスト環境で行う5種のテスト
  • テスト駆動開発/振る舞い駆動開発を始めるための基礎知識

    連載目次 2000年代初期に開発手法として確立された「テスト駆動開発」(Test Driven Development、以下「TDD」)は、その後10年もの間で普及が進み、今や珍しくない開発スタイルの1つとなっています。国内でも「アジャイルアカデミー」「TDD Boot Camp」などによる推進・普及活動が各地で活発化し、認知が広がってきました。 なおTDDは誕生からこれまでの間に、さまざまな工夫や実践上のノウハウが提唱されてきました。またTDDの普及に影響を受け、他のさまざまな「テストファースト」手法も台頭してきています。 稿では、そうしたTDDの発展や、振る舞い駆動開発(Behavior Driven Development、以下「BDD」)など他のテストファースト手法への展開についても解説します。 ※編集部注:ソフトウェアの「テスト」そのものの概要や種類について知りたい方は記事「J

    テスト駆動開発/振る舞い駆動開発を始めるための基礎知識
  • 簡単インストールから始める初心者のためのRuby on Railsチュートリアル

    Railsは、その名の通りプログラミング言語「Ruby」向けのWebアプリケーションフレームワークです。オープンソースで開発が続けられています。 よく見られるWebサービスは、データベースにデータを保存し、ブラウザーを使ってその入出力を行います。そのようなアプリケーションを作る場合、開発者はRailsを使うことで高い生産性を発揮することが可能です。 また、Railsはフルスタックなフレームワークなので、さまざまなタイプのアプリケーションを作ることができます。例えば、Androidアプリケーションに向けてJSONやXMLを出力するサーバーサイドに限ったアプリケーションを作ることもできます(参考「Androidアプリちょい足し開発レシピ(2):TwilioとRailsで作る、電話でテキスト読み上げアプリ」)。 近ごろはエンタープライズ領域での採用も多くなり、業務システムのクラウド化をRails

    簡単インストールから始める初心者のためのRuby on Railsチュートリアル
  • memcached+PostgreSQLで実現するハイパフォーマンスWebアプリケーション構築(1/4) ― @IT

    稿の前提環境 memcached 1.2.5 データベース:PostgreSQL 8.3.1 OS:CentOS 5(Linux kernel 2.6 ) シェル:bash CPU:Intel Core2Quad 9660 2.4GHz RAM:PC2-6400 8GBytes memcachedは、Danga Interactiveによって開発されたオープンソースのメモリキャッシュサーバです。 メモリ上にデータを保存するのでmemcachedを終了するとデータが失われますが、(OracleMySQLといった)RDBMSと比較するとけた違いの高速レスポンス性能を有し、数千万件という大量のデータを扱ってもほとんど性能が劣化しないという特徴があります。 機能は限界まで切り詰められ、基的にはキーとデータの組(以下、itemと呼びます)の保存と検索と削除しかできません。 にもかかわらず、me

    memcached+PostgreSQLで実現するハイパフォーマンスWebアプリケーション構築(1/4) ― @IT
  • Javaの例外処理で知らないと損する7つのテクニック

    Javaの例外処理で知らないと損する7つのテクニック:【改訂版】Eclipseではじめるプログラミング(24)(1/3 ページ) これからプログラミングを学習したい方、Javaは難しそうでとっつきづらいという方のためのJavaプログラミング超入門連載です。最新のEclipseとJava 6を使い大幅に情報量を増やした、連載「Eclipseではじめるプログラミング」の改訂版となります(この回と前回のみ、別連載「EclipseでJavaに強くなる」の改訂版です。今回は第4回Javaの例外のテクニックを知る」の改訂版です) 前回の「プログラマの宿命! 例外とエラー処理を理解する」では、Javaにおける例外の用途と基的なコードの書き方、例外が発生するさまざまなケースについて理解しました。 今回は、独自に例外を定義する方法や、ちょっとした例外のテクニックを紹介します。 【1】Eclipseで独自の

    Javaの例外処理で知らないと損する7つのテクニック
  • F#で初めての関数型プログラミング(1/3) - @IT

    ■F#とは F#は、マイクロソフト社製のプログラミング言語で、Visual Studio 2010から標準搭載されている。まずは、F#がどのような言語なのかを見てみよう。 ●マルチパラダイム言語「F#」 F#は複数のパラダイムをサポートするマルチパラダイム言語だ。F#がサポートするパラダイムには、 手続き型 関数型 オブジェクト指向プログラミング などがある。 マルチパラダイム言語であるため、C#やVB(Visual Basic)といった従来の.NET言語を置き換える形でF#を使うこともできる。しかし、記事ではF#のメインとなるパラダイムである「関数型」にフォーカスを当てて紹介していく。 ●関数型言語「F#」 F#は、静的型付けの関数型言語である「OCaml」に強い影響を受けている。そのため、F#の主となるパラダイムは関数型プログラミングになる。 さて、関数型言語とは何だろうか? この問

  • Scalaプログラミングで知っておきたい基本構文まとめ

    Scalaプログラミングで知っておきたい基構文まとめ:スケーラブルで関数型でオブジェクト指向なScala入門(2)(1/2 ページ) REPLを使ってScalaの文法を覚えよう 前回の連載第1回記事「EclipseでScalaプログラミングを始めるための基礎」では、Scalaの特徴についての解説から始まり、Scalaのインストール、そしてScalaプログラムを記述してREPLとScala IDE for Eclipse(以下、Scala IDE)での動作を確認してみました。Scalaプログラミングを始めるための準備ができたので、いよいよ今回からScalaの文法について紹介します。 第1回記事では、Scala標準のREPLとScala IDEで動作を確認してみました。今後記事のサンプルコードは、どちらで確認しても問題はありませんが、対話的に実行でき、1文ごとにコードの結果が分かって便利な

    Scalaプログラミングで知っておきたい基本構文まとめ
  • スケーラブルで関数型でオブジェクト指向なScala入門

    Scalaの特徴を紹介し、基構文や関数、 クラスなど、Scalaの基的な機能について 解説する入門連載 EclipseでScalaプログラミングを始めるための基礎 スケーラブルで関数型でオブジェクト指向なScala入門(1) 概要や5つの特徴を紹介し、開発環境を構築して対話型実行環境「REPL」やEclipse上でHello Worldを実行します