タグ

ブックマーク / tech-blog.yayoi-kk.co.jp (19)

  • Misoca❤️TypeScript - 弥生開発者ブログ

    こんにちは、@mugi_unoです。 GWはリスと遊んできました。たのしかったです。 さて、長きに渡ってコツコツと手を入れてきたMisocaのフロントエンドですが、 先日、新たに大きな改善を行いました。 というわけで、令和一発目のエントリーは MisocaのフロントエンドTypeScriptを導入したお話です。 🤔なぜTypeScriptを? 金額処理触るの怖すぎ問題 Misocaは請求書の発行・管理サービスという性質上、各所で金額に関する処理があります。 そして、最近はさまざまな事情により修正が頻繁に行われていました。 以前のエントリでもご紹介したレガシーコードのリファクタリングなども該当します。 tech.misoca.jp エンジニアの方なら「おおぅ...」となりそうですが、金額を触る処理というのは怖いものです。 そしてフロントエンドが絡んでくると「ここは文字列?数値?」といった

    Misoca❤️TypeScript - 弥生開発者ブログ
  • 特定のブランチをもとに本番同様の動作確認ができる「レビュー環境」の話 - 弥生開発者ブログ

    こんにちは。tkykです。 みなさん、コードレビューしていますか?今日はMisocaのレビュープロセスで用いられている、とっても便利な「レビュー環境」について紹介します。 Misocaのレビュー体制とその課題 MisocaではPull Request(以下、PR)ベースの開発体制をとっており、必ず他のエンジニアによるPRのレビューを経てから、masterへマージすることになっています。 レビュー時に動作確認をするには、エンジニア各自がローカル環境にブランチをチェックアウトして行うのですが、時にはそれだけでは不都合なケースもあります。 非エンジニアにも動作確認をしてほしい 動作確認をするための条件を整えたい 最終的にはマージされないコードを一時的に追加したい 依存するライブラリのバージョンを変更したい RAILS_ENV=production でビルド・実行したい などなど このようなケース

    特定のブランチをもとに本番同様の動作確認ができる「レビュー環境」の話 - 弥生開発者ブログ
  • Controllerのリファクタリング ~または私は如何にして肥大化していくControllerをやめてDHHによるControllerの書き方を愛するようになったか~ - 弥生開発者ブログ

    こんにちは! Misoca開発チームのめろたん(@renyamizuno_)です! 最近LEGOランドが開園したので行きたいのですが、地味に遠いため行けてないマンです。 最近あった面白いことは、 スマホでスクショとか撮れないなぁと思って色々確認したら、 最近スクショとかカメラ撮れんなーと思ってストレージがいっぱいなのかなぁ と思って見たら 最大が25GBに対してアプリ1TBとかでクソ笑う pic.twitter.com/inymgYrToH— わかり亭めろたん。 (@renyamizuno_) 2017年4月7日 アプリとかキャッシュとかがスマホのストレージ容量をありえないくらい超越してたことです。 はい。 今回は最近ありえないほど大きくなってしまったControllerをいかにリファクタリングしたか*1というのをざっと書きたいと思います。 おおきくなるController どうしても大き

    Controllerのリファクタリング ~または私は如何にして肥大化していくControllerをやめてDHHによるControllerの書き方を愛するようになったか~ - 弥生開発者ブログ
    clavier
    clavier 2017/04/07
  • 技術フェローが名古屋を流していたのでペアプロの手ほどきを受けたら捗った - 弥生開発者ブログ

    Misoca開発チームの黒曜(@kokuyouwind)です。 先日大須演芸場で開催された名古屋Ruby会議03ではTwitterでひたすら実況していました。大喜利が思った以上に大喜利で面白かったです。 お題「みなさんRubocopになってもらって『直しました』といってください。『何を直したんですか?』と聞くので、直したところを答えてください」 須藤さん「直しました」「何を直したんですか?」「RSpecをTestUnitにしました」 #nagoyark03— 黒曜@技術書典2 か-13 (@kokuyouwind) 2017年2月11日 流しの技術フェローに教わったペアプロのコツ 先日、弊社技術フェローのkakutaniさん(@kakutani)からペアプログラミング(以下ペアプロ)のコツを教わり、社内でのペアプロ機運が高まっています。 今回はkakutaniさんから教わった内容のまとめと

    技術フェローが名古屋を流していたのでペアプロの手ほどきを受けたら捗った - 弥生開発者ブログ
  • 及川卓也氏のプロダクトへの想いとプロダクトマネジメント - 弥生開発者ブログ

    こんにちは、Kosukeです。:) IncrementsのQiitaプロダクトマネージャー及川卓也さんがMisocaへいらっしゃったので、インタビューさせて頂きました! (左から共同創業者 松、及川さん、代表 豊吉、Kosuke) 及川卓也氏のプロフィール 一般社団法人情報支援レスキュー隊 代表理事。東京出身。早稲田大学理工学部卒。 専門だった探査工学に必要だったことからコンピューターサイエンスを学ぶ。 卒業後は外資系コンピューター企業にて、研究開発業務に従事。米国マイクロソフトに派遣され、Windowsの開発を行う。その後もWindows関連のプロジェクトに関わっていたが、どうせWindows仕事をするのならと、マイクロソフト株式会社(当時)に転職。 マイクロソフトではWindowsの開発を行い、最終的には日語版と韓国語版のWindowsの開発の統括を務める。 2006年にグーグル

    及川卓也氏のプロダクトへの想いとプロダクトマネジメント - 弥生開発者ブログ
    clavier
    clavier 2017/02/15
  • 読みやすいRSpecを書くためのTips - 弥生開発者ブログ

    こんにちは、黒曜(@kokuyouwind)です。 最近見つけた面白いポケストップは「シーサーに似た守り神(メイドインタイランド)」です。 PokemonGOは飽きてきて、代わりに最新作のサン・ムーンが欲しくなってきました。 アローラロコンかわいいよアローラロコン。あとミミッキュ。 さて、Misocaに入社して一年弱が経ち、RSpecの書き方にも大分慣れてきたのですが、油断すると冗長で複雑なSpecを書いてしまいがちです。 既存のSpecが複雑だと新しいexampleを追加するときにも書きづらくなってしまうため、気づいたらなるべくリファクタリングするように心がけています。 今回は、最近自分が「こういう書き方だと読みやすく保守もしやすいのではないか」と思っているRSpecの書き方について紹介していきたいと思います。 Specを記述する対象と文脈に着目して分割する 最近書くSpecでは、大体

    読みやすいRSpecを書くためのTips - 弥生開発者ブログ
  • gitコマンド派閥 - 弥生開発者ブログ

    Misoca開発チームのmzpです。 開発チームでgitコマンドの使い方について話したら、それぞれ使い方が微妙に違っていることが分かりました。せっかくなので、それぞれの人に、なぜその使い方をしているか聞いてみました。 一時的に変更を退避させる方法 作業を中断するときにするとき、作業中の内容を退避させる方法です。 git stash派 git stash で退避させる派です。 そして再開するときは、 git stash pop で退避させた内容を適用します。 使っている理由は「コミットする内容はキレイに保ちたいので、作業中の内容はコミットしたくない」でした。 適当にコミットする派 適当な内容でコミットし、あとで cherry-pick するなり、 rebase するなりする派です。 使っている理由は「退避した内容をリモートのブランチにpushしたいので、普通にコミットしている」でした。 pu

    gitコマンド派閥 - 弥生開発者ブログ
    clavier
    clavier 2016/02/27
  • feature spec と capybara と CSS3 と 私 - 弥生開発者ブログ

    こんにちは。 開発チームのめろたん(@renyamizuno_)です。 マイブームはダンベルを持ち上げたり、下ろしたりすることです。 最近、学生時代の後輩と新年会して、どうしてもオニオンリングがべたかったので頼んだら じゃがいもをそのまま唐揚げにしたような物体が出てきて困惑しました。 オニオンリングという概念を超越したなにか pic.twitter.com/atYJXASPpm— マスター・めろたん (@renyamizuno_) January 22, 2016 中は生ですごく辛かったです。 はい。 今回はfeature specを安定させた話を書きます。 capybaraとCSS3 Misocaではcapybara-webkitを使ってfeature specを回しています。 ある日機能の追加がありfeature specを追加したのですが、そのfeature specがCIでたまに

    feature spec と capybara と CSS3 と 私 - 弥生開発者ブログ
  • RubyMineでbrowserify-railsライブラリをデバッグしてみた - 弥生開発者ブログ

    sunflatです。あけましておめでとうございます。お正月にAmazon プライムビデオを眺めていたら、Back to the Future 1〜3があったので、去年10月に話題になったよなーと思って見たりしてました。懐かしかったです。 最近、Railsアプリケーションの開発にRubyMineを使い始めました。 年末に browserify-railsというRails用のライブラリをデバッグしたのですが、この時にRubyMineのデバッグ機能が役に立ったので、RubyMineの紹介も兼ねてこの時のデバッグの流れを記事にしてみました。 RubyMineとは www.jetbrains.com RubyMineは、JetBrains社が販売しているRubyRailsの統合開発環境です。 同じくJetBrains社が公開しているIntelliJ IDEA, Android Studio, We

    RubyMineでbrowserify-railsライブラリをデバッグしてみた - 弥生開発者ブログ
  • RailsのObject#tryのソースコードを読んでみた - 弥生開発者ブログ

    はじめに Misocaの開発チームでインターンをしているhmryuです。Misocaでは、Railsによる開発を行っているのですが、開発を進める中で検索しても、ドキュメントを読んでも、わからないことが時々あります。そんなときは、手探りながらRailsのソースコードやコミットログを調べるようにしています。 先日は、Object#tryの挙動でわからないことがあり、いろいろ調べていました。そこで今回は、Object#tryの実装や注意点について書きたいと思います。 Object#tryとは? ActiveSupportのObject#try*1は、「レシーバーがnilの場合でもメソッドを呼び出すことができる」「レシーバーがメソッドを持っていなくても呼び出すことができる」メソッドです。 これを使うと、例えば、 # @personがnilの場合、NoMethodErrorが発生してしまう @per

    RailsのObject#tryのソースコードを読んでみた - 弥生開発者ブログ
  • レビュー依頼前のコミット整理方法 - 弥生開発者ブログ

    Misoca開発チームのmzpです。 新しいMisocaステッカーが完成したので、いろいろな場所で配りはじめました。 今日は、Misoca内でレビュー依頼をする前にやっているコミットの整理について紹介しようと思います。 Misocaの開発の話ですので、GitHubのpull requestベースでのレビューが前提です。 要約 pull requestをレビューしやすくするために、コミットを整理しよう。 方針 最終的な結果だけを残し、途中の試行錯誤の跡を消す 無関係の内容は別のコミットにする 具体的な作戦 自動生成と非自動生成のものは分ける scaffoldで生成されたものや Gemfile.lock 等の自動で更新されるものは、特にレビューする必要はありません。 そのため、それ以外の手で書いた変更とは別のコミットとは別にしておくとよいです。 試行錯誤の跡を消す PR内で発生したバグの修正コ

    レビュー依頼前のコミット整理方法 - 弥生開発者ブログ
  • rspec_retry に Pull Request を送ってマージしてもらえた - 弥生開発者ブログ

    こんにちは、sunflat です。最近プライムビデオが始まったので、24とごちうさ第1期を見始めました。 Misocaのプロジェクトでは、rspecによる自動テストを行っています。 今回は、rspecの機能拡張である rspec-retry というgemのリポジトリに、Pull Request を送ってマージしてもらえた話を書きます。 rspec-retry とは rspec-retry を使うと、spec(rspecで実行されるテスト)のexample(テスト項目)が失敗した時に、再度そのexampleを実行(リトライ)することにより、確率的に失敗するspecの失敗確率を低下させることができます。 Misocaのspecの中には、capybaraを使い、ブラウザの挙動をシミュレーションして統合テストを行うものがあります。capybaraを使ったspecのいくつかは、実行されるタイミング等

  • ソースコードを読むときの3つのステップ - 弥生開発者ブログ

    はじめに はじめまして。お盆明けからMisocaでインターンをしているhmryuです。Misocaにジョインする前は、個人でサービスを作ったり、研究でプログラムを書いたりしていました。 一方で、チームで開発する経験はあまりなく、Misocaにジョインした始めの頃は慣れないことばかりでした。中でも、他人の書いたソースコードを読んで理解することが、一番大変だったかもしれません。 そこで今回は、機能追加・変更を加えるためにソースコード*1を読む上で、僕が大切だと感じた3つのステップについて書きたいと思います。 1. 機能とソースコードの対応を調べる まず、自分が変更を加える機能がどんなもので、どこに実装されているのか理解する必要があります。実際にサービスを動かして、どんな機能なのかを確認します。その後、その機能がソースコードのどの部分に対応するのかを調べます。 例えば、メール送信について調べる場

    ソースコードを読むときの3つのステップ - 弥生開発者ブログ
  • ぼくのおすすめGem その2 - 弥生開発者ブログ

    こんにちは。 Misoca開発チームのめろたん(@renyamizuno_)です。 最近のマイブームは脚の毛を剃ることです。 前回に引き続きMisocaで使っている便利・おすすめGemを紹介します! hirb github.com rails consoleでレコードの結果を表示することがよくあると思います。 ですが、 [#<User id:1, name: "merotan">, ……… のように表示されてとても見づらく、わかりにくいですね。 そこでこの hirb を使いましょう! Gemの追加 Gemfileにhirbと日語を表示するためにhirb-unicodeを追加して、コンソールでbundle installします。 group :development do gem "hirb" gem "hirb-unicode" end 使い方 rails console で Hirb.

    ぼくのおすすめGem その2 - 弥生開発者ブログ
    clavier
    clavier 2015/07/03
    ぼくのおすすめGem その2 - Misoca開発ブログ
  • Rails 4 + gonでときおりcontrollerのテストが失敗する問題への対応 - 弥生開発者ブログ

    こんにちは、Misoca開発チームのmzpです。 先週は友人の家に泊り込んでWWDCのライブストリームを見ていました。 MisocaではRailsJavaScriptでの値の共有にgonを利用していますが、ときおりcontrollerのテストが失敗するという奇妙な現象に遭遇しました。今日は、その話について書きたいと思います。 要約 テストケースごとに Gon.clear を呼べば解決する。 もうちょっと長い要約 gonはrequest store gemを使って値を保存する controllerのテスト内では、request storeは予期した動作をしない 明示的に Gon.clear を呼べば回避できる gonとは gonはRailsJavaScriptで値を共有するためのgemです。 具体的には、Railsgon.user_role = "admin" とのようにすると、Ja

    Rails 4 + gonでときおりcontrollerのテストが失敗する問題への対応 - 弥生開発者ブログ
  • ぼくのおすすめGem その1 - 弥生開発者ブログ

    こんにちは。 Misoca開発チームの下っ端のめろたん(@renyamizuno_)です。 好きな飲み物はメロンソーダです。 アイスがのっていると、なお良しです。 今回はMisocaで使っている便利・おすすめGemを紹介したいと思います! letter_opener github.com アプリでアカウント登録時にメールを送信する。とか、アプリからメールを送信するといったことは多くあると思います。 しかし開発用にメールサーバーを立てるのも手間ですし、メーラーでメールの文面を確認するのも面倒です。 そこでこのletter_openerというGemを使いましょう! letter_openerを使うことで、メールの内容をブラウザ上で確認することができます。 Gemの追加 Gemfileにletter_openerを追加して、コンソールでbundle installします gem "letter_

    ぼくのおすすめGem その1 - 弥生開発者ブログ
  • Phoenix Framework (Elixir)でReact.jsのTutorialを写経してみる - 弥生開発者ブログ

    主夫在宅パートのeitoballです。暖かくなってきて、洗濯物の乾きが早くなってうれしいこの頃です。 はじめに 前回、Phonenix Framework (以下、Phoenix)上で、React.jsが動作する環境を構築しました。今回は、React.jsのTutorialを写経してみます。 Tutorialを写経する 前提条件 前回からの続きとなります。ソースは、前回と同じく GitHub (https://github.com/eitoball/react_phoenix_demo/tree/tutorial_commentbox) にあります。 新しいバージョン(0.13.1)のPhoenix Frameworkがリリースされたので、更新したいと思います。プロジェクトが依存するライブラリは、mix.exs内のdepsに定義されています。更新するには、mix deps.update <

    Phoenix Framework (Elixir)でReact.jsのTutorialを写経してみる - 弥生開発者ブログ
  • Phoenix Framework (Elixir)で React.jsを動かしてみる - 弥生開発者ブログ

    主夫在宅パートのeitoballです。レガシーといえば、StarCraft IIの新作Legacy of the Voidの発売が待ち遠しいこの頃です。 はじめに Pragmatic Programmerで、Dave Thomasさんは、1年に1つ新しいプログラミング言語を学ぼうと提唱しています。1年ごとではないですが、時折、新しい言語を学んでいますが、ここ最近学んだ言語ので、Elixirは、とても気に入っており、できるだけ使っていこうと思っています。 今更ですが、React.jsをElixir製のWebフレームワークであるPhoenix Framework(以下、Phoenix)上で動かしながら学ぶことにしました。このフレームワークが開発中のためか、React.jsを動かす例などは見つからない、もしくは、古くて動かないため、今回、最新版(0.13.0)で動くようになったので、その手順を共

    clavier
    clavier 2015/05/21
    Phoenix Framework (Elixir)で React.jsを動かしてみる - Misoca開発ブログ
  • Rails 5 の足音 - 弥生開発者ブログ

    こんにちは、Misoca開発部のtaiki-tです。 名古屋に引っ越して半年が経ちました。良いところですね。 さて、GWも終わってしまいましたが、2015年は9月にシルバーウィークがあるので、それまで頑張りましょう。 今回は、RailsConf 2015で紹介されたRails 5 についての話を少し紹介したいと思います。 Rails5から加わる主な機能 ActionCable Turbolinks 3.0 Rails API ActionCable ActionCableの「Cable」は、WebSocketを表します。 WebSocketというcableでユーザとアプリケーションをつなげる、というコンセプトに基づきます。 WebSocketと聞いてピンときたかもしれませんが、ActionCableは、Railsにリアルタイム通信の仕組みを取り入れるものです。 これまではRailsでリアル

    Rails 5 の足音 - 弥生開発者ブログ
    clavier
    clavier 2015/05/11
    Rails5の足音 - Misoca開発ブログ
  • 1