give IT a try

プログラミング、リモートワーク、田舎暮らし、音楽、etc.

システム開発

書き手の意図やコードの背景を残す方法のあれこれ −きれいなコードの次に意識すべきこと−

はじめに 先日、こんなエントリを書きました。blog.jnito.com上の記事の中で、僕は「きれいなコードだけではすんなりコードが理解できないこともある」というような話を書きました。 もちろん、ある程度の規模になってくるといくらがんばっても「すんなり」…

【初心者必見】これまでに書いた自動テストやRSpecに関する記事のまとめ

これはなに? 自動テストの初心者がテストコードを書くときに意識したことが方が良いことについて、僕が過去に書いた記事をまとめたものです。RSpecでRailsのテストを書くケースがメインですが、自動テスト全般に役立つ知識も結構多いはずです。<もくじ> …

雑に作って、それから作り込んで、最後にテストを書く「テストラスト」開発

(この話は最初Twitterに書こうと思ったけど、長くなるのでブログに書くことにしました)僕はRSpecやMinitestでテストを書くのは得意ですが、常にテストファースト(TDD)で開発するとは限りません。 今業務でやってるタスクはこんなふうに進めてます。雑に…

当日見逃したあなたに!「リーダブルテストコード」の登壇動画が公開されました #vstat

お知らせ 先日開催された「VeriServe Test Automation Talk No.3」の登壇動画が公開されました。 僕が発表した「リーダブルテストコード」も下記ページで公開されています。https://vimeo.com/742517199/e001ac43ac もともと動画公開の予定はなかったのです…

【動画あり】続・リーダブルテストコード:みなさんからの質問に答えてみました #vstat

前回書いたブログの続きです。blog.jnito.com「VeriServe Test Automation Talk No.3」というオンラインイベントで登壇した際に参加者のみなさんから質問をたくさんいただきました。一部はイベント内で回答したのですが、時間内に全部回答することはできなか…

過度なDRYは読みやすさの敵!?「リーダブルテストコード」という発表をしました #vstat

先日、このブログでもお伝えしましたが、「VeriServe Test Automation Talk No.3」というオンラインイベントで登壇してきました。veriserve-event.connpass.com申込者数はなんと1000人を超えていて、大変驚きました。僕は「リーダブルテストコード」というテ…

【Ruby版】xUnit Test PatternsのTest Doubleパターン(Mock、Stub、Fake、Dummy等の定義)

はじめに テストダブル(Test Double)について、わかりやすく解説した技術記事はないかな〜と探していたところ、こちらのブログ記事を見つけました。goyoki.hatenablog.comとても詳しく解説されていたので、まさに打ってつけだったのですが、ふだん僕はRuby…

【書評】「レガシーコードからの脱却」の9つのプラクティスは圧倒的に正しい(経験者談)

はじめに 株式会社アトラクタの原田騎郎さん(@haradakiro)から、書籍「レガシーコードからの脱却」をご恵贈いただきました。(どうもありがとうございます!)せっかくいただいた本なので、本書を読んだ僕の感想を書いてみようと思います。 どんな本なの?…

コミットはドラクエのセーブと同じ!?Qiitaに「適切なコミット粒度」に関する記事を書きました

おしらせ Qiitaに「【初心者向け】「コミットの粒度がわからない問題」の模範解答を考えてみた」という記事を書きました。qiita.com記事だけではなく、動画もあります。というか、実は動画がメインです。 ぜひ、動画も見てやってください。【初心者向け】「…

シンプルでわかりやすいコードを書くためにあなたがすべきこと

はじめに 先日、とある知りあいのRubyプログラマからこんな相談を受けました。(内容はちょっとボカしてます) 社内のコードレビューでもっときれいなコードを書けるようになった方がいい、と言われました。「きれいなコードを書けるようになれ」と言われて…

Basecampに学ぶ、10倍の生産性を生み出す考え方とソフトウェアビジネスのアイデア

はじめに 先日、こちらのページでRuby on Rails作者のDavid Heinemeier Hansson (DHH) 氏と、Basecamp (旧37signals) 創業者のJason Fried氏の対談記事を読みました。 「10倍プログラマ」の神話、Ruby on Railsの生みの親が語った高い生産性のカギとは!? | H…

「動的型付言語は使い物にならない」か?

はじめに Ruby対Scala, 動的型付言語は使い物にならないという興味深いWeb記事を読みました。 はじめに断っておきますが、おいらは別にRubyが嫌いなわけではないですし、「動的型付言語は使い物にならない」と思っているわけではありません。 そもそもRubyや…

体系的な開発プロセスや開発方法論を身につけるための参考書籍

はじめに システム開発って、免許がなくてもできちゃうので誰もが「自称プロ」です。 だから豊富な経験と専門知識を持った人が担当することもあれば、勘と度胸と限られた経験しかない人が担当することもあるわけです。 規模の小さいシステムであれば後者のよ…

おかしなおかしな目標管理

組織のゴール うまく書けるかどうか分からないけど、前々からちょっと気になっていた話です。 うちの会社では半期ごとにゴールを設定します。 ゴールは通常、組織全体で定量化(数値化)できるものが設定されます。 ゴールを達成したかどうかで、特別ボーナス…

自動化テストで気をつけること

先日、会社のメンバーからテストの自動化に苦労しているという話を聞きました。 そういえば、一言で「テストの自動化」といっても結構奥が深いので、自動化テスト初心者が注意すべき点や重要なポイントをちょっと考えてみました。 自動化テストの注意点 どの…

新卒者に何か言葉を贈るなら

はじめに こちらのブログをはじめ、季節柄最近ちょくちょく新卒者向けのメッセージを書いたブログを目にするようになってきました。 これまで新卒者に贈るメッセージなんてわざわざ考えたこともなかったのですが、もし自分なら何て言うんだろうなあと考えて…

開発時間短縮のためのプラクティス10選

このエントリを書いた背景 先日会社で「開発時間を短縮するためのアイデアやノウハウをみんなでシェアしよう」という課題が出されました。 「カウボーイコーディングとコピペプログラミングで技術的負債たっぷりのシステムを作りましょう。そうすれば開発時…

When Database Source Control Goes Bad 翻訳 Part9

The End… ? 最後に…? And in the end, it is all about productivity. Much like every other aspect of development, your approach should not be dictated by what you enjoy, or your religious language preferences, or office politics, or any of th…

When Database Source Control Goes Bad 翻訳 Part8

Running with a Local development database. ローカル開発環境のデータベースで実行する Hopefully I’ve convinced you that you should have your own copy of the database for your local development. No matter how hard you try, if you have a whole…

When Database Source Control Goes Bad 翻訳 Part7

前回からかなり間が空いてしまいましたが、海外サイトのWeb記事の翻訳を再開してみたいと思います。 ちなみに前回までのあらすじははこちらです。↓When Database Source Control Goes Bad 翻訳 Part1 - give IT a try When Database Source Control Goes Bad…

数値で測るコード品質

プロフィールのところにも書いてあるのですが、おいらの目標は「美しく無駄のないシステムアーキテクチャを設計、構築すること」です。 なぜならシステムの保守性や拡張性って、アーキテクチャやコードの品質によって雲泥の差が出ることを、幾度となく痛感し…

「ポータブルなスキル」や「エンジニアとしての基礎体力」の重要性

先日、チーム内ミーティングでメンバー全員が今期の自己啓発目標を発表していました。 その中で多く目立ったのが「C#を習得する」とか「Perlを習得する」というような新しい開発言語を習得する目標でした。 最初は「新しい言語にチャレンジするのはいいこと…

モデルを中心としたソフトウェアアーキテクチャを採用する意義

今とある新規社内システムの設計と開発を担当しています。 ソフトウェアアーキテクチャはおいらが考えました。 簡単に言うとこんな感じです。 UI層/サービス層/データアクセス層の3レイヤーに分ける 開発言語はC#、UIはASP.NET、データアクセスはADO.NETを採…

When Database Source Control Goes Bad 翻訳 Part6

Isolating your development database 開発用データベースを隔離する Imagine that you working on a project that involves several layers of DLLs communicating with each other. Because you are in active development, you and your team are constan…

When Database Source Control Goes Bad 翻訳 Part5

Developing Application code Locally ローカル環境でアプリケーションコードを開発する These days, most every application programmer develops their code locally. That’s just what you do. Many developers have learned the hard way that this is i…

When Database Source Control Goes Bad 翻訳 Part4

「The Catch」の後半部分です。記事全体からするとそろそろ折り返し地点?いやあ長いですね〜。 Anyhow, during the next deployment to QA, someone needs to remember that these specific changes need to get deployed. Since there is no defined strat…

When Database Source Control Goes Bad 翻訳 Part3

翻訳第3回です。このセクションは長いので今回は途中まで。 週末はちょいと旅行に出かけるので、次の更新はおそらく来週になります。 The Catch 難題 Let’s imagine that all database changes need to be checked into an isolated directory in source-co…

When Database Source Control Goes Bad 翻訳 Part2

The Impedance Mismatch インピーダンス・ミスマッチ(開発者とDBAの違い) Why aren’t Database DML and DDL subject to the same level of source-control as the application? Why don’t developers think about databases the same way that they think ab…

When Database Source Control Goes Bad 翻訳 Part1

2010.03.07追記 結局全9回になりました。 かなり長いですけど、何回かに分けて読んでみてください。 When Database Source Control Goes Bad 翻訳 Part2 - give IT a try When Database Source Control Goes Bad 翻訳 Part3 - give IT a try When Database …

犬小屋と高層ビルの違い

ちょっと興味深いエントリを見つけました。 IDE教育に不安を覚えること - みねこあ なるほど、Smart UIと呼ばれる作り方が、システムの品質を下げるという点は同意です。 ただ、その原因がIDEにあるのかというと、必ずしもそれだけではない気がします。 おい…