エンジニアHubPowered by エン転職

若手Webエンジニアのための情報メディア

Swiftに足りなかったものを作る - スター数13,000超の「Kingfisher」を生み出したonevcatの着想術

画像を取り扱う軽量なSwiftライブラリ「Kingfisher」が獲得したスター数はなんと13,000以上。圧倒的な支持を集めるOSSを作り続けるonevcatさんに、発想の源を聞きました。

「AWSとGCPを“選択可能”にしておく」LIFULLに学ぶ長生きするインフラ構築術

多くの開発に導入されるクラウドサービスですが、LIFULL社では、AWSとGCP、両サービスを同時に使用しているそう。同社のインフラの変遷と、併用の背景を聞きました。

「あけおめLINE」の負荷に耐えるインフラを作った話。LINEのインフラ設計を中の人に聞いた

国内外で展開する膨大なメッセージを処理する、LINEアプリのインフラってどうなっているの? こんな素朴な質問をサーバー、ネットワークなど、中の人に聞いてみました。

Macでターミナルとシェルを使うための基礎知識 - 環境の構築と基本的なファイル操作を知る

Macでターミナルとシェルを活用し、サクサクと作業をするには?シェルに関する多数の執筆を持つ、「シェル芸人」こと上田隆一さんが基本のテクニックを解説します。

WebAuthnでパスワードレスなサイトを作る。安全なオンライン認証を導入するFIDOの基本

パスワードによる認証の安全性は限界なのではないかと、Webサイトにおいても生体認証などパスワードレスな仕組みを導入する企業が増えています。注目を集めるFIDOやWebAuthnについて、松本悦宜さんの解説です。

コンテナ技術入門 - 仮想化との違いを知り、要素技術を触って学ぼう

コンテナ技術を適切に活用するには、コンテナが「どうやって」動いているかを学びたいところ。はてなのエンジニアhayajo_77さんがコンテナの要素技術の勘所を解説します。

「ライブラリの守備範囲は狭い方がいい」こにふぁーが大切にする、ソフトウェア設計の流儀

ソフトウェアが果たすべき、機能、役割をどのように定めるか。多くのエンジニアを悩ませるこの問いに、Android開発者、こにふぁーさんは「守備範囲を狭く設定する」と答えます。こにふぁーさんがこの答えにたどり着いた道筋とは。

上達したいVim初心者のための設定・プラグインの見つけ方、学び方〈エディタ実践入門〉

Vimの深淵はとても深く、学ぶことは簡単ではありません。本記事では、初心者がVimをどのように学べばよいか? を解説しています。Shougoさんの寄稿です。

Python“らしさ”を支える技術。pandasコアコミッターが大事にするマージの方針

数多いPythonライブラリの中でも、データ解析の用途で大きな存在感を示すのが「pandas」です。そしてこのpandasのコミッターを務めるのが、sinhrksこと堀越真映さん。コミッターが感じるOSSのありよう、そしてPythonらしさを教えてもらいました。

自然言語処理をサービスで活用しよう! Sansanに学ぶ「多種多様なテキスト」からのデータ分析

Sansanのデータ統括部門DSOCで日夜研究を続ける奥田裕樹さんと高橋寛治さんの2人に、名刺という多種多様なテキストを扱う醍醐味をお聞きしました。

【46選】あのサービス・アプリのアーキテクチャ・プログラミング言語・フレームワークを大調査!〔2019年始版〕

今やWebやアプリを構築する技術選択は、フロントエンドからインフラまで各領域で多岐に及びます。気になるあのサービスが利用している技術は何か? アンケート調査によるまとめの2019年新春バージョンです。

「GraphQL」徹底入門 ─ RESTとの比較、API・フロント双方の実装から学ぶ

Web APIの新しい規格「GraphQL」の設計と実装について、藤吾郎(gfx)さんによる寄稿です。

設計サンプルで学ぶ、AWS構築の原則 - Webアプリ アーキテクチャのベストプラクティスを理解する

広範な領域をフォローするAWSですが、広範ゆえに、なにをどのように選ぶのかに悩むところ。AWSのエキスパート、クラスメソッドの八幡豊さんに、WebアプリのためのAWS構築の基本を解説してもらいます。

