タグ

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

  • JavaScript/TypeScriptランタイム「Deno 1.20」がリリース

    Deno 1.20」では、通信レイヤを最大60%高速化するように最適化すべく、Rust procマクロを活用して既存のRustコードから高度に最適化されたV8バインディングを生成することで、JavascriptRust間のパフォーマンスを向上している。 DenoのネイティブHTTPサーバがレスポンスボディの自動圧縮をサポートするようになったほか、コードのベンチマークとしてdeno benchサブコマンドとDeno.bench() APIが追加された。また、コードベースの開発に固有のカスタムコマンドを定義および実行するための新たなタスクランナとしてdeno taskサブコマンドが追加されている。 さらに、Denoの設定ファイルにおいてインポートマップファイルを指定できるようになるとともに、HTTPS要求において証明書と秘密鍵を物理ファイルとしてディスクに保存することが非推奨となった。また

    JavaScript/TypeScriptランタイム「Deno 1.20」がリリース
  • そのテスト、正しく設計できていますか? テスト技法ツール「GIHOZ」を活用したAPIテスト設計【デブサミ2022】

    マイクロサービスアーキテクチャの普及や、Webブラウザのほかモバイルやスマートスピーカーなどクライアントチャネルの多様化もあって、Web APIを前提としたシステムが増加している。当然、Web APIのテストも現場では大きな課題になってくるが、株式会社ベリサーブの朱峰錦司氏は「なぜ、そのテストを実行するのか、全員で共有できているチームはどれほどあるだろうか」と疑問を抱く。そして正しいテスト技法を少し覚えるだけでも、個々のテストに対する理解はぐっと深まるという。テスト技法の初歩を、実演も交えて解説してくれた。 株式会社ベリサーブ 研究企画開発部 サービス開発課 課長 朱峰錦司氏 テスト作りの過程を言語化するツールがテスト技法 朱峰氏は「今はソフトウェアプロダクトを1回作って終わりという時代ではない。プロダクトをどんどん進化、変化させていく時代だ」と指摘し、この状況に対応するために書いたテスト

    そのテスト、正しく設計できていますか? テスト技法ツール「GIHOZ」を活用したAPIテスト設計【デブサミ2022】
    ko-ya-ma
    ko-ya-ma 2022/03/15
    デシジョンテーブル関連
  • イラストではじめる「Kubernetesってなに?」~Kubernetesが求められる背景と解決できる課題とは

    連載ではKubernetesの簡単な説明からはじまり、開発者の方にとってKubernetesを利用することで何が嬉しいのか、どのように開発フローが変わっていくのかについて、イラストを交えながら紹介します。今回は、Kubernetesとは何か、どんな特徴があるのかについて解説します。 はじめに はじめまして。サイボウズ株式会社のあおい(@_a0i)です。最近Kubernetesという単語を聞くシーンが増えてきましたよね。もともとインフラに関わっていなかった開発者の方でも、身近で聞くことが多くなってきたのではないでしょうか。 しかし、「最近Kubernetesについてよく聞くけれど、なんだろう?」「Kubernetesを使ってみたいけれど難しそう、どこから始めればいいかわからない」こう言った悩みを抱えている方もいると聞いています。連載ではKubernetesの簡単な説明からはじまり、開発者

    イラストではじめる「Kubernetesってなに?」~Kubernetesが求められる背景と解決できる課題とは
  • 脱レガシーコード!すべての開発者が単体テストを書く文化を作るまでの取り組み【デブスト2021】

    マイケル・C・フェザーズ著の『レガシーコード改善ガイド』によると、「単体テストのないコードはレガシーコード」だという。大手企業に広く支持されている人事システム「COMPANY(カンパニー)」を開発しているWorks Human Intelligenceも、これまで結合テストに頼った開発フローを採っており、製品開発はザ・レガシーコードと言えるものだった。だが、そんな開発環境が改善され、今ではすべての開発者が単体テストを書くようになったという。Works Human Intelligenceではどのようにして脱レガシーコードを実現したのか。DXエンジニアの寺尾拓氏が2年間に及ぶ開発環境の改善への取り組みを語った。 株式会社Works Human Intelligence DX Engineer 寺尾 拓氏 レガシープロダクトをリファクタリングするために単体テストを整備 「プロダクト開発部門に配

    脱レガシーコード!すべての開発者が単体テストを書く文化を作るまでの取り組み【デブスト2021】
  • JavaScriptテストフレームワーク「AVA 4.0.0」がリリース

    「AVA 4.0.0」では、テストファイルがデフォルトでワーカースレッドにて実行されるようになり、実行速度がわずかに高速化したほか、実験的に搭載されていた、AVAのメインプロセスのワーカースレッドにプログラムをロードして、テストワーカーで実行されているコードと通信する機能である共有ワーカーが正式提供となっている。 また、CLIではテストファイルのサブセットを選択するためのパターンが提供可能になるとともに、.gitディレクトリ(またはファイル)があるディレクトリを見つけるまで、親ディレクトリにある構成ファイルを検索するようになり、スナップショットにはレポートファイルの再生成に必要なすべての情報が含まれるようになったほか、実行に失敗したテストファイルを記録するようになり、再度の実行時に失敗したテストファイルを優先して実行するようになった。 さらに、ESモジュールの完全なサポート、型推論を備えた

    JavaScriptテストフレームワーク「AVA 4.0.0」がリリース
  • 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とは? 通信とキャッシュ管理を簡便に
  • ソースコード検索エンジン「Sourcetrail」OSS化、GitHub上で公開

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

    ソースコード検索エンジン「Sourcetrail」OSS化、GitHub上で公開
  • 小規模な受託開発におけるAWSインフラ環境~工数削減のポイントとセキュリティ (1/3):CodeZine(コードジン)

    連載では、比較的「小規模」な「受託」開発を実施する際のAWS活用の勘所を、実際の開発現場での経験を元に紹介します。大規模な開発では当てはまらない部分もあると思いますが、可能な限りインフラ関連の工数を少なくし、効率的に開発を実施するために、最低限抑えておく実務上役立つ点について、解説します。記事では、小規模なフルスクラッチの業務システムをビジネスとし、開発を実施する際に参考となるAWSのアーキテクチャや工数のかかる工程、留意すべきセキュリティに関するポイントを紹介します。 はじめに 比較的小規模なフルスクラッチのシステム開発(1〜20人月程度)を受託するビジネスとする場合、AWS上に「多層アプリケーション(Web層、AP層、DB層)に即したインフラ環境を構築する」ことが多いと思います。 多層アプリケーションの構成例 このような構成をシステム毎、顧客毎に構築することになりますが、AWSで構

    小規模な受託開発におけるAWSインフラ環境~工数削減のポイントとセキュリティ (1/3):CodeZine(コードジン)
    ko-ya-ma
    ko-ya-ma 2018/11/29
    良さそうな連載
  • 軽量PHPフレームワークSlimは何が「軽量」なのか?~特徴と環境構築

    連載では軽量PHPフレームワークであるSlimを紹介していきます。フレームワークと言えば、重厚長大なもの、いわゆるフルスタックフレームワークが多い中で、あえて軽量フレームワークを取り上げます。軽量ゆえのメリットを味わっていただこうと思います。その第1回である今回は、フレームワークとは何か、Slimとは何か、何がどう軽量なのかといった概要解説とSlimを動かすための環境構築を紹介します。 フレームワークとSlim この連載で紹介していくSlimは軽量フレームワークと言われています。Slimの公式サイトでは「a micro framework for PHP」と表現されています。では、何がどう「軽量」なのでしょうか。そもそも、フレームワークとは何なのでしょうか。そこから話を始めたいと思います。 フレームワークとは フレームワークは、和訳すると「枠組み」や「骨組み」となります。非常に幅広い意味

    軽量PHPフレームワークSlimは何が「軽量」なのか?~特徴と環境構築
  • AWSネットワーク構成図の手動更新がつらい? よろしい、ならばCloudMapperだ (1/3):CodeZine(コードジン)

    連載では、株式会社ビズリーチのエンジニアが、急成長を続ける事業の中で得られた実践的なノウハウをつづります。第3回となる今回は、6月に始めたエンジニアブログ「BizReach Tech Blog」で反響が大きかった記事を加筆修正して掲載します。テーマは「AWSネットワーク構成図の手動更新がつらい? よろしい、ならばCloudMapperだ」です。CloudMapperの紹介と、全自動でネットワーク構成図を作成するための方法をご紹介します。 BizReach Tech Blog はじめに 株式会社ビズリーチで、SREエンジニアとして勤務しているmassです。2017年4月に入社してから、HRMOS(ハーモス)採用管理というサービスのAWSのインフラを管理したり、アーキテクチャの設計・構築をしたりしています。 今回は、入社してから半年経ったら、いつのまにかサービスのネットワーク管理者になってい

    AWSネットワーク構成図の手動更新がつらい? よろしい、ならばCloudMapperだ (1/3):CodeZine(コードジン)
  • 確率統計学を学び直したいなら ついに3編出揃った中井悦司著『技術者のための確率統計学』発売

    機械学習を支える大学数学の一分野、確率統計学。数学を学び直したいと思っているのになかなか始められない方のために、翔泳社では『技術者のための確率統計学』を9月18日に発売しました。『技術者のための基礎解析学』『技術者のための線形代数学』と合わせて学び直すことで、厳密な数学を通して機械学習を理解する土台ができ上がります。 『技術者のための確率統計学 大学の基礎数学気で学ぶ』は、直感的に理解しづらい確率空間の仕組みを理論的に理解することができる1冊。書では確率モデルの目標を「コンピューターの乱数によるシミュレーションで現実世界の不確定な現象を再現する」ことと定めています。 書では基礎となる確率モデルの考え方から解説し、確率モデルを数学的に表現する確率空間をきちんと定義します。そのうえで、条件付き確率などの基的な計算や、確率変数、確率分布の考え方も説明していきます。離散型の確率分布(二項

    確率統計学を学び直したいなら ついに3編出揃った中井悦司著『技術者のための確率統計学』発売
  • 正規表現エンジンを作ろう (1)

    はじめに こんにちは。hirataraです。 私が初めて正規表現を使ったのは、PerlによるCGIでの文字列処理でした。それから私はPerlを使い続け、今では正規表現なしのコーディングは考えられないほど、正規表現を当たり前の機能として日常的に使っています。昔は標準では正規表現をサポートしていなかったJavaも、今では正規表現をサポートするようになりました。Javaだけではなく、今日ではほとんどの高級言語にとって、正規表現はなくてはならない機能であると言っても過言ではないほどメジャーな機能となっています。 記事では、この正規表現の舞台裏に光を当てます。一見すると作ることが難しそうな正規表現エンジンですが、その根底には数学的な概念があり、その概念さえ知っていれば基礎となる機能の実装はそんなに難しくありません。この連載ではその数学的な概念をPythonを使って表現しながら、実際に動作する正規表

    正規表現エンジンを作ろう (1)
  • SeleniumとWebDriverの最新事情~標準化が進み、さらに強力なテストツールへ! その影でSelenium IDEは……

    illustration by iwasawa これまでのSelenium さて、最新事情に触れる前に、記事をご覧の皆様は既によくご存知かとは思いますが、あらためてSeleniumとは何か、そして現在の形に至るまでの道をおさらいしておきましょう。 Seleniumは、Webブラウザの自動操作ライブラリです。人間がWebブラウザでやるような手作業を、自動的に再現できます。単純作業の自動化に利用できるほか、一般的な自動テストフレームワークと組み合わせることでEnd to End(E2E)テストの自動化を実現できます。Webアプリケーションのテスト作業で苦労されている方にとっては福音のようなライブラリですが、自動テストコードや実行環境の維持・実行時間などが大がかりになりがちで、利用コストは高めです。回帰テストの自動化など、繰り返し利用が多い用途への適用が特に効果的でしょう。 Seleniumの

    SeleniumとWebDriverの最新事情~標準化が進み、さらに強力なテストツールへ! その影でSelenium IDEは……
  • 位置情報と連動したAR! Wikitudeで「ロケーションベース型AR」Androidアプリを作ってみよう (1/5):CodeZine(コードジン)

    ARは、スマホのカメラで周囲の風景を映すと、その風景にデジタル的な追加情報(ARオブジェクト)を付与して表示する表現方法です。このとき、どこに追加情報を表示するかの判断を緯度経度といったロケーションをベースとして判断するのが「ロケーションベース型AR」の特徴です。Wikitude SDKを使ってロケーションベース型ARアプリを作成すると、現在位置とARオブジェクトをSDKに渡すだけで、適切なAR表示が実現できます。今回は、その中のロケーションベース型ARについて、Wikitudeを使ってAndroidアプリを作成してみたいと思います。 準備 Androidプロジェクトの作成 Android Studioを起動したら[Start a new Android Studio Project]を選んで、新しいプロジェクトを作成します。今回は、アプリケーション名を「CZ1601Location」とし

    位置情報と連動したAR! Wikitudeで「ロケーションベース型AR」Androidアプリを作ってみよう (1/5):CodeZine(コードジン)
  • インフラ構築をコードで自動化できる「Docker」の魅力――主婦と先生と作家をコンテナ仮想化で両立する阿佐志保さんの生き方

    翔泳社では11月19日に『プログラマのためのDocker教科書 インフラの基礎知識&コードによる環境構築の自動化』を刊行しました。今回、Dockerが大好きだという著者の阿佐志保さんに、書の紹介だけでなくDockerに関わる人生観についてもお話をうかがいました(インタビュー内容は10月21日時点のものです)。 家事、育児、講師、執筆の両立 ――よろしくお願いします。最初に、阿佐さんの自己紹介をお願いできますでしょうか。 阿佐:結婚・出産前は、システムの基盤を構築・運用するエンジニアなどをしていました。インフラの設計構築だけでなく、アプリケーション開発標準化や運用設計など、障害やトラブル以外では表に出ることのない地味な仕事です。毎日、朝早くから終電まで働いていました。仕事が好きだったし、非常に優秀なメンバーに囲まれていたのであまり苦ではありませんでした。 分かりやすくいうと「社畜」です。社

    インフラ構築をコードで自動化できる「Docker」の魅力――主婦と先生と作家をコンテナ仮想化で両立する阿佐志保さんの生き方
    ko-ya-ma
    ko-ya-ma 2015/11/30
    「楽をするためには、どんな努力も惜しまない」……素晴らしい
  • GUIでコンテナ仮想化ツールDockerをつかう「Kitematic」のご紹介

    連載では、業務アプリケーション開発を行う熱血若手エンジニアのために、面倒な作業が楽になる便利なツールをご紹介します。「定時になったらスマートに帰社してアフター5を存分に楽しみたい!」や「設計書やレビューの準備に煩わされるのは嫌だ、コーディングに集中したい!」などを実現してくれる便利なツールやソフトウエアを紹介します。今回は、GUIでコンテナ仮想化ツールDockerをつかう「Kitematic」を解説します。 はじめに ここ最近、「コンテナ仮想化技術」や「Docker」という単語を耳にする機会が増えてきています。しかしながら、そもそもハードウエア/OS/ネットワークなどの基盤技術やインフラプロビジョニングや運用になじみが薄い人にとっては、Dockerはコンテナ仮想化技術を使ったアプリケーション実行環境構築/運用プラットフォームです。インフラ環境も含めたアプリケーションの実行環境をすべてまと

    GUIでコンテナ仮想化ツールDockerをつかう「Kitematic」のご紹介
  • 高速化/単純化/一般化のためのアルゴリズムをパズルで習得。『プログラマ脳を鍛える数学パズル』刊行

    開発環境がどれほど激しく早く変化しても、アルゴリズムの重要性は変わりません。翔泳社ではパズルを解くことでアルゴリズムを習得できる『プログラマ脳を鍛える数学パズル』を刊行しました。書はCodeIQの人気連載「今週のアルゴリズム」の問題を収録し、さらにオリジナル問題を加えたパズル形式のクイズブックです。 開発者は仕様をどのように実装すればいいのか? 一つの仕様に対する答えはいくつも存在します。しかし、できるならプログラムは高速で、単純で、一般化されているほうが優れているといえるのではないでしょうか。 そんなプログラムを実装するには、さまざまなアルゴリズムを知っていて、ときには閃かなければなりません。それができるにはいずれにせよ、どれほど多くのコードを読み、そして書いたかという経験が必要です。 翔泳社では10月13日(火)に、パズルを解きながらアルゴリズムを学べる『プログラマ脳を鍛える数学パズ

    高速化/単純化/一般化のためのアルゴリズムをパズルで習得。『プログラマ脳を鍛える数学パズル』刊行
    ko-ya-ma
    ko-ya-ma 2015/10/13
    おもしろそう
  • 関数型リアクティブプログラミング言語Elmに学ぶ フロントエンド開発の新しい形 【前編】

    前編では、Elm言語の基礎とFRPのエッセンスについてコードを通じて学びます。 後編では、実際にElmを使ってアプリケーションを作る方法と、その際に重要になるアーキテクチャを学びます。 なお、執筆時点でのElmのバージョンは0.15.1です。 注意! Elmはバージョン0.17で大きな変更がありました。現在は「関数型リアクティブプログラミング」のための言語ではありません。 参考:A Farewell to FRP(さらば FRP) また、言語自体のシンタックスやライブラリのAPIも以前とは大きく変わっています。これからElmを始める方は、必ず公式ドキュメントを参照してください。 公式ガイド FRPとは何か リアクティブプログラミングの直感的な説明としてよく挙げられるのが、Excelのような表計算ソフトです。 例えば、セルの間にC1 = A1 + B1という関係があるとします。 このように宣

    関数型リアクティブプログラミング言語Elmに学ぶ フロントエンド開発の新しい形 【前編】
  • ドキュメントがないコードの保守を任されても安心 ~テストコードを網羅的に自動生成するVisual Studio 2015 Enterpriseの「インテリテスト」機能

    システム開発におけるテストの重要性は繰り返し叫ばれるものの、実際にテストを記述するというのは意外に面倒なものです。プログラムを書くのは楽しくても、すべてのケースを網羅するテストコードを書くのは面倒、という方も多いでしょう。Visual Studio 2015 Enterpriseのインテリテスト機能を使えば、プログラム全体を網羅するテストケースが簡単に自動生成できます。また、デバッグに便利ないくつかの新機能についても解説します。 対象読者 テスト開発に興味はありながらも、テストファーストとまでは思い切れない方 ドキュメントもコメントもないプログラムの保守を突然任されて頭を悩まされている開発者 必要な環境 連載では以下の環境でサンプルを実行します。 Windows 7(8、8.1も対応) Visual Studio 2015 RC Enterprise(一部機能はVisual Studio

    ドキュメントがないコードの保守を任されても安心 ~テストコードを網羅的に自動生成するVisual Studio 2015 Enterpriseの「インテリテスト」機能
  • お手軽データバインディングライブラリ「Vue.js」を使いこなそう(基礎編)

    はじめに Vue.jsは、シンプル・軽量・高速という特徴を持つデータバインディングライブラリとして最近注目を集めています。LINE社でもアプリ内WebViewの実装技術の選択肢の一つとしてVue.jsを採用しています。2014年11月27日にリリースされたLINEスケジュールは、Vue.jsを使って実装しているSPA(Single Page Application)の代表例です。 稿は日語記事がまだ少ないVue.jsの基機能の紹介を目的とした「基礎編」として、公式ドキュメントの内容を元に解説します(執筆時点のバージョンであるv0.11の内容です)。 Vue.jsとは Vue.jsは、双方向バインディングによるModelとViewをつなぐ仕組み「ViewModelレイヤー(MVVMパターン)」を提供するJavaScriptのライブラリです。 Vue.jsの基概念は以下のようになってい

    お手軽データバインディングライブラリ「Vue.js」を使いこなそう(基礎編)
    ko-ya-ma
    ko-ya-ma 2015/04/07
    よくまとまっている