イノベーション エンジニアブログ


株式会社イノベーションのエンジニアたちの技術系ブログです。ITトレンド・List Finderの開発をベースに、業務外での技術研究などもブログとして発信していってます!


このエントリーをはてなブックマークに追加
  1. 単純だけど数の多いif分岐をFactory Methodパターンでテストコードまですっきり

    はじめに どうも、bigenです。 以前デザインパターンを勉強して、勉強しっぱなしだったんですが、最近その知識が業務に生きたのでここでご紹介します。 使ったのはFactoryMethodパターンで、数が多いIF分岐をすっきりリファクタリングできました。 前提条件:PHP7, Laravel5, phpunit リファクタリングしたいコード 今回リファクタリングしたい機能は、弊社メディアのITトレンド内で用いられる短縮URL機能です。 https://it-trend.jp/i/xxxx のような形式(xxxx部分は数字)でURLを生成し、アクセスすると予め登録されたページへリダイレクトするというものです。 リダイレクト先のページの種類によって必要なパラメータやセッション情報が変わるため、リダ…

    on bigen, Factory Method Pattern

  2. FW移行プロジェクトのLaravel,Golangの開発環境について考えてみる(Docker)

    みなさんこんにちは こへです。 そろそろ、開発環境周りについていろいろ語りたい時期がきましたので記載 どんなプロジェクトか? FW移行 サーバサイド Laravel フロントサイド Vuejs バッチ Golang 環境 Docker DB Postgres9系→10系へ table構成も変更 インフラ Kubernetes Gitリポジトリ構成 1つのリポジトリですべてを管理するにはあまりにもでかい golangとdocekrとlaravelとdocker-compose関係は触るメンバーが別々なので依存をなくしたいということで、 リポジトリを5つ使用&submodule化 DevEnv (以下のリポジトリ+docker-compose) Online (Laravel,Vue) Bat…

    on kohe, Docker, git

  3. GoogleSpreadSheetで文字列から数字のみを抽出する方法のひとつ

    困ったこと/したいこと 数値の分析とかしたいのに元データが文字列で表現されている! このままだと加工できない!! 数値だけ抽出したい!! そんなことありますか?ありませんか?・・・そうですか 今回のデータ Excelか何かのデータをインポートしたてみたいな感じ! アウトプットイメージ 簡素! E列の数値を出すのが今回のメインです! 今回E列に書いた式 =LOOKUP(10^18,ARRAYFORMULA(LEFT(対象文字列,COLUMN($1:$1))*1)) 解説 COLUMN($1:$1) 数値だけの配列をセットすることができます。 1,2,3,4といった並びです。 見かけ上は「1」と表示されます。 ただ単に昇順の数値配列が欲しいだけなので、 「$1:$1」じゃなくても「A1:Z1」…

    on ozasa, GoogleSpreadSheet, Excel

  4. gRPCをJavaとRubyで試してみた

    概要 gRPCとは、RPCを実現するためにGoogle社が開発したプロトコルです。 REST APIとよく比較され、 HTTP/2対応の次世代のAPIインターフェースだなんて話を聞いたことがあります。 そもそもRPCとは何かと言うと、 remote procedure callの略だそうで、 日本語だと「遠隔手続き呼出し」と呼ばれるそうですが、 プログラムから別のアドレス空間(通常、共有ネットワーク上の別のコンピュータ上)にある サブルーチンや手続きを実行することを可能にする技術 ということだそうです。 以下参考にいたしました。 https://en.wikipedia.org/wiki/GRPC https://ja.wikipedia.org/wiki/%E9%81%A0%E9%9A%9…

    on gRPC, Java, Ruby, Shirota

  5. WordPressの投稿内容をMySQLで取得する

    どうも、中村です。 先日WordPressで構築されたサイトを、Laravelにリプレイスする案件をおこないました。 その時に意外とWordPressで投稿していたデータを引き抜くのが大変だったので、共有したいと思います! 新しいテーブル構成 こんな感じのtableを作成しようと思います。 [articles] id int(10) unsigned is_active tinyint(1) //公開・非公開 title varchar(255) //タイトル content text //記事本文 list_…

    on nakamura, WordPress, MySQL, PHP, 投稿

  6. Nuxt × Typescript

    こんにちは。1年目の大竹です。 現在携わっているプロジェクトではNuxtとTypescriptを使用しているのですが、入ってから約2ヶ月がたったで、このタイミングで学んだことをまとめ見たいと思います。 Nuxtとは? NuxtはVue.jsのフレームワークです。 Nuxtを使用することで規約で縛った開発が行えます。 また、Vueでの開発で良く使用するVue routerやVuexが標準で入っているなど便利です。 https://ja.nuxtjs.org/ Typescriptとは? Typescriptオープンソースのプログラミング言語で、JavaScriptに対して静的型付けとクラスベースオブジェクト指向を加えたスーパーセットです。 https://www.typescriptlang…

    on Vue, Nuxt, Typescript, Otake

  7. CPPでソケットプログラミング書いてみた

    Hello~~一年生のアヤンです。 勉強会でPHPでソケットのサーバとクライアントを作ってみましたので、バージョン2のCPPで作ってみました!調べてみるとPHPととても似ていました。 目的 勉強会でPHPでやったソケットプログラミングをCPPで同じく簡単なサーバーとクライエントの連携するネットワークのプログラムを作ってみました。 使ったツール Cloud9のIDE https://c9.io プログラム説明 クライアントの方で4つのステップを分けて、書きました。  ソケット作成 作成したソケットをサーバーに接続 データをサーバーに送る サーバーからの返却 サーバの方で主に5つのステップを使いました。 ソケット作成 ソケットをバインドする クライアントから接続を聞く 接続したらクライアントか…

    on Socket, CPP, AhYung

  8. Vue.jsを使って量子コンピュータの並列演算を再現してみた ~その4~

    はじめに こんにちは、Yuです。 4回目ですが量子コンピュータのお話です。 よろしければ以前の記事もどうぞ。 その1 その2 その3 前回は位相推定問題を解きました。 今回は「ショアのアルゴリズム」を実装し、素因数分解をさせてみます。 ショアのアルゴリズム 量子コンピュータを使って素因数分解を高速に解くアルゴリズムです。 計算の一部に量子コンピュータを使用します。 作ったもの 実際にできたものがこちらになります。 ショアのアルゴリズムの流れは [1] を参照しましたが、 実装したのは量子コンピュータを使う部分以降のみです。 回路部分自体は位相推定問題のものとあまり変わりません。 ユニタリ変換は前回のものとは異なり、 U |y> = |x*y mod M> です。 逆フーリエ変換…

    on JavaScript, Vue.js, Yu

  9. Netlifyを使ってNuxt.jsで作成したPWAアプリを簡単にデプロイする

    どうも。はすみんです。 前回のブログでは、Nuxt.jsの概要について触れました。 http://tech.innovation.co.jp/2018/11/13/Nuxtjs.html 最近Nuxt.jsを使ってWebアプリを作っているのですが、 Nuxt.jsを使うとPWAが簡単に作れます。 また、本番へのデプロイもGitHubやGitlabと連携することにより、簡単に自動デプロイできます。 Nuxt.jsのアプリをどうやって公開しようかと思っていたところ、 Netlifyが非常に簡単にできるらしいとのことで使ってみることにしました。 Nuxt.jsでサービスを作成 まず公式に則ってNuxt.jsでアプリを作ります。 https://ja.nuxtjs.org/guide/instal…

    on Hasumin, Nuxt, PWA, Netlify

  10. アプリケーションログ出力の見直し Golang

    こんにちは。 エンジニアのNew塚本です。 今回は、ログ出力についてのお話をのせたいと思います。 経緯 エラーが発生した際に出力するログに、stackが出力されず解析が困難になると弊社SREにつめられたため。 ごもっとも!なので見直します!! 今回やりたいこと ログにstackを出力する。 修正前 例えば、文字列を数値に変換する関数では、この様に実装していました。 num, err := strconv.Atoi(target) if err != nil { return } エラー判定をして、呼び出し元に返却する。 targetが数値に変換されない"abcde"の様な値の場合には、err(*errors.errorString)には、 strconv.Atoi: parsing "…

    on NewTsukamoto, mac, Golang, seelog, gorm