タグ

ブックマーク / engineer.crowdworks.jp (40)

  • 安全にRailsを更新するためにモンキーパッチをたくさん作った話 - クラウドワークス エンジニアブログ

    クラウドワークスの弓山 (@akiray03)です。 前回のブログに引き続き、Rails3からRails4にアップグレードした際に行った工夫をご紹介したいと思います。前回の記事を未読の方は、合わせてどうぞ。 engineer.crowdworks.jp 今回は、「モンキーパッチ」に焦点をあてて、取り組みを紹介します。安全な並行稼動を実現するために、いくつかのモンキーパッチを作成しました。作成したモンキーパッチを振り返ってみると、以下のように分類することができます。 Rails3/4並行稼動時に、双方を分離するためのモンキーパッチ Rails3/4並行稼動時に、双方の振る舞いを揃えるためのモンキーパッチ Rails3の振る舞いをRails4と揃えるためのモンキーパッチ (Rails3側にパッチを当てた) Rails4の振る舞いをRails3と揃えるためのモンキーパッチ (Rails4側にパッ

    安全にRailsを更新するためにモンキーパッチをたくさん作った話 - クラウドワークス エンジニアブログ
  • Rails3/4並行稼働の仕組みと実際にやってみて良かったこと悪かったこと - クラウドワークス エンジニアブログ

    クラウドワークスのエンジニアの森田(@minamijoyo)です。 ついにRails5がリリースされましたね。今日はRails5じゃないですけど、Rails3/4並行稼働させた話をしようと思います。Railsバージョンアップを検討している方々の参考になれば幸いです。 はじめに 去る2016/03/28 「Rails Upgrade Casual Talks」というイベントでRails3/4並行稼働させる仕組みを作ってる話をしました。 イベントの模様はエンジニアブログにきびたん(@ctokoro_me)がまとめてくれてるのでこちらを参照して下さい。 engineer.crowdworks.jp 上記のイベントで発表した内容はこちらです↓ Railsバージョンアップを段階的に行うためにRails3/4並行稼動させる仕組みを作ってる話 from Masayuki Morita www.slide

    Rails3/4並行稼働の仕組みと実際にやってみて良かったこと悪かったこと - クラウドワークス エンジニアブログ
  • Rails4へ移行しましたのご報告とブログ連載のお知らせ - クラウドワークス エンジニアブログ

    Railsをアップグレードするということ *1 大場です。 先週はRails5リリースされたように大きな動きのあったRails界隈ですがいかがお過ごしでしょうか。 2016年3月に弊社セミナールームで開催したRails Upgrade Casual Talksの中でも話題にしていたようにCrowdWorksでは、Rails3からRails4へのアップグレードに取り組んでいました。 Rails5がでたところ今さら感も漂いつつあるかもしれませんが、さる2016年6月13日からCrowdWorksはサービス全体がRails 4.2.6で稼働していますことをここにご報告いたします🎉 *2 根幹となるフレームワークを古いまま使い続けることは、洗練された記法が使えなかったり、高速化最適化が進んだモジュールが使えなかったり*3、周辺gemの対応についていけずに置いていかれるリスクなどが負債となって積み

    Rails4へ移行しましたのご報告とブログ連載のお知らせ - クラウドワークス エンジニアブログ
  • クラウドワークスを支える愉快な仲間たち - クラウドワークス エンジニアブログ

    こんにちは、野村です。今回は趣向を変えて、クラウドワークスを作っているのはこんな人達だよ、ということで、当社開発部門のエンジニアにアンケートを取ってみました。 アンケート配布数は約30、回答数は21でした。 Q1. エンジニア歴は? 比較的若いメンバーが多いですね。 ちなみに自分は上記には含まれておらず、20年選手です (。◉ᆺ◉) Q2. 好きな酒は? 大事な話なので2問目に持ってきました。 ビール … 8票 日酒 … 8票 ウィスキー … 4票 ワイン … 2票 なんとなくエンジニアっぽい結果ですね。エンジニアっぽいですよね。うん、エンジニアっぽい。 その他の回答 ビール・日酒・ウイスキー・カクテル・焼酎・蒸留酒 要は酒ならなんでもよいわけですね。 自家製ラム梅酒 一瞬、酒税法的に大丈夫なのかなと思ってしまいました。 Q3. プログラミングを始めたきっかけは? サービスとか何か作っ

    クラウドワークスを支える愉快な仲間たち - クラウドワークス エンジニアブログ
    uzuki-first
    uzuki-first 2016/06/24
    愉快な仲間たち⊂((・x・))⊃
  • Gitの作業を効率化するためにZshでやっている事 - クラウドワークス エンジニアブログ

    dotfilesいじりが趣味の岩下(@ToruIwashita)です。 今回はzshの補完でこんな感じの動きをさせる話です。 はじめに みなさんはタイポに悩まされる事はありませんか?僕はタイピングする度にタイポを繰り返し、やりたい事をやるための入力に手間取ることに悩み、日々ストレスを感じています。 タイポしないとか、やりたい事をサクッとやるためにはどうしたら良いのか。その答えはタイピングをしない事だと思います。 もし自分の頭とPCをつなげて指を動かさずに入力できたなら、タイポのストレスから開放されるはずなので、早くそういう未来が来ることを切に願います。 が、夢見ているだけでは目の前のストレスは消えないわけで。今現在はそういう技術がまだ手元にないし、じゃあ極力タイピングをしないようにしようと、日々改善活動を行っています。 今回はその活動(dotfilesいじり)の中で、gitに関連する操作の

  • rukawa と bricolage とデータ集計 - クラウドワークス エンジニアブログ

    社内向けツールのコードネームはもっぱら RPG の登場人物の名前をモチーフにしている沢田です。しれっと Rixia (リーシャ) とか Dubarry (デュバリィ) などと名付けられたツールを一部の社内サーバーに放流しているのですが、今のところ誰にも理解されていないっぽい今日この頃です。ちなみに得意技は半キャラずらしです (古い)。 先日 TokyuRubyKaigi というイベントに行ってきました。いや、「行ってきました」というか主催者の一人なんですがw ご存知でない方向けに補足しておくと、TokyuRubyKaigi というのは 余興でライトニングトークもやっている呑み会 美味しいべ物&飲み物を頂きつつ Ruby にかかわるライトニングトーク (以下 LT と略します) を聞くイベントです。このイベントで発表された中でもひときわ異彩を放っていたのが、「Rubyと戯れるOSS DTM

    rukawa と bricolage とデータ集計 - クラウドワークス エンジニアブログ
  • webpackで作るSprockets無しのフロントエンド開発 - クラウドワークス エンジニアブログ

    こんにちは!12月に子供が生まれたばかりの鈴木( @suzan2go ) です。現在は週2~3日リモートで子供の成長を片目にみつつコードを書いています。うちの子はガラピコぷ〜がお気に入りです。 さて今回はRailsでのフロントエンド開発についてです。 昨今のフロントエンドの進化はめまぐるしく、Rails標準のSprocketsというgemJavaScriptCSSをコンパイルする仕組みでは以下のような要望に答えられなくなってきています。*1 ECMAScript6で書きたい! フロントエンドのライブラリ管理にnpmを使いたい! で、上記に対応するにはおおまかに分類すると以下のような方法があります。 browserify-rails を使う github.com これが一番導入が簡単ですし、既存のRailsアプリに突っ込むならこれが選択肢としては手堅いと思います。 ただ開発中のビルドがめ

    webpackで作るSprockets無しのフロントエンド開発 - クラウドワークス エンジニアブログ
  • CW Tech Meetup #01: Rails Upgrade Casual Talks を開催しました - クラウドワークス エンジニアブログ

    www.flickr.com こんにちは。開発Div. エンジニアの所です。 先日クラウドワークスではRailsのアップグレードに関するTech Talkイベント Rails Upgrade Casual Talks を開催いたしました。 cw-meetup.doorkeeper.jp 100人の参加枠に対してキャンセル待ちが60人を超える大盛況の中、具体的な事例も交えながらいかにして Rails をアップグレードしていくべきか、その戦略をみなさんと一緒に真剣に考えました。 記事ではイベントの模様をお伝えしたいと思います。 基調講演: 「Rails側から見たバージョンアップの歴史」 www.flickr.com 基調講演として、Ruby on Rails における唯一の日人コミッターである松田さん(@a_matsuda)による「10年戦えるフレームワークのバージョンアップ戦略」をご講演

    CW Tech Meetup #01: Rails Upgrade Casual Talks を開催しました - クラウドワークス エンジニアブログ
    uzuki-first
    uzuki-first 2016/04/13
    先日のイベントまとめを書きました!
  • クラウドワークスオフィスの開発環境のご紹介 - クラウドワークス エンジニアブログ

    こんにちは! クラウドソーシングでお馴染み、クラウドワークスでiOSアプリエンジニアをやってます越田(@tkoshida)です。 Rubyistばかりの環境ながら最近アプリを開発できる体制が整ってきて嬉しい今日この頃です。 クラウドワークスは昨年11月に恵比寿ガーデンプレイスタワーに引っ越してきて、4ヶ月が経ちます。 そこで今回はクラウドワークスのエンジニアがどんな環境で開発をしているか、クラウドワークスオフィスの現在をご紹介したいと思います。 オフィス環境 集中ルーム エンジニアが周りの音や視界に入るもので気が散らないで集中して作業できるための「集中ルーム」が6部屋設けられています。 開発の作業って集中力がいるものですよね。 普段は自席で作業することの多いエンジニアですが、特に集中して実装したいものがあったりするときに気軽に利用できます。 また集中できるための配慮として、クルーズ&アトラ

    クラウドワークスオフィスの開発環境のご紹介 - クラウドワークス エンジニアブログ
    uzuki-first
    uzuki-first 2016/03/29
    オフィス環境だいじ
  • 社内サービス開発のススメ - クラウドワークス エンジニアブログ

    最近機動戦士ガンダム0083スターダストメモリーを一気見したエンジニアの那須(@nasum)です。好きなガンダムはExSガンダムです。リフレクターインコムかっこいいですよね(アイスブレーク)。 普段働いているとPCを使う以上様々なソフトウェアやサービスを使うと思います。DropboxやEvernoteGoogle Driveにスプレッドシート、エクセルからパワーポイントまで様々です。 そんなとき、「社内で使われているこのサービス、目的を果たすにはちょっと面倒だな」なんて思ったことはないでしょうか? 自分が目的を果たすために、フラストレーションを感じてしまうのであればなんとかしたいものです。そういうとき無料のサービスを利用することや、オープンソースのソフトウェアを導入することをまず考えると思います。しかしなかなか自分の要件にフィットするサービスは意外にもなかったりします。 そういうときは勢

    社内サービス開発のススメ - クラウドワークス エンジニアブログ
  • クラウドワークス内でPandasとJupyterの布教活動をおこなった話 - クラウドワークス エンジニアブログ

    どうも、Androidアプリの開発をやっています、エンジニアの岩木(@YusukeIwaki)です。 社内ではRubyistたちに囲まれながら、孤独にJavaを書いています(誇張w) クラウドワークスでは、施策の事前調査や効果検証などのデータ測定を、エンジニアが率先しておこなう開発プロセスをとっています。 データ収集ではSQLを使う機会が多いのですが、「会員登録した人の、1週間単位での発注率の推移」のような複雑なデータを取ろうとした時に、わりとつらい思いをすることが多かったため、SQL運用のつらみを解決すべくPandasとJupyterの布教活動をおこなった!という話を共有します。 そもそも解決したかった"SQLのつらみ" 「データ収集をいろんなエンジニアがやる」というシーンにおいて クエリの結果の再利用性が低い 「よく使うベースクエリは関数化して、みんなで使い回す」ということができない。

    クラウドワークス内でPandasとJupyterの布教活動をおこなった話 - クラウドワークス エンジニアブログ
  • ソースコードの減らし方 - 基本的な考え方と10個の方法 - クラウドワークス エンジニアブログ

    ステップ数で評価が決まる現場では全く役に立たないテクニックではありますが、ソースコードの減らし方について紹介したいと思います。 開発Div. エンジニアのayasudaです。 2014年の夏にジョインし、会社名と同じサービス、クラウドワークス の開発に携わっています。 ご覧の通り、消したソースコードの方が多いので、ステップ数換算だとマイナスの働きしかしてませんね! 記事では、特に Ruby on Rails の運用されているプロダクトコードにおける、ソースコードの減らし方について紹介していこうと思います。 基的な考え方 ソースコードを減らすときの大原則は「ボーイスカウト・ルール - プログラマが知るべき97のこと」です。 普段、ソースコードを触るときに、一つでも良いので簡単な改善を入れる。これを積み重ねるのが大事です。 一度に一気に直そうとするのはあまり良くありません。大抵の場合、デグ

    ソースコードの減らし方 - 基本的な考え方と10個の方法 - クラウドワークス エンジニアブログ
  • →↓↘+パンチ - クラウドワークス エンジニアブログ

    みなさんさようなら、インフラ部の @h3_poteto です。 今日は昇竜拳の話をします。 ↑昇竜拳 クラウドワークス体のアプリはRailsで作られているのですが、その中にちょいちょい非同期処理が載せられています。 メール送ったり、Elasticsearchとの同期処理だったり、重いスカウト処理だったり。 DelayedJobだと限界が見えてきた その非同期処理として、今までは、DelayedJobを使っていたんですが、ジョブが多くなり、キューが多くなり、ワーカーが多くなるにつれて、どんどん重くなってきました。 ActiveRecordを介してDBにキューを貯めるという方式がどうにもキツイ。 DelayedJobは当に気軽に非同期処理が出来て良いのですが、キューにRDBを使うところがすごくイケてないです(だから気軽にできるんですけど)。 エンキューが多くなればそれだけ書き込みも、また処

    →↓↘+パンチ - クラウドワークス エンジニアブログ
  • サーバ設定diffツールAjimi入門 - CrowdWorks Engineer Blog

    こんにちは。缶コーヒーを愛してやまないクラウドワークスのエンジニア森田です。 Infrastructure as Code と叫ばれて久しいですが、現実はそんなに単純な話ばかりじゃないですよね(´・ω・`) 新規に立てるサーバで設定内容が自明であればよいんですけれども、 既に番運用されており、温かみのある職人の手仕事によって維持管理されているサーバってありますよね? 管理者が一人ならまだしも、複数人で設定変更したりしてると、どのような設定が入っているのかがブラックボックスで、 それを後からコードに置き換えるには困難が伴います。 この「既存のサーバ」と「コードで生成したサーバ」のファイルシステム全体の差分を効率的に調査する目的で、 任意の2つのサーバ設定を比較するAjimiという便利ツールを作ったのでご紹介します。 はじめに 要件整理 作ったもの インストール 初期設定 味見する 設定詳細

    サーバ設定diffツールAjimi入門 - CrowdWorks Engineer Blog
  • 初めてのAWS re:Invent 2015参戦を写真で振り返る - CrowdWorks Engineer Blog

    クラウドワークスのエンジニアが単身AWS re:Invent 2015に参戦してきました。 「re:Inventでしかやれないことをやる」という方針で4泊6日のスケジュールをこなした結果、AWSの勢いや最新動向を知る、スキルを高める、資格を習得する、など満足な結果を得られました。まだ参加したことのない方には来年、ぜひ参加して欲しいと思います。 この記事ではAWS re:Invent 2015を、わかりやすく写真で振り返ります。個人的にも、会社的にも初めてのAWS re:Invent参戦ということもあり、今後参戦したい方の参考になるような内容になっていると思います。今年は日から400名以上が参加されたようですが、この記事を参考に来年はもっと大人数で、そしてクラウドワークスから2名は送り込めるといいですね! 前提条件 料確保 早めに受付 1時間のスキマ時間にハンズオン 30分のスキマ時間に

    初めてのAWS re:Invent 2015参戦を写真で振り返る - CrowdWorks Engineer Blog
    uzuki-first
    uzuki-first 2015/10/15
    ラスベガスとかすごい。羨ましい
  • 社内LT大会を開催しました! - CrowdWorks Engineer Blog

    はじめまして! 今年1月にクラウドワークスにジョインした、日エンジニアとして絶賛売り込み中の板倉(@itkrt2y)と申します。よろしくお願いします:punch::smile: クラウドワークスは、現在ユーザーのみなさまの期待に応えるため組織強化しておりましてエンジニアやデザイナーが急増しております。 人数が増えて勢いが増しているのは光栄なことですが、反面、個々人のバックグラウンドや大切にしていることなどが見えにくくなり始めていました。 そこで、この度エンジニア・デザイナー陣の交流の場を作るためにクラウドワークス全エンジニア・デザイナーによるLT大会を開催しました:+1: そもそもLTって? LTとはライトニングトーク(Lightning Talks)の略で、5分程度の短い時間の発表のことを言います。 あえて時間を短く限定することで、発表者・聴衆ともに低いハードルで発表をする、または聞

  • クラウドワークス短期エンジニアインターンシップ開催のお知らせ - CrowdWorks Engineer Blog

    こんにちは、クラウドワークスでDeveloper Experience改善や新技術検証をしている五十嵐です。 クラウドワークスでは従来のUX改善インターンシップに加え、エンジニア向けの短期インターンシップを開催します。 エンジニアインターンでは、クラウドワークスのプラットフォームに対するUX改善の提案に留まらず、その解決策をご自身の手で実装し、5日間の最終日には実装した結果のデモを交えながら改善提案を発表して頂きます。 また、インターンシップへのエントリーはWebフォームではなく、Web API経由というエンジニアらしい方法で行って頂きます。 世界の働き方を変えるクラウドワークスの開発に興味のある2016年度および2017年度卒業予定の学生の皆さま、ご応募を心よりお待ちしております。 詳細はこちらをご覧ください!

    uzuki-first
    uzuki-first 2015/04/10
    APIで応募!
  • クラウドワークス勉強会「レガシーコード改善の戦略と戦術」(後篇:戦術&懇親会) - CrowdWorks Engineer Blog

    こんにちは!開発の所(@ctokoro_me)です。 クラウドワークス勉強会「レガシーコード改善の戦略と戦術」前篇(戦略)に続き、後篇(戦術&懇親会)をお送りします。 「レガシーコード改善の戦略と戦術」 講師:和田 卓人(@t_wada) タワーズ・クエスト株式会社 取締役社長、プログラマ、テスト駆動開発者。 学生時代にソフトウェア工学を学び、オブジェクト指向分析/設計に傾倒。 その後様々な縁に導かれソフトウェアパターンやXP(eXtremeProgramming)を実践する人たちと出会い、後のテスト駆動開発の誕生を知る。 テスト駆動開発によって「完璧主義の呪い(完璧な設計を得るまではコードを書けないし良いシステムも出来ないという強迫観念)」から解かれてからは、文章や講演、ハンズオンイベント等を通じてテスト駆動開発の啓蒙に努めている。 今日もグリーンバンド(テスト駆動開発者の証)を左手に着

    クラウドワークス勉強会「レガシーコード改善の戦略と戦術」(後篇:戦術&懇親会) - CrowdWorks Engineer Blog
    uzuki-first
    uzuki-first 2015/02/18
    書きました!!! @t_wada さんありがとうございました!!!
  • クラウドワークス勉強会「レガシーコード改善の戦略と戦術」(前篇:戦略) - CrowdWorks Engineer Blog

    こんにちは!年初からクラウドワークス開発に新たにジョインした所と申します。 先日、クラウドワークスではテスト駆動開発とRESTFulアーキテクチャのエバンジェリストとして有名な和田卓人さんをお招きして社内勉強会を開催いたしました。 和田さんは、数多くの会社にてレガシーコード改善のコンサルティングの経験をお持ちで、書籍も多数執筆されており界隈でも有名な方です。 また、弊社CTO大場の旧知の友人でもあります。 クラウドワークスのサービスは立ち上げから現在に至るまでRuby on Railsで開発を行っており、サービス拡大に伴いアプリケーションの規模も大きくなっています。 比較的テストが書きやすいフレームワークではあるものの、ビジネスの急激な成長を支えるために速度を優先した機能開発が行われていた時期もあり、レガシーコードが残っている部分があります。 将来に向けて技術的負債の返済をしていくことは、

    クラウドワークス勉強会「レガシーコード改善の戦略と戦術」(前篇:戦略) - CrowdWorks Engineer Blog
    uzuki-first
    uzuki-first 2015/02/09
    書きました!
  • Turnip のテストレポートを見やすくしてみた - CrowdWorks Engineer Blog

    Turnipのステップ実行毎にスクリーンショット(以下SS)とレンダリングされたhtmlを記録するFormatter、CapturefulFormatterを作りました。 記事では、簡単な使い方の紹介と、どのようにステップを記録しているかについて記していきます。 背景 Ruby on Railsでの受け入れテストと言えばCucumberが著名ですが、ステップ定義にて正規表現を用いる点や、RSpecとの二立てとなっている点などが課題となっていました。 この2点を解決すべく生まれたのがTurnipです。Turnipの詳しい説明はるびま42号のTurnip解説記事が詳しいので割愛します。 しかし、Turnip では、テストレポートもRSpecのものを使うため、特にステップの失敗時のエラーメッセージがかなりわかりにくくなってしまいました。 下記に例を示します。とある画面にボタンが描画されていな

    Turnip のテストレポートを見やすくしてみた - CrowdWorks Engineer Blog
    uzuki-first
    uzuki-first 2014/10/28
    これはよい!! / turnip が流行ってきてるな。僕も cucumber は正規表現指定がありえんと思って turnip 使ったけれど、けっこうバグのような挙動で苦労した記憶。