Vue.jsコミッターkazuponに聞く、良質なDX(開発体験)がもたらす良質な開発サイクル

近年大きな注目を集めるフレームワークとなったVue.js。その発展の裏には、開発コミュニティをストレスなく駆動させる、コミッターたちのさまざまな工夫がありました。黎明期からVue.jsを支える、コミッターの川口和也(kazupon)さんに、フレームワークを躍…

DBの寿命はアプリより長い! 長生きするDBに必要な設計とリファクタリングを実践から学ぶ

アプリケーションの寿命よりも長く、データの追加やテーブルの変更で成長し続ける「データベース」と、どのように付き合っていけばよいのでしょうか? 曽根壮大(soudai)さんによる寄稿です。

「Kotlinで書くとJavaには戻れない」Androidアプリ開発にKotlinを導入したヤフーが感じたメリット

GoogleがAndroidアプリの開発言語に選定したことで「Kotlin」の注目度が高まっています。展開しているAndroidアプリの半数以上でKotlinを導入しているというヤフー株式会社に、Kotlinの魅力を伺いました。

ブロックチェーン入門 ─ JavaScriptで学ぶブロックチェーンとBitcoinウォレットの仕組みと実装

ブロックチェーンは、分散環境の新しいデータ構造であり分散合意のアルゴリズムです。本稿は、Node.jsでブロックチェーンおよびBitcoinウォレットを実装するハンズオンです。

自然言語処理ってなに?課題は? 研究者に聞く、エンジニアが学術論文を読み解くための技術

多くのサービスに実装される自然言語処理ですが、そもそも一体どのような技術なのでしょうか?東京工業大学で研究にあたる、西川 仁助教に自然言語処理の歴史と現在。そしてどのような課題があるかをうかがい、さらにエンジニアが学術論文を読み解き、役立つ…

発信しないのは「仕事をしても請求書を出さない」のと同じ。堤修一が開発〜発信の循環を作る理由

ブログ、書籍、そしてOSS。iOSエンジニアの堤修一さんは、常に「発信」のこだわり続けてきました。数多くのスターを獲得した『iOS-Sampler』シリーズも、発信活動の一環だと説明します。なぜここまで発信にこだわるのか、堤さんに聞きました。

Kubernetes+Amazon EKSで自社サーバからAWSへ サイボウズの狙いは「人がやることを減らす」

サイボウズ「kintone.com」が自社インフラからAWSへの移行とともに、Kubernetesを用いたコンテナ化を進めています。オーケストレーション管理ツールに選んだのは、Amazon EKSです。決して容易ではない自社サーバからクラウドへの移行を決めたの理由は「技術…

実例に学ぶスクラム導入手順 - タスク属人化を避け、チーム開発力向上のためにRettyがやったこと

スクラム開発を導入するにあたり、必要になる手順は?メンバーはどんな意識を持つべき?実際にスクラムを新たに導入し、チーム力を向上させたRettyの実例を聞きました。

機械学習入門 - 基本のPythonライブラリ、9つを触って学ぶ

機械学習を学ぶために、まず知っておきたいPythonライブラリを、機械学習エンジニアの「ばんくし」こと河合俊典さんに厳選し、そのエッセンスをつづってもらいました。機械学習入門に向けたスタートアップガイドです!

データサイエンティストの定義は?必要スキルは?現役データエンジニア/アナリストと考えた結論

需要が高まるデータサイエンティストというロールですが、業務の定義や、必要スキルは一体どのようなものでしょうか。3名のデータエンジニア/アナリストに実践から得た答えを聞きました。

非エンジニアが技術を学ぶメリット - カスタマーサポートとエンジニアのギャップが解消された話

ユーザーの声が集約されるカスタマーサポート部門には、エンジニアの皆さんにとっても参考になる、サービス改善のヒントがあります。ピクシブではカスタマーサポート担当スタッフがエンジニアリングを学び、スムーズなコミュニケーションを実現しています。

Alexaスキルを開発してVUIを学ぼう! 手軽にAWS Lambdaで作る音声インターフェイスの基本

Amazon EchoやGoogle Homeといったスマートスピーカーが話題となっています。AIとの対話をインターフェイスとするVUIの基礎知識から、Alexaスキル製作の基本まで、スマートスピーカー向けのアプリケーションを数多く手がける君塚史高さんに教えてもらいまし…

