Rustが再評価される:エコシステムの現状と落とし穴 In this article, we share findings and insights about the Rust community and ecosystem and elaborate on the peculiarities and pitfalls of starting new projects with Rust or migrating to Rust from othe...
『るびま』は、Ruby に関する技術記事はもちろんのこと、Rubyist へのインタビューやエッセイ、その他をお届けするウェブ雑誌です。 Rubyist Magazine について 『Rubyist Magazine』、略して『るびま』は、日本 Ruby の会の有志による Rubyist の Rubyist による、Rubyist とそうでない人のためのウェブ雑誌です。 最新号 Rubyist Magazine 0058 号 バックナンバー Rubyist Magazine 0058 号 RubyKaigi 2018 直前特集号 Rubyist Magazine 0057 号 RubyKaigi 2017 直前特集号 Rubyist Magazine 0056 号 Rubyist Magazine 0055 号 Rubyist Magazine 0054 号 東京 Ruby 会議 11 直
今回からいよいよコードの話を始めます。もはやRubyの文化の一部だという主張もあるリファクタリング、テストについて、その意義や概要を紹介します 実際のアプリを例に解説 連載のこれまでは、私の過去の体験や仕事環境についてお話ししてきましたがそろそろ少しコードの話をしましょう。 これからしばらくはテストとリファクタリングがメインです。ただ理論を説明するだけでなく、実際に書かれたアプリのコードをレビューし、テストを追加しながら改善していきます。今回から解説する一連のリファクタリング、テストのターゲットは、@IT編集部の西村賢さんがRuby on Railsで開発中の力作、「Worklista」です。 テストを書かずばRailsエンジニアにあらず? 2010年11月に米国ニューオリンズで開催されたRubyConfでのキーノートで、Ruby on Railsの作者であるDHHは、テストについて次のよ
ガーデニングのメタファーはソフトウェア開発の現実にかなり近いものです。あるルーチンが大きくなりすぎたり、色々なことを実現しようとしすぎている場合、2つに株分けする必要があるのです。また、計画通りうまくいかないものは雑草を抜いたり剪定してやらないといけないのです。 こういったコード記述のやり直し、再作業、再設計を総称して「リファクタリング」と呼びます。 リファクタリングのきっかけDRYの原則に反している直交していない設計時代遅れの知識をつかっているパフォーマンスがわるいクラス、メソッドが長い名前がしっくりこない同じようなコピペコードがいくつも見られ、UIを直すとロジックを直して、DBもなおすとか。非推奨のメソッドを使っていたり。ループ分が多いし、やってることとメソッドの名前があっていないとか。みなさんも、思い当たるようなことはありませんか? タイミングとガン細胞の切除 きっかけを見つけたら、
twitter で TDDBC Hokuriku (2010) のレガシーコード改善を Coding Dojo で行った際の Ruby チームは比較的うまくいってたけど、あれって○○な流れだっけ的な話をしているうちに気になってることをまとめておこうと思い立ったので、できるだけ書き出してみる。 何かのきっかけになれば嬉しい。 素材(レガシーコード)のポイントまず動くこと触ったことがあること1ある程度でいいので機能別に書かれていること オブジェクト指向であるとなお良い(使える技が増える)小規模であること ただし完全に単機能だと余地が少ないのでテストを足しにくい外部 API 依存しまくりの場合は単なるレガシーコード改善とはまた別なテクニックの習得に繋がってよいかも自動実行できるテストがないこと :-)1 については「えっ」て思うかもしれないけど、放置してるものは依存ライブラリの関係や、そもそも動
リファクタリング―プログラムの体質改善テクニック (Object Technology Series) 作者: マーチンファウラー,Martin Fowler,児玉公信,平澤章,友野晶夫,梅沢真史出版社/メーカー: ピアソンエデュケーション発売日: 2000/05メディア: 単行本購入: 94人 クリック: 3,091回この商品を含むブログ (312件) を見るファウラーのあまりにも有名な本で既にいろいろなところでも言及されていますが、本ブログの趣旨からしてもいつかは紹介させていただきたいと思っていました。特にJavaプログラマーとしては必読書であり、言語の基本的な文法を理解したレベルから、達人プログラマーへと成長する過程で欠かせないリファクタリングの知識を学ぶことができます。かなり古い本であり、扱っているJavaのバージョンも古いのですが、「メソッドの抽出」「クラスの抽出」「メソッド名の
情報処理学会ソフトウェア工学研究会パターンワーキンググループの実践タスクの一環として開催されたJoshua Kerievsky氏の講演を聴講した。 講演ではソースコードの大規模なリファクタリングをうまく実施するための定石(典型的なパターン)を紹介していた。リファクタリングは保守性、可読性の向上を目的としたソースコードの整理であり、プログラムとしての振る舞いを変更せず整理する。リファクタリングパターンは、リファクタリングの定石であり、たとえば動作が誤っていないことを確認しながら少しずつ整理していく、というような方針を集め、文章化したものだ。 講演紹介ページの講演概要の後半にあるとおり、リファクタリングパターンは6個の戦略と6個の戦術から構成されていた。個々のパターンは際立って目新しいというものではないが、リファクタリングの方針として頭に置いておくと有益だろう。自身のリファクタリングを振り返っ
This browser is no longer supported. Upgrade to Microsoft Edge to take advantage of the latest features, security updates, and technical support. Patterns in Practice Cohesion And Coupling Jeremy Miller Contents Decrease Coupling Increase Cohesion Eliminate Inappropriate Intimacy The Law of Demeter Tell, Don't Ask Say It Once and Only Once Wrapping Up Much of software design involves the ongoing q
リファクタリングには当初懐疑的だった岡本社長。しかしその成果は絶大だった! リファクタリングをするにあたって、弥生がとった行動とは何か? エンジニア企業弥生の再生は続く。 弥生株式会社の岡本です。前回は弥生の開発の「再生」について、まずはプロジェクト管理の徹底といった定石から始め、そしてリファクタリングに取り掛かったというところまでお話しさせて頂きました。 リファクタリングの定義は、前回もWikipediaからの引用で、「プログラムの外部から見た動作を変えずにソースコードの内部構造を整理すること」とご紹介しました。連載第2回(関連記事)でお話しさせて頂いたように、私はコーディングの現場から引退してだいぶ時間が経っていますので、実際にどのようにリファクタリングするかという技術論ではなく、そのメリットを中心にお話ししたいと思います。技術論に関しては、Wikipediaでも主な手法について簡単に
自分の英語力アップと、技術力アップを兼ねて、好きな開発者の書いた記事をある程度翻訳して載せていこうと思います。今までMarkとかMcurryとかの興味深い記事をざっとは読んでたけど、自分が読むだけだと流し読みになりやすくて、読んだつもりになっただけで何も残らず、いかんなぁと思ってました。 全訳ではなく、自分が記事を理解して、ざっくりと翻訳して発信していくようにすれば、まず記事の内容を理解し、それを分かりやすく短く書くようになるので、良いのではないかと思いました。一人勉強会みたいなもんです。 これを続けていき、ある程度の段階になったら自分も英語で定期的に発信していきたい。 mark-storyの記事 5 signals that can indicate its time to re-factor リファクタリングすべき時期はいつごろか?その指標となる5項目を挙げています。 1. メソッドの
Refactor :my => 'code' All Ruby PHP JavaScript ActionScript Java C C++ C# VB.NET Python Perl Lisp Erlang Bash Contoller refactoring Fastest way to get value of pi Exercise: Deaf Grandma Saving multiple models in one action Handling Keyboard Shortcuts in JavaScript How to extend a class properly? Object with Field names as resources How to DRY this up Easier way to do this? AJAX makeRequest Popular
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く