タグ

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

  • 生のポインタは使わないで! Modern C++のメモリ管理

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

    生のポインタは使わないで! Modern C++のメモリ管理
    somathor
    somathor 2023/10/20
  • システムプログラミングが得意なRustを学ぶなら今!『詳解Rustプログラミング』発売

    Rustは2006年に開発がスタートし、Mozillaが開発を支援。近年では開発者向けのQ&Aサイト「スタック・オーバーフロー」でも好きな言語ランキングで人気を博しています。 システムプログラミングに適した言語であり、CやC++からの移行を考えている方もいるのではないでしょうか。 『詳解Rustプログラミング』ではRustの基礎や独自機能だけでなく、システムプログラミングのノウハウについても解説されています。 【書で取り上げるジャンル】 ・メモリ操作 ・ファイルとストレージ ・ネットワーク ・時間管理 ・プロセスとスレッド ・カーネル ・割り込みと例外処理 Rustをしっかり学びたいとき、読み通すことで確かな知識を得られる1冊となっています。 目次 第1章:はじめに 第1部:Rust言語の独自機能 第2章:言語の基礎 第3章:複合データ型 第4章:ライフタイムと所有権と借用 第2部:シス

    システムプログラミングが得意なRustを学ぶなら今!『詳解Rustプログラミング』発売
  • React Hooks向けライブラリSWRとは? 通信とキャッシュ管理を簡便に

    対象読者 JavaScriptとWeb開発の基礎に理解がある方 Reactを用いたJavaScriptアプリケーション開発の経験者 前提環境 筆者の検証環境は以下の通りです。 macOS Big Sur 11.2.1 Node.js 15.8.0/npm 7.5.0 React 17.0.1 react-scripts 4.0.2 SWR 0.4.2 React Hooksで通信結果をキャッシュする アプリケーション開発において、外部システムとのIO処理はパフォーマンスのボトルネックになりがちです。特に、ネットワークを介した通信はその最たるものでしょう。これを解決するための手法の一つとして、キャッシュ機構を利用する方法があります。ブラウザにも、HTTPヘッダー経由でサーバーと協調しながらキャッシュの有効期間を設定する手段が用意されていますね。サーバーやブラウザ側でキャッシュを制御してくれる

    React Hooks向けライブラリSWRとは? 通信とキャッシュ管理を簡便に
  • マイクロソフトが新たに提唱する「CAF」成功に基づくフレームワークとは

    企業・組織においてDXの推進が加速している中で、従来よりも柔軟かつスピードのあるクラウドを基盤としたビジネス戦略の策定やサービスの展開が求められるようになっている。その中で、マイクロソフトが提唱しているのが「CAF(Microsoft Cloud Adoption Framework for Azure)」という新たなフレームワークだ。今回は、マイクロソフト主催のイベントに参加し、このCAFとはどのようなものなのか優位性はどこにあるのかを探っていく。 コロナ禍でさらに高まるクラウド需要 クラウドの時代となり企業においてはその環境整備が急務となっている。政府により提唱された「Society5.0」や働き方改革の実現に向け、いわゆるDXが推進され始めたこともあり、企業は従来のITインフラはもちろん自社のIT戦略自体を大きく見直さなければならない岐路に立たされている。 実際に、2020年10月1

    マイクロソフトが新たに提唱する「CAF」成功に基づくフレームワークとは
  • デプロイ時の課題をKubernetes×Helmで解決! サードパーティリソースへのアクセス管理 (1/2):CodeZine(コードジン)

    Kubernetesはコンテナ化されたアプリケーションのイノベーションプラットフォームとして、近年注目されています。Kubernetesを使用すると、コンテナ化されたアプリケーションをクラウド/オンプレミス/ハイブリッド環境で簡単にデプロイして実行できます。そんなKubernetesの躍進を支えたテクノロジーの1つが、Kubernetesアプリケーションのパッケージ化/インストール/管理に使用されるHelmだと言えるでしょう。Talendのクラウドアプリケーションでも、KubernetesとHelmを使用しています。稿では、デプロイ時に発生する課題への対応にKubernetesのリソースとHelmチャートを使用する方法を紹介します。なお、この記事はTalend社ブログから翻訳・転載したものです。 原文:How to Manage Access to 3rd Party Resource

    デプロイ時の課題をKubernetes×Helmで解決! サードパーティリソースへのアクセス管理 (1/2):CodeZine(コードジン)
  • AWSネットワークの論理的な側面 ~ AWSのバックボーンネットワークに関するDeepな話(2)

    こんにちは。アマゾンウェブサービス(AWS)サポートの有賀と申します。好きなサービスはAmazon Virtual Private Cloud(VPC)です。これからAWSサポートの各メンバーがそれぞれ「今一番AWSユーザーに伝えたいこと」を連載の形でお届けしていきます。筆者の担当する稿では、AWSの「ネットワーク」について見ていきたいと思います。今回は、ネットワークの「論理設計」について解説します。 稿でお伝えするのは下記の第2回の内容です。全3回に渡って解説していきます。 AWSのネットワークの物理的な側面 ⇒ 第1回 AWSのネットワークの論理的な側面 ⇒ 第2回 AWSのネットワークにおけるベストプラクティス ⇒ 第3回 AWSのネットワークにおいて過去に発生した問題の事例 ⇒ 第3回 必ずしもAWSの使い方といった内容ではないので、今日すぐに使える知識にはならないかもしれませ

    AWSネットワークの論理的な側面 ~ AWSのバックボーンネットワークに関するDeepな話(2)
  • IoT技術の代表「BLE:Bluetooth Low Energy」の動作原理を理解してみよう【前編】

    注目が高まるばかりのIoT。IoTを支える技術は様々ありますが、記事では2回にわたり、無線通信のプロトコルとして有望株と目されている「BLE」(Bluetooth Low Energy)を取り上げ、それがどのような技術なのかを解説します。技術の動作原理を知ることは、理解を深めるだけでなく、それを応用する幅を広げます。IoTは開発や運用に制約が多いので、基礎となる知識は特に重要です。 IoTで使われる無線通信プロトコルの有望株「BLE」 皆さんもご存じのとおり、今、IoT(Internet of Things, モノのインターネット) と呼ばれる一連の技術が注目を浴びています。 IoTとはその名のとおり、身の回りのあらゆるモノがインターネットにつながることです。センサを利用した温度や位置情報の収集や、離れた機器の操作などがインターネット技術で可能になるため、それにかかるコストは従来よりずっ

    IoT技術の代表「BLE:Bluetooth Low Energy」の動作原理を理解してみよう【前編】
  • Google発の深層学習フレームワーク「TensorFlow」が一般エンジニアに与える可能性

    こんにちは、PyData.Tokyoオーガナイザーのシバタアキラです。先日公開され大きな反響を呼んだGoogle社の深層学習(ディープラーニング)フレームワーク、TensorFlow(テンソルフロー)。今回はPyData.Tokyoのハッカソンイベントで、参加者の皆さんとTensorFlowについて学び、コーディングし、ディスカッションした内容から得た所感を共有したいと思います。深層学習のネットワーク設計という非常に高度な課題は、一般のエンジニアやデータサイエンティストにはとっつきにくいものですが、既存のさまざまな手法やツールがTensorFlowに移植されつつあり、今後ここが深層学習開発の拠点になる予感がしました。 シバタアキラ PyData.Tokyoのハッカソンイベント 前置き~今回のハッカソンを行うに至った経緯 PyData.Tokyoは昨年秋に開始し、第1回のテーマとして深層学習

    Google発の深層学習フレームワーク「TensorFlow」が一般エンジニアに与える可能性
  • ハイパフォーマンスなWebを実現するasm.js/WebAssemblyとは――Mozillaのルーク・ワグナー氏に聞く

    Mozilla主催のフロントエンド開発者のためのカンファレンス「ViewSource Conference」が、北米・オレゴン州ポートランドにて11月2~4日に開催された。セッションのみならず、次世代Webに関するディスカッションも実施された。WebAssemblyの開発を担当し、ディスカッションのホストを務めたMozillaのルーク・ワグナー氏に、WebAssemblyasm.jsの開発の目的について聞いた。 聞き手:近藤佑子(編集部)、矢倉眞隆氏 協力:清水智公氏(Mozilla Japan)、浅井智也氏(同) ルーク・ワグナー(Luke Wagner)氏 WebAssemblyに関するディスカッション情報「Discussion: WebAssembly」 ルーク・ワグナー氏のブログ パフォーマンス向上の他、JavaScriptでできない機能を実現するWebAssembly ――ルー

    ハイパフォーマンスなWebを実現するasm.js/WebAssemblyとは――Mozillaのルーク・ワグナー氏に聞く
  • 知らないなんてもったいない! 障害発生の原因を洗い出すOSSのJavaVM解析支援ツール「HeapStats」を使ってみよう

    避けるべき状況ですが、残念なことにこのようなことは珍しくありません。解析に必要な情報を漏らさず取得するためには、サービス開始前に入念な準備が必要ですが、現実にはそこまで時間をかけられない場合もあり、往々にして準備不足となる場合があるからです。 こういった不幸な状況を防ぐ手段の1つとして、稿では「HeapStats」というツールを利用した障害解析方法を紹介します。 HeapStatsとは 「HeapStats」は、NTT OSSセンタが開発を行い2013年にOSS(オープンソースソフトウェア)として公開したJavaVM障害解析支援ツールです。 Javaアプリケーションにおけるメモリ不足(OutOfMemoryError)やデッドロックといった障害を素早く解決することを目的として開発されました。特に、Javaヒープメモリ内の状態など、従来は高い負荷をかけて取得する必要があった情報を、低オーバ

    知らないなんてもったいない! 障害発生の原因を洗い出すOSSのJavaVM解析支援ツール「HeapStats」を使ってみよう
  • 「Selenium2」テスト徹底活用! Jenkinsによる自動実行とSelenium Grid2による複数環境でのテスト

    シリーズは、WebブラウザをUIとして利用した業務システムやアプリケーション(以下、Webシステム、Webアプリケーション)のテストをテーマとして、Webブラウザを使ったテストを自動化するOSSのツール「Selenium2」を紹介します。業務システム開発の現場で適用してきたノウハウを元に、これまでSelenium2について知らなかった人から以前使った経験がある人まで、より実践的な「使える」内容を盛り込んでいきたいと思います。 1. はじめに 今回は、Selenium2を利用して作成した自動テストをフル活用すべく、JenkinsというCI(継続的インテグレーション)ツールを利用して、Selenium2のテストを自動実行する方法について説明します。また、IE、Firefox、Chrome、Safariなど多様化するブラウジング環境でのテスト方法やテストの並列化についても説明します。 2. J

  • なぜJavaScriptでテストコードを書くのか?

    はじめに 第1回目の稿は、実際にテストコードを書く前に、基的な考え方である「なぜテストコードを書くのか?」を解説します。 対象読者 JavaScriptの基をある程度理解している方 テストコードをこれから書こうと考えている方 頻繁な変化への対応 まずは、開発現場で多く行われている基的な考え方を振り返り、テストコードがなぜ必要なのかを考えて行きたいと思います。 これまでのテストの考え方 まずは、一般的なウォータフォールモデルを例に考えてみましょう。通常ウォータフォールモデルでは、設計→実装→テストという順番で、作ったものを最後にテストします。最後にテストを行うというのは、言い換えると「品質を最後に担保する」と言えます。 また、最後にテストする場合は、通常テスト仕様書などを作成した上で必要なテストパターンを洗い出し、手動でテストを実施します。 変化への対応が求められている スタートアッ

    なぜJavaScriptでテストコードを書くのか?
  • 1