認証技術の種類と進化の歴史。ユーザーの情報を守るために必要な基本を知ろう

サービス運用に必要不可欠な認証技術には、どれほどの種類があり、そしてなぜこれほどまでに多様化したのでしょうか。認証技術の進化と、それに対する攻撃手段の流れを不正ログイン対策ツールを手がけるCapyのエンジニア2名に解説してもらいます。

実践マイクロサービス ─ コンポーネント分割やトラブル回避の考え方をLINEの導入事例に学ぶ

マイクロサービスとは、小さいサービス同士をつないで連携し、ひとつのサービスを構成する手法のことです。そのメリット・デメリットなどマイクロサービスの本質と、LINEでの導入事例から実運用とトラブル回避について、LINE Shopチームの佐藤春旗さんが解説…

iOSに向き合い続けた10年。岸川克己がSpreadsheetViewで埋めたかった「iOSに不足していたもの」

KeychainAccessやSpreadsheetViewなど、iOSアプリ開発で広く使用されるOSSを送り出した岸川克己さん。iOS、Swiftの世界で先駆けと評される岸川さんに、ソフトウェア開発の裏側をお聞きしました。

IT企業のエンジニアがとりあえず知っておきたいGDPRの基礎知識

2018年、多くのIT企業が対応に追われたGDPRですが、その内容は非常に複雑です。本稿ではGDPRの概要と、「エンジニアが知っておくべき要点」を、ソフトウェアベンチャーなどで法務を担当するkataxさんに解説してもらいます。

レガシーシステムの大規模リプレイスで分かった「Vue.jsでSPAならNuxt.jsが有力」

10年以上前に作られたレガシーシステムをVue.jsで大規模リプレイスしたエムスリーに、導入して感じたVue.jsのメリットや、活用法を伺いました。

MySQL 8.0は何が優れていて、どこに注意すべきか。データベース専門家が新機能を徹底解説

MySQLの最新版「MySQL 8.0」正式版が2018年4月にリリースされました。数多くの機能や設定が追加・変更されているMySQL 8.0の「知っておきたい便利な機能」や「危険なハマりどころ」などを、My SQLの専門家に教えてもらいました。

grpc-gatewayの開発に学ぶ、ソフトウェアの設計手法〜Yuguiが定めた、2つの基本設計方針

良いソフトウェアとはどのような方針のもとに設計されているのでしょうか。広く使われているOSSであるgrpc-gatewayの開発過程を作者のYuguiさんが振り返り、その設計手法を解説してもらいました。

「Scala言語らしさ」を理解しよう! オブジェクト指向と関数型プログラミングの融合とは?

プログラミング言語Scalaの設計思想にあるという、オブジェクト指向と関数型プログラミングの融合(fusion)という理想と、それを掲げつつも現実主義的な点について、水島宏太(kmizu)さんが解説します。

いかにしてRubyを高速化するか? コミッター・卜部昌平が挑んだ「Deoptimization Ruby」の軌跡

Rubyの高速化に取り組む卜部昌平さんが、その着想やデザイン、実装について解説します。

Firebaseでバックエンドエンジニア不在のアプリ開発 クックパッドが体感した、メリットと課題

クックパッドの新アプリ開発で導入された「Firebase」。アプリやWebサイトのインフラ部分を任せられるほか、リアルタイムでデータを同期できるCloud Firestore、ログイン認証システムを手軽に実装できるFirebase Authenticationなど、さまざまな機能が用意さ…

deoplete.nvim開発者、Shougoが考える「Vimの限界ギリギリ」を攻めるプラグイン開発の裏側

多くのエンジニアに愛されるテキストエディタ『Vim』のプラグインを作り続けるShougoさん。Vimmerならば一度は使ったことがある、というほどに広く知られたプラグインを作り続ける理由を聞きました。

Kaggleで世界11位になったデータ解析手法〜Sansan高際睦起の模範コードに学ぶ

Kaggleの上位入賞者であるKaggle Grandmasterを獲得した、Sansan株式会社のデータサイエンティスト高際睦起さん。模範となるソースコードをもとに考え方や解析手法を教えていただきました。

