タグ

programmingに関するbull2のブックマーク (54)

  • 入社からの半年間でコードレビューで指摘されたことのまとめ - 30歳からのプログラミング

    実務未経験でプログラマとして入社して半年以上が経った。 コードレビューで指摘されたことを備忘録としてまとめておく。 自分なりにまとめたものなので、レビュアーが言いたかったこととニュアンスや解釈がずれている可能性はある。 初歩的な内容ばかりで我ながらうんざりする。 せっかく優秀な同僚ばかりなのだからもっと高度なことを学びたいが、こういう初歩的なことが出来ないのが俺の現状なのだから、仕方ない。 そもそもPullRequestを送ったこともなかったわけだし。入社初日は、一人でPullRequestの出し方を練習していた。 それを考えればまあ、こんなものだろうか。 当たり前のことをちゃんと当たり前に出来るようになって、早く、次のステージに進みたい。 PullRequest(PR) PRのタイトルは分かりやすいものに。必要に応じてチケットの番号なども入れる。 コミットやPRは出来るだけ粒度を細かくす

    入社からの半年間でコードレビューで指摘されたことのまとめ - 30歳からのプログラミング
  • アーキテクチャよりも設計を重視しよう – 米政府18Fチームの提案 | POSTD

    注釈: CASH LAYER:キャッシュレイヤ FRONT END:フロントエンド ASSET SERVE:アセットを供給 WEB SERVER W/ROUND ROBIN FAILOVER:ラウンドロビンとフェールオーバーを実装したWebサーバ THE CLOUD:クラウド ALL READS! :全ての読み込み WRITES:書く READS:読む MASTER:マスタ INPORTANT POINTY THINGS:重要な鋭い情報 MULTI MASTER DB CLUSTER:複数のマスタからなるデータベースの集合体 「エンジニアはまずアーキテクチャの全体像から始めるべき」、というのが先人たちの知恵からの教訓となっています。データベースを使ったサービスが他のサービスと関係する様子を、線や矢印で表したのが上の図です。キャッシュレイヤ、ロードバランサ、その他の複雑な形も上図の情報フロー

    アーキテクチャよりも設計を重視しよう – 米政府18Fチームの提案 | POSTD
  • 同僚の外国人プログラマ観察記録 - rinu's blog

    概要 1ヶ月くらい一緒にお仕事している外国人プログラマさんを観察した記録です。 スペック 性別: 男性 仕事内容: うちの会社のプログラマは、ざっくり JS 等のフロントエンドと、 Java 等のバックエンドエンジニアにわかれているのですが、彼はどちらもやっているようです。 好きなべ物: はちみつ たまに、くまさんのようにはちみつを舐めていました。 性格 彼はめんどくさがり屋です。 同僚の Windows ユーザの手伝いをしている時、 "C:¥Program Files¥..." みたいなパスを打ちながら、「めんどくさい。 ああ めんどくさい」 と 100回くらいつぶやいていました。 (普段の彼の環境は mac なので /usr/local/bin) パスワードを覚えるのもめんどくさいので 1Password で管理しているようです。 PC スペック マシン: Macbook Pro メ

    同僚の外国人プログラマ観察記録 - rinu's blog
  • 細かすぎて伝わりにくいTopCoderのコーディングスキル向上マジック

    細かすぎて伝わりにくいTopCoderのコーディングスキル向上マジック:最強最速アルゴリズマー養成講座(1/3 ページ) 競技プログラミングはレベルの高い人たちの集まり――そんな考えを持っている初心者の方、TopCoderはあなたのコーディングスキルを爆発的に高める魔法のような場です。今回は、初心者にこそお勧めしたいTopCoderの魅力について考えます。 教育的な観点から見るTopCoder 今回からTopCoderに関する実践的アルゴリズムを解説していく予定でしたが、序盤のうちに触れておきたいことがありましたので、今回の枕は“教育的視点から見るTopCoder”というテーマで少し書こうかと思います。 まず、最初に宣言しておきたいことは、この連載は初心者向きである、ということです。「どう考えても上級者向けだろう」という意見はたくさんの方から寄せられていますが、筆者は、まだプログラミングレ

    細かすぎて伝わりにくいTopCoderのコーディングスキル向上マジック
    bull2
    bull2 2009/12/06
    プロコンそのもの
  • Yaneu Labs --- コンピュータ将棋プログラムをLISPで書く

    *[hatefu:labs.yaneu.com/20090905/] コンピュータ将棋プログラムをLISPで書く 「コンピュータ将棋プログラムをLISPで書く」と言うとコンピュータ将棋開発関係者にすら完全にネタかと思われているのが実状ではあるが、私はこれを機にその誤解を解いておきたい。 ここでは、私がC#で書いたLISPエンジンのソースを公開し、これが実際にコンピュータ将棋プログラムの開発において非常に有効であることを示す。 * YaneLisp version 1.10 今回の記事はあまりに長文なので最後まで読む前に眠くなる人のために、まず始めに私が実装したLISPのバイナリとソースを配布しておく。ライセンスはNYSLとする。 勢いに任せて実装したので、かなり雑な作りだが、必要ならばC#側で関数を追加するなりすればいいと思う。このLISPの製作に要した時間は丸2日ぐらい。 # YaneL

    bull2
    bull2 2009/09/05
    lispでCコードを生成するのね。コンパイラはLispで書くと楽だから納得。
  • http://blog.eorzea.asia/2009/08/post_57.html

  • 空気読む Perl 空気読まない Java

    とのこと。ここで,PerlJava は動的型付言語と静的型付言語の代表を挙げただけなので,RubyC++ でもいいし,JavaScript と C でもよかったりします。あたしんとこの職場は,普段 C++ でプログラミングしているので,LL にはやや冷たいところがあったりします。それにもかかわらず,上の至言。自虐っぷりが笑える。 ここで,『プログラミングRuby』の話がなんで出てきたのかというと,書に動的型付言語の話があって,それが話題になったからです。 もうお気づきのことと思いますが、Ruby では変数やメソッドの型を宣言しません。すべては何らかのオブジェクトです。 (snip) 大半の言語では静的な型システムが採用されていますが、それによってプログラムのセキュリティが実際に向上しているかというと、実はそうでもないのです。例えば、Java の型システムが信頼できるものだとし

    bull2
    bull2 2009/06/16
    型推論最強でFA?
  • 上流工程なんかやってらんねぇ。

    5年PGやって10年SEと転職してさらに上流工程やってきたけど、 向いてないや。 コミュニケーションとるってのがニガテなわけじゃないんだよ。 ずっと、作っていたいんだよ、手を動かしてさ。 相手の顔色伺いながら人間関係築いて仕事動かすなんて、性に合わないことが解った。 プロジェクトが大きくなればなるほど、やってることのおもしろさが実感できなくなる。 カラダ壊して復帰した一発目のプロジェクトは小規模なやつで、 どこで紛れ込んできたのか解らない小さなベンチャ相手とやるものだった。 プロジェクトは少人数、低予算、納期はほどほど。まぁタマにはシゲキ欲しいでしょ、なんて部長から言われたのが運の尽き。 上から下まで自分で面倒見られるこのおもしろさ。麻薬以上だよ。たまんねぇ。 プログラムの詳細設計で下っ端PGと明け方までやり合う、ドラマみたいなくさーいセリフ吐いてまで意見出し合って合意する。 眠ってた魂に

    上流工程なんかやってらんねぇ。
    bull2
    bull2 2009/05/26
    かくありたい。というか最近のエラい人向けのpptエンジニアリングが詰まらなすぎてストレスたまりまくり。現状では仕事全体の1割程度だから許せるが、これが5割を超えたら考え物だ。
  • きれいなソースコードを書くために必要な、たったひとつの単純な事 - よくわかりません

    「構造のきれいなプログラムを書けるようになるためにはどうすればいいのか?」という質問を受けたので、「はて?どうしているだろうか?」と考えてみました。あ、形式知にきちんとなっているようなテクニックみたいなもんじゃなくて、モノローグなので、あまり凝ったものは期待しないように。 http://blog.shibu.jp/article/28983162.html 自分なりにもっと凝縮版を。渋川さんが言っている事全体もその通りとは思うけど*1、もっと簡単で、しかも射程が広い、と自分が思っている事。 渋川さんはちょろっと触れてるだけだけど、自分はこれが最も基的で汎用的、かつ、ソースをきれいにする原動力となる上にバグをも減らしてコードの汎用性まであげる、コーディングのエンジンみたいなものと思ってる。それは、 「すべてに正しい名前を付けて、そして、正しい名前であることを維持する」という鉄の意志 クラス

    きれいなソースコードを書くために必要な、たったひとつの単純な事 - よくわかりません
  • http://www.machu.jp/posts/20090307/p01/

    http://www.machu.jp/posts/20090307/p01/
  • プログラムの動的で巨視的な理解 - 未来のいつか/hyoshiokの日記

    コードを読むな理解しろ。http://blog.miraclelinux.com/yume/2006/10/post_e3d6.html というわけでもないが、どのようにコードを読むかということはプログラマにとって大変重要な関心事の一つだと思う。誰もが良き読み手になりたいと願うが、誰もそのことについて系統的に教えてはくれない。それこそ一子相伝の謎めいた読み方がハッカーコミュニティの中で受けつがれていたりする。昨今でこそコードリーディングだなんだとその重要性を喧伝する人々が出てきたが、かつてはやはり黒魔術の世界であったりした。そもそも、良き読み手になるであろう脂の乗りきったプログラマを使いすてにするような社会では、良き読み手になる前に35歳定年だなんだで継承すべき技術を獲得するまえに一線を退いてしまう。人材の使いすての極みであるが、そのような事をここで嘆いてもしょうがない。 例えば、セキュリ

    プログラムの動的で巨視的な理解 - 未来のいつか/hyoshiokの日記
  • 関数、オブジェクト、クロージャ - FAX

    (thanks to id:koyachi、del.icio.us/rtk2106) OOPとFPと。関数、オブジェクト、クロージャの使い分けについて考えます。 関数型が良いのか、オブジェクト指向が良いのか、知りたいと思っていました。色々なページを読み、現時点で一応の答えを得ました。 カウンタを例にして、関数、スコープ、オブジェクト、クロージャの順に見て行きます。関数関数は処理です。入力と出力があります。関数型プログラミングでは、関数同士の入力と出力を連結しプログラムが構成されます。 var current = 0; function next(v){ return v + 1 } function previous(v){ return v - 1 } ok( 1 == ( current = next(current) ) ); ok( 2 == ( current = next(cu

  • Erlang実験室:武士道と云ふは死ぬ事と見付けたり - 檜山正幸のキマイラ飼育記 (はてなBlog)

    Erlangでは、「死ぬこと=プロセスをクラッシュさせること」の解釈/意義/価値観が、他の言語とは随分違います。潔<いさぎよ>く死ぬことが推奨されていますが、これは責務の放棄とは違います。 内容: 事故や災害への対処は個人ではなくて企業や社会が行うべき 正常と異常のはざま 例外を使うのは例外的? 多プロセス並列プログラミングと例外 潔さと無責任は違う -- 武士道プログラミング ●事故や災害への対処は個人ではなくて企業や社会が行うべき Erlangの書き方や文化で、なかなか馴染めないのが「異常時の処理を書かない」という方針です。 多くのプログラミング言語のコードでは、次のような分岐をしばしば見受けます。 if (正常条件) { 正常時の処理; } else { 異常時の処理; } switch (値) { case 正常な値_1 : 正常時の処理_1; break; case 正常な値_2

    Erlang実験室:武士道と云ふは死ぬ事と見付けたり - 檜山正幸のキマイラ飼育記 (はてなBlog)
  • Undo,Redoの実装って何十回もやってる気がする - あしあと日記

    undo,redoの実装って何十回もやってる気がする。毎回同じパターンだ。undo,redoが登場するような編集ソフトは大体同じパターンに落とせる。フレームワークも作った。ブログにそういう内容を書きたいが面倒くさい。需要があれば面倒でも書くんだけどなあ http://twitter.com/youpychan/status/994486992 という発言をしたら何人か反応を頂いたので書いてみることにする。 需要があるなら書こう。undo,redoだけじゃなくてグラフィカルな編集ソフト全般の話をいつかまとめたいと思っていたので、ちょいとシリーズで書いてみようかとおもう http://twitter.com/youpychan/status/994636764 書こうと思う。 まずUndo,Redoについて。 Unod,Redoってみなさんどういう風に実装しているでしょうか? 私はコマンドパタ

    Undo,Redoの実装って何十回もやってる気がする - あしあと日記
    bull2
    bull2 2008/11/10
    Commandパターンを使うのが王道だよな、やっぱり
  • マルチスレッド・プログラミングの落とし穴、その2

    ずいぶん前に、「マルチスレッド・プログラミングの落とし穴、その1(かもしれない)」というエントリーを書いたが、今回はPhotoShareサーバーを運営していて、まさにこのあたりの深い考察が必要になって来たので、良い機会なので続編エントリー。 PhotoShareのバックエンドのようにCRUD(Create/Read/Update/Delete)のAPIをサポートするバックエンドを作る場合、Create/Update/Deleteのリクエストに対してはクライアントからのAPIコール時にすぐに(HTTP Requestに返事をする前に)データベースに変更を加え、Readの際にも(キャッシュを使う・使わないを別にして)データベースの最新の状況を反映するデータを返すように設計するのが普通である。 このアーキテクチャの問題は、ユーザーのアクティビティが増えた時に、データベースやI/Oがボトルネックと

  • 具体例で説明するデザインパターン - てっく煮ブログ

    JavaScriptデザインパターンってなんだかたいそうなものに考えられがちだけど、実は、そこかしこのライブラリや仕様に取り込まれていることが多い。「デザインパターン分からん」とか「で、どうやって使うのよ」と悶々としている人には、「どういうところで使わているのか」を知っておけばイメージも沸きやすいし、意外にたいしたことないんだな、ということが分かるんじゃないだろうか。そこで、JavaScript やその周辺の技術で、デザインパターンがどのように使われているかを紹介してみることにする。ここでは、GoFの順番に沿って、以下の11個のパターンを取り上げる。生成に関するパターン Factory MethodAbstract FactoryBuilderPrototypeSingleton構造に関するパターン AdapterComposite振る舞いに関するパターン Chain Of Respon

  • オブジェクト指向をわかりたいなら今すぐ『オブジェクト指向でなぜつくるのか』を読め - 思っているよりもずっとずっと人生は短い。

    オブジェクト指向の入門書と言えば『オブジェクト指向でなぜつくるのか』に決まってるよね、と話していたら、「ええ、そうなんですか?」と、このに推薦のことばを寄せていた平鍋さんの会社の人に言われてショックでした。ちょっと駄目すぎです。角谷さんなんとかしてください(<無茶振り)。 オブジェクト指向でなぜつくるのか―知っておきたいプログラミング、UML、設計の基礎知識― 作者: 平澤章出版社/メーカー: 日経BP社発売日: 2004/06/03メディア: 単行購入: 34人 クリック: 448回この商品を含むブログ (198件) を見る 私もご他聞に漏れず、オブジェクト指向のはいろいろ読んでみたのですが、『オブジェクト指向でなぜつくるのか』に勝るは内外合わせてまだお目にかかれていません。率直に言ってプログラマ必読書だと思います。 その素晴らしさは随所にあるのですが、章立てに追って説明しましょ

    オブジェクト指向をわかりたいなら今すぐ『オブジェクト指向でなぜつくるのか』を読め - 思っているよりもずっとずっと人生は短い。
  • 長文日記

  • Java における本質的でない記述がどのように大規模開発に役立つのか - kなんとかの日記

    まじめな話に切り替えて、Java屋さんJava信者さんに質問したいと思います。 質問: Java における、質的でない冗長な記述は、どのように大規模開発に役立つのでしょうか。 質問の背景を説明すると、以前の晒されエントリで、Java における質的でない記述の数々について話題にしました。それに対する反応で、『Java は大規模開発向けだから記述が長くてもいいんだ (または長くなくてはいけない)』という意見が多くあります。 たとえば、ブックマークコメントより: エンタプライズ分野であの大伽藍が求められたのだから仕方ないですよ。 エンタープライズ分野のような大規模開発こそ、必要な情報を簡潔にわかりやすく記述する必要があると思ってたんですが、世の中は違うようです。 同じくブックマークコメントより: Java屋の怠慢は高層ビル建築をどうサボるかであって、犬小屋を作る時にどうサボるかという視点とは

    Java における本質的でない記述がどのように大規模開発に役立つのか - kなんとかの日記
    bull2
    bull2 2008/05/03
    大規模開発には「実績」が最重要なので、どんなに構文が汚くても、どんなに古臭くても、JavaやCOBOLが使われると思われ。億単位のカネを処理をするロジックをperlやrubyで組んで責任持てますか?10年後には変わるかもね
  • 技術系webサイト紹介 - 同志社大学電気情報研究会

    What's this ? 書籍紹介と並んで大事だと思ったので作成。 知識を得る優良なリソースを知っているか否かでその学習速度は大きく違います。ここではそんな優良な技術系のサイトを紹介します。深い話になればどの分野においても書籍の右に出るものはなかなか無いと思いますが(論文を除く)、それでもweb上から得られるものも多大です。 良いサイトはどんどん紹介していきましょう。denx全体のレベルもグッと上がるはず! (seko) どんどん追記していきましょう! ハッカー精神 How To Become A Hacker プログラミング関係 総合 WisdomSoft プログラミング系総合サイトと言えばやはりWisdomSoftさんでしょう。C/C++Java, Perlなどの高級言語からWin32API, DirectX, OpenGL 更にはWeb開発にまで渡る広い分野の入門記事を