IT記事一覧

モノリシックな大規模アプリを運用する技術-サービスを“分割しない”メリットをSansanの実例に学ぶ

モノリシックにアーキテクチャを構築するメリットとは?近年、マイクロサービスアーキテクチャが注目を集めていますが、Sansanは大規模なアプリケーションに成長したいまも、モノリシックな構造を維持しています。ドメインコンテキストの共有のしやすさ、チームビルドのしやすさなど、モノリシックな構造だからこそ得られるメリットを聞きました。

Web開発・オンボーディング・採用の実例に学ぶ、リモートワークのコミュニケーションと文書術

リモートワークへの注目が高まっていますが、いざ運用すると対面とは異なるコミュニケーションに四苦八苦しているのではないでしょうか。本記事ではリモートワークを長年実践しているYassLab株式会社の安川要平(@yasulab)さんに、具体例を交えながら解説していただきます。

Jakarta EEを知る! オープンソース化されたエンタープライズJavaの現状と今後、バージョン9公開

Jakarta EE 9が2020年7月から9月にかけて段階的にリリースされます。エンタープライズJavaプラットフォームであるJava EEをオープンソース化する経緯と現状、そして最新バージョンから今後について、『Javaアルゴリズム+データ構造完全制覇』の杉山貴章さんによる解説です。

開発の品質を上げた7つの方法 - ソース管理、コード管理、テスト導入、開発環境の4つの視点から

ソフトウェア開発における、開発管理の手法やツールには、「品質」を向上させるという目的が存在しますが、開発者はまず、手法やツールの先にある「品質」とは何かを理解する必要があります。ソース管理、コード品質管理、テスト導入、開発環境の4つの視点から、「品質管理」の現場で直面した実例と課題とその解決策について小林昌弘さんが解説します。

帯域を知ろう - ユーザと開発者の視点から考える、テレワーク時代の帯域圧迫を防ぐアプローチ

多くの人がテレワークに移行する中、帯域という言葉に注目が集まっています。インターネット上での社会的活動量が加速度的に上がっていく中、帯域をできるだけ圧迫しないためにはどのような工夫が必要になるのでしょうか。ユーザ、開発者、それぞれの視点から、帯域を上手に使うためのアプローチを、みやもと くにおさんが解説します。

Backlogを作ってるエンジニアが教えるBacklog活用術 - 開発チーム内外をつなぐ、課題管理の考え方

プロジェクト管理ツール、コラボレーションツールとしてBacklogを採用しているチームは多いでしょう。多岐にわたる機能を利用できるツールですが、上手に使うためのアイデアと方法を、Backlogを生み出したヌーラボ社の中村知成さんが解説します。開発チーム内だけでなく、マーケやセールスなどを含めた、チームを横断した課題管理など、“中の人”ならではの知見をご紹介します。

ドメイン駆動設計をわかりやすく - ドメインのモデル設計を手を動かしながら学ぼう

ドメイン駆動設計(DDD)が近年関心を集めていますが、同時にこの設計思想は難しい、わかりにくい、という見方もあります。さまざまなプロジェクトでドメイン駆動設計を実践してきたかとじゅんさんが、サンプル課題をもとに、ユースケース分析、モデル設計といった基礎を解説します。

AWS上のコンテナはネットワークをどう利用するのか? ポート番号の扱いとDNSの仕組みを中心に

AWS、そしてネットワークの基礎知識は、なんらかのサービスを開発する際に不可欠なものです。本稿では、コンテナを利用してWebアプリケーションを開発するとき、Webアクセスはどのような技術を用いて成り立っており、どういったことに注意する必要があるのか、といった入門的情報をAWSに務める菊池之裕さんに説明してもらいました。

東京都の新型コロナ対策サイトはなぜNuxtJSだったのか? ─ シビックテックのベストプラクティス

