タグ

programmingと開発に関するyogasaのブックマーク (22)

  • プログラミング地獄への道は“ベストプラクティス”で敷き詰められている:Rails Hub情報局:エンジニアライフ

    Ruby on RailsのメジャーバージョンアップとなるRails4のリリースが近づいて来ました。先日、日人(あるいはアジア人)として初めてRailsコアチームのコミッタとして迎え入れられた松田明氏によると、Railsの生みの親であるDavid Heinemeier Hansson氏(以下、通称のDHHを使います)は、プロジェクトをリードするという意味で活動が活発になっているそうです。 そして最近のDHHは、ブログもよく書いています。彼は歯に衣着せぬ発言でも知られています。強い主張を持った(opinionated)なフレームワークの作者らしく、DHH自身もきわめてハッキリと物を言います。攻撃的とまでは言いませんが、IT業界技術動向などでは割と何かをクソミソにけなしたりということをします。 DHHが何かをけなすときは、だいたい何らかの鋭い洞察とパンチの効いた皮肉が含まれていて、Twit

    プログラミング地獄への道は“ベストプラクティス”で敷き詰められている:Rails Hub情報局:エンジニアライフ
  • 「自動生成でプログラマ不要」とかゆーの - 日々常々

    「自動生成」って言葉を聞くと、前のめりになったり顔をしかめたりと人によって反応は様々です。ですが「自動生成でプログラマが不要になる」と言われると「ばかじゃねーの」となると思います。 少しも「ばかじゃねーの」と思わない人はコンテキストが根からズレてますので、以下は読む必要ありません。そこをあわせるつもりは無いですので。 自動生成されたコード 生成元はなんであれ、コードを自動生成すると言うアプローチはよくあります。 ここではコード全体を自動生成する場合を指すと思ってください。生成されたコードがそのままコンパイル可能である状態です。言ってしまえば「バイナリを自動生成する元であるコードを自動生成せざるを得ない」ってことで、さらに誤解を恐れずに言えば「扱っている言語は表現力に乏しい」となります。だって高級言語なんて人間が扱えるように作られてるはずなのに、それよりも読みやすく書ける上にそのままコンパ

    「自動生成でプログラマ不要」とかゆーの - 日々常々
  • 第16回 生産性を上げるソースコードの書き方 | gihyo.jp

    ソフトウェア開発の難しさ ソフトウェアの開発プロジェクトに少しでも関わった人は誰でも知っていると思うが、ソフトウェア作りで最も難しいのは「スケジュール通りにソフトウェアを完成させること」である。 バグがなかなか修正できず泥沼にはまってしまったり、変更され続ける仕様のために当初立てたスケジュール表がまったく役に立たなくなってしまったり、スパゲッティコードに頭を抱えたりということはよくある。出口の見えない状況でソフトウェアエンジニアが過酷な労働を強いられる状況を「デスマーチ」(⁠death march)と呼ぶが、そんな言葉が存在すること自体が、ソフトウェア作りの難しさを表している。 ソフトウェアの開発は「生産活動」ではあるのだが、建物を建てる、料理を作る、野菜を育てる、ハードウェアを組み立てるなどの生産活動とは大きく違うのだ。 建物の場合で言えば、明確に定義された「設計図」がある。そして、その

    第16回 生産性を上げるソースコードの書き方 | gihyo.jp
  • 【Javascript】consoleオブジェクトが持つlog以外の便利メソッド18(前編)

    こんにちは、橋です。 今回と次回の2回にわたり、Safari、ChromeのWebインスペクターやFirefoxのFireBugで使えるconsoleオブジェクトの使い方について書いてみたいと思います。 Javascriptのコードをデバッグする際に、console.logを使ってメッセージやオブジェクトの内容をログに表示することがあるかと思いますが、 この「console」オブジェクト、実はlogメソッド以外にも複数のメソッドがあります。 まずは、consoleオブジェクトにどのようなメソッドがあるか、console.logを使って表示してみたいと思います。 consoleオブジェクトの中身を見てみると、__proto__オブジェクトに以下のメソッドが定義されています。 assert count debug dir dirxml error group groupCollapsed g

    【Javascript】consoleオブジェクトが持つlog以外の便利メソッド18(前編)
  • 「はてな教科書」をgithub上に公開しました - Hatena Developer Blog

    こんにちは、id:shiba_yu36です。 はてなエンジニア陣によって執筆されたウェブアプリケーション作成の基を学ぶための「はてな教科書」をgithub上に公開しましたのでお知らせします。 はてな教科書は、はてなサマーインターンでも利用されている、約1週間でウェブアプリケーションの基を身に付けるためのものです。はてなでは日々のウェブ開発で得られたノウハウをこの教科書を継続的に盛り込みながら、インターンシップやエンジニアの新人教育などに利用しています。今回、はてな教科書をgithub上で公開することで、広くPerlを使ったウェブアプリケーション開発に興味を持ってもらえれば、と思います。 いまのところ公開されている資料は、以下の4つになります。 Perl によるオブジェクト指向プログラミング ORM によるデータベース操作 (DBIx::MoCo を使った開発) MVC によるウェブア

  • 新しい何かに取り組むプログラマさんたちへ | y_matsuwitter's

    桜の季節が近くなってきましたね。 春といえば出会いと別れの季節です。 我々プログラマも、ともすると4月から就職して新しいプログラミング言語やプロジェクトに出会うのではないでしょうか。 僕は1月に戦場を移動した関係で、1月から初めてRubyに取り組みました。 またObjective-cも書き始めています。 何かの参考になればと思い、今回の経験から僕なりの新しいプログラムへの取り組み方の定石みたいなものを偉そうに書いてみようと思います。 Kiai Driven Development 新しい言語やプロジェクトに出会ったとき、KDD(気合駆動開発)信奉者の僕が気を付けている点が3つ有ります。 それを一から紹介します。 Githubをとにかく巡れ! 新しい言語に取り組むとき、僕はまずGithubのその言語に関するwatchやfolkのランキングを見てます。 ランキングは、Github上部のExpl

  • 変数とメソッドの命名ベストプラクティス15 - 杉風呂2.0 - A Lifelog -

    この記事は、Cagdas Basarane 氏のブログ、 CodeBuild から 2012年2月20日の記事 "15 Best Practices of Variable & Method Naming" を翻訳したものです。 原文URL http://codebuild.blogspot.com/2012/02/15-best-practices-of-variable-method.html 十分短く十分長い変数名をスコープごとに使用する。一般的に、ループカウンタには1文字、条件やループ変数には1単語、メソッドには1-2単語、クラスには2-3単語、グローバル変数には3-4単語を使用する。 具体的な(specific)名前を使用する。例えば、"value"、"equals"、"data"といった変数名はいかなる場合も有効ではない。 意味のある(meaningful)名前を使用する。変数

    変数とメソッドの命名ベストプラクティス15 - 杉風呂2.0 - A Lifelog -
  • コミットメッセージの書き方 - 2012-02-21 - ククログ

    はじめに 「分かりやすいコードを書く」、「コードと一緒にテストも書く」等はソフトウェア開発において大切なことです。しかしそれと同じくらい大切なことして「分かりやすいコミットメッセージを書く」があります。これはあまり着目されていなく、見過ごされていることです。 今回は、コミットメッセージの分かりやすさの大切さ、そして、分かりやすくするための書き方を説明します。 コミットメッセージとその大切さ バージョン管理システムとコミット 現在、ほとんど全てのソフトウェア開発ではSubversionやGitなどのバージョン管理システムを使っています。バージョン管理システムを使うことによるメリットというのは、ソフトウェアの変更が記録されていくことにあります。 具体的なメリットは3つあります。 ソフトウェアの調査がしやすくなることです。現時点でのコードと、そして変更の履歴とを組み合わせることで、それらから非常

    コミットメッセージの書き方 - 2012-02-21 - ククログ
  • JavaScriptをやり始めた人が理解したほうが良いJSONパーサのコード - sifue's blog

    そろそろ4月も近いということもあって、新たにWeb業界やSIer業界に入るぞという方がプログラミングの勉強をし始めているころでしょうか。最近は、エンタープライズでもWebクライアントが主流になりつつあるのでJavaScriptの習得は避けては通れない道だと思います。また、Node.js等サーバーサイドのJavaScriptも出てきたこともあって、非常に有用な言語になりつつあります。 そんなJavaScriptを学び始めている人の中でも、ある程度プログラミングをやったことがある人がJavaScriptの綺麗な書き方を学ぶのに絶対理解しておいた方が良い300行程度のソースコードがあります。 それは、JavaScript: The Good Partsに載っているJSONパーサのコードです。 JavaScript: The Good Parts ―「良いパーツ」によるベストプラクティス 作者:

    JavaScriptをやり始めた人が理解したほうが良いJSONパーサのコード - sifue's blog
  • ようやく Rails3 アプリを一つリリースした。

    リリースしたものよりもそこに至る過程や理由が自分にとって大事なのでそれを残しておこうと思う。 ※ なんかこれしか書いてないとリリースしたものがどうでもいいように聞こえるけど、そんなことないよ! 付き合い続ける気があるからこその Rails だもの。 Rails の採用に関してオレフレームワークとの決別と人材採用のコストダウンこれまで、PHP 4.2 以降で使えるオレライブラリ、オレフレームワークで小規模なものを作ったり、PHP 3 時代からのレガシーというか遺跡級のシステムの漸進的リプレイスなどを行っていたが、どうも限界を感じていた。なんか仕事が後ろ向きな感じもしていた。このままだとずっと時代に追いつけずに終わりそうという危機感もあった。 また、Google App Engine の登場以降感じていた「うちに必要な技術はこれだよ」と具体的にはっきり言えること、それによって生み出すことのでき

  • Android開発におけるクラスのおさらいと主なメソッド

    はじめに 第2回目の稿は、前回のサンプルコードをもとに、Javaの文法、特にクラスに関連する基的な構文などを解説していきます。 対象読者 Androidアプリケーションの開発を始めたい方で、JavaとEclipseのごく基的な知識がある方を対象とします。 HelloWorldアプリケーションのファイル構造 前回は、いわゆるHelloWorldアプリケーションを作成しました。作成といっても、ほぼソースは自動生成されたものです。Eclipseのパッケージ・エクスプローラーには、このプロジェクトで生成されたファイルが表示されています。最小のアプリケーションとはいえ、さまざなファイルが作成されています。主なフォルダ、ファイルは、以下のようになっています。 <HelloWorld> ├ \src ソースフォルダ │ └ \codezine.androidjava.chap1 │ └ Hello

  • 初心者に送る、はじめてのAndroidアプリ開発/小気味の良いアプリをつくるためのTIPS - shimobayashiの日記

    みなさん最近はいかがお過ごしでしょうか。プログラマーのみなさんならば当然、地震におけるエクストリーム・プログラミングを実践されていることかと思います。僕もその例外ではなく、震災の影響もあって時間的な余裕ができたため、以前から興味を持っていたAndroid開発に格的に着手し、先日ようやくはじめてのAndroidアプリケーションをマーケットにリリースすることができました。Cook Duet - Android マーケットhttps://market.android.com/details?id=name.shimobayashi.cookduetCookpadのレシピを検索して表示するだけ、という非常に簡単なアプリケーションなのですが、このアプリケーションを開発するだけでもかなりの試行錯誤が必要となりました。つきましては、今ここにCook Duetの開発を通じて蓄積されたバッドノウハウを、簡

  • Web Applicationを綺麗に設計するためのMVACという考え方 - $shibayu36->blog;

    【2016/03/04追記】以前まとめたこのMVACという名前の設計は既に古くなっており、今はこのようなアーキテクチャで設計していません。 こんにちは。最近ははてなでMVACというアーキテクチャに則って開発をしているのですが、ようやく意味を理解できてきました。そこで今回は「Web Applicationを綺麗に設計するためのMVACという考え方」について、サンプルを交えながら説明していこうと思います。かなり長くなってしまったので、時間があるときにでもどうぞ。 MVACって? データソースやロジックを扱う「Model」、表示・出力を管理する「View」、複数のModelとControllerをつなぐApplication、ユーザのリクエストなどを受け取りViewやApplicationを制御する「Controller」の4つの要素を組み合わせてシステムを実装する方式。MVCをさらに抽象化した

  • windowsでwebサービスの開発をしているひとにUbuntuをオススメしたい3つの理由 - jiska

    windowsphpを使ってwebサービスの開発してるのをみていろいろ思うことがあったので書いてみた。 windowsは使ってるけどLinuxとかよくわからないって人向け。 なぜUbuntuをオススメしたいのか windowswebサービスの開発を行うにはphpならばXAMPPなどを、Ruby on RailsならばInstantRailsなどを使うと思いますが、サービスの公開に利用しているサーバはCent OSやRedHatなどのLinux OSが大半だと思います。そんなLinuxサーバを操作するためにはどうしてもLinuxの知識は必要になってきます。それだったらはじめからLinuxを使って開発して、体を慣らしてしまえばいいのです。 そして数あるLinuxデストリビューションの中でもUbuntuは簡単に使うことができます。そして環境を整えることがとても簡単です。 この点からUbunt

    windowsでwebサービスの開発をしているひとにUbuntuをオススメしたい3つの理由 - jiska
  • Javaプログラマが知るべき9のこと - @katzchang.contexts

    はじめに ソースコードは設計であり、コードの記述は品質に直結するのは言うまでもない。ちなみに、プログラマにとって特に重要なのは保守性だ。コードは書いた直後から保守対象となるからだ。コードは要求文書の範囲で動けばいいと思っている人がいれば今すぐ、ソースコードをコピペして100klに増えるプラグインがいつの間にかインストールされる呪いをかけてあげよう。幸い、ここを読んでいる人にはそんな人はいないだろうと思うけれども。 ということで、コードの品質を下げる要因、すなわちシステム全体の品質を下げる要因となり、かつ使われやすいアンチパターンを挙げ、対策を検討していくことにする。対象は以下: 出力パラメータ 処理状態返却 意味のある配列 無意味な初期化 多すぎるtry-catch 暗黙の順序 コンパイラ警告の無視 過剰なコメント e.printStackTrace() 出力パラメータ メソッドの引数にオ

    Javaプログラマが知るべき9のこと - @katzchang.contexts
  • livedoor Techブログ : Eclipse初心者がAndroid開発する際に押さえるべきこと

    こんにちは! iPhone/Androidエンジニアのgaoohです! 好きなExceptionはUnsupportedOperationExceptionです! みなさん、Android開発ではエディタは何をつかってますか? やっぱJavaといえばEclipseですよね! 個人的にはEclipseが大好きっ子です。好きすぎてEclipseでPerlを書いてたらまわりから変な目でみられたけど、それにもめげずに今日もワークスペースを開きます。 そんなEclipse好きなので、Androidで開発するときに抑えておくべきことをまとめてYo! とリーダーにいわれたので、まとめてみました。 これだけはいれとけ! 必須plugin ADT 当たり前ですが、これをいれないと話になりません。 http://developer.android.com/sdk/eclipse-adt.html EGit G

  • 一週間で初めてのAndroidアプリを作ってみました - もとまか日記

    以下の記事で、GALAXY Sと過ごした7日間の日々について書きました。 iPhoneユーザがGALAXY Sと過ごした7日間をまとめてみました その中で思ったのは、 やっぱりAndroidのアプリ作ってみたいよなーということ。 ということで、初めてのAndroidアプリを作ってみたら約一週間くらいで形になったので、その過程をメモしてみます。 作ろうとするAndroidアプリのコンセプト 7日間のまとめでも書いたように、今のAndroidは、はてブ環境が充実してないと感じたので(個人的な感想ですが)、どうせならiPhoneアプリ「はてブポケット」を移植してみたらどうだろう?と思いました。ということで、コンセプトは以下。iPhoneアプリ「はてブポケットを移植してみる」 MacAndroidアプリ開発環境を構築する 何はともあれ必要なのが開発環境です。以下の記事を参考にしてみました。Mac

  • テストを書くこととテストをすることの違い - 未来のいつか/hyoshiokの日記

    会社でレガシーコード改善ガイドの読書会をやっていて、次回で読了だ。4月に入ってから週に1回くらいのペースでやっていて、2ヶ月半くらいかかった。途中、ゴールデンウィークや所用で開催しないこともあったので、10回くらいで完走したことになる。 一人当たり、1章ないし2章くらいを担当して、その章に書いてあることを説明した後にみんなであーだこーだ議論をする。気になったことを質問したり、どうも良く分からないことをみんなで考えたりする。 テストがないコードはレガシーコードだ!というキャッチフレーズはわたしの心をとらえた。 参加者の皆さんとその価値観を共有できた事はうれしい。 現場での開発の実情をいろいろ教えてもらった。テストを書くことはあまり一般的ではないということにわたしは衝撃を覚えたのであるが、この読書会を通じて、テストを書かない開発というのがレガシーコードを作っている事に他ならないという共通の認識

    テストを書くこととテストをすることの違い - 未来のいつか/hyoshiokの日記
  • 400万行のコードを15分で見える化! プログラム解析ツール『Understand』で開発効率アップ

    システムの多機能化により、プログラムの内容が複雑化している。テクマトリックスの『Understand』は、プログラムの構造を可視化することで、ソースコードの解析時間を大幅に削減できる開発支援ツール。今回は同社の福永一寛氏に、Understandの機能や特徴について聞いた。 システムの多機能化により、プログラムの内容は複雑化している。既存コードの改修や多人数での開発における情報共有のためには、プログラム構造の理解が必須だが、ドキュメントと実装内容とが乖離している場合も多く、解析自体に工数がかかることもある。テクマトリックスの『Understand』は、プログラムの構造を可視化することで効率的なソフトウェア開発をサポートするソフトウェア開発環境。「組込みシステム開発技術展(ESEC)」にて、同社の福永一寛氏にその特徴を聞いた。 ソースコードの解析作業時間を大幅に削減する『Understand』

    400万行のコードを15分で見える化! プログラム解析ツール『Understand』で開発効率アップ
  • アンチパターン - Wikipedia

    ソフトウェア開発におけるアンチパターン (英: anti-pattern) とは、必ず否定的な結果に導く、しかも一般的に良く見られる開発方式を記述する文献形式を言う[1]。その内容は、基的には、否定的な開発方式の一般的な形、主原因、症状、重症化した時の結果、そしてその対策の記述からなる[2]。 デザインパターンを補完・拡張する関係にあるもので、多くの開発者が繰り返すソフトウェア開発の錯誤を明確に定義することにより、開発や導入を阻害する一般的で再発性の高い障害要因の検知と克服を支援することが目的である[3][4]。 概要[編集] ある問題に対する、不適切な解決策を分類したものをアンチパターンと言う[5][6]。 アンチパターンという呼び方は、アンドリュー・ケーニッヒ(英語版)が1995年に作り出したもので[7]、後に書籍The patterns handbook[8]で再掲された。 ギャン