API開発の基本 - 銀行APIの開発事例に学ぶ『使いやすい』のデザインプロセス APIは多くのWebシステムにおいて、欠かすことのできない技術です。APIをどのように設計、デザインすれば、ユーザに利便性を提供できるのかを、GMOあおぞらネット銀行 CTOの矢上聡洋さんが解説します。API設計の基本、そして実際の銀行APIの設計から、“使いやすい”を生み出すためのデザインプロセスを学びます。
![API開発の基本 - 銀行APIの開発事例に学ぶ『使いやすい』のデザインプロセス - エンジニアHub|Webエンジニアのキャリアを考える!](https://cdn-ak-scissors.b.st-hatena.com/image/square/0f31df4ddf9a0fa3a570d44678015d6d6aa6ef2b/height=288;version=1;width=512/https%3A%2F%2Feh-career.com%2Fimage%2Farticle_hub%2F05%2F05%2F5_01.jpg)
今回は、以下のように指定しました。表示オプションはデフォルトのままです。 地点を選ぶ:東京 項目を選ぶ(データの種類):時別値 項目を選ぶ(項目):気温 期間を選ぶ:2019/1/1~2019/12/6 データの項目は「日時」「気温」「品質情報」「均質番号」の4種類。品質情報、均質番号は、観測値が正常かどうかに関する情報です。各項目の詳細については、同サイトの「ダウンロードファイル(CSVファイル)の形式」ページを参照してください。 ファイルの先頭5行には、次の画像のような項目が入っています。このまま使うとやや面倒なので、あらかじめ先頭5行分は削除し、全てデータ行のみのCSVファイルに加工しておきます。 CSVファイルの仕様にはバリエーションがあり、その全てに対応するとコードが複雑になりますので、今回は気象庁のCSVデータに基づき、次の仕様を前提とします。 文字種は、ANK(1バイト文字)
Ruby 2.7のここがすごい! パターンマッチ、コンパクションGCなどをリリースマネージャーに聞いた 2019年12月25日にリリースされたばかりのRuby 2.7では、どのような機能がどういった経緯で採用されているのでしょう。リリースマネージャーのnaruseさんと、フルタイムコミッターのmameさんに詳しくうかがいました。 まつもとさんはとにかく忙しくて 実はすごいirbの改良 パターンマッチはRubyをどう変えるか キーワード引数は、端的に壊れていたのを大整理した 高速化に向けたいくつかの観点 Ruby 2.7で導入される「コンパクションGC」とは Ruby 3のビジョンは「静的解析」「並行並列」「JIT」 プログラミング言語Rubyには、クリスマス前後に新しいバージョンをリリースする伝統があり、2013年の2.1.0以降は毎年12月25日にメジャーバージョンアップが行われています
「単体テスト」再入門! 開発の現場でバグを確実に洗い出す最適な手法と、テストケースの作り方 単体テストの定義から手法、未来の展望までを、日本におけるソフトウェアテストの第一人者・高橋寿一さんが解説します。 ソフトウェアのテストにおいて、最初のフェーズである単体テスト。若手Webエンジニアの中には、いきなり単体テストを任されて戸惑った方もいるでしょう。仕方なく現場で踏襲されているやり方に従っているだけ、ということもあるのではないでしょうか? 今回は、単体テストの定義から手法、未来の展望までを、日本におけるソフトウェアテストの第一人者・高橋寿一さんが解説します。 単体テストとは(各社ばらばらな単体テストの定義を再定義) コードベースの単体テスト 命令網羅(C0カバレッジ) 分岐網羅(C1カバレッジ) よくある(コードベースの)単体テストの間違い 機能単位の単体テスト 例:複雑なソート機能のテス
100万行オーバーのモノリシックRailsアプリをマイクロサービス化したクックパッドの手順 マイクロサービスの導入事例を、中の人が徹底的に語ります。クックパッドでは、100万行オーバーの超巨大なRuby on Railsアプリのマイクロサービス化に挑みました。アプリをいかに分離し、連携できるようにするか、など、同社が採ったマイクロサービス化の戦略を聞きました。 Ruby on Railsのバージョンアップに1年かかっていた 【マイクロサービス化戦略】まずはコードを減らすことから 【マイクロサービス化戦略】アプリ固有のバッドノウハウを減らす 【マイクロサービス化戦略】まずは分離しやすい部分からお試しで 【マイクロサービス化戦略】データベースが切れていればサービスも切りやすい 【マイクロサービス化戦略】インフラ構成を標準化する 【マイクロサービス化戦略】サービスメッシュを入れて通信の課題をクリ
低レイテンシと安定性を生むアーキテクチャ - SSPの現場に学ぶ、高可用性のつくり方 低レイテンシとは、広告配信の世界でユーザービリティ / 収益に直結する要素であることから、重要視されています。では、SSPの現場で実際に用いられるシステムはどのような構成になっているのでしょうか。fluct社の鈴木健太さんに、低レイテンシ、そして安定して稼働するシステムの基本を聞きました。 200msを目安にレスポンスを返す、低レスポンス設計 オンプレミスとAWSを組み合わせてコストとスケールのバランスを保つ データのコピーをサーバーに入れ、独立化する 悪くなったところを捨てるのが、低レイテンシ・システム安定化の秘訣 ログの集計はBigQueryで簡単に 悪くなったところは捨てて、全体を安定に動かす レイテンシ(latency)とは、リクエストに対して応答を返すまでの時間のことです。レイテンシをできるだけ
エンジニアHub > 記事一覧 > Visual Studio Codeのうれしい機能を使いこなして、初心者を最速で脱出する!《VSCode実践入門》 Visual Studio Codeのうれしい機能を使いこなして、初心者を最速で脱出する!《VSCode実践入門》 VSCodeは初版が2015年リリースの新しいエディタですが、インテリセンス、ユーザースニペット、Emmet、マルチカーソル、拡張機能というコーディングにうれしい機能が充実しています。VSCodeを検討中あるいは使いはじめたばかりの若手エンジニアが、いち早く初心者を脱出するための使いこなし方を解説します。 はじめまして、KC(けーしぃ、@kcpoipoi)と申します。技術書典6にサークル参加してたら「キミ、Web執筆に興味ない??」とお声がけいただきました。Web執筆は初めてなので至らない点があるかもしれませんが、何卒よろしく
「AWSとGCPを“選択可能”にしておく」LIFULLに学ぶ長生きするインフラ構築術 多くの開発に導入されるクラウドサービスですが、LIFULL社では、AWSとGCP、両サービスを同時に使用しているそう。同社のインフラの変遷と、併用の背景を聞きました。 AWSとGCP、「どちら」を「どうやって」使うか サーバの肥大化を阻止するべく、オンプレからAWSへ移行 マイクロサービス化し、「影響範囲」を狭めることで得られたメリット 「使い分ける」のではなく、「両方を使える」ことが継続性を生み出す インフラ構築における技術的な選択肢はさまざまですが、なんらかのクラウドサービスを活用するということは多くのエンジニアが検討する手段でしょう。 昨今ではクラウドサービスは多くの企業から提供されており、エンジニアにとって多様な選択肢が提供される一方、どのサービスを選ぶべきかという悩みもあるでしょう。筆者の周りで
こんにちは、小林(@koba04)です。 本記事では、シングルページアプリケーション(以下、SPA)における状態管理について解説します。 GmailやTwitterは、SPAとして構築されている代表的なWebアプリケーションであり、スムーズなページ遷移をSPAによって実現しています。またElectronやPWA(Progressive Web Apps)の登場により、複雑なアプリケーションをWebの技術を使って構築する場面も増えてきました。 これらの複雑なアプリケーションにおいては、既存のページ単位での状態管理の考え方では対応が難しくなります。 そこで今回は、具体的なフレームワークも取り上げながら、Webフロントエンドにおける状態管理のアプローチについて紹介します。 フロントエンドでの状態管理の複雑化 ページの単位を超えた状態の保持 モデルとビューによる処理の分割 イベントの管理が複雑にな
Lambdaで作る音声インターフェイスの基本 Amazon EchoやGoogle Homeといったスマートスピーカーが話題となっています。AIとの対話をインターフェイスとするVUIの基礎知識から、Alexaスキル製作の基本まで、スマートスピーカー向けのアプリケーションを数多く手がける君塚史高さんに教えてもらいました。 こんにちは。君塚史高(@ki_230)と申します。 普段は面白法人カヤックで、IoTデバイス向けのソフトウェアを開発しています。 最近ではAmazon EchoやGoogle Home、Clova WAVEといったスマートスピーカー向けのアプリケーションを制作する機会が増えました。そこで得られた知見をもとに、本稿ではAmazon Echo向けにシンプルな「時計」アプリケーションの作り方を解説します。 スマートスピーカーのユーザーインターフェイスは音声のみ(VUI)のため、一
認証技術の種類と進化の歴史。ユーザーの情報を守るために必要な基本を知ろう サービス運用に必要不可欠な認証技術には、どれほどの種類があり、そしてなぜこれほどまでに多様化したのでしょうか。認証技術の進化と、それに対する攻撃手段の流れを不正ログイン対策ツールを手がけるCapyのエンジニア2名に解説してもらいます。 私たちが何気なく使っている認証とは一体どういうものなのでしょうか。 認証はコンピュータやインターネットが普及する前から用いられている、利用者を識別し、その正当性を証明する技術です。この定義に当てはめていくと、家の鍵や合言葉など、身の回りでもおなじみのものも「認証」にあたります。 認証を支える技術のうち、よく知られているのが暗号です。原始的な暗号技術のひとつに、古代ローマで用いられたシーザー暗号(Caesar cipher)があります。これは当時の為政者、ユリウス・カエサルが使ったといわ
「Kotlinで書くとJavaには戻れない」Androidアプリ開発にKotlinを導入したヤフーが感じたメリット GoogleがAndroidアプリの開発言語に選定したことで「Kotlin」の注目度が高まっています。展開しているAndroidアプリの半数以上でKotlinを導入しているというヤフー株式会社に、Kotlinの魅力を伺いました。 「Androidアプリを作るならJavaではなくKotlinを使った方がいい」という声をよく聞くようになってきました。Kotlinは2011年に発表された言語。2017年にGoogleがKotlinをAndroidアプリの開発言語に選定したことがきっかけで、近年導入する企業が増加しています。 その中の一つが、ヤフー株式会社です。現在ヤフーでは、展開しているAndroidアプリの半数以上でKotlinを導入。特に「Yahoo!ニュース」のAndroid
ブロックチェーン入門 ─ JavaScriptで学ぶブロックチェーンとBitcoinウォレットの仕組みと実装 本記事ではブロックチェーンのプログラミングを、実践とともに学びます。ブロックチェーンとは、分散環境の新しいデータ構造であり分散合意のアルゴリズムですが、Node.jsでブロックチェーンおよびBitcoinウォレットを実装し、その仕組みを理解していきましょう。 フリーランスでエンジニアとライティングなどをゆるゆる行っているerukitiと申します。 個人のサークル「東京ラビットハウス」から「Modern JavaScript」「簡単JavaScript AST入門」「JavaScriptで覚える暗号通貨入門#1 Bitcoin完全に理解した」といったJavaScript関連の技術同人誌を単著で発行しています。 この記事では、ブロックチェーンの仕組みを解説し、実際にブロックチェーンやB
エンジニアHub > 記事一覧 > AWSに関するありがちミスとその対策~EC2、S3、RDS、Lambda、CloudFrontの場合 AWSに関するありがちミスとその対策~EC2、S3、RDS、Lambda、CloudFrontの場合 AWS入門者が基本として知っておくべき知識を、AWS導入&運用サポートのプロである、アイレットのエンジニア3名に聞きました。多くのAWSユーザーに支持されるAmazon EC2、Amazon S3、Amazon RDS、AWS Lambda、Amazon CloudFrontそれぞれの勘所やオススメの設定を、余すところなく紹介してもらいます! なぜ、AWSを選ぶのか? Amazon EC2~インスタンス起動後はプライベートIPを設定できないので注意 Amazon S3~S3はディスクではない。マウント非推奨の理由 RDS~自動スナップショットの保持期間を
エンジニアHub > 記事一覧 > 「Go言語らしさ」とは何か? Simplicityの哲学を理解し、Go Wayに沿った開発を進めることの良さ 「Go言語らしさ」とは何か? Simplicityの哲学を理解し、Go Wayに沿った開発を進めることの良さ プログラミング言語には作者の設計思想が強く現れますが、Go言語もまた後発であることを生かし、しっかりとした思想に基づいて開発されています。公式のドキュメント等で語られているSimplicityの哲学を理解し、Go言語らしさ、Go Wayに従って開発する良さについて、はてなチーフエンジニアの松木雅幸(Songmu)さんが解説します。 id:Songmuと申します。はてな東京オフィスでチーフエンジニアを務め、Mackerelというサーバー監視のSaaS開発においてプロダクトマネージャーを担当しています。 筆者が勤めている株式会社はてなでは、2
あるエンジニアが「Kibela」というサービスを考え、リリースするまでのフローを全部教える エンジニアがサービスのアイデアを思いつき、それをリリースするまでにはどのような過程があるのでしょうか。情報共有ツール「Kibela」が世に出るまでのフローを、起業した井原正博さんが詳細に振り返ります。 ヤフーやクックパッドでの開発を経て、ビットジャーニーで代表を務める井原正博(いはら・まさひろ/@ihara2525)です。プライベートで超長距離のランを楽しむかたわら、情報共有ツール「Kibela」の開発・運営を手がけています。 Kibela - 個人の発信を組織の力にする情報共有ツール 「Kibela」は僕自身が2015年に起業して立ち上げたサービスですが、この記事では、僕がサービスをいかに開発したか、その方法からリリースまでの過程を振り返りつつ、サービスの現在の状況までお伝えします。 「自分でもサ
【20選】俺が唸ったOSS・GitHubリポジトリ!Web企業で働くエンジニア達に聞きました さまざまな企業のエンジニア20人に、リポジトリの中から「これは素晴らしい」「他のエンジニアにもぜひ使ってほしい」と思うものを紹介してもらいました! GitHub上に存在するリポジトリや、その他の場所に存在するものまで、オープンソースソフトウェア(以下、OSS)は世の中に星の数ほど存在します。利便性の高さから世界中の開発者が利用していますが、反面その種類の多さから、どれを使ったらいいのかわからないという方もいるでしょう。 そこで本企画では、企業のエンジニア20人に、さまざまなリポジトリの中から「これは素晴らしい」「他のエンジニアにもぜひ使ってほしい」と思うものを紹介してもらい、その理由を解説していただきました。 使って便利なだけでなく、コードを読んで技術研鑽に活用するもよし。ぜひご一読あれ。 ※各カ
Atomエディタ 便利なパッケージ一覧! 全23社のWebエンジニア・デザイナーがおすすめを紹介 Web開発で人気のAtomエディタ。便利なパッケージがたくさんありますが、必ずインストールしておきたいのは何でしょう? IT企業23社にアンケート調査を実施しました。一番人気だったのは……? 使い勝手の良さと汎用性の高さから、Webエンジニアやデザイナーの人気を集めているAtomエディタ。愛用している読者も多いのではないでしょうか。登場が2014年と比較的新しいエディタにもかかわらずシェアを急速に伸ばしており、人気の高さをうかがわせます。 Atomエディタを使う際に必ずインストールしておきたいのが、パッケージです。これはデザインテーマや、プログラミングの便利機能などをエディタに追加できるプラグインのようなもの。快適に効率よく開発を進めるには必要不可欠です。 しかし、Atomエディタのパッケージ
HashDoS脆弱性との戦い! Rubyコミッター・卜部昌平が明かすプログラム堅牢化のノウハウ 過去、HashDosの影響を受けたRuby。言語開発者はいかにしてこうした問題に対応してきたのでしょうか。コミッターである卜部氏の貴重な記録を公開します。 2011年の末頃、HashDoSという脆弱性が公表され、Rubyもこの影響を受けた。本稿の筆者である卜部昌平(うらべ・しょうへい/@shyouhei/以下、卜部)は、報告当初からRuby側のチームメンバーとしてプログラム本体の修正を担当した。以下はその記録である。言語開発者たちが普段どのようなことを考え、どういった技術を用いて開発やバグフィックスを行っているのか。その概要を知ってもらえれば幸いだ。 オブジェクト指向スクリプト言語 Ruby HashDoSの概要 なぜ約6年後の今、修正内容を公開するに至ったか? 前史:すでに内包されていたリスク
休日個人開発で学ぶテストコード! 画像に“集中線”を合成するツールを作ってみよう プライベートでも何か作りたい! そんなときの「今日からはじめる休日個人開発」シリーズ、第二弾はテストコードを書きながら簡単なMVCモデルの画像加工ツールを作ってみましょう。好きな写真に集中線を合成できます。 皆さん、プライベートで何か開発していますか? 「何か作りたい」という気持ちはあるものの、いまひとつ何から始めたらいいのか分からず、動けないままの人も多いと思います。 そんな皆さんのために、「仕事以外にも休日に個人で気軽に何かを作ってみよう!」という企画の第二弾です。今回は、第一弾で用意した開発環境を使って、画像を加工するツールを実際に作っていきます。 せっかくですので、ただ作るだけではなく、テストコードも一緒に書いてみましょう。最近は、CI(継続的インテグレーション)やCD(継続的デリバリー)も一般的にな
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く