東京都が3月初旬に公開した新型コロナウィルス感染症対策サイトは、モダンなWeb技術を使いオープンソースの手法で開発されました。シビックテックの活動から生まれたベストプラクティスについて、開発者のお2人に聞きました。

これから先もPHPで戦うために、なにを使い、なにを学ぶべきか - 廣川類に聞くPHP学習に大事なこと

Webアプリケーション開発言語として広く使われるPHP。黎明期から浸透していくまでの過程、そして、これから先もPHPを活用していくために必要なこと、をエキスパートの廣川類さんに聞きました。

スクラムの原則を、いかにして実践するか - 現場にありがちな悩みを吉羽龍太郎に相談してみた

スクラムは多くの開発現場で取り入れられており、その原則を学ぶのは簡単です。しかし原則を現実に実行しようとすると、さまざまな課題が……。アジャイルコーチの吉羽龍太郎さんにスクラムの基礎から、ありがちな課題への対処法をたっぷり聞きました。

文字コード再入門 ─ Unicodeでのサロゲートペア、結合文字、正規化、書記素クラスタを理解しよう!

文字コードには、どのような種類があり、それぞれどのような意味を持つのか、といった、文字コードの基本的な概念、従来の文字コードを紹介し、現在のUnicodeの構成を概説し、プログラミングにおいて注意すべき箇所をいくつか取り上げます。

Kaggleは実務の役に立つ? データサイエンティストがKaggleから学んだ「教師あり学習」の勘どころ

機械学習のトレーニングとして、Kaggleに挑む方は多いでしょう。ただ、Kaggleで鍛えて、データサイエンティストとしての実際の業務に生かせるの?こんな疑問にこたえるべく、日本経済新聞社のデータサイエンティスト、石原祥太郎さんが、「仕事とKaggle」の関係性を綴ります。

スクラムマスターがやること、やらないこと - アジャイルトレーニングの専門家に聞いてみた

スクラムマスターとして日々仕事に邁進していても、教科書どおりにいかないこともしばしば。イベントに人が来ない……、タスク終わらなさそう……などなど、スクラムマスターが直面しがちな、「あるある」な悩みを、アジャイルコーチの吉羽龍太郎さんに相談してみました。

Kubernetes-nativeなアーキテクチャ導入の手引き 先進的なクラウド環境を最強テストベッドで体験

Kubernetes-nativeなエコシステムを実現する最強テストベッド環境です。さまざまなミドルウェアを運用したマイクロサービスをフルgRPCなサービス間通信で実現するだけでなく、CI/CDと開発環境も用意しています。

技術的負債を徹底的に解消した話 - オミカレのシステムフル刷新のためにやったことを全部教える

技術的負債、デザイン面での課題など、サービスを構成するシステムを全面にわたってリニューアルしたプロセスを、オミカレの高橋一騎さんが克明に伝えます。

Androidのダイアログを作ろう - サンプルコードで学ぶAlertDialogの使い方の基本からカスタマイズ

Androidでの通知の仕組み「Dialog」の代表格であるAlertDialogには、ユーザーに選択を促す場合以外に、自由度の高い画面を作れる機能があります。この記事では、サンプルコードとともにAlertDialog.Builderクラスを使って用途別にダイアログを構成する情報を設定する方法、カスタマイズを行う方法について説明します。

gRPCでインターフェースを再整理してからサービスを分割─freeeの段階的なマイクロサービス戦略

マイクロサービスの導入事例を、中の人に聞いてみいます。本稿では、SaaS型クラウドサービスを提供するfreee株式会社CTOの横路隆さんに、マイクロサービス導入前のシステムが抱えていた課題、そしていかにして既存のシステムをマイクロサービスに置き換えていくか、といった戦略を語っていただきました。

機械学習を記事配信に採用したママリ - 0から構築したレコメンドエンジンのアーキテクチャ設計

