タグ

programmingに関するonkのブックマーク (20)

  • プログラマの麻疹 - 宇宙行きたい

    id:t-wada と話してた時に出てきた「プログラマの麻疹」 プログラマはみんなどうせかかるんだから早めにかかっておいた方が良い そしてかかっておくと治った後にはさらに良いコードが書けるようになるので 恐れずにかかりましょう 名前 症状 僕の状態 OO 厨 多分、現在一番キャリアが多い。一時期 AOP 厨になってしまった人も含むことがある。Smalltalk を神格化し始める かかり中 function 厨 最近増えてきた。マルチコア時代に最適というわかりやすい感染源ができたことも要因の一つ。LISP が世界を作っていると信じる 挫折中 三項演算子厨 どんどんネストした三項演算子を書いてしまう。気がつくと自分でもよくわからなくなってることもある 治療済み テスト厨 テストのためだけにコードを書いてしまう。プロダクトコードのきれいさよりもテストのしやすさを求めてしまう 治療中 lambda

    プログラマの麻疹 - 宇宙行きたい
    onk
    onk 2009/07/06
    一度限度を超えないと適量が分からないんだよねぇw そういう意味でも「厨」という表現は適切。挙がってるのはホントに一度罹患しておいた方が良いよ!幅が広がる。
  • 翻訳 - Python製のソーシャルブックマークエンジンRedditはなぜLispからPythonを使うようになったのか — TRIVIAL TECHNOLOGIES 2.0

    みんなのIoT/みんなのPythonの著者。二子玉近く160平米の庭付き一戸建てに嫁/息子/娘/わんこと暮らしてます。月間1000万PV/150万UUのWebサービス運営中。 免責事項 プライバシーポリシー RedditというのはUSの技術者を中心に人気のあるソーシャルニュースサイトで,Pythonを使って書かれている(バックエンドはと言うとPostgreSQL(Slony))。もともとLispで書かれていて,web.pyというフレームワークを生み出したりもしている。まあ一言で言うとRedditを作っている連中は面白い。Redditのコードが公開されていて,だれでもクローンを作ることができる,とかね。2,3歩先を行っている。 PyCon 2009のキーノートでRedditのFounderたちがキーノートスピーチをしたんだけど,その時の質問「なぜRedditがLispからPythonに移行し

    onk
    onk 2009/05/11
    「理解する必要がない」はまぁ極端な表現なんだろうけど,やっぱり違和感が残るなぁ。リリース速度が遅くなるのは分かっていても,「自分が理解した」と思える場所まで進まないと僕は物が書けない。
  • check禁止令 - idesaku blog

    これまでいろんな人のコードを見てきて、そのたび不愉快になることがあるので、ここで提案したい。 「check」っていう単語の利用、コーディング規約で禁止にしない? 「check」って、実に使いやすい単語なんだよ。「ナントカをチェックする」というと、大抵の検証処理の名前としてOKな気がする。なぜなら抽象度が高すぎるから。言い方を変えると、大雑把すぎるから。大雑把だから、大抵のものに当てはまってしまう。また、「チェックする」という表現が半ば日語になっていることも使いやすくしている要因だ。だからみんなcheckXXXという名前を使いたがる。 しかし、大雑把ということは、第三者から見て大雑把なことしかわからないってことだ。変数名やメソッド名を見ても大雑把すぎて何をやっているのかよくわからず、結局コードを読まなきゃいけなくなる。 かつて、nullCheckという名前のメソッドをしつこくdisったこと

    check禁止令 - idesaku blog
    onk
    onk 2009/04/29
    さすがに check() はあり得ないので大丈夫だろ。 / つーかvalidate() が危険。valid な時に false を返しやがると予想外過ぎて見逃すので isValid() で徹底すべき。check() は読みながら心構え出来ても,validate() はスルー対象にしがち。
  • まさかの日記:MSの某氏との会話ログ

    コンピュータサイエンス系の人たちの間では、サーチのテクノロジーで人気があるのはリリバンシー、次はバーティカルサーチ。 他の要素としては、クローリングとインデキシング、クラウド系というところらしい。 サーバをグリッド化(やや死語だな)して、、みたいなのは、コンピュータサイエンスというよりはエンジニアリング。 昔、シックスアパートの某Perlギークの人と話をしたとき、「自分はエンジニアリング系じゃないんで、、」と言っていた。そのときはエンジニアリングという言葉の定義がよくわからなかったけど、なんとなくわかってきたかも。 あ、全文検索とかマイニングとかも面白いといっていた。まあこれは要素技術だけど。Luceneを作った人が別で作ってる奴が結構良いって。なんだろ。SolrかHadoopか。 あと、エンタープライズサーチ。例えばメール。誰がどんな単語を多用しているかをサマリーしたり、検索させたり。

    まさかの日記:MSの某氏との会話ログ
    onk
    onk 2008/07/02
    これは良いコードレビュー。参考になる。
  • プログラミングとアプリ開発の違い : 404 Blog Not Found

    2008年05月19日11:45 カテゴリYAPC::AsiaLightweight Languages プログラミングとアプリ開発の違い ああ、YAPC::Asia::2008のトリ、Perl Is unDeadを見せてあげたかったなあ。 プログラミングのジャンルと難易度(および Web プログラミング批判) - 黎明日記 だってそうだろ? 「 Web アプリケーション」なんてカッコイイ名前の割に、受け取ったデータを簡単に加工してデータベースに突っ込んで取り出して……それで終わりじゃないか。ビデオやスライドが上がるまでしばらくかかると思うので、とりあえずは以下をご覧あれ。 はてなブックマーク - タグ yapcasia2008 Simon Cozens - YAPC Asia and talking in Japan YAPC::Asia 2008 2日め - てきとうなメモ で、Sch

    プログラミングとアプリ開発の違い : 404 Blog Not Found
    onk
    onk 2008/05/19
    おー,良いまとめ。プログラミングとアプリ開発は別のモチベーションに起因する。
  • 満足せる豚。眠たげなポチ。:TDD は企画には使うなってことでいい?

    あかさたさんの「TDD は新規性の高いサービス開発には適さない」にとても同意。 What(何を作るかっていうゴール) が決まっているかどうかに依存するってことだよね。つまり、naoya さんが言う「新しい機能を作っているときや、新しいサービスを作っているとき」は設計でも実装でもなく、質的に企画の状態だから TDD とか関係ないと。たまたまコードで表現できる人だから企画をコードで検証している(プロトタイプ作りながら取捨選択してサービスや機能をデザインしている)だけなんでしょう。 個人的に今まで一番「BDD/TDD すばらしい!」と感じたのは、ある機能用のライブラリを書いているとき。開発時の制約で VB6.0 を使っていたんだけど、Collection にイライラしたので Ruby の Array を移植した。 まず、要素の追加とか要素へのアクセスとかの基機能についてこつこつとテストを書い

    onk
    onk 2008/05/16
    ゴールをなんとなく掴んでるんだけど,どう実装しようかと悩んでいるときこそ TDD の出番だよね。 / 壊して作り直すときは「手」に委ねているかなぁ。手から実装コードがあふれ出てくるときはテスト書いてらんないし。
  • 野ログはノロキュアMaxHeart - 僕がRubyではなくPHPの勉強を勧めたワケ

    _ 僕がRubyではなくPHPの勉強を勧めたワケ この記事読んで少し語りたくなったので語る。 僕はRuby好きっ子です。 仕事PHPRubyどっちで開発する?って聞かれたら間違いなくRubyを選ぶと思います。 最近作ったサイトはRails以外のサイトでもほとんどRubyCGIです。 なのになんで僕は櫻井君にRubyではなくPHPを勧めたのか。 僕は櫻井君のスキルを良く知らないのですが HTMLCSSはわかる。 プログラムは簡単な変更程度なら出来る程度。 WEB大好き! と判断しました。 効率よく勉強を進めるコツ これは何においても言えることだと思うのですが、モチベーションを維持すること。 これに尽きると思うのです。 もしくはどうしても必要になってやらざるを得ない状況になるか…ですね。 勉強にかかるコストとアウトプットを出せる楽しさを天秤にかけた時にPHPが一番いいのではないかな〜と

    onk
    onk 2008/05/12
    これは良エントリ。いきなり Cake や Rails やるのはしんどいよね。僕らも通った道だし,王道を着実に歩んでいってほしい。 / 僕でも PHP を勧めるなぁ。サーバサイドで,とりあえず「動く」ものを見たければ最高の選択肢。
  • ソースコードが「一期一会」の意味

    「F's Garage:ソースコードは一期一会の精神で書くべし。」のエントリーは僕としても書いた後で、いろいろ思うことがあったが、「一期一会」という言葉には多少こだわりがあります。 以下に書く話は、前回のエントリーを書いたときとは全然違うことを思って書いているので、矛盾が起きるかもしれません。ただ、以下の件を思い出したので書いてみます。 結構、僕にとって衝撃だったのが先日PDFが公開されていたサウンドハウスの情報漏洩の件でした。 サウンドハウスニュース ↑のリンクで公開されている情報漏洩に関するプロセスが書かれたPDFは皆さん読まれたでしょうか? 全然事情は知らないので、以下は妄想ではありますが、一度動き出したシステムが、さまざまな理由やビジネス判断で修復をするチャンスを得られなかったのかなぁと思うと、非常に寂しく思っています。 いろんなツッコミ所はあって批判するのは簡単なんですが、やっぱ

    onk
    onk 2008/05/11
    リファクタリングとリストラクチャリングの違い。既存の古いシステムをどうテストすべきか。こういった話は少しだけど自信がついてきたなぁ。毎日戦っているだけに。
  • 駄文 - Re: Foolish consistency is the hobgoblin of little minds. - 西尾泰和のはてなダイアリー - IT戦記

    Foolish consistency is the hobgoblin of little minds. 良い言葉だなあ。 僕は、コーディング規約をやたら気にするのは好きじゃない。 いろんな書き方があったほうが、ソースを読んだときにおもしろいじゃんとか思う。 前にこのことで議論になったことがあって 「いちいちインデントとか強制されんのやだ!変態的なコードのほうが面白いじゃん」って言ったら。 「お前はプロだろう」と itkz に DIS られたのを思い出した。 納得はしていないが、あの議論はおもしろかった。 itkz は元気にしてるんだろうか。

    駄文 - Re: Foolish consistency is the hobgoblin of little minds. - 西尾泰和のはてなダイアリー - IT戦記
    onk
    onk 2008/04/14
    単位時間当たりに自分が出せるアウトプットを考えるとなぁ。仕事をする上では同意しづらい。
  • 最近はプログラマの影響力が大きくなっている - プログラマの思索

    最近のWebシステムの開発の現場で気づいたこと。 システム開発の現場でプログラマの影響力が大きくなっている気がする。 現在は、入社1年目の新人プログラマでも、3ヶ月で軽く数万行のプログラムを書いている。 優秀な人であるのは分かっているが、数年前には信じられない状況だ。 数万行のプログラムの中身は、フレームワークが自動生成したソースやユニットテストが半分以上占める。 でも、それらのプログラムの整合性を取りながら、一つのWebシステムを曲がりなりにも動かしている事実がある。 以前よりも、大規模なシステム開発が少人数のチームで可能になったのは確かな事実だと思う。 その開発環境を支えているものは何か? 3つあると思う。 【1】フレームワークの威力が上がった RubyならRailsJavaならS2Sruts/S2daoを使えば、DB層からWebのControler/Viewまで、CoCに従って簡単

    最近はプログラマの影響力が大きくなっている - プログラマの思索
    onk
    onk 2008/04/07
    出来ることが(量・範囲ともに)増えた,のは確かにその通りだよなぁ。より大きなものを扱えるようにならなければならない。こういうときこそ地力が試される。
  • http://www3.vis.ne.jp/~asaki/p_diary/diary.cgi?Date=2008-03-05

  • ペアプログラミングってどうなの?

    XPやアジャイルといった方法論によって有名になった「ペア・プログラミング」というものがある。その名の通り、二人でプログラミングを行うこと。これに僕は、ちょっと抵抗感がある。 まず、「ペアプログラミングは限定的なタイミングで威力を発揮する」と思っている。そもそもXPは「火消しのための方法論」をプロジェクト全体に適用しようと試みられた方法論である。僕はXPの流行前後の時期はまさに「ファイアーマン(火をつける人じゃなく消す人!)」だったため、特にXPに関しては興味を深く持った。例えば「不具合対応」という比較的細かな問題解決に対して、すでに大きなコードセットに立ち向かうためには、自分の知識だけでは足りない。つまり、コードセットの中で自分の知らない箇所や全体感などを把握している他人と共に「ここでもない、あそこでもない」とやり取りしながらコードを修正していくことは、バグ潰しという暗い作業を明るくしてく

    onk
    onk 2008/02/28
    研修や引継に有効なのも,個人では速度が落ちるのも同意。 / 責任の共有やダブルチェックの安心感がリファクタリングに繋がり,最終的にコードの品質を上げる。"責任"という言葉に弱い人たちを忘れちゃ駄目だよ。
  • L'eclat des jours(2008-02-16)

    _ 時代的な制約 Strutsって、まさに時代的な制約による(アクションが単一インスタンスなんて完全にそうだと思う……と書いた先から不安になってきたが、当にそうだっけかな?)アーキテクチャを採用して、逆に時代的制約によって好まれて、で、時代的制約によってけなされる(そりゃ、2008年現在から見れば古臭いのは当然)存在であるなぁと。 にもかかわらず、嫌いではない。 フルスタックのよさというのは、Instant RailsとかLocomotiveに端的にあらわれているけど、確かに良いものだ。だって、楽だもの。でもこれは、Microsoft的アプローチと言ってよいと思うけど? SQL*Server+IIS+ASP.NET(ASP)+System.Enterprise(MTS)+Visual Studioというアプローチみたいだ。 別に対抗させる意味はないけど、これに対してバザールアプローチとい

    onk
    onk 2008/02/27
    仕様とメッセージ。
  • JavaScriptが、プログラムの初心者が勉強するのに適さない理由 - きしだのはてな

    デブサミでid:amachangが、初心者がプログラムを勉強するための言語としてJavaScriptがいいと言っていて、ぼくも同じような理由でいいと思って初心者の勉強にJavaScriptを使ってみたことがあるのだけど、実際にやってみるとかなり難しいと思ったので、そのことをまとめておきます。 id:amachangが言ってたことははっきり覚えていないので、まずは、ぼくがJavaScriptがいいと思った理由。 実行環境がデフォルト どんなパソコンにも最初からJavaScriptを動かす環境が入ってます 実際に動いてるものがみれる JavaScriptで動かしているものにすでに接しています 作ったものをすぐに試せる ブラウザで試せます 言語が難しくない(入り口として) 型の指定をしなくていいのは、初心者には敷居が低い で、JavaScriptを使って初心者にプログラムを教えるのを断念した理由

    JavaScriptが、プログラムの初心者が勉強するのに適さない理由 - きしだのはてな
    onk
    onk 2008/02/20
    あー,この発想はなかったなぁ。余りにも HTML は身近すぎた。
  • 自分の経験の枠組みは自分で変えられるか? - アンカテ

    例によってメタな方向に話を広げようと思うんだけど、Ruby VS PHP論争の背後には「自分の経験の枠組みは自分で変えられる」という発想の有無という問題があるのではないだろうか。 そう思ったきっかけはこれ。 影響力のある人 - L'eclat des jours(2008-01-31) artonさんは、Matzにっき(2008-01-29)のコメント欄にあった、「影響力の大きい人が発言してるので怒ってます」という一言レスに着目して、興味深い考察をしている。 影響力のある人ってのは、つまり権威ってことなんだし、自分で吟味しない人は常に一定の割合でいて(そうでなければ、世の中に権威という存在はありえないわけだが、実際、存在している)その人たちに影響を与える。 ってことは、権威がある人は、だめなものはだめ(良いものは良い)、と言うべきですね。 私も全くその通りだと思ったけど、冒頭のように考えて

    自分の経験の枠組みは自分で変えられるか? - アンカテ
    onk
    onk 2008/02/02
    これは素晴らしい洞察。この空気を作り出した ruby のコミュニティは賞賛に値する。 / なるべく多くのエンジニアに「自分の意見を入れられる場」へと出てきて欲しいと思うんだが,どうすれば叶うのかなぁ。
  • 駄文 - プログラミングと Shell - IT戦記

    (ダラダラと書く) もっぱら id:lovecall さんが注目されていますが、 こっちも cho45 が先生(?)なので間違いないhttp://d.hatena.ne.jp/dropdb/searchdiary?word=%2a%5bRuby%5d で、 しょっぱな Cygwin に苦戦してるみたい うーん でもコマンドプロントとの違い、良さがわかりません・・・のです・・・ http://d.hatena.ne.jp/dropdb/20071105#p5 最初に Cygwin を入れさせるとは、さすが cho45 だなあと思った Cygwin の良さと自分の経験 僕は Windows をやめて Linux (のちに Mac) を使い始めてから、プログラミングの学習速度が飛躍的に伸びた。 その原因は間違いなく、 GUI -> CUI つまり Explorer -> Shell に環境を変え

    駄文 - プログラミングと Shell - IT戦記
    onk
    onk 2007/11/07
    あふだよあふ.あと keyconfig.とにかくマウスを手放すことから始めるべき.常にホームポジションです. / Cygwin は Windows 環境汚れて大変(と僕は思った)なので VMware のが良いと思うます.どーせ ssh で繋いで screen だよ.
  • はてなグループの終了日を2020年1月31日(金)に決定しました - はてなの告知

    はてなグループの終了日を2020年1月31日(金)に決定しました 以下のエントリの通り、今年末を目処にはてなグループを終了予定である旨をお知らせしておりました。 2019年末を目処に、はてなグループの提供を終了する予定です - はてなグループ日記 このたび、正式に終了日を決定いたしましたので、以下の通りご確認ください。 終了日: 2020年1月31日(金) エクスポート希望申請期限:2020年1月31日(金) 終了日以降は、はてなグループの閲覧および投稿は行えません。日記のエクスポートが必要な方は以下の記事にしたがって手続きをしてください。 はてなグループに投稿された日記データのエクスポートについて - はてなグループ日記 ご利用のみなさまにはご迷惑をおかけいたしますが、どうぞよろしくお願いいたします。 2020-06-25 追記 はてなグループ日記のエクスポートデータは2020年2月28

    はてなグループの終了日を2020年1月31日(金)に決定しました - はてなの告知
    onk
    onk 2007/10/31
    あー,分かるw いい入り口.
  • ユメのチカラ: プログラマの基礎体力

    そもそも、プログラマの基礎体力ってなんだろう。学校でアルゴリズムの基礎を習うとか、プログラミング言語を習うとか、あるいはコンピュータの基礎を習うとかそういうことなのだろうか。 断片的な情報を獲得するのなら確かにインターネットや書籍でどうにかなる。しかし、職業プログラマとして一目置かれる存在になるための基礎体力ってなんだろう。 高校や大学などでプログラマの基礎体力は身につくのだろうか。 プログラムと言っても、ゲームのプログラムから、顧客の要求に従ったアプリケーションプログラム、組み込み機器の制御プログラム、あるいはOSやら、コンパイラやら、RDBMSやらの基盤ソフトウェアなど様々ある。 わたしの場合、子供の頃、初めてコンピュータに触る機会があって、その時のなにやら得体の知れない興奮みたいなものが結局のところコンピュータ関連の職業につくことになったのだが、知識0から鍛えるべきプログラマの基礎体

    onk
    onk 2007/10/20
    まず見た目が面白い動きでバーンと惹き付けておいて,その実装方法を学ばせる.DHTML から入った僕はまさに現代プログラマ. / 今って BASIC でゲーム打ち込むような経験はしないと思うんだよねー.入り口は web だよ.
  • Tumblr

    onk
    onk 2007/10/19
    Java=綺麗に書かなきゃ,な固定観念をまずぶち壊すと良いと思うんだぜ. / でも雰囲気は分かる.確かにこういう空気があるよね.
  • 頭の中にプログラムを入れる

    Paul Graham / 青木靖 訳 2007年8月 いいプログラマは、自分のコードに集中しているとき、それを頭の中に保持しておくことができる。数学者が取り組んでいる問題を頭の中に入れているのといっしょだ。数学者は学校で子供たちが習っているように、紙の上で問題の解いているわけではない。彼らは多くの部分を頭の中でやっているのだ。問題の領域をよく把握しようと努めることで、普通の人が記憶にある育った家の中を歩き回れるように、数学者は頭の中で問題空間を歩き回ることができる。最高の状態で行われるプログラミングもそうだ。プログラムの全体を頭の中に入れたなら、それを思い通りに操れるようになる。 これはプロジェクトのはじめにおいては特に価値がある。それはプログラムを作り始めるときに最も重要なことが、やっていることを変えられるということだからだ。単に問題の解き方を変えるという ことではなく、解いている問題

    onk
    onk 2007/08/26
    これは良エントリ.ぜひみんなに読んでもらいたい. / 頭の中に入れるには限界がある.「ブラックボックス」として小さく分割するためには設計上の問題も大きいよね.
  • 1