React NativeでiOS/Androidアプリを丸っと開発! Nature Remo開発で分かった長所と短所

React Nativeを使って「Nature Remo」iOS/Androidアプリの開発を進める村瀨大輔(typester)さんと、北原壮さんに、導入して分かったメリットとデメリットを伺いました。

Coqで学ぶ証明プログラミング! テストだけでなく「証明」で安全性を保証する

プログラミング言語「Coq」では、プログラムを「証明」して間違いを防ぐことができます。プログラムの正しさを保証できる一歩進んだエンジニアになりましょう! coqtokyoを主催する今井宜洋さんの解説です。

ITエンジニアはどんなツールでコミュニケーションしているの? 事例から効率化のヒントを探せ!【2018 夏】

ストレスなく開発に集中するため、IT企業が社内ツールに何を選択しているかをアンケート調査。各社コダワリの使い方から、業務効率化や働き方を考えるヒントにしてください。

『メルカリ』 アプリの画面描画を高速化する技術、バックエンド・iOS・Androidの基本設計

多くのユーザーに愛されるフリマアプリ『メルカリ』ですが、そのスムーズな画面描画はどのような技術で生み出されているのでしょうか。同アプリの高速表示の秘密を、バックエンド、iOS、Androidの3方向からメルカリ社のエンジニア4人に聞きました。

ソフトウェアが持つべき機能と仕事の粒度を見極める〜The Platinum Searcherの作者に聞いてみた

GitHubでスター数2,000以上を獲得したOSSである「The Platinum Searcher」。作者の三宅悠介さんに、シンプルでありつつも、高い性能を持つソフトウェアを作り出すための思考を聞きました。

AWSに関するありがちミスとその対策〜EC2、S3、RDS、Lambda、CloudFrontの場合

さまざまなサービスで活用されるAWSですが、基本として知っておくべきは、どのような知識でしょうか。AWS導入&運用サポートのプロである、アイレットのエンジニア3名に、主要サービスの勘どころを聞きました。

20年の機械学習・ニューラルネットワーク研究から見えた、人工知能の歴史と未来

人工知能はどのような技術によって進歩し、どのような未来に向かってかじをきっているのでしょうか。今回は20年近く人工知能の研究をしてきた人工知能分野のフロントランナーの方々にインタビューしました。

月間アプリDL数、7倍への道〜エンジニアがアナリティクスを見ながら考えた課題抽出とその解決法

専門職が行うイメージの強いグロースハックですが、中にはエンジニアがその役割を担う会社も。ブレイブソフトのエンジニア、水谷浩明さんがアプリ『HONNE』で行ったグロース施策を振り返ります。

サーバーレスのメリット&本質を、AWS Lambdaを使って理解しよう

「サーバーレス」はここ数年の技術トレンドの一つです。サーバーレスアーキテクチャを2年運用してきたJX通信社の小笠原みつき(yamitzky)さんが、そのメリットや実際の業務における考え方を、ハンズオンを交えながら解説します。

GitHubリポジトリで8000スター獲得、人気OSS「Boostnote」オープンソース化の軌跡

GitHubリポジトリで8000スターを獲得しているプログラマ向けノートアプリのBoostnote。グローバルな開発コミュニティを築き上げた経緯についてインタビューしました。

データベーステーブル設計の基礎の基礎〜エンティティの抽出・定義から正規化まで

適切な形でデータベースのテーブルを設計し、運用するには?テーブル設計に必要な初歩を日本MySQLユーザ会副代表の坂井恵さんが丁寧に解説します。

「Go言語らしさ」とは何か? Simplicityの哲学を理解し、Go Wayに沿った開発を進めることの良さ

プログラミング言語には作者の設計思想が強く現れますが、Go言語もまた後発であることを生かし、しっかりとした思想に基づいて開発されています。公式のドキュメント等で語られているSimplicityの哲学を理解し、Go言語らしさ、Go Wayに従って開発する良さに…

動画アプリをなめらかに動かす技術〜『AbemaTV』のユーザー体験を支えるエンジニアリング

大人気インターネットテレビ局『AbemaTV』。そのUI / UXとはどのように設計されているのでしょうか。そして、UI / UXを実現する技術とは。スムーズな動画体験を支える技術を中の人に聞いてみました。