コネヒト株式会社が運営する女性向け情報サービス「ママリ」では、2019年12月に記事配信で機械学習によるレコメンドエンジンを構築、2020年初頭にテストが完了しました。 機械学習を採用した背景、設計したアーキテクチャとテストの結果について伺いました。

Eclipse、はじめの一歩 - インストールから便利な日本語化プラグインの導入まで

開発業務の効率化に有用なツールとして使われる「Eclipse」は、豊富な拡張機能も魅力です。ごく初歩から学べるよう、インストールの方法や初歩的な使い方の導入、便利な日本語化プラグイン「Pleiades」による機能拡張などを体系的に紹介します。

コードを読み込みScalaの関数型パラダイムを学ぶ - xuwei-kがScalaを学ぶために読んだOSS

数多くのScala関連OSSにコミットを続ける吉田憲治(xuwei-k)さん。その精力的な活動を支える、関数型の知見の源をうかがいました。

コードレビューのやり方、基礎の基礎 - コード改善に重要なレビューの基本的な考え方を学ぼう

コードレビューとは?レビューで問題を見つけて指摘するには?レビューをされる側の心構えとは?ソフトウェアレビューを研究する名古屋大学の准教授 森崎修司さんが、コードレビューの考え方を解説します。

Elm入門と実践 - 買い物カートを作ってアーキテクチャ「TEA」を学ぶ

純粋関数型AltJSであるElmへの注目がじわじわと高まっています。開発者に優しい仕様を持つElmの初歩と、業務に使える実践的な活用法を泉 征冶さんが解説します。

アルゴリズムの基本をJava、C#、Pythonで学ぼう - データを集計し、言語ごとの違いを知る

基本的なアルゴリズムを使った観測データの集計を考えてみます。使用するのは、Java(Java 13)、C#(C# 8.0)、Python(Python3)。ちょっとしたコードでも言語によって違いがあります。

LINEの技術的負債を解消している話 ─ HTTP/2へのプロトコル変更やデータ同期の最適化での改善

サービス開始から10年近くがたったLINEでは、次の10年のため技術的な負債を解消・改善する取り組みをプロジェクトで行っています。

仮想DOMは本当に“速い”のか? DOM操作の新しい考え方を、フレームワークを実装して理解しよう

最近のJavaScriptフレームワークで利用される「仮想DOM」について、リアルDOMの違い、メリット・デメリット、仮想DOMを使ったフレームワーク開発などを、ダーシノ(bc_rikko)さんが解説します。

TCP/IPをわかりやすく - 通信プロトコルの基礎知識を図解で学ぼう

現在のインターネットを支える技術であるTCP/IPについて、基礎となるプロトコル群と、TCPの基本機能を丸田一輝さん、 中山悠さんに解説していただきました。

React Native導入ガイド - 環境構築からクロスプラットフォーム開発のメリットまでを理解する

React Nativeは、クロスプラットフォーム開発を行うためのツールの1つです。JavaScript言語の中で、UIフレームワークのReactを用いてUIの記述と状態管理を行うことで、アプリの動作を組み立てます。本記事では、React Nativeの導入やモバイルアプリ開発の現場で起きがちな課題を解決する手段としての強みについて解説します。

Kotlin 1.3をサクッと学ぶ - CoroutineとKotlin/Nativeを触って理解しよう

Kotolin入門者に向け、Kotlin1.3に加わったCoroutineとKotlin/Nativeという2つの機能を中心に、実践的なプログラミングのヒントをお伝えします。

依存モジュールが少ないソースコードを読む - スペシャリスト岡野真也に聞くPythonの読み方と使い方

現在、多くの支持を集めるPython。10年以上にわたりPythonを使い続ける岡野真也さんに、同言語の学び方、使い方を聞きました。

53サービス・アプリのクラウドやフレームワーク・言語など聞いてみた! アーキテクチャ大調査2020

