oh240のブックマーク (944)

  • 実況中継シリーズ 「開発現場で役立たせるための設計原則とパターン」 #builderscon 2018 - 猫型の蓄音機は 1 分間に 45 回にゃあと鳴く

    先日慶應義塾大学日吉キャンパスで行われた builderscon2018、最高のカンファレンスでしたね。わたしも「開発現場で役立たせるための設計原則とパターン」というタイトルで発表させていただきました。今回は恒例「実況中継シリーズ」として、プレゼンの再現をブログで行いたいと思います。 なお、過去の実況中継シリーズは前職の技術ブログにまとまっていますので、そちらからご覧ください。 それでは編を開始したいと思います。 開発現場で役立たせるための設計原則とパターン アバンパート よろしくお願いします。 まず最初に簡単に自己紹介をさせていただきます。 先月転職をしまして、8/1からClassiという会社で働いています。と息子がおります。Scalaが好きですが、仕事ではRubyメインという感じです。 Web+DB PressやSoftware Designで何度か特集を書かせていただきました。と

    実況中継シリーズ 「開発現場で役立たせるための設計原則とパターン」 #builderscon 2018 - 猫型の蓄音機は 1 分間に 45 回にゃあと鳴く
    oh240
    oh240 2020/03/03
    こういった設計原則とか、パターンだとかはどうやって勉強していけばいいか、身につけていくものなのかが気になった。(一応、GoFあたりなどの有名所は抑えたつもりではあるのだけど…)
  • システム開発で得たRedis利用ノウハウ | フューチャー技術ブログ

    こんにちは。初投稿です。 2012年新卒入社の竹内です。入社当時を振り返るとOracle10g,11gを良く利用していおり、データモデリングなどテーブル設計が好きで、2018年4月ぐらいまでRDBとバッチに浸ってました。 さて、現在プロジェクトでRedisを使っているのですが、いままでRDB人間だっただけにKVSやRedisならではの特徴に四苦八苦してます。 苦しんだ分、色々な知見を得ることができているので、その内容をご紹介します! 対象者 Redisの業務システム導入を検討している方 RDBとRedisの違いを知りたい方 現場的なRedisの利用方法を知りたい方 書いてないこと データ型やコマンドなど、HelloWorld的に公式ドキュメントを見て得られる情報 インストールなど、Redisを利用できるまでの手順 フェイルオーバーやバックアップをはじめとする運用に関する内容 データ永続化に

    システム開発で得たRedis利用ノウハウ | フューチャー技術ブログ
    oh240
    oh240 2019/08/22
    そうかぁ、Hashはmgetできないなぁとかあったわ
  • Ruby の Enumerable#sum - tmtms のメモ

    「最近のruby-core (2016年7月)」に次のような記述がありました。 Enumerable#sum というメソッドが追加されており、特定の場合(浮動小数点数の配列とか)には誤差が累積しないアルゴリズムが採用されています。 Ruby 2.4 に Enumerable#sum が追加されたのは知ってましたが、「誤差が累積しない」というのは知りませんでした。 というか、元々誤差が累積しない加算の目的で追加されたものだったのですね(最近のruby-core (2016年3月))。単純に 「#inject(:+)」にわかりやすい名前をつけただけなのかと思ってました。 簡単に試してみます。浮動小数点演算で、0.1を10個足すと1.0にならないというのはよく知られていますね。 > 0.1+0.1+0.1+0.1+0.1+0.1+0.1+0.1+0.1+0.1 => 0.999999999999

    Ruby の Enumerable#sum - tmtms のメモ
    oh240
    oh240 2019/05/26
  • 「スキルが高くてカルチャーマッチしない人は採用しない」の鉄則を、誰でもわかるように図解する|土居 健太郎

    ---- 2020/05/30追記:この記事でいうカルチャーマッチ(カルチャーフィット、のほうがメジャーのよう)について別でまとめたのでよければそちらも ---- よく見るこういう分類について。 もうほとんど常識と言われているようなことだが、この図では④の「スキル高いけどカルチャーマッチしない人は絶対採用するな」が鉄則だ。 ②は文句なしで採用だ。③は採用したい人はいないだろう。①も、特別高いスキルじゃなくてもそのポジションのスキル要件を満たせていれば全然OKだ。 ここまでは特に問題ないだろう。 しかし慣れない人が見れば、「スキル高い=市場価値も高い」はずなのになぜカルチャーマッチしないだけでそんな扱いを受けなければならないのかと思うかもしれない。 わかりやすく図解する一般的には、スキルが高い人ほど、難しく、重要な仕事を任され、企業の中で影響力を持つことが多いだろう。 一方、カルチャーマッチ

    「スキルが高くてカルチャーマッチしない人は採用しない」の鉄則を、誰でもわかるように図解する|土居 健太郎
    oh240
    oh240 2019/05/26
    エンジニア界隈では採用がレッドオーシャン過ぎて、「そのポジションのスキル要件を満たせていれば全然OK」な人材が来なくて、未経験に近く、スクールしか行ってないような人材が多すぎて困ってる気がする。
  • 【Swift】R.swiftが優秀すぎるので紹介してみる | DevelopersIO

    こんぬづは、Steamのセールでゲームを買ったはいいが、家にネット回線がまだひかれておらずゲーム体のダウンロードすらできていない田中です。 今回は先日発見したR.swiftというライブラリが、導入コストに対する効果が高そうなので紹介します。 このライブラリ、Fabric.appにも導入されている模様です。 Building Fabric.app in Swift 概要 なにができるライブラリ? R.swiftの利点は以下になります。 コード補完でリソースファイルにアクセスすることができる リソースファイル取得時に型も補完してくれる 文字列指定による動的な指定をしなくてよいので静的に解析することができる(コンパイル時にエラーを出してくれる) なにがいいの? リソースファイルにアクセスする際によく取り上げられる問題として、文字列指定によって取得しなければいけない点が挙げられます。 これはTy

    【Swift】R.swiftが優秀すぎるので紹介してみる | DevelopersIO
    oh240
    oh240 2019/03/10
    便利そう!
  • Swiftのfinalについて - Qiita

    概要 class定義の前に"final"ってついているけど、どうしてこういう風に書いてるの?って聞かれたので、自分でも少し曖昧だった部分を調べてまとめました。 finalってなに クラスにfinal修飾子をつけると、継承されるのを禁止できます メソッド、プロパティ、サブスクリプトにfinal修飾子をつけると、サブクラスでオーバーライド(上書き)されるのを禁止できます finalの意味の通り、クラスであれば、このクラス以降、継承されることがない最後のクラスというのを示します。

    Swiftのfinalについて - Qiita
    oh240
    oh240 2019/02/10
    へー、知らなかった!
  • [Swift] DIって何? 実践編 - Qiita

    はじめに DIとは、Dependency Injectionの略で、 日語で『依存性の注入』ということらしいです。 依存性とは? 依存性とは、「クラスAのオブジェクトを動かすためにはクラスBが必要」ということ クラス間で密結合である状態 依存性の注入とは? クラスBがなくても、クラスAが動かせること クラス間で疎結合になるため、下記のようなメリットがあります。 ・カスタマイズしやすい ・テストしやすい ・オーナシップが明確 具体的にどうするか? インスタンス変数にオブジェクトを与えるだけです。 コンストラクターにオブジェクトをセットするか、セッターでオブジェクトをセットするだけです。 実装例 Social.frameworkを利用して、 Twitterまたは、Facebookに投稿する例を利用してご説明します。 1. DIを利用しない場合 (1) Twitterと、Facebook投稿用

    [Swift] DIって何? 実践編 - Qiita
    oh240
    oh240 2019/02/09
  • MedPeerをrails 5.2へアップデートしてました!🎊 - メドピア開発者ブログ

    こんにちは、エンジニアの森田です🌴 rails 5.2.0が発表されたのが2018年4月10日🚃 Rails 5.2.0 final is out the door! Just in time for @railsconf ❤️. Please enjoy Active Storage, Redis Cache Store, HTTP/2 Early Hints, CSP, Credentials, and more! https://t.co/z4VWJTclhc— DHH (@dhh) 2018年4月9日 大分遅くなってしまいましたが、2018年10月18日にメドピアが運営する医師専用コミュニティサイト「MedPeer」を、rails 5.1.6からrails 5.2.0にアップグレードしていました🎊 今回は、アップグレードを行った手順や躓いた部分を今更感もありますが紹介いたしま

    MedPeerをrails 5.2へアップデートしてました!🎊 - メドピア開発者ブログ
    oh240
    oh240 2019/02/03
    “テストの無い管理画面に立ち向かう”この項サラッと書いているけど、これめちゃくちゃ参考になったし、テストない案件にすぐ使えるからうちも真似したい。
  • Railsは2019年も「あり」か?#3 短所と不向きな用途、他の選択肢など(翻訳)|TechRacho by BPS株式会社

    2019.01.31 Railsは2019年も「あり」か?#3 短所と不向きな用途、他の選択肢など(翻訳) #1: 統計を調べる #2: Railsの長所と向いている用途 #3: Railsの短所と不向きな用途、他の選択肢など(記事) Railsの短所 不運にもRuby on Railsの人気に陰りが生じつつありますが、人気の下落にはそれなりに深刻な理由がいくつかあります。理由が致命的なものとは限りませんが、ものによってはプロジェクトで厄介な問題を引き起こす可能性もありえます。 1. パフォーマンス これについては触れないわけにはいきません。Railsはスピードにおいて強者ではありません。処理速度が極端に高く、サーバーのメモリ消費も少ないものが必要な場合、Ruby on Railsは明らかに不向きです。もちろん、これはあくまで極端な場合であることを忘れてはなりません。数百万ユーザーをさば

    Railsは2019年も「あり」か?#3 短所と不向きな用途、他の選択肢など(翻訳)|TechRacho by BPS株式会社
    oh240
    oh240 2019/02/03
    だいたい昔から言われてきたことだとは思ってる。てっきり型についての言及があるもんだと思ってたけど。(型で最近痛い目にあった)
  • Railsは2019年も「あり」か?#2 Railsの長所と向いている用途(翻訳)|TechRacho by BPS株式会社

    2019.01.29 Railsは2019年も「あり」か?#2 Railsの長所と向いている用途(翻訳) #1: 統計を調べる #2: Railsの長所と向いている用途(記事) #3: Railsの短所と不向きな用途、他の選択肢など Railsを使っているアプリ(2019年版) 実際のところ、相当たくさんあります。 This is pretty amazing. Both GitHub and Shopify are huge, billion dollar companies running on the original apps made over a decade ago. And they now both on the latest Rails, helping to push the framework forward 🙏🌟👏 https://t.co/DsWqCjy

    Railsは2019年も「あり」か?#2 Railsの長所と向いている用途(翻訳)|TechRacho by BPS株式会社
    oh240
    oh240 2019/02/03
    RDBMSが必要なプロトタイピングにおいてはRailsはまだまだ現役だと思う。
  • Railsは2019年も「あり」か?#1(翻訳)|TechRacho by BPS株式会社

    #1: 統計を調べる(記事) #2: Railsの長所と向いている用途 #3: Railsの短所と不向きな用途、他の選択肢など 追記(2019/04/26) 特に他の言語やフレームワークの方には、Rails Developers Meetup 2019で発表された以下のスライドもご覧になることをおすすめいたします。 概要 原著者の許諾を得て翻訳・公開いたします。 英語記事: Who gives a F*** about Rails in 2019? 原文公開日: 2019/01/15 著者: Wojciech Miśta 原文が長いため3分割してあります。 日語タイトルは原文タイトルではなく内容に即したものにしました。 画像は元記事からの引用です。 Railsは2019年も「あり」か?(翻訳) もう認めようではありませんか、Ruby on Railsが年を取ったことを。いや当に長生き

    Railsは2019年も「あり」か?#1(翻訳)|TechRacho by BPS株式会社
    oh240
    oh240 2019/02/03
    確かに世の流れがサーバーサイドはマイクロサービスだったりで、JSONやgRPCを喋れればとりあえずOKみたいな感じで、フルスタックなフレームワークはいらなくなってきつつあるかもしれない。
  • 技術的負債への後悔と返済|Seiji Takahashi@ベースマキナ

    反省文。 tl;dr・「後から改善すれば良い」のスタンスは、返済コストを甘く見積もっている結果 ・負債の返済にはコーディング以外の工数が大きくかかってくる ・技術的負債を"徐々に"返済することは様々な面で良い 出社即リファクタリング最近出社した直後に、こっそりリファクタリングの時間を一定程度取るようにしている。朝のウォーミングアップがてら改善作業をしていると、瞑想みたいな効果があって大変気分がよくなるし、その後のコーディングも生産性が上がる。大体こういう気分。 具体的な作業は、アーキテクチャの方針が固まってなかった時代のコードの1つのエンドポイントだけ、適切なレイヤ化を施したり、単体テストが可能なメソッドとして切り出しつつ実際にテストを書いたり、テストに必要な共通処理を定義したり、だ。 初期から機能追加を重点的に行ってきたプロダクトでは、スピード優先の名目で多くの負債が生まれる。こうした負

    技術的負債への後悔と返済|Seiji Takahashi@ベースマキナ
    oh240
    oh240 2019/01/28
    はいすみません
  • 文系でプログラマーになったけど色々失敗して3年半で会社を辞めた話|denkigai

    2018年12月31日、新卒入社して3年半勤めた会社を辞めた。東京の八重洲にある、フリーペーパーやWebサービスを作る会社で働いていた。いわゆる「文系プログラマー」というやつで、文系学部を卒業後、会社に入ってからプログラミングを覚えた。現在は退職してフリーランスになり、個人で開発しつつ、ずっと漫画を描いている。 3年半のあいだ、大きく分けて2つの失敗をした。 1. プログラミング入門の仕方に失敗した 2. プログラミングを覚えてから何をすればいいかわからなかった 前者の失敗の結果、プログラミングを投げ出して京都に逃亡した。後者の失敗では精神を病み、3ヶ月休職をすることになった。前者は笑い話だが、後者は人生に暗い影しか落とさない。これからプログラミングを始めようと考えている人には同じような失敗を避けてほしい。そういう願いも込めてこの文章を書いている。 ※「文系プログラマー」という表現は適切で

    文系でプログラマーになったけど色々失敗して3年半で会社を辞めた話|denkigai
    oh240
    oh240 2019/01/23
  • Good Tech Lead, Bad Tech Lead|Takayuki Sano

    HRTech領域で「若者の価値を最大化する」事業を展開している株式会社Traimmuというスタートアップで共同創業者・CTOをしている佐野です。 突然ですが「Tech Lead(テックリード)」というポジションをご存知ですか? Twitterの投票機能でアンケートをとってみたところ、約35%がテックリードになりたい、そして約半数がテックリードについてよく知らないとのことでした。 cf.) https://twitter.com/yppon_s/status/1086106209424306177 現在、弊社で「テックリード」ポジションのエンジニアを絶賛募集中なのですが、自分自身もテックリードとして働いた経験がなく、どういったエンジニアがテックリードとして相応しいのかを考えたり調べたりしている中で、Jason Liszkaさんの記事「Good Tech Lead, Bad Tech Lead

    Good Tech Lead, Bad Tech Lead|Takayuki Sano
    oh240
    oh240 2019/01/19
  • 既存システムにキャッシュを組み込んだら苦労した話 - istyle Tech Blog

    もう12月も中盤に差し掛かりましたね。 お世話になっております。 アイスタイルでマネージャーをやっておりますsakumayです。 稿はAdvent Calendar 2018 13日の記事となります。 アイスタイル1年生であり、今年の7月から新米マネージャーとして 先日開催された弊社のECセールイベント『@cosme Beauty Day』に立ち向かった話をしたいと思います。 背景 僕らのチームが抱えるサービスは歴史の長い共通基盤API群の開発をしております。 歴史が長くこのAPIが落ちると、いろんなサービスが止まるリスクがあります。 『@cosme Beauty Day』は他のアドベントカレンダーでもご紹介がありましたが、 弊社の売り上げの10%を1日で稼ごうという目標のもとに立ち上げられたセールイベントです。 イベントの発表が7/20でしたので、だいたい4ヵ月ぐらいの開発期間でした。

    既存システムにキャッシュを組み込んだら苦労した話 - istyle Tech Blog
    oh240
    oh240 2018/12/23
  • OAuth 2.0 + OpenID Connect のフルスクラッチ実装者が知見を語る

    はじめに この文書では、OAuth 2.0 + OpenID Connect サーバーをゼロから一人で実装した開発者(私)が、得られた知見について書いていきます。基的には「実装時に考慮すべき点」を延々と述べることになります。 そのため、この文書は、「素早く OAuth 2.0 + OpenID Connect サーバーを立てる方法」を探している方が読む類のものではありません。そのような情報をお求めの方は、「Authlete を使って超高速で OAuth 2.0 & Web API サーバーを立てる」を参照してください。そちらには、「何もない状態から認可サーバーとリソースサーバーを立て、アクセストークンの発行を受けて Web API をたたいて結果を得る」という作業を、所要時間 5 ~ 10 分でおこなう方法が紹介されています。 文書のバイアスについて 私は、OAuth 2.0 + Ope

    OAuth 2.0 + OpenID Connect のフルスクラッチ実装者が知見を語る
    oh240
    oh240 2018/10/20
  • 未来に登録したActiveJob実行をCancelする方法 - Qiita

    RailsのActiveJobで未来に登録したJob実行をキャンセルしたい。 ActiveJobの標準的な機能としてサポートされているかと思ったのですが、そんなことなかった。 今回はジョブ実行にSidekiqを使っているとし、キャンセルにはSidekiqのAPIを使います。 job = MyJob.set(wait_until: Date.tomorrow.noon).perform_later(record) job.job_id # これがjobを特定するid require 'sidekiq/api' # 実際はinitializers/sidekiq.rbに入れるかも ss = Sidekiq::ScheduledSet.new # スケジュールされたジョブの一覧を取得 ss.find { |job| job.args[0]['job_id'] == job.job_id}.del

    未来に登録したActiveJob実行をCancelする方法 - Qiita
    oh240
    oh240 2018/05/12
  • どんどん使いづらくなるEvernoteのWebクリッパーの代わりに、僕はこれを使い始めた。

    2013年9月頃、ChromeアドオンのEvernote Webクリッパーが6にバージョンアップしました。 公式のブログでは、 こんな発想から、人気の Evernote Web クリッパー for Chrome を全く新しくデザインし直すことにしました。機能面で大幅にパワーアップしながらも、使い方は驚くほどシンプルです。 というように記されているのですが、このバージョンアップで、正直なところかなり使いづらくなってしまいました。 理由はいくつかありますが…正直残念なバージョンアップすぎるので、どうしようかな…と考えた結果、別の方法でクリップをすることにしました。 使いづらい理由3点セット 使いづらくなった大きな不満点は3つ。 まずは『単純に動作が重たい』こと。 以前のバージョンまでは、サクサクとクリップしてはEvernoteへ情報を放り込めてたのに、バージョン6になってから動作が重たくなって

    どんどん使いづらくなるEvernoteのWebクリッパーの代わりに、僕はこれを使い始めた。
    oh240
    oh240 2018/05/12
  • 大公開!初心者でもわかるAidemy社内インフラの全容とその設計思想 | Aidemy | 10秒で始めるAIプログラミング学習サービスAidemy[アイデミー]

    インフラって初学者にとってかなりブラックボックスですよね。 インフラ構成なんて会社の業態やサービス形態によって様々なので、初心者にとってどれが重要なのかわかりにくい(そもそもあんまり公開されてないし)。また、調べてみても各サービスの個別的な情報ばかりで、なかなか社内インフラの設計思想のような体系的な情報はでてきません。なにより、何から理解すればいいのかわからないので地道に勉強するのがめんどくさい! そこで、先日Microsoft社で行われたハックフェストに参加し、マンツーマンでインフラ構成について教えていただきました! ハックフェストで教わったことを踏まえ、Aidemyのインフラ構成を例に、重視しているポイントや、用いているサービス・ツールについて、インフラに触れた経験のない人でもわかるように解説していきたいと思います。 Microsoftオフィスでのハックフェストの様子 Aidemyのイ

    大公開!初心者でもわかるAidemy社内インフラの全容とその設計思想 | Aidemy | 10秒で始めるAIプログラミング学習サービスAidemy[アイデミー]
    oh240
    oh240 2018/05/04
    決済WebhookをFunctions Appで受けて処理しているけど、この構成図のデータベースってRDBMSなんだろうか。
  • そーだいさんの転職のお知らせ - そーだいなるらくがき帳

    私信ですが今日、最終出社日なのでご連絡します。 以下の通りです。 From: はてな CRE To: オミカレ 副社長/CTO 関係各位に感謝を申し上げます。 ありがとうございました。 以上です。 よろしくお願いします。 なぜ はてな を辞めるのか まぁ1年ちょっとで出戻りなんでネガティブに見えがちなんだけどHatenaって会社にネガティブな感情は全然無くて感謝の気持ちでいっぱいです。 じゃあそれに勝るくらいオミカレが魅力的だったか?というとそれも違って、エンジニアとしてみて、プレイヤーとしてみて、Hatenaの方が魅力的だし、そもそも国内でも有数の優良企業です。 むしろオミカレはスタートアップだし課題が多い会社です。 僕はオミカレ起業当初のスターティングメンバー(CTO)なのである程度内情を知っている上で比較しても多くの人はHatenaを選ぶと思います。 それでも僕がオミカレを選んだのは

    そーだいさんの転職のお知らせ - そーだいなるらくがき帳
    oh240
    oh240 2018/03/26
    正直、他の転職エントリーよりもいいなと思いました。