注目のストーリー
テックブログ
テスト設計におけるさまざまな手法
ソフトウェアのテストでは主に、テスト計画、テスト設計、テスト実装、テスト実施、テスト結果報告の流れで進みます。本記事ではその中のテスト設計について手法いくつか紹介したいと思います。ブラックボックステストホワイトボックステスト各手法の例以下のシナリオを元にいくつかの例を出したいと思います。シナリオ: システムのパスワードバリデーションをテストする。パスワードの要件は以下の通りです。 長さ:8文字以上 文字種:英大文字、英小文字、数字、記号の少なくとも3種類を含む同値分割有効クラス 長さが8文字以上 大文字、小文字、数字、記号の少なくとも3種類を含む無効クラス 長さが7文字以下 文字種が2種...
知っておきたいデジタル音声の基本とフォーマット
デジタル音声データの基礎知識:アナログからデジタルへアナログ音声データのデジタル変換アナログの音声データをデジタルに変換する際には、アナログデジタルコンバーター(ADC)を使用します。アナログ信号は連続的な波形で表され、これを離散的な数値データに変換する必要があります。サンプリングレートと量子化ビットデジタルデータではアナログデータのような滑らかな波形をそのまま再現することはできません。そのため、デジタル化の過程ではサンプリングレートと量子化ビットが重要な役割を果たします。サンプリングレートサンプリングレートとは、1秒間に音声信号を測定する回数を示します。例えば、CD音源では44100H...
GoogleAppsScriptをTypeScriptで実装
社内のデータ集計でGoogleAppsScript(以降、GASと表記)を組む機会があり、折角なのでVSCode上でTypeScriptで実装してみました。本記事ではVSCodeを使ってTypeScriptで実装し、GASへ連携する方法を紹介します。概要GASとローカル環境との連携はclasp(GoogleのCLIツール)を使用します。claspでtypescriptをコンバートしてGASへpushすることができますが、typescriptのimportに対応しておらず複数ファイルに分けての開発ができません。この問題を解消するためにbundleしたコードをpushするようにします。プロジ...
C++ で知ってみる動的配列
はじめに私は業務で javascript 言語をメインで使っていて、配列を結構よく使う方だと思います。javascript は一般的にある変数に [] をアサインする事で配列を生成出来て、その配列は基本可変長配列扱いになります。あるロジックを組む時、配列は非常に頻繁に使われるデータ構造なのでその可変長配列の裏でどんな事が行われているか知りたくなりましてそこについて調査した内容をこの記事で共有して行きたいと思います。動的配列とは動的配列は、ランダムアクセスが可能でサイズが可変のリストデータ構造であり、要素の追加や削除ができます。色んなモダンなプログラミング言語は動的配列を標準ライブラリとし...
UnityでOculusアプリを作ってみた(その1)
はじめに 昨年、OculusQuest2を購入しましてVRゲームで遊んできましたが、せっかくハードを持っているなら何か作ってみようと思い、Unityでアプリを作ってみたので本記事ではその内容をまとめていこうと思います。開発環境 UnityHub:3.8.0Unity:2022.3.27f1adb:1.0.41AndroidSDK: 2022.3.1Unity Hubのインストール Unity Hubのダウンロードページからダウンロードします。Unityエディタのインストール Unity Hubを開いて、installsタブ → Install Editorボタンを選択します。最新のUni...
Salesforce認定アドミニストレーター試験に合格するまで
概要弊社では昨年からCRMを導入して顧客管理を行なっています。世界シェアNo.1のCRMであるsalesforceを活用しています。弊社ではsalesforceのコンサルティングパートナーを目指していることもあり、salesforceの認定アドミニストレーターの試験を受けることになりました。コンサルティングパートナーを目指していると言いつつも、まだまだ活用は模索中なので、そういった意味でも運用側が認定アドミニストレーターの試験を受けて知識を固めようという側面もありました。私は二度受験して、二回目の受験(2024/6/15受験)で受かったので、勉強方法やどれくらい勉強したかなどを書き残そう...
Oracle Databaseを利用する際の基礎知識
こんにちは。バックエンドエンジニアの小佐野です。ゼロイチでもエンジニアの技術ブログを始めてみることにしました。まずは、これまでOracleを色々触ってきた経験を元に、データベース(RDBMS:Relational DataBase Management System)の基礎的な考え方を、Oracle Databaseを例に解説していきます。今回はデータベースをある程度使ったことがある技術者向けに、インデックスについて記載します。「インデックスを張ると検索が速くなる」というイメージがあるかと思います。間違いではないのですが、必ずしも速くなるわけではありません。インデックスが効果を発揮するケ...
Spring Boot をvscodeで立ち上げ
こんにちは。バックエンドエンジニアの奥村です。javaの環境構築記事はまだまだeclipseが多いので、今回はvscodeでspring bootの環境構築を行います。事前準備事前にvscodeの拡張をインストールしておきます。以下をインストールしておくことで、補完機能など使えるようになります。Etension Pack for JavaSpring Boot Extension Packspring boot プロジェクト生成コマンドパレットから、Gradleプロジェクトのspring bootを選択しますspring bootのバージョンを選択します。言語を選択します。今回はjava...
【Flutter】Riverpod v2を使ってQiitaアプリを作ってみた
こんにちは。バックエンドエンジニア+アプリエンジニアのYです。今回は、Flutterの状態管理パッケージであるRiverpodを使って、Qiitaアプリを作ってみました。作ったものQiitaAPI(https://qiita.com/api/v2/docs)を使って、Qiitaの記事を一覧表示するアプリを作りました。実装した機能は以下です。・API(Qiita API)でデータ取得・一覧表示・無限スクロール・下に引っ張ってデータ更新https://github.com/zeroichi-inc/flutter_riverpod_v2_sampleこれらの機能は、多くのアプリで取り入れられ...
Oracle Database 統計情報を利用した実行計画の最適化
こんにちは。バックエンドエンジニアの小佐野です。前回に引き続きOracleDatabaseの実行計画と統計情報について解説していきます。実行計画の作成について簡単に説明すると、SQL文をオプティマイザが解釈し、統計情報に基づいて実行計画が作成されます。作成された実行計画に従ってデータベースからレコードを抽出する流れとなります。オプティマイザはOracleDatabaseの機能の1つで、実行計画の作成を担当します。適切な実行計画が作成されないと、SQL文の要求通りにレコードを抽出できたとしても処理時間が増大することになります。実行計画には、テーブルにアクセスする順序、検索の方法(インデック...
VISIONを実現するために、 クリエイティブチームが取り組まなくてはいけない事
ゼロイチで、主にクリエイティブを担当するチームでプロデューサーをしているMです。私たちゼロイチは、「〜Symbiotic Growth〜 共存共栄をテクノロジーで実現する」を会社のVISIONとして掲げています。今回は、このVISIONを実現するために、クリエイティブチームが取り組まなくてはいけない事を、考えてみたいと思います。その前に、「共存共栄」という言葉の意味を調べてみました。何となく、字面で意味はわかりますが…-------------------------------------きょうぞん-きょうえい【共存共栄】二つ以上のものが互いに敵対することなく助け合って生存し、ともに栄...
Spring Boot mockitoの紹介
バックエンドエンジニアの奥村です。今回はSpringBootでserviceのテストをする際にモックを使った方法を紹介します。モックをなぜ使うかユニットテスト(単体テスト)を行うときに、テスト対象のメソッド内にまだ実装完了していないクラスやメソッドがあるとき、モックを当て込めば指定した値を返すので、テストが可能になります。そのため、テストファーストの実装ではモックを使って効率的に実装を進めることができると思います。mockitoについてmockitoはユニットテストのモックフレームワークです。依存関係にあるクラスをモックすることができます。コントローラ > サービス > DAOという構成...
eccube4のカスタマイズ eccubeとは編
ゼロイチにてバックエンドエンジニアを担当しておりますMと申します。今回はeccube4系のカスタマイズの基礎を紹介しようと思います。そもそもeccubeとは何か?EC-CUBE(イーシーキューブ)は、株式会社イーシーキューブ(EC-CUBE CO.,LTD.)が開発するオープンソースのEC向けコンテンツ管理システム(CMS)である。出典: フリー百科事典『ウィキペディア(Wikipedia)』いわゆる無料で使えるオープンソースのECサイト構築パッケージです。まずはデフォルトで、どのような機能が搭載されているか確認します。■管理画面・ホーム・商品管理・受注管理・会員管理・コンテンツ管理・設...
Vitepressでの簡単なブログ作成
なんでVitepress?いろいろなブログ作成のサービスやフレームワークが存在してますが、今回はVitepressを軽く紹介したいと思います。VitepressはVueとViteで作られているSSG(静的サイトジェネレーター)です。よくVueを使うのと、過去にVuepressを使ったことがあったので、Vitepressがリリースされたら、気になりました。ちょっと遅いですが、少し遊んでみました。そもそもVitepressはVuepressとなんの関係?Vuepressはwebpackのプロジェクトなので、Viteがリリースされた時にvueコアの開発チームがviteで同じようなものを作りたか...
ソフトウェア視点から見たVAR(ビデオ・アシスタント・レフェリー)
こんにちは。バックエンドエンジニアのOです。今回はワールドカップ2022でも話題となったVAR(ビデオ・アシスタント・レフェリー)について、ソフトウェアの観点から考察していこうと思います。角度のついた画像ではボールがラインを超えたのかどうか、正確に把握することが困難ですが、システムの働きで、複数のカメラの撮影情報やボールに内蔵されたGPSの位置情報をもとに、ボールの位置を正確に把握することを可能としています。このシステムの中で、ソフトウェアは2つの役割を果たしています。1つは、ハード面の誤差を補正する役割です。GPSなどの装置で測定された位置には誤差が含まれるため、そのまま計算に使用する...