エンジニアHub恒例のアーキテクチャ大調査。2020年版では、フロントエンドとサーバサイドの開発環境や、クラウドサービスの利用を分けてアンケートを実施。53のアプリ・サービスから回答がありました。

エンジニアのためのDevRel入門 ─ 外部の開発者と信頼関係を結んでコミュニティでファンを増やす

エンジニアリングとマーケティングをミックスしたDevRel(Developer Relations)という活動が注目を集めています。日本アイ・ビー・エムでデベロッパーアドボケイトを務める萩野たいじさんに、エンジニアが果たすべき新しい役割として、DevRelの現状を聞きました。

KotlinをKotlinらしく、そして可読性を高く保つ運用知見 - エキスパート長澤太郎に聞く実装のイロハ

近年注目を集めるKotlinはどのように書き、どのように運用するのがいいのか。2012年からKotlinに親しむUbie社の長澤太郎さんに、その経験から得られたKotlinノウハウを聞きました。

進化の先に理想のエンジニア組織がある─成長のジレンマを解消して進化するフューチャーの組織論

エンジニア組織が成長する際に直面するさまざまなジレンマを解消するうち、ホラクラシー型に進化したというフューチャー株式会社のエンジニア組織論を、宮原洋祐さんに聞きました。

IntelliJ IDEAをもっと便利で使いやすく! つまずきがちな設定や、便利な機能を細かに解説します。

Javaの統合開発環境であるIntelliJ IDEAの人気が高まっています。興味はある方や使い始めたばかりの方に向けて、つまずきがちなポイントや、地味だけど便利な機能などを、IntelliJ IDEA関連の著作も多い今井勝信さんが紹介します。

Ruby 2.7のここがすごい! パターンマッチ、コンパクションGCなどをリリースマネージャーに聞いた

2019年12月25日にリリースされたばかりのRuby 2.7では、どのような機能がどういった経緯で採用されているのでしょう。リリースマネージャーのnaruseさんと、フルタイムコミッターのmameさんに詳しくうかがいました。

実践クリーンアーキテクチャ - 複雑化した大規模ECサイトをモダナイズしたモノタロウの事例

クリーンアーキテクチャのメリットとは?またいかにして導入するか?難解なイメージのあるクリーンアーキテクチャの概要を採用事例に学びます。今回、取材したのは工業用間接資材オンラインストアの「モノタロウ」。サービスの開発を続けていくにつれ、同社のシステムは複雑化、肥大化していき、様々な課題が生じたそうです。こうした課題に対応すべく、システムのモダナイゼーションに取り組む際、取り入れたのは、クリーンアーキテクチャでした。同アーキテクチャをどのように実装したのか、モノタロウのエンジニア3人に聞きました。

AWS導入~スケールまでの変遷を事例に学ぶ - コンテナ化のために「みてね」が選んだ構築戦略

これからAWSを導入する、AWSに入門するといった方に向け、AWSの導入のための基本的な戦略や考え方を事例で紹介します。多岐にわたるAWSの機能をいかに活用するか。サービス立ち上げから、その後のスケールまで、実際の現場でどのようにAWSを活用しているかを、株式会社ミクシィで「みてね」のインフラをリードする清水勲さんが語ります。

JAMstackってなに?実践に学ぶ高速表示を実現するアーキテクチャの構成

JAMstackは、「JavaScript」「APIs」「Markup」の3つの技術を組み合わせた、新しいWebアプリケーションアーキテクチャです。いち早くJAMstackを利用してWebサイトを作成した、寺川直宏さんと風間雅也さんにJAMstackについて聞きました。

SRE実践の手引 ─ 信頼性をどう制御するか? から始める、現実的な指標と目標の設計と計測

SREの役割には、信頼性、SLIとSLO、エラーバジェット、トイル、ソフトウェアエンジニアリングといった複数のキーワードが存在するがゆえ、なかなかうまく実践できない、という声もあります。本稿では、難しく見られがちなSREの内実を、「信頼性の制御」というコンセプトを軸に整理し、小さく始める一歩を坪内佑樹(ゆううき)さんが解説します。

低レイヤの知識の重要性は今後も変わらない - 小崎資広に聞くLinuxカーネル開発の裏側

Linuxは、世界でもっとも広く使われているソフトウェアのひとつであり、多くのエンジニアの仕事に密接に関わっています。では、Linuxそれ自体は、どのように開発されているのでしょうか。Linuxの中枢である、Linuxカーネルの開発者のひとりである小崎資広さんに、知られざる開発の裏側を聞きました。

Microsoft Azure入門 - Web Appsを使って簡単にWebアプリやAPIを公開してみよう

Azureに入門するために、まずは手を動かしてみよう!数あるAzureのサービスの中からWeb Apps、Functions、SQL Databaseをチョイスし、これらを組み合わせ、簡単なWebアプリケーションやAPIのサンプルを作成・公開してみます。

早め早めの脆弱性対策! 開発チームでできるアプリとサーバのセキュリティ診断と要件定義の作り方

Webセキュリティ対策はなにかと面倒ですが、昨今はフレームワークが脆弱性に対応するなど、プログラミングは効率的になっています。その上でサービス全体の安全のため、開発チームがすぐ実施できるWebセキュリティ診断と要件定義について解説します。

ペアプログラミングで「強いエンジニアチーム」を作る! ヤフーが実践する全てペアプロ開発の手法

ペアプログラミング(ペアプロ)のメリットや導入方法について、ヤフー株式会社の山下真一郎さんが、フリマアプリ「ヤフオク!」や「PayPayフリマ」での実例をもとに紹介します。

SQLをはじめよう - 初心者でもわかる、構文とデータ取得の基本

リレーショナルデータベース管理システム(RDBMS)において、データの操作や定義を行うためのデータベース言語であるSQL。“データ”の重要性が謳われるようになった昨今において、この言語はより重要性を増しています。本稿では日本MySQLユーザ会の副代表であり、データベースを中心とした業務システムの設計・コンサルティングを手掛ける坂井恵さんが、「SQLを学びはじめたばかりの若手IT技術者」や「社内のデータを利用したい非IT技術者」に向けて、SQLによるデータ操作の基礎を解説します。

Javaなら「この書き方がベスト」と信じて書ける - きしだなおきに聞く、Javaのこれまでとこれから

Javaは1995年に誕生し、数多くのコミュニティや企業の影響を色濃く受けてきました。では、黎明期から現代に至るまで、Javaはどのように進化し、生態系を変化させてきたのでしょうか。Javaのスペシャリストとして知られる、きしだなおきさんに聞きました。

PWAの作り方をサクッと学ぶ - 「ホーム画面に追加」「キャッシュ操作」「プッシュ通知」の実装

PWAをテーマにしたコミュニティ「PWA Night」を運営する菅家大地さんが、既存のWebアプリをPWA化する簡単な実装方法を解説します。

いま知っておきたいLinux─WebアプリがOSのプロセスとしてどのように見えるか? を運用に生かす

Webアプリを動かして負荷をかけると、OSのプロセスという観点ではどのように見えるのでしょう? それを通して運用やトラブルシューティングではどういったことが分かるのでしょう? Linuxカーネルの開発者でもある武内覚(sat)さんによる解説です。

新人ITエンジニアのスキルアップに近道はないが、写経・RSSフィード・英語で成長を加速できる

新人のITエンジニアがスキルアップするため、特に「写経」「RSS」「英語」の3つを、成長を加速させる“三種の神器”として紹介します。

「単体テスト」再入門! 開発の現場でバグを確実に洗い出す最適な手法と、テストケースの作り方

単体テストの定義から手法、未来の展望までを、日本におけるソフトウェアテストの第一人者・高橋寿一さんが解説します。

若手ハイキャリアのスカウト転職