タグ

ブックマーク / codezine.jp (142)

  • 『ソフトウェアアーキテクチャの基礎』島田浩二氏が語る、エンジニアが最初に知っておくべきアーキテクチャリテラシー

    ソフトウェアアーキテクチャはシステムの成功に不可欠な要素であり、ソフトウェア開発者にはこの分野における効果的なスキルが求められる。しかし、その学習資料はまだ十分ではないのが現実である。株式会社えにしテックの代表取締役 島田浩二氏は、ソフトウェアアーキテクチャに関する書籍を多数翻訳している。Developers Summit 2023 Summerに登壇した島田氏は、数々の書籍から学んだソフトウェアアーキテクチャの重要なエッセンスを紹介した。 ソフトウェアアーキテクチャとは? 3つの定義を紹介 島田氏は2009年に株式会社えにしテックを設立。2011年からは一般社団法人日Rubyの会の理事を務めている。島田氏が翻訳に携わった書籍には、『進化的アーキテクチャ』『ソフトウェアアーキテクチャハードパーツ』、『ソフトウェアアーキテクチャの基礎』『Design It!』(いずれもオライリージャパン)

    『ソフトウェアアーキテクチャの基礎』島田浩二氏が語る、エンジニアが最初に知っておくべきアーキテクチャリテラシー
    honeybe
    honeybe 2024/01/11
  • 生のポインタは使わないで! Modern C++のメモリ管理

    連載では、Modern C++と称されるC++について、Modern C++らしい言語仕様をピックアップし紹介していきます。第3回は、スマートポインタについて紹介します。高度なメモリ管理には生のポインタの使いこなしが必須という古い常識はもはや通用しません。メモリを効率よく、しかも安全に使うことを実現しているスマートポインタについて理解を深めます。 はじめに C言語から派生したオブジェクト指向プログラミング言語であるC++は、21世紀に入ってまったく別物とも言えるプログラミング言語に成長していきました。それは、Modern C++と称されています。1990年代にC++を触っていたプログラマが現在の仕様を知れば、隔世感に苛まれるのではないでしょうか。連載では、かつてはC++をたしなんでいたという方、今からC++言語を始めるという方に向けて、Modern C++らしい言語仕様をピックアップし

    生のポインタは使わないで! Modern C++のメモリ管理
    honeybe
    honeybe 2023/10/21
  • APIでマイクロサービスを構築する実践的な手法を解説 『実践マイクロサービスAPI』発売

    アプリケーション開発でマイクロサービスが用いられる際、APIで接続・統合する場合がほとんどですが、APIだけで成り立つようなマイクロサービスにおけるAPI設計の方法はあまり深掘りされてきませんでした。 書では堅牢で運用・保守に適したマイクロサービスAPIを設計・実装するためのテクニックを解説しており、REST APIGraphQL APIの両方を取り上げてどのように設計すればよいのかを説明しています。 例はPythonが使われていますが、どの言語でも機能する原則とパターンに従っているので、Python以外の言語を利用している方でも心配ありません。マイクロサービスAPIの構築手法に自信がない方や、どうすればよりよい構築ができるのかを知りたい方におすすめです。 目次 Part 1 マイクロサービスAPIの概要 第1章:マイクロサービスAPIとは何か 第2章:基的なAPIの実装 第3章:マ

    APIでマイクロサービスを構築する実践的な手法を解説 『実践マイクロサービスAPI』発売
    honeybe
    honeybe 2023/10/19
  • Kubernetesで高い開発者体験を作るには? ヤフーの開発環境の構築方法に学ぶ

    開発者を「顧客」として捉え、生産性を向上させるPlatform Engineering リリースと改善を高頻度で回す最近のITシステム開発。何かあってもすぐに修正できることで、品質と安定性を担保することへの精神的負担から少し解放され、場合によっては評価にもつながったハッピーな開発者も少なくないだろう。一方で、運用周りを考える必要が生じるなど責任範囲が広がり、ツールやスキルで習得すべきものも増加。開発そのものに集中しづらく、いろいろなことをカバーする必要があることからスーパーマン以外が活躍しづらいという課題も浮上している。 そこで登場したのが、Internal Developer Platform(IDP)だ。IDPは、開発者を「顧客」として捉え、開発により集中できる環境を整えることを目的とした基盤のことだ。IDPを運用開発するのは、専任チームだ。開発に関わる基的な作業を自動化やセルフサー

    Kubernetesで高い開発者体験を作るには? ヤフーの開発環境の構築方法に学ぶ
    honeybe
    honeybe 2023/04/10
  • Google Chromeの安定版で、パスワード不要の認証技術「パスキー」が利用可能に

    パスワードを使わない認証技術としてはパスキーの前から「FIDO(Fast Identity Online)」が存在する。公開鍵暗号の技術を応用したもので、ログインしようとするWebサイトに自身の秘密鍵を使って暗号化した署名を送り、Webサイト側が公開鍵で署名を復号化できれば認証するというものだ。署名作成の際にはスマートフォンやPCが備える生体認証機能を利用することが多い。 しかしFIDOには、厳格すぎて使いにくいという欠点がある。Webサイトなどへのログイン情報や秘密鍵(まとめてクレデンシャルと呼ぶ)を機器の外に持ち出せないため、スマートフォンやPCを紛失したり、新品に交換したときに、クレデンシャルを移行できない。その結果、すべてのWebサイトでログインを最初からやり直さなければならなかった。 そこで、FIDOクレデンシャルをクラウド経由でほかの機器と同期することを可能にし、複数の機器で同

    Google Chromeの安定版で、パスワード不要の認証技術「パスキー」が利用可能に
    honeybe
    honeybe 2022/12/14
  • Rustはなぜ開発者に愛されているのか、そして「人を選ぶ」理由とは? 実案件でRustを採用するゆめみに聞く

    昨今、開発者の中で人気が増しているプログラミング言語「Rust」。気になっている開発者は多いものの、業務での採用はまだこれからと考えている人も多いだろう。そんな中、ゆめみではRustに力を入れ、自社内外の案件でRustの活用を進めている。なぜ、ゆめみではRustの習熟を推奨するのか。その理由とともに、Rustの特徴、実際に使って見た感想、さらにはRustの今後の展望などについて、ゆめみでRustの推進に関わっているチャレンジCTO(最高技術責任者)の池口直希氏、エンジニア兼チャレンジ取締役のスミス 祐一郎 ルーク氏、サーバサイドエンジニアの舩戸隆氏に話を聞いた。 ゆめみでRust活用を牽引するエンジニア 2006年にグレイドン・ホアレ氏という個人プロジェクトとして開発されたプログラミング言語「Rust」。2009年にMozillaが開発に参入してプロジェクト化。その後、仕様変更を繰り返し、

    Rustはなぜ開発者に愛されているのか、そして「人を選ぶ」理由とは? 実案件でRustを採用するゆめみに聞く
    honeybe
    honeybe 2022/09/29
  • 動かして学ぶ! Rustの言語仕様

    はじめに 連載では、Webフロントエンド開発において注目されているバイナリ形式のプログラムファイルWebAssemblyを、Rustで実装して活用する方法を説明しています。前回記事では、WebAssemblyに至るまでのWebフロントエンド高速化の歴史を紹介するとともに、RustWebAssemblyを実装する大まかな流れを説明しました。 記事では、WebAssemblyの実装で必要となるRust言語の基礎を説明していきます。 対象読者 話題のRust言語について学びたい方 動的なWebページにさらなる速度を求める方 WebAssemblyに興味があるが、Rustのハードルが高いと思っている方 必要な環境 記事のサンプルコードは、以下の環境で動作を確認しています。 Windows 10 64bitrustup 1.24.3 cargo 1.55.0 サンプルコードを実行するには

    動かして学ぶ! Rustの言語仕様
    honeybe
    honeybe 2021/11/09
  • Googleがマテリアルデザインを次の段階に進化 「Material You」がもたらすもの

    こんにちは、株式会社Cosmowayが組織するデジタルプロダクション「factory4」のUIUXデザイナー新谷です。 前回の記事ではiOS 15で新しく再設計されたSafariのUIについて取りあげました。今回は2021年秋にリリースされるGoogleAndroid 12の「Material You」について考察していきたいと思います。 Google I/O 2021 で発表された「Material You」 Googleの発表会「Google I/O ‘21」にて、Android 12の目玉のひとつとして新たなUIデザイン「Material You」(マテリアルユー)が発表されました。 これは2014年に発表した「Material Design」(マテリアルデザイン)を次の段階に進化させたものです。「Googleアカウントで設定した好みの色と形を簡単に自分好みにでき、Web、Andr

    Googleがマテリアルデザインを次の段階に進化 「Material You」がもたらすもの
    honeybe
    honeybe 2021/08/26
  • Gitで継続的デリバリーを実現する「GitOps」とは? 概要とGitOpsソリューションの紹介

    GitOpsとは、分散バージョン管理システムであるGitを使用して、全てのアプリケーションとインフラストラクチャの望ましい状態を宣言的に記述し、管理する手法で、継続的デリバリーを実現する一つのモデルです。連載では、GitOpsを活用した継続的デリバリーやプログレッシブデリバリーについて紹介します。第1回では、GitOpsの概要やメリット、GitOpsを実現するソリューションを紹介します。 はじめに 連載はソフトウェアデリバリーにおける継続的デリバリー・プログレッシブデリバリーについての連載で、以下の3つの記事で構成されています。 第1回となる記事では、継続デリバリーについての概要、話題となっているGitOpsは何か、どんなメリットがあるのか、現在のGitOpsソリューションについて紹介します。 第2回では、プログレッシブデリバリーの解説と各ソリューションの紹介・比較について説明します

    Gitで継続的デリバリーを実現する「GitOps」とは? 概要とGitOpsソリューションの紹介
    honeybe
    honeybe 2021/06/22
  • 開発者が知っておきたいSQLの実行モデル~アプリからデータベースへのアクセスを高速化するには?

    データベースのデータ・モデルは解決したい問題に合わせて使い分けることができ、昨今ではドキュメントやグラフなどのリレーショナル以外のモデルも注目されています。また、トランザクション系が生成した大量のデータをリアルタイムで分析するというような、性質の異なるワークロードを扱うことも求められています。これら性質の異なるデータ・モデルやワークロードを扱うにはどのような実装が必要でしょうか。この連載では、開発者の皆様がシステム・アーキテクチャやアプリケーション・コードをより洗練させるのに役立つデータベース・マネジメント・システム(DBMS)の基を振り返り、実装に合った技術の組み合わせを解説します。 第1回はデータベースにアクセスするAPIで最も広く使われているSQLという言語の実行モデルを再確認します。なぜこの言語がリレーショナル・モデルのみならず他のデータ・モデルに対しての操作にも使われるようにな

    開発者が知っておきたいSQLの実行モデル~アプリからデータベースへのアクセスを高速化するには?
    honeybe
    honeybe 2021/06/19
  • カード業界の厳しいセキュリティと開発スピードをどう両立? Kyashに学ぶAWS活用

    急成長中のスタートアップ企業は、多様なAWSサービスをどう選択・活用し、ビジネス課題を解決しているのでしょうか。連載では、スタートアップ企業の中でエンジニアリングをリードしている担当者がそのアーキテクチャをひも解き、AWS活用術を紹介していきます。第5回はKyashでSREを担当する上原佑介氏が担当、テーマは「セキュリティ」です。記事の最後には、SAによるポイント解説もあります。(編集部) はじめに 株式会社KyashでSREを担当する上原佑介と申します。新卒でインフラエンジニアとしてサーバー構築・運用を経験したのち、Webサービスの運営企業を数社経て、Kyashへ入社しました。現在はサービス全体の信頼性向上を目指して、システム基盤や運用面の改善に取り組んでいます。 Kyashについて Kyashはスマートフォンアプリと連動するVisaカードです。 コンビニなどから現金をチャージして使え

    カード業界の厳しいセキュリティと開発スピードをどう両立? Kyashに学ぶAWS活用
    honeybe
    honeybe 2020/08/24
  • ソフトウェア開発の「品質vs.スピード」、本当は何を犠牲にしているのか【デブサミ2020】

    デブサミ2020の1日目、「質とスピード」というセッションが人気を集めた。2019年10月に開催されたEngineering Organization Festival 2019で評価の高かったセッションをアップデートして再演したものだ。登壇したのは、テスト駆動開発者として有名な、タワーズ・クエストの和田卓人氏。ライオンのアスキーアートといっしょに紹介されることが多いという。プロジェクトマネジメントにはQCD(Quality:品質、Cost:コスト、Delivery:納期)という概念があり、トレードオフの関係になると言われている。確かに開発の現場でも、「いまは大事な時期だから、品質を犠牲にしてスピードを優先しよう」といった判断が行われることは少なくない。しかし、和田氏は、ソフトウェア開発の文脈において、逆の効果をもたらすことを、多くの資料を引用して再構築してみせた。 タワーズ・クエスト株式

    ソフトウェア開発の「品質vs.スピード」、本当は何を犠牲にしているのか【デブサミ2020】
    honeybe
    honeybe 2020/07/03
  • GitHub、複数のプログラミング言語に対応した「Super Linter」リリース

    CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

    GitHub、複数のプログラミング言語に対応した「Super Linter」リリース
    honeybe
    honeybe 2020/06/24
  • AWS、「Amazon EKS」料金を半額に引き下げ、クラスタ1時間あたり0.10ドルで利用可能に

    CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

    AWS、「Amazon EKS」料金を半額に引き下げ、クラスタ1時間あたり0.10ドルで利用可能に
    honeybe
    honeybe 2020/01/25
  • 並列処理に関数型…でも学習コストは高くない!? Web開発者のためのElixirのススメ【デブサミ2019】

    ErlangのVM上で動作する関数型言語「Elixir」。Ruby風とも言われる文法のわかりやすさと、大量の並列処理を安定的に実行できる特徴から、近年ではゲームSNS、コンテンツ配信などのWebアプリケーション開発で採用される事例も増えている。とはいえ、RubyPythonなどに比べるとマイナーな言語で、Elixirを扱えるWeb開発者もまだまだ少ないのが実情だ。比較的歴史の浅い言語であるうえ、「並列処理」や「関数型」といった特性に対する敷居の高さ、学習コストへの懸念から、開発者に敬遠されやすい一面もあるだろう。gumi CTOの幾田雅仁氏は、Elixirに対するそういったイメージは「誤解」であり、むしろ「学習コストのわりに恩恵が大きい言語」だと主張。その根拠を示しながら、Webシステムの開発にElixirを使うメリットや、入門者向けに最適な学習法などを紹介した。 講演資料:これをまだ

    並列処理に関数型…でも学習コストは高くない!? Web開発者のためのElixirのススメ【デブサミ2019】
    honeybe
    honeybe 2019/05/08
  • エンジニアのための勉強会「Oracle Code Tokyo Night」を覗いてみた~企業システムにブロックチェーンを導入するなら何を考慮する?

    「オラクルが夜な夜なエンジニア向けの勉強会を開催している」というと「Oracle Databaseのチューニング?」と想像してしまうが、違う。「じゃあJava?」「それともMySQL?」、いやいや、オラクルのテクノロジーだけとは限らない。新たなエンジニア向けの勉強会コミュニティが育ちつつある。 日オラクルが新たな勉強会を立ち上げた目的は? 現在「Oracle Code Tokyo Night」と題する、エンジニアを主体とした勉強会がほぼ毎週のペースで開催されている。最初の半年間は試験的に運営し、昨年12月のOracle Code Tokyo 2018をきっかけに格的に開催するようになった。日オラクルが主催しているものの、「オラクルのテクノロジーに限定しない、デベロッパーによるデベロッパーのためのデベロッパー向けコミュニティ」とうたう。エンジニアが興味を持つような旬のテーマを採りあげる

    エンジニアのための勉強会「Oracle Code Tokyo Night」を覗いてみた~企業システムにブロックチェーンを導入するなら何を考慮する?
    honeybe
    honeybe 2019/04/26
  • Ansible、Vagrant、Packerを用いたAWSの開発/本番/ステージング環境の構築

    はじめに 受託開発において、比較的小規模なフルスクラッチのWebシステムを開発する場合、インフラ関連の工数の中でWeb/アプリケーション(AP)サーバの構築に対する工数が比較的多くなってきます。 また、複数のプロジェクトにおいて、同じような作業を繰り返し実施する必要があり、手作業で構築を実施する場合、繰り返し実施する中で手順書が修正され続け、いわゆる「秘伝のタレ」となり再現性が失われるケースが多々あります。 稿では、開発環境及び番/ステージング環境において、Web/APサーバを構築する際に「再現性があり」「繰り返し利用が可能で」「短時間で構築が可能な」方法として、Ansible、Vagrant、Packerを用いた実践方法をご紹介します。 Ansible、Vagrant、Packerの役割 Ansible、Vagrant、Packerは既に多くの事例でも採用されているため、ご存知の方も

    Ansible、Vagrant、Packerを用いたAWSの開発/本番/ステージング環境の構築
    honeybe
    honeybe 2019/01/17
  • 技術顧問だから、VPoEだからこそできること――社外の知見を社内の文化として浸透させるためには?

    2015年8月、Yahoo! JAPAN開発部長やクックパッド技術部長を務めていた井原正博氏を技術顧問に迎え入れ、エンジニアマネジメント責任者を務めていた是澤太志氏と力を合わせて開発体制の刷新および事業領域の拡大を図っていたSpeee。2017年11月末に是澤氏がSpeeeから離れ、改革を進めてきた2人の業務を引き継いだのは今年5月、SpeeeにVP of Engineering(VPoE)として入社した大場光一郎氏である。現在では引き継ぎが進み、井原氏も現在は週1回の出社頻度となり、徐々に技術顧問として関わる機会が減っているという。技術顧問とVPoE、それぞれの立場だからこそ、できること、できないこと。そして、井原氏から大場氏へ橋渡しをしていった際のエピソードについて、両名に話を聞いた。 カウンターパートであるVPoEがいるから技術顧問が生きる 2018年5月1日、デジタルコンサルティン

    技術顧問だから、VPoEだからこそできること――社外の知見を社内の文化として浸透させるためには?
    honeybe
    honeybe 2018/12/30
  • 100万円未満でAmazon Goを再現!? 「横田deGo」の開発秘話とAmazonの文化に迫る

    2018年1月22日。「Amazon Go」の1号店がアメリカ・シアトルにオープンした。Amazon Goはレジに人がいないコンビニだ。棚から商品を手に取り、そのまま持ち去ることが可能となっている。このプロダクトに感銘を受け、果敢にも「100万円未満」で無人レジの仕組みを作ろうと試みたのが、クラスメソッド代表取締役の横田聡氏だ。社内のエンジニア有志を募り、プロジェクトはスタートしたという。いかなる試行錯誤の末に、クラスメソッド版の無人レジである「横田deGo」は生まれたのか。Developers.IO 2018の「Amazon文化をハックせよ。100万円未満で無人レジの仕組みを作ってみた ~横田deGoプロジェクト~」にて、横田氏がその歩みをふり返った。 講演資料:Amazon文化をハックせよ。100万円未満で無人レジの仕組みを作ってみた ~横田deGoプロジェクト~ クラスメソッド株

    100万円未満でAmazon Goを再現!? 「横田deGo」の開発秘話とAmazonの文化に迫る
    honeybe
    honeybe 2018/11/22
  • AI、サーバーレス、Dockerなど、Seleniumテストを安定化・スケールさせるためのヒントとは?【SeleniumConf Chicago】

    10月18日から19日にかけて、アメリカ・シカゴでSeleniumConf Chicagoが開催されました。600人を超える開発者が集い、Selenium/Appiumを活用した自動テストについて20以上のセッションが行われました。この記事では、私が聴講したセッションを基に、Seleniumなどの自動テストを安定化・スケールさせるためにどのようなアプローチができるのかをご紹介します。 SeleniumConf Chicago SeleniumConfとは Selenium WebDriver(セレニウム・ウェブドライバー)はクロスブラウザ・クロスプラットフォームでブラウザ操作を自動化できるオープンソースのツールです。今年WebDriverの仕様がW3Cの勧告に到達したことでも話題になりました。 『「WebDriver」がW3Cの勧告に到達。Webブラウザのテスト自動化などを実現』(Publ

    AI、サーバーレス、Dockerなど、Seleniumテストを安定化・スケールさせるためのヒントとは?【SeleniumConf Chicago】
    honeybe
    honeybe 2018/11/17