タグ

ブックマーク / medium.com (23)

  • Hibernate/JPAからExposed DAOに乗り換えて、継承クラスを扱いやすくした話

    こんにちは。AnyPay CTOのTomo( HAIL )です。記事は、Qiita Kotlin Advent Calendar 2018 16日目の記事です。 最近書き始めたKotlinサーバでは、JetBrainsSQL FrameworkであるExposedをつかいはじめました。もうJava/Kotlinではサーバを10年弱ぐらい書いていて、これまではなんだかんだHibernateを使っていたのですが乗り換えました。Exposedは他社さんでも既に番での利用事例が見受けられるものの、ドキュメントが結構少ないので、弊社のサーバでどのようにモデル周りの設計をしているかと、継承クラス周りでありがたがっていることを書きます。 まず前段として、Exposedではテーブル定義を object にて行います。 object Users : IntIdTable("users") { val

    Hibernate/JPAからExposed DAOに乗り換えて、継承クラスを扱いやすくした話
    hoppie
    hoppie 2022/05/05
  • お名前.comからGoogleDomainsにドメイン名を移管してみた

    こんにちは、かめねこです。 タイトル通り、ドメイン名の移管をしてみたって話です。 気づいたら、管理しているドメイン名が5つになっていて、結構フランクにドメイン名を契約していたなぁと。そんな中、実はこれらのドメインのレジストラはお名前.comとGoogleDomainsのそれぞれで別々に管理していました。 実際のネームサーバーはGCPのCloud DNSを中心に、例えばさくらのクラウドで利用しているものであればさくらのクラウドのDNSAWSならRoute53というように環境ごとに分けてて管理しています。なので、日常的な運用面では特に問題があるというわけではなかったりします。 移管のきっかけ複数のレジストラで管理することあまり大きな問題はないのですが、やはり請求先や管理先がバラバラというのが地味に面倒だったりします。特定のドメインの設定を確認・変更しようと思ってコンパネにログインしてみたら、

    お名前.comからGoogleDomainsにドメイン名を移管してみた
    hoppie
    hoppie 2020/10/05
  • Pairsの検索システムについて

    この記事は「eureka Advent Calendar 2019」17日目の記事です。 16日目はPairs JP iOS Teamの木村(Muukii)による「SwiftUIに適したアプリケーション設計を思考する」でした。 UIKitを用いて開発していたiOSアプリに新しく登場したSwiftUIはアプリ開発をどのように変化させるのか、というところについてMVVMやRedux/Fluxなどのキーワードをもとにアプリ設計(アーキテクチャ)の側面についてお話します。… こんにちは!こんにちは! APIチームのコジマ(@__bsoo )です。 今回はPairsの検索システムについて、勉強会やブログで小出しにしてはいたのですが、全体像をまとめて紹介したことが無かったのでこの機会に紹介できればと思います。 ※サービスの性質上内容を一部ぼかしている箇所があります。ご了承ください。 ■ システム構成ま

    Pairsの検索システムについて
    hoppie
    hoppie 2020/08/02
    構成図の例としてブクマ
  • 【いでよ障害対応太郎】我々はインシデントにどう向き合っているのか 〜社内向け障害対応リスト付き〜

    「なんかアプリでインシデント起きてエンジニアがどこかで対応してるらしいよ」 「インシデント時のお知らせって誰がどうやって出すんだっけ?」 「インシデントの復旧作業って今どれくらい終わってる?」 「あのインシデントって振り返りしたっけ?」 「似たようなインシデント、前も対応したような、していないような」 このような会話に覚えはありませんか? FiNC Technologies社 (以下FiNC) では今まで インシデント対応をしていても自チーム内で対処しようとしてしまい、他の人が気づけないインシデント対応の仕方にフォーマットがなく、迅速な対応やお客様への報告ができないインシデントの振り返りが実施されず、インシデント時の知見が共有されないという問題がありました。 それらの問題を 気が付きやすく、シェアしやすくする = 統一のチャンネルで情報を整理し、そこにシェアしやすい空気を作る何をすべきかわ

    【いでよ障害対応太郎】我々はインシデントにどう向き合っているのか 〜社内向け障害対応リスト付き〜
    hoppie
    hoppie 2020/07/26
    良い..... / 良いこといっぱいあるんだけど、対応する人の負荷が下げられるのが良い
  • 金融を“サービス”として再発明するための技術スタック

    こんにちは。Finatextでエンジニアのマネジメントをしている河です。 当社は「金融を“サービス”として再発明する」をミッションとして掲げ、ビジネスの成長とともに技術領域も拡大させてきました。 エンジニアチームは今、私たちが「BaaS (Brokerage as a Service)」と呼んでいる証券サービスのためのシステム基盤と、そのBaaS上のサービス開発に力を注いでいます。 今回は、そんな当社の技術スタックについて紹介したいと思います。 開発環境・CI/CDGitHubSwaggerSonarCloudPostmanTerraformAWS CodeBuildAWS CodePipelineコードはGitHubで管理され、API 仕様管理には Swagger が使われています。SonarCloud を用いてソースコードの健全性やテストカバレッジの可視化を行っています。API開発の

    金融を“サービス”として再発明するための技術スタック
    hoppie
    hoppie 2020/06/30
  • Cloud Run を最速で触ってみる

    Cloud Run とはGoogle Cloud Next 18では serverless containers on the Google Cloud Functions infrastructure + GKE Serverless addonと説明されたものですね。 早速、こちらのQuickStartやってみましょう 事前に必要なことプロジェクトを作成する(既存のプロジェクトを利用することもできます。終了後の後片付けを考えると新しくプロジェクトを作っても良いです)プロジェクトのbillingを有効にするCloud Run APIを有効にするCloudSDKのインストール済み/設定済みであることcomponentsのupdateと、beta componentsのinstallが必要です。コンポーネントをupdateするgcloud components updatebetaコンポーネ

    Cloud Run を最速で触ってみる
    hoppie
    hoppie 2019/04/12
  • The Benefits of Materialized Views (and how to use them in your Ruby on Rails project)

    When I first heard about materialized views, my mind was kind of blown. “So, I can write a SQL query and the results can be stored as its own table (and live on disk?)”. If that puppy lives in-memory, it’s GOT TO BE faster then having to dig into the deep, dark depths of the database. Right? Yeah, it’s true. Grabbing data from disk, just sitting there, ready for you, is pretty fast. But when is it

    The Benefits of Materialized Views (and how to use them in your Ruby on Rails project)
    hoppie
    hoppie 2018/11/25
    まてびゅー
  • What’s new in Ruby 2.6? – Tailor Tech – Medium

    Ruby 2.1 was released on Christmas 2013 and the tradition followed since with each new version released in the following Christmas, what leads me to believe that Ruby 2.6 will be released next month. So let’s see what’s new in this version of Ruby. UpdateWOW I never imagined that Matz himself would thank me on stage at Rubyconf in his opening keynote and drive this post forward. Thank you Matz for

    What’s new in Ruby 2.6? – Tailor Tech – Medium
    hoppie
    hoppie 2018/11/14
  • How we halved our memory consumption in Rails with jemalloc

    One of the earliest projects I was involved in at Valiant was investigating ways to optimise performance and memory consumption in our Rails web application. Although I had heard the age-old complaints about Rails applications being slow, bulky and prone to memory bloat, I had yet to come across any practical, easy-to-navigate solutions to these issues. Until we discovered jemalloc. In this blog p

    How we halved our memory consumption in Rails with jemalloc
    hoppie
    hoppie 2018/10/19
  • FiNCにおけるデータ分析グループの役割の変化 ~FiNC から FiNC Technologiesへ~

    こんにちは。FiNCデータ分析グループの坂です。私はFiNCの初期フェーズからかかわっており、FiNCデータ分析グループのなかで最古参のメンバーです。初期フェーズから参画しているため、アプリの成長とともにいろんな経験をしてきました。 ご存知の方も多いと思いますが、FiNCは予防ヘルスケアにおける世界一のテクノロジーカンパニーを目指すため、2018年10月1日から社名をFiNCからFiNC Technologiesに変更しています。 データ分析グループの役割も、FiNC時代とFiNC Technologies時代で当然変わってきています。このポストでは、FiNCデータ分析グループの歴史を振り返りながら、データ分析グループの役割にどのような変化があったのか、フェーズごとに紹介していきます。 ① プロダクトリリース前分析グループの役割:リリース後に計測するKPIの策定・分析基盤の構築 プロダク

    FiNCにおけるデータ分析グループの役割の変化 ~FiNC から FiNC Technologiesへ~
    hoppie
    hoppie 2018/10/16
    あとでよむ
  • AWSにおけるマイクロサービスのオートスケーリング -Part1 – FiNC Tech Blog – Medium

    1. イントロダクションFiNCでは、機能追加、バグ修正、技術負債の解決などの開発活動の大幅な増加に対処するため、マイクロサービスアーキテクチャを採用しています。 FiNC のほとんどのサービスでは Ruby on Rails を使用しており、Amazon ECS で、コンテナ化したアプリとしてデプロイしています。 モノシリックアプリケーションと同様に、マイクロサービスも、ピーク時にはスケールアウトし、そうでない時にはスケールインする必要があります。(言うまでもなく、スケールアウトはより多くのリクエストに対応することであり、スケールインはコンピューティングリソースを解放し、コストを節約することです。) この記事では、私たちがFiNCで採用している方法について説明します。 2. インフラアーキテクチャインフラアーキテクチャは大凡以下のようになっています。 図1 インフラ・アーキテクチャリアル

    AWSにおけるマイクロサービスのオートスケーリング -Part1 – FiNC Tech Blog – Medium
    hoppie
    hoppie 2018/10/01
    SIGTERM受け取ってからSIGKILL受け取るまでに猶予があるから、それまでにキューを戻すか仕事を終わらせるかすれば ワーカータスク維持ツールは不要な気がしたけど違うのかな。
  • 3週間で48,000行のコードをこの世から抹消した話 – FiNC Engineering Blog – Medium

    qsona (twitter) です。以前、7,600行のコードを安全にこの世から抹消した話 という記事を投稿しましたが、今回はそれよりもずっと泥臭い話を書きたいと思います。あまりテクニカルな話はありませんが、現場における取り組み・試行錯誤の経過を読んでいただければ幸いです。 たくさん消しました、がんばりました〜背景肥大化するRailsサービスFiNCはマイクロサービスを指向しており、主にRuby on Railsで書かれたサービスが30個ほど存在します。しかし、FiNCアプリのメインとなるRailsのサービスは、テーブル数800を超える大きなサービスになっています。 FiNCのサービスは2014年から書きはじめており、かなり初期の段階(2015年)からマイクロサービス化を意識してきました。にもかかわらず1つのサービスが肥大化している理由はいくつかあります。 最初の1〜2年ですでに大量のコ

    3週間で48,000行のコードをこの世から抹消した話 – FiNC Engineering Blog – Medium
    hoppie
    hoppie 2018/09/21
    偉業っぽい
  • ヒカカク!をRails5.2.1化したら、なぜかコントリビュータになった話

    kojiです。みなさんバグを踏むのは好きですか? 僕は正常にうごくプログラムが大好きな一般のエンジニアですが、歩いていればバグに当たるタイプというか、周囲のみんなが快調に実装を進めている中、ひとりレアアイテムを引き当てて半日を棒に振る程度には彼らに愛されています。 Photo courtesy of amanda tipton — creative commons licensedジラフの開発チームでは「RubyRailsなどの技術スタックは常に最新バージョンを使うようにしよう」という方針があるのですが、CTOいわく 「だって、その方が新しいバグを拾えるでしょ」 ということだったので、デキるエンジニアはバグが好きなんだな…と思うことにして毎日自分をなぐさめています。 そんな僕が、先日ヒカカク!をRails5.2化する作業をしていたら、bootsnapのバグを踏み抜いてしまい、幸運にもコン

    ヒカカク!をRails5.2.1化したら、なぜかコントリビュータになった話
    hoppie
    hoppie 2018/08/13
  • TechBlog運用の難しさとHERPでの考えについて(TechHub公開に寄せて)

    HERPの技術発信の場として、HERP TechHubをリリースしました。会社のドメイン上ではなく、個人のブログのHubとしてのページを作成する形をとっています。 それに至った背景について書いてみたいと思います。 TechBlogのあり方を考えてみるTechBlogの目的と内包している問題について、エウレカでTechBlogの開設・運用をリードした経験から得られた課題も踏まえて考えてみる。 TechBlogの目的 従来のTechBlogの開設・運用の目的は以下の3つにまとめられると思う。 ブランディングを通じた採用力の向上エンジニアの個人ブランディングエンジニア全体・技術貢献ブランディングを通じた採用力の向上 エンジニア採用においては情報発信は欠かせない。もちろん一番大事なのは良いUXを提供できるプロダクトを作り、その品質を上げていくことだが、それだけでは社外の人間からして技術への考え方や

    TechBlog運用の難しさとHERPでの考えについて(TechHub公開に寄せて)
    hoppie
    hoppie 2018/03/16
  • ワンオペ育児がやってきたヤァ!ヤァ!ヤァ!

    さて、「ワンオペ育児」という単語を聞いたことはあるかと思います。読んで字のごとく、一人で子育てをすることです。牛丼チェーンのワンオペで深夜対応すると言うところから転じてできた言葉だと思いますが、僕自身仕事がら海外出張1週間とか結構あるので、出張中「ワンオペ育児辛い」という疲弊したメッセージがから届くこともしばしばありました。 まぁ、そうは言っても仕事だし仕方ないよねと思いながら申し訳ない気持ちでいっぱいだったのですが、幸か不幸かが利き手を手術し数ヶ月使えないという展開になりました。そう、僕のもとにもワンオペ育児がやってきたのです。 我が家は、小学校低学年1人と幼稚園児が1人という4人家族です。実家はお互い現在居住地から遠く、ヘルプはあてにできない状況。今でこそ包丁は握れないけど、力のいらないことならできるようになってきたので、かなり分担できていますが、術後当初は二人いる子供の面倒を見な

    ワンオペ育児がやってきたヤァ!ヤァ!ヤァ!
  • 在宅ワークで運動量をいかに確保するか

  • Gyazo の Web API の設計変更 - r7kamura - Medium

    業務委託として現在 Nota 社の Gyazo のサーバサイドの開発をお手伝いさせてもらっているのですが、その中でやっていることについて幾つか紹介したいと思い、今回は開発環境で全面的に Docker を使うようにしたという話について書こ… ここでは、Web ブラウザやその他のクライアントから HTTP を介して利用し、JSON などのデータフォーマットでクライアントアプリケーションとやり取りを行うようなエンドポイントのことを Web API と呼んでいます。 Jbuilder からの移行これまでのコードでは、JSON を生成するために Jbuilder というライブラリを使っていました。これは DSL を用いて JSON を生成するライブラリで、Rails の場合は ActionView と協調して動きます。 Jbuilder からの変更の理由は幾つかあるのですが、主要な理由を挙げると、以

    hoppie
    hoppie 2017/12/26
  • KubeCon2017感想: Kubernetes in 2018 – deeeet – Medium

    先週12月6日から8日にかけてTexas Austinにて開催されたKubeCon + CloudNativeCon2017に参加してきた.具体的なセッションの内容などはMercariのTech blogに上がると思うのでここでは簡単に自分なりの感想と概観をざっくりと吐き出しておく. KubeCon 2017の3日間と今後のKubernetesの(大きな)展望は2日目のClayton Coleman氏によるKeynoteのWhat’s Next? Getting Excited about Kubernetes in 2018が総括をしていると思う.自分の今取り組んでること,今後取り組みたいこと,も結局これに集約されていると思う.この発表の中で今後,特に直近の2018年に,k8sでフォーカスが当てられると述べられていたのは以下の7つの分野である. The year of service m

    KubeCon2017感想: Kubernetes in 2018 – deeeet – Medium
    hoppie
    hoppie 2017/12/18
  • 子育てエンジニアの自由時間がない件について

    この記事はぼくのあどべんとかれんだー10日目の記事です。 今日はまったくコーディングの時間がとれなかったので、速攻でこの記事を書いて終わります。 うちはエンジニア夫婦で1歳半の子どもがいます。お互いフルタイムで働いています。まだ子どもにすごく手がかかるため個人の自由時間はほぼない状態が続いています。ではどうやってこれまでのアドベントカレンダーの記事を書いてきたかというと、夜子どもを寝かしつけ、それから自分が寝るまでの時間に書いていました。平日は当然昼間は仕事があるので、記事は書けません。休日はというと、むしろ平日よりも自由時間は少ないです。 例えば、今日どういう時間の使い方だったかというと、 朝7時半ごろ子どもとともに起床、おむつを変えたあと、奥さんが朝ごはんを子どもにあげて、その間にぼくはトイレ等済ませます。子どもの朝ごはんが終わったら、奥さんが朝ごはんをべるので、ぼくが子どもの面倒を

  • RuboCopを無理なく既存プロジェクトに導入する

    TL;DR- RuboCop良いよ - 入れるだけだと誰も使わないよ - 運用フローに入れると良いよ - 千里の道も一歩からだよ RuboCopとはRuboCopはコーディング規約に従っているかをチェックし、コードの品質を保ってくれるgemです。 RuboCopのイメージ例えば以下のようなrubyとしてはあまり良くないコードだった場合に、RuboCopはルールに沿って問題点の指摘や自動修正を行ってくれます。 これ以外にもRuboCopは多様なルールをサポートしており、その中にはバグりやすいコードを回避するようなルールもあります。 RuboCopを使う事でコーディング規約に沿っていないコードや、バグを含んだコードを自動である程度抑制でき、レビュー等でそれらの指摘する手間を大きく削減できます。 導入方法gem install rubocop するか、Gemfileに書いてインストールしてくださ

    RuboCopを無理なく既存プロジェクトに導入する
    hoppie
    hoppie 2017/06/09