Not your computer? Use a private browsing window to sign in. Learn more about using Guest mode
世の中は一周まわってエンジニアリングの手法に溢れている。 テストを書け、ドキュメントを書いて冗長化しろ、コミットはわかりやすく、コーディング規約が、安定性が─── でも、それって本質なんだろうか? 新規サービスを作る際に肝だと思っていることをまとめてみた。 おことわり 以下は少人数で"普通"のアプリやWebサービスを自社で新規開発するときのことを想定しています。大人数で重厚なソシャゲを作るとか、ガチガチの金融系サービスを作るとか、コンシューマーゲーム開発とか、個人で好きなものを作るとか、受託とかは全く想定していません。 基本的に一通り現場をこなした中級以上のエンジニア向けに書いています。 アンチテーゼとして、ややキツめに断定する箇所が多いです、こういう意見もあるんだな程度に受け止めてください。 所属する団体の意見とかは一切関係ありません。 目次 おことわり 目次 ユーザーのことだけ考える
ちくしょう、プロジェクトまるごと書き直したい 自分で作り始めたプロジェクトであっても、途中から相乗りしたプロジェクトであっても、誰もが一度は体験する気持ちではないでしょうか。 私が携わっている「おいしい健康」も例外ではありません。 プロジェクトを全て書き直したいと思う一方で、全てのコードを書き換えようとするアプローチは、これまで作ってきた見た目や機能、ビジネスロジックを再現しきれずに潰えてしまう。という話しも良く聞きます。 実は全て書き直したいのではなく、その大きな目的としては以下のようなモノがあるのではないでしょうか。 シンプルな作りに変えたい 不要なコードが重なり、動作が遅くなっているところを解消したい 新しいライブラリ、新しい技術を取り込めるようにしたい 今回は、このような目的を達成しつつ、プロジェクトの書き換えを行った私達の話をしたいと思います。 cookpad本体からのプロジェク
買物情報事業部の八木です。クックパッド特売情報のAndroid部分を担当しています。普段はクックパッドのAndroid版(以後、本体アプリとします)の開発プロセスの中で特売情報の機能を開発しています。 本エントリでは細かな技術的負債を解消する為に本体アプリの開発チームが行っている朝Lint活動を紹介します。 2年近く経つ本体アプリのコードベース 私が買物情報事業部に所属する前は本体アプリを1から書き直すチームで働いていました。書き直し始めたのは2013年10月からなのでそろそろ2年が経とうとしています。2年前に設計された本体アプリは現在ではおよそ17万行を越え、日々どんどん変更が加えられています。 それらの変更の中には残念ながら悪いコードが含まれている場合があります。テストしづらいコードやテストがないコード、レビューに対する場当たりな対応や緊急のbug fixのために追加された汚いコード、
最近、あまりプログラミングが得意でない人のサポートをする形で、長い時間にわたってペアプログラミングを行っている。そのなかで、気がついた悪い習慣と成長するための良い習慣というものをまとめてみる。 この記事のバックグラウンドとなる体系的知識が本になりました。 エンジニアリング組織論への招待 ~不確実性に向き合う思考と組織のリファクタリング あわせて読みたい 経営者マインドが足りない!vs. 現場に任せてくれない!の対立をなくすカードゲームをつくった話 新人プログラマに知ってもらいたいメソッドを読みやすく維持するいくつかの原則 新人プログラマに知っておいてもらいたい人類がオブジェクト指向を手に入れるまでの軌跡 ペアプログラミングして気がついた新人プログラマの成長を阻害する悪習 あきらめるにはまだ早い!ソースコードの品質向上に効果的なアプローチ 心理的安全性ガイドライン(あるいは権威勾配に関する一
(編注:2020/08/18、いただいたフィードバックをもとに記事を修正いたしました。) これはある仕事熱心な若手開発者のほぼ実話です。2004年の後半、この若手開発者は小さな会社で働き始めました。条件は全て彼の望みどおりでした。給料はいいし、扱うのは彼の得意とするプログラミング言語、アプローチの複雑性、モデリングのアーキテキチャでした。 彼にとって今回の会社が初めての職場ではありませんでした。しかし、ここでの最初のプロジェクトは結果的に 問題だらけ に終わりました。当時、この若手開発者は、機能は絶対に変わらないものだと思っていました。しかし、それは間違いでした。機能が変更されるたびに完全なリファクタリングを行わなければなりませんし、バグを引き起こして膨大な時間を無駄にしてしまいます。彼は、テストを書くといった実直な方法も試してみましたが、書いたテストはメンテナンスが必要な上、書くのに時間
2012/4/26に行われた第38回HTML5とか勉強会「Webアプリ×テスト最新事情」に参加してきました。 JavaScriptのテストフレームワークについていろいろな話を聞くことができました。 遅れて参加したうえに、ノートパソコンの電源入れたとたんに電池切れ orz 途中の休憩時間にコンセントのある席へ移動したのですが、前半はメモれてないですw メモとるのが全然追いつけなかったので、コードとか省略してたり間違ってたりすると思いますが、雰囲気だけでも感じて頂ければと。 Sinon.jS 外村和仁さん テストしにくいもののダミーを作成する。 spy メソッドの代わりにダミーを作成できる。 // オブジェクト作成。spyはメソッドオブジェクト // これをテストしたいメソッドを上書きする感じで。 var spy = sinon.spy(); // 試しにメソッド読んでみる spy('foo'
レーベでもAndroidアプリの開発を行っていまして、最近ではカメラアプリを開発しました。沢山ダウンロードされると「○○で動かない」といったレビューがGoogle Playに入る事も多々あり、逐一各機種でテストする必要があります。 最近まで私たちも実機を事あるごとに購入していたのですが、良いレンタルサービスを発見したので、簡単な動作検証の場合は実機を買わずに済ませるようになりました。 Remote Testkit for Androidについて http://appkitbox.com/testkit Remote Testkit for AndroidとはNTTレゾナントが提供するリモートによるスマートフォン実機検証のためのサービスです。端末のレンタルはチケット制で3チケットで30分利用可能となっています。6チケット(1時間分)945円(税込)で販売しています。 エミュレータではなく、実
QUnitについてある程度分かった所で、今回はSinon.JSというライブラリを紹介します。 Sinon.JSをテストフレームワークと合わせて使う事で様々なテストができる様になります。特定のテストフレームワークには依存していないのでQUnit以外でも使えます。Sinon.JSのサイトに行けばいくつかのテストフレームワークのアダプタがあります。 Sinon.JSにはいくつかの機能があるので順に紹介します。今回はSpyとStubとMockの3つについてです。テストフレームワークにはQUnitを使っています。 準備 本題に入る前に、準備です。Sinon.JSのライブラリをhttp://sinonjs.org/からダウンロードして適当な位置に配置して、テストで使うhtmlにロードしておきます。 Spy Spyは、メソッドが呼ばれた時の引数や戻り値、エラーなどを監視する事ができます。 これはSino
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く