クラウドワークス エンジニアブログ

日本最大級のクラウドソーシング「クラウドワークス」の開発の裏側をお届けするエンジニアブログ

リファクタリング の検索結果:

crowdworks.jpのエンジニアリング戦略(2019年6月現在)

…ム名: トリュフ) リファクタリングチーム(チーム名: バグハンター) 継続的バーションアップの浸透 今後の組織戦略 エンジニアの役割定義 今期エンジニアリング部の目標 個人的なこと We Are Hiring 状況の整理 crowdworks.jpはサービスインから7年が経過し、モノリシックなRailsアプリケーションのコードは30万行を超える規模感に成長しています。 一方で、コード行数の増加量はここ最近の傾向としては鈍化しており、ファイル変更数の推移も低下の傾向となってい…

【2018年版】クラウドワークスで起きた変化とその感想まとめ8つ

…をきっかけにこの1年リファクタリングや機能廃止の動きが広まった この動き全体を、「処す」と呼び、Slackのスタンプ含めプロダクト組織全体に広がったw 実際やったこと これまで「作りっぱなし」になってる機能を色々廃止した 新しい機能を作る前に、データ構造の見直しやリファクタリング自体を優先して開発した 詳細は価値の低い機能の廃止にこだわる3つの理由とか、6万行の大規模リファクタリングを完遂する上でPOとしてやってよかった5つのこととか混沌を極める jQuery のコードをい…

2018年マネジメント振り返り

…向き合う思考と組織のリファクタリング作者: 広木大地出版社/メーカー: 技術評論社発売日: 2018/02/22メディア: 単行本(ソフトカバー)この商品を含むブログ (2件) を見る 読書会は1時間で前半は読みながら気になったキーワードを付箋に書き出し、後半で順番に発表しながら議論を行い考えを深めていく形式で行いました。 マネージャーチームとしても課題認識をすり合わせ、共通言語を作っていくことがまず出発地点になるので、読書会でいろいろな意見が出て思考が深まりました。 この本…

WebエンジニアのチームがReactNativeでアプリをリリースした話

…にジャンプできる。 リファクタリングをするときに安心感がある。 コードを読むときに型がわかるので、読み解きやすくなる。 コンパイルエラーにより単純なミスを防げてコードレビューのコストが下がる。 TSLintを導入することでさらにレビューコストを下げることができる。 といったメリットがありました。 自分は使ったことがありませんが、Flowでも同じようなことができると思います。 Prettier github.com JavaScriptの用のコードフォーマッターです。デフォルト…

TDD(テスト駆動開発)+モブプログラミングを社内でやってみた話

…トが失敗しないようにリファクタリングする 新たに1つテストコードを書いてテストを失敗させる ドライバーを交代する 感じたこと 最初の時点から動くことは保証されているので 始まりは確実に動く汚いコードから 洗練された動くキレイなコードになっていく一連の流れが分かります。 ドライバー以外のモブ達は意見などを言ったりできるので レビューの工程が必要なくなります。 また、みんなで意見を言い合わせながら実装をしていくので、コードに統一性を持たせることができ非常に良いと感じました。 今回…

CrowdWorksのSREチームの仕事

SRE

…開発を止めてコードのリファクタリングを行ったり、DDD の手法を取り入れてサービス層を構築したりとやれることはやってきました。その結果ある一定の成果を収めることはできましたが、複雑さの根本的な解決には至らずコードを読み解く苦労は依然として存在し続けました。 そこで次に我々が目をつけたのはマイクロサービスアーキテクチャです。マイクロサービスアーキテクチャは Martin Fowler が提唱した概念で、個々のサービスを特定の責務ごとに独立させ、それを組み合わせることでサービスを…

Process Improvement with AAR x SMART Goals x Mob Programming

…新技術利用、構造的なリファクタリングなど) - [ ] UIデザインをレビューは必要か? - [ ] ユビキタス言語を決める(日本語) - [ ] そのストーリー、見積り可能になってる? - [ ] プランニング前までにやっておくことのSMARTなアクションを決める(必要か?で必要なとき) - [ ] 検証で明らかにするべきことをリスト化し各検証にかける時間を決めてカレンダー登録する プランニング モブプロで以下の点をチェックします。(カードと呼んでいるものはTrelloのカ…

レガシーなRubyコードのリファクタリングを支援するSutureの紹介

…ubyコードを恐れずリファクタリングする」でしょうか。 トークの内容も素晴らしかったのですが、そのトークをベースにTDD(トーク・ドリブン・デベロップメント)でSutureというGemも 作られていて、感動して触ってみたので今回はこちらのGemを紹介したいと思います。 スライドも公開されており(Surgical Refactors by Justin Searls)、こちらにこのGemを作った背景や目指すゴールについて書かれていますので是非見てみて下さい! 概要 Suture…

「アプリだけのオリジナルコンテンツ」をSNSで拡散してもらうために。

…ったあとにはしっかりリファクタリングをし、設計をシンプルに保つ、というのを常に心がけています。 直近は、プッシュ通知とディープリンクの共通設計などを行い、次なるマーケティング施策を打ちやすい土台がためを実施することになるでしょう…。 We're Hiring! クラウドソーシングのクラウドワークス では、アプリを使って「クラウドワークスをより身近に」するエンジニアを大募集中です! アプリなら是非やってみたい!APIならガシガシ書けるよ!というかた、お気軽に「話を聞きに行きたい…

誰のためのコメント? 〜コメント・コミットメッセージの書き方を考える〜

…す。 メッセージが「リファクタリング」では障害への影響の有無が判断できないため、そのコミットの中身を見る必要が発生してしまいます。 たとえば、以下のようなコミットメッセージが並んでいたとき、問題となったコード・コミットを的確に探し当てることができるでしょうか。 このようなタイトルがたくさん並んでいるのを見て、怪しいコミットを全部開くのは大変ですね。せいぜい二つ三つに絞れるようにしたいところです。 コミットメッセージには、変更したモジュール名、関連する機能、またファイルやURL…

CW Tech Meetup #01: Rails Upgrade Casual Talks を開催しました

…ンが上がる毎に大幅なリファクタリングに加えてパフォーマンス劣化が起きているとありました。 その対応について根本的な解決ではありませんが、パフォーマンス向上が期待できる ruby のバージョンアップも同時に行うことで影響を小さくする案などが示されました。 また、公式ドキュメントである Rails の変更点が書かれているリリースノートとアップグレードガイドについての話題では、簡単にしか書かれていない変更内容があったりするので、ドキュメントだけですべての影響を把握するのは難しいとい…

ソースコードの減らし方 - 基本的な考え方と10個の方法

…す。 テストコードはリファクタリングされる機会があまりなく、さらにすぐにコードベースが増えてしまいがちです。 また、コードベースが増えることで実行時間も肥大化してしまうという副作用もあります。 RSpec は 3.3 以降、aggregate_failures が実装され、よりテストが書きやすくなりました。 例えば、下記のようなテストケースで見てみましょう。 RSpec.describe FooController do describe "#create" do subje…

バグ修正ハッカソンを行いました - ふりかえり篇

…ました。機能追加とかリファクタリングとか、やりたいことはいろいろあるのですが、今回はバグ潰し。しかも、当日中に pull request にしてレビューを完了するところまでが目標。さすがに当日にリリースするのは避けましたが、それでも「週明け月曜日にはすぐにリリースできるようにしておく」というところがゴールです。 テーマがここまで明確に決まっていると、事前に何を準備しておけば良いかも自ずと見えてきます。 事前に準備したこと まず、倒すべきバグをリストアップしました。対象になるの…

バグ修正ハッカソンを行いました!

…カソンの翌営業日には、最も多くぷるりを出した人と、最も多くぷるりをレビューした人を「最多ぷるり賞」「最多レビュー賞」として表彰しました。 最後に 今後も、リファクタリング、ライブラリのバージョンアップ、新技術への挑戦、などなど、様々なテーマでハッカソンを企画して、開発を楽しみながらユーザに多くの笑顔を届けていきたいと思います。 (今度は泊まりで温泉に行きたい!w) クラウドソーシングサービスを運営しているクラウドワークスではユーザに笑顔を届けたいエンジニアを募集しております。

クラウドワークス勉強会「レガシーコード改善の戦略と戦術」(後篇:戦術&懇親会)

…いていくやり方です。リファクタリングの欲求が強い箇所だと考えられるので、成果を感じやすいやり方だと思います。 新規機能開発 新しく追加される機能とその機能に関連する部分から固めていく、という方法です。既存の業務に統合しやすいという点で導入しやすい方法でしょう。 バグが出た順 一見すると場当たり的に見えますが、複雑性が高い/品質が低いコードは往々にして固まっているので、実は投資対効果が高い方法です。 静的コード解析 静的コード解析^1ツールを用いて警告が多いクラスやスコアの低い…

クラウドワークス勉強会「レガシーコード改善の戦略と戦術」(前篇:戦略)

…いコードを美しくするリファクタリングに快感を覚える人もいれば、テストカバレッジ率向上という数字(メトリクス)にモチベーションを感じる人もいます。 また、自分の書いたコードがビジネス/ユーザーに与える影響を追い求める人もいます。 人を知ることが、自分たちに適したやり方を知る近道になるでしょう。 変えることの難しさ 人はそれぞれの度合いで変化に対して身構えます。 「前例が無い」「事例が無い」という反応が出たりします。 また、リファクタリングは外からは価値が見えづらく機能が増えるわ…

RubyKaigi 2014 3日目 参加レポート

…ミング。 他は普通にリファクタリングして問題を抽出していく 13:30- Everything is Broken: A Story of Hope (Hall A) leetはギャル語みたいなもの。@1337807 -> LEET BOT Webの世界からみたセキュリティの話 「Googleのトップページをブラウザで開くとどうなりますか?」いい面接の質問。いろいろな答えがあるから DNS Lookup: Chrome -> OSのUtility = Resolverにきく …

RubyKaigi 2014 2日目 参加レポート by @mumoshu

…ct methodsリファクタリングなどのような決まりきった処理は自動的に行える しかし、カスタマイズできない じゃあテキストベースで変換するか? `sed -i " 's/FactoryGirl.create/create/g' spec/*/.rb" テキストベースだと難しいケースがある User.findの古い書き方(conditionあり)から、lambdaを使った新しい書き方への変換 AST Tools ripper seattlerb/parsetree seat…

RubyKaigi 2014 1日目 参加レポート by @mumoshu

…んとかかれていたり、リファクタリングと変更のコミットがちゃんと分かれていたり、今どきのきれいなコミットをされる方で、毎日コミットを読む側としては大変ありがたいそうです Groonga Aaron at GitHub, Inc. 最終日のKeynoteスピーカー Rubyのコアに精通している Memory Optimizations Inspection/Profiler/Debugger Hash#[] optimization ObjectSpace.dump_all ko…

© 2016 CrowdWorks, Inc., All rights reserved.