タグ

refactoringとあとで読んだに関するraimon49のブックマーク (15)

  • Less is more:プログラミング言語設計の進歩史 | POSTD

    多くの言語は冗長性を有していますが、これらの機能を省いていくことも言語設計の進歩につながります。 巷には数多くのプログラミング言語があり、新しい言語も継続的に紹介されています。でも新しいものが古いものより優れているかというと、そうとは言えません。なぜなら、何が“優れているか”を判断する明確な尺度は存在しないからです。 それでも過去からの流れを見ていくと、優れた言語を作る1つの方向性は、言語にある冗長性を特定し、それらを持たない新たな言語をデザインすることにあるように思えます。 「完璧とは、それ以上足せない時ではなく、それ以上引けない時に達成される」 – Antoine de Saint Exupéry この投稿では、現在までに知られている言語の冗長的機能を見ていくと共に、恐らく冗長性を有しているだろうと思われる機能についても触れていきます。 自ら墓穴を掘るあらゆる可能性 初めてコンピュータ

    Less is more:プログラミング言語設計の進歩史 | POSTD
  • 多くの若きプログラマたちが学ぶべきこと | POSTD

    私はこの7年半、 Ronimo でプログラミングを学ぶ多くのインターン生を指導し、様々なタイプの大学生や大学院生を見てきました。彼らのほとんどには、共通して言える学ぶべきことがあります。特別なテクニック、アルゴリズム、数学、あるいは特定の形式についての話だと思う人もいるかもしれません。もちろんそれも必要ですが、中心的なものではないと私は考えます。彼らが主軸として学ぶ必要があるのは、自己統制力です。常に可能な限り読みやすいコードを書き、開発中の変更により秩序がなくなってきた時にはきちんとリファクタリングを行い、使用されていないコードを除去し、コメントを追加することができるという力です。 プログラミングのインターン生を指導する際、この話にほとんどの時間をかけます。上級のテクニックでもなければエンジンの詳細についてでもなく、概ね彼らにより良いコードを書かせることに主眼を置きます。いつもインターン

    多くの若きプログラマたちが学ぶべきこと | POSTD
    raimon49
    raimon49 2015/02/06
    良いコードを書く能力を育てるということ。普遍的で良い話。
  • Promise Anti-patterns – Tao of Code

    Promises are very simple once you get your head around them, but there are a few gotchas that can leave you with your head scratching. Here are a few that got me. Nested Promises You get a whole bundle of promises nested in eachother: loadSomething().then(function(something) { loadAnotherthing().then(function(another) { DoSomethingOnThem(something, another); }); }); The reason you’ve done this is

  • メモリ管理・レイアウトの観点からみた UIViewController の view の扱い - jarinosuke blog

    self.view iOS 開発において、UIViewController の view の振る舞いは一番理解しておきたい点の一つです。 今回はその view に対して、メモリ管理とレイアウトの2つの視点を交えてアプローチを行い、 UIViewController の subclass を作成する上で、 UIViewController の各メソッドにどんな処理を書くべきか、そして何を書くべきでないか を説明出来ればなと思っています。 iOS 6 以降からを対象として考えていますので、 iOS 5 以前は取り扱いません。 self.view の振る舞い 扱いを学ぶには、まず対象の振る舞いを把握する事からです。 ライフサイクルとレイアウトサイクルの2点から簡単に復習します。 self.view のライフサイクル UIViewController の view がどのようなタイミングで生成され

    raimon49
    raimon49 2014/01/31
    レイアウト設定はself.viewプロパティのframeに全てが反映された後に呼ばれる:viewDidLayoutSubviewsで行い、:viewDidLoadではアクション設定。subviewの初期化はgetterで行うのもナルホド。
  • これであなたもテスト駆動開発マスター!?和田卓人さんがテスト駆動開発問題を解答コード使いながら解説します~現在時刻が関わるテストから、テスト容易性設計を学ぶ #tdd|CodeIQ MAGAZINE

    和田卓人さんによるテスト駆動開発問題解説の寄稿です! バグのないよいコードを書くには、よいテスト設計が重要です。今回は現在時刻に関する問題と、その問題で提出された実際の解答コードを紹介しながら、どのようにテスト設計し開発していくのかを解説していきます。 ゲスト解答による解答コードも公開中! by CodeIQ運営事務局 はじめに こんにちは、和田(@t_wada)です。今日は先日出題させていただいたTDDに関する問題の総評を行いつつ、テスト容易性設計について考えてみたいと思います。 問題文 私が出した問題は、以下のようなものでした。 問1. 下記の仕様をテスティングフレームワークを使ってテストコードを書きながら実装してください。 【仕様1】 「現在時刻」に応じて、挨拶の内容を下記のようにそれぞれ返す機能を作成したい。 (タイムゾーンはAsia/Tokyoとする) 朝(05:00:00以上

    これであなたもテスト駆動開発マスター!?和田卓人さんがテスト駆動開発問題を解答コード使いながら解説します~現在時刻が関わるテストから、テスト容易性設計を学ぶ #tdd|CodeIQ MAGAZINE
    raimon49
    raimon49 2013/12/04
    「現在時刻」を扱うお題で、いかに疎結合なテストを書くか。設計まで踏み込んでいて勉強になる。
  • テストコードのリファクタリング

    JJUG CCC 2012 fall / 札幌Javaカンファレンス2012での発表資料です。 ソースコードは https://github.com/shuji/demo-refactering-unittest から取得してください。

    テストコードのリファクタリング
    raimon49
    raimon49 2012/11/11
    テストコードをDRYに保つテクニック おすすめ書籍の紹介も。
  • コメントについて考えてみた - 日々常々

    やきに駆動2.0で話した内容です。 資料 コメントについて考えてみた 長いよ? コメント書いてますか? コードにコメントを書くことは、犬の散歩で糞を持ち帰ることくらい常識的なマナーです。皆さんコードにコメントは書いていらっしゃるでしょうか? 書いてます?書いてます。はい。そうですよね。……なんで? コメントを書く理由を考えたことはあるでしょうか。コメントを書くと、コストがかかります。コメントを書く程度のコストは無視できるものかもしれませんが、書いたコメントを残すと、残っている限りずっとコストをかけ続けることになります。なので、コメントにはリターンが求められて然るべきです。理由のないコメントは、未来の混乱を招く優れた方法です。 コメントを書く動機 コメントを書きたいと思う動機は様々あります。コードがわかり辛いところに説明を書いておく。実装の仕方がわからなくてコメントで書いて次に進んでおく。な

    コメントについて考えてみた - 日々常々
    raimon49
    raimon49 2012/11/05
    クソコメント例文集 履歴コメントは即刻削除すべしはその通りだし、新人やかつて新人だったあの時の自分に真っ先に読んで欲しいドキュメント
  • RSpec の入門とその一歩先へ - t-wada の日記(旧)

    和田 卓人(@t_wada) 作『RSpec の入門とその一歩先へ』はクリエイティブ・コモンズ 表示 - 継承 4.0 国際 ライセンスで提供されています。 東京 Ruby 会議 03 の RSpec ワークショップの資料です。このワークショップでは参加者の方に「写経」(コードを書き写すこと)をして貰い、TDD/BDD と RSpec を同時に学べるように都度説明を入れるかたちで行いました。 第2イテレーションも書きました。続きに興味ある方はご覧下さい (更新) 第3イテレーションも書きました。続きに興味ある方はご覧下さい 1st iteration favotter の みたいな NG ワードのフィルタリング機能を RSpec で作りましょう。まずは NG ワードの検出機能を作成します。 このイテレーションでは最初ベタな形のテストコードと実装を書き、だんだんとそのコードを洗練させてゆきま

    raimon49
    raimon49 2012/08/11
    仮実装から整えて行く過程
  • コードリーディングについて | ありえるえりあ

    コードリーディングについて アリエルネットワークCTO 井上誠一郎 自己紹介 書籍 「P2P教科書」 「パーフェクトJava」 「サーバサイドJavaScript入門」 「パーフェクトJavaScript」 今回の講義 心構えや経験談が中心 抽象論になりすぎないように実践可能な「トライ」ページ 次回講義の予告 3月1日の予定 「Webアプリのアーキテクチャの歴史と進化」 専門用語多め 反応を比較して今後の講義の参考にします コードリーディング(1) 現場で重要なスキル 既存コードベースがある場合、書くコード行数は驚くほど少ない 学習と実務でのギャップ サンプルコードは短い コードリーディング(2) 既存コードを理解できないと デバッグできない 新機能の追加ができない 既存コードと同じコードを書いてしまう(無知ゆえのコピーコード) => 更に読みづらくなる悪循環 理解できないコードは悪 多少

    raimon49
    raimon49 2012/02/10
    地図のメタファー→「いまどの辺を読んでるか」、下位層を一度押さえると次からは読み捨てできる、潜り過ぎないこと。素晴らしい知見。
  • アップグレードと異なるプログラミングパラダイムのためのHadoop再設計

    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...

    アップグレードと異なるプログラミングパラダイムのためのHadoop再設計
  • TDD Boot Camp のお題を C# と Git でやってみた - 予定は未定Blog版

    自分で考えたお題を自分で解くとかそれなんてマッチポンプ・・・ 打ち上げ終了後のホテルと、翌日の帰りの新幹線の中で書いたコードを順番に追ってみます。 準備するものは Git で、あるといいものは Visual Studio 2010 と NUnit です。 まぁ、割と小さいコード (テストを含めても 300 行もない) だし C# を知らない人でもそれなりに雰囲気は掴めると思います。 あ、このエントリかなり長いです。 準備 Windows の場合、Git Bash を開いて、適当なフォルダに移動して git clone git://github.com/bleis-tift/MotsunabeZombieProject.git cd MotsunabeZombieProjectとしてください。 MotsunabeZombieProject というフォルダができて、その中に Git のリポジト

    TDD Boot Camp のお題を C# と Git でやってみた - 予定は未定Blog版
  • 続・話すようにプログラムするPythonチュートリアル - なんたらノート第三期ベータ

    話すようにプログラムするPythonチュートリアル - なんたらノート 第二期の続きです。前回は努力と根性でどうにかなるところまでやりました。今回は、前回再び泥臭いコードになってしまったプログラムを、もっと綺麗にしてみようと思います。 前回はできるだけ一般的な言葉で説明してみました。今回は、既存の概念とそれに対するよりPython的な方法を説明します。前回が知恵と根性なら、今回は知識の力を借りよう、という感じ。標準には含まれていませんが、とても便利なのでPythonデコレータが熱い - なんたらノート 第二期で紹介した、decoratorモジュールも活用します。 デコレータで質/属性の分離 Python2.4から、デコレータ記法が増えました。例のdefの前の@です。以前から、「関数を入力して関数を出力する関数を使って、既存の関数を書き換える」というトリック(デコレータの質はコレ)はあり

    続・話すようにプログラムするPythonチュートリアル - なんたらノート第三期ベータ
    raimon49
    raimon49 2010/06/01
    デコレータ, itertools, メモ化。何回か読み返したい。
  • 話すようにプログラムするPythonチュートリアル - なんたらノート第三期ベータ

    Pythonでえらくハッキッシュなコードを書き散らして遊んだ 3の倍数と3が付く数字だけアホになり、5の倍数だけガルマっぽくなるスクリプトにチャレンジ - なんたらノート 第二期 うえ、他人のエッセイをえらくこき下ろし OOコード養成ギブス - rants OOコード養成ギブスとやらが人気らしい。 - なんたらノート 第二期 て、われながら生産性のないやつだと思うので、ここは逆に、Pythonチュートリアルをひとつ書いてみようと思います。 まず最初に、こんなプログラムがあったとさ。 #素数の数列を返すアルゴリズム def prime_numbers_until(limit): prime_numbers = [] for n in range(2, limit): divider_found = False # 1より大きくその数より小さい範囲で調べる for m in range(2,

    話すようにプログラムするPythonチュートリアル - なんたらノート第三期ベータ
  • データ & アナリティクス | アクセンチュア

    データ分析から導き出されたインサイト無しにAI人工知能)の活用は始まりません。私たちは、各業界知識とデータ・アナリティクス技術を駆使しデータドリブン経営を強力に支援します。 データ、アナリティクス、AIは企業にとって競合他社との差別化を図るかつてないほど大きな要因になっています。今日の経営幹部が効率を向上しながら新たな収益源を開拓し、新しいビジネスモデルをタイムリーに構築する方法を模索する中、価値を生み出し成長を続ける企業には「データ活用」という共通項があります。私たちは、無数のデータから企業にとって当に必要なデータを活用するための方法を知っています。 将来を見据えたオペレーション体制を備えている企業の半数以上(52%)は、すでにデータとアナリティクスを大規模に活用しています。データとAIに関する取り組みをビジネス戦略に沿って実施することで投資利益率を迅速に最大化し、最終的にはAIをビ

    データ & アナリティクス | アクセンチュア
    raimon49
    raimon49 2009/10/02
    addEvent の改良課程がリファクタリングの教科書のよう。分かり易くてすごい。
  • るびま

    『るびま』は、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 直

  • 1