タグ

Programmingに関するbash0C7のブックマーク (172)

  • 総まとめ:Javaの将来的な後継者としての Scala

    あなたにとって重要なトピックや同僚の最新情報を入手しましょう最新の洞察とトレンドに関する最新情報を即座に受け取りましょう。 継続的な学習のために、無料のリソースに手軽にアクセスしましょうミニブック、トランスクリプト付き動画、およびトレーニング教材。 記事を保存して、いつでも読むことができます記事をブックマークして、準備ができたらいつでも読めます。

    総まとめ:Javaの将来的な後継者としての Scala
  • a = a + 1; /* って違和感あるはずなのに */ : 404 Blog Not Found

    2009年07月10日15:00 カテゴリLightweight Languages a = a + 1; /* って違和感あるはずなのに */ ここまでは、いい。 だれでもわかるプログラミングの教え方もある……といいな - 狐の王国 じゃあ「c = a + b」はどうなるのか。 これはcという新しいバケツを用意し、aとbを足した数字を入れろという意味だ。ところが、 a = a + 1; でまともに数学を習った人ならつっかかるはずだし、実際つっかかるなのに、ほとんどの言語が代入演算子として=を採用しているのはなぜなのだろう? いや、私だってこれがFORTRAN由来だってことは知っている。私が知りたいのは、これが数学から見ても自然言語から見ても不自然なのに、ことプログラミングに関しては、なぜこれが自然になってしまったか、ということ。 代入に、=を使う必然性が全くないことは、それを使わぬ言語も

    a = a + 1; /* って違和感あるはずなのに */ : 404 Blog Not Found
    bash0C7
    bash0C7 2009/07/10
    COBOL大勝利。MOVE 0 TO WK-COUNT. ADD 1 TO WK-COUNT.|初めて知った時から代入"="と比較"="は混同しても引用符">"と比較">"でなにそれこわいになる人はまだ見たことが無い。
  • プログラミングできる人とできない人との間の深い溝 - masatoi’s blog

    どうしてプログラマに・・・プログラムが書けないのか?を読んでいて出てきたので出展の一つを訳してみた。Separating Programming Sheep from Non-Programming Goatsの和訳。 プログラミングというものには向き不向きが強く出るということはわりと知られていると思うが、このエントリではプログラミングができるかできないかは比較的簡単なテストによって、プログラミングの訓練を始める前の段階で分かると主張している。どうしてプログラマに・・・プログラムが書けないのか?では、そもそもこの事前テストをパスしていないような人達までプログラマとして応募してくると言っており、その判定法として有名なFizzBuzz問題を挙げている。 追記(2019/2/28) 注意: なおこの論文はしばらく前に著者の一人によって撤回されたようです Camels and humps: a r

    プログラミングできる人とできない人との間の深い溝 - masatoi’s blog
  • Java開発者の読むDjangoの設計思想 - やさしいデスマーチ

    Djangoのサイトには「Djangoの設計思想」というドキュメントがあります。どんなフレームワークでもそうですが、設計思想を理解し、その流れをつかむ事で正しい利用への最短ルートです。もし、自分の思想にあわないならば問題です。可能であれば、そのフレームワークの検討を取り止めるべきでしょう。それが出来ないならば利用している時にはそのフレームワークの思想で思考することが求められます。 Djangoの設計思想は、緩く結合し、必要最低限のコードで、だが隠蔽せずに明示するという事です。DjangoではMVT(モデル/ビュー/テンプレート)と呼ばれるMVCに近い構造をとります。それらの3つのレイヤーはお互いに疎な関係を持ち、モデルとテンプレートはデフォルトの実装以外を容易に採用できるようになっています。また、ほどよく規約を適用し必要なコード量は少なくなっていまが、なんでもかんでも裏側で処理せずに、なに

    Java開発者の読むDjangoの設計思想 - やさしいデスマーチ
    bash0C7
    bash0C7 2009/07/08
    "Java開発者ははっきりと定義する事で、コンパイラがエラーをはかない事で落ち着く種族なのです"ははは
  • コードは読めなければならない - idesaku blog

    ストレス発散がてら書いたネガティブな愚痴り記事が思いの他ブクマしていただくことになり驚いている。みなさん苦労されているようですね。コメントなども多数頂戴したので、調子に乗って返答記事などポストしてみる。*1 コードは読めなければならない 自分のスタンスを明確にしておこうと思う。 コードは読めなければならない。*2 UKTKKNSHINFがダメな理由は、それが読めないからである。頑張って慣れれば読めないこともない、というものは話にならない。容易に読めなければならない。 それに規則性があるなら他のプロジェクトにも転用できない?母音抜きルールを。 他に転用できるんだったら、全社的な生産性向上に寄与できるんじゃないの?母音抜きルールで。 UKTKKNSHINFコンバータ作りました、それとUKTKKNSHINFってそんなにひどい? | さくらたんどっとびーず 規則性があればよいのであれば、プログラミ

    コードは読めなければならない - idesaku blog
  • プログラマの麻疹 - 宇宙行きたい

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

    プログラマの麻疹 - 宇宙行きたい
    bash0C7
    bash0C7 2009/07/06
    規約厨、SQL厨、データモデリング厨、ファイル厨、色々思いついておもろい
  • Anemone - Ruby Web-Spider Framework

    An easy-to-use Ruby web spider framework What is it? Anemone is a Ruby library that makes it quick and painless to write programs that spider a website. It provides a simple DSL for performing actions on every page of a site, skipping certain URLs, and calculating the shortest path to a given page on a site. The multi-threaded design makes Anemone fast. The API makes it simple. And the expressive

  • ひどすぎるネーミング - idesaku blog

    UKTKKNSHINF こういう名前の変数が出てくるのだが、意味わかる? 答え:受付禁止情報 今読んでいるPL/SQLコードは当にひどい出来なのだが、その中でもネーミングが群を抜いてひどすぎてむしろ笑えてくるので、ここでさらしてみたい。 先ほどの例でわかると思うが、悪しきネーミング習慣である子音母音抜きの嵐である。変数名だろうが関数名だろうがこのルールで命名されているので、暗号文を読んでいるような気分になる。 他には、例えばこんなのがある。 SKSI 作成 HNKN 変換 KKT 確定 CHKN 中間 DTM Datetime DTA Data こうして見ると、ktkrやwktkとなんら違いがない。 "作成"のような、比較的簡単に対応する英単語が見つかるものまで日語子音母音抜きで書くという徹底ぶり。でも"情報"はINFだったりする統一感のなさ。そしてこれらが単独ならまだしも、複合して出

    ひどすぎるネーミング - idesaku blog
    bash0C7
    bash0C7 2009/07/03
    "担当者が無能なのである"昔はシステム上の名前制限・桁数制限がきつかったのである程度の合理性はあったのだろうが、それを21世紀になった今でも盲目に適用し続けられていると思った
  • VBAの行き詰まり

    VBA(Visual Basic for Applications)はおそらく,マイクロソフトが想定していた以上に,広く使われてしまったのではないだろうか。そのためマイクロソフトは,VBAのベースであるVB(Visual Basic)をVB 6からVB .NETへと大幅バージョンアップをした際にも,“VBA .NET”とはできずに旧態依然の仕様のまま取り残す格好になってしまった。 VBAはマイクロソフトのオフィス・ソフトが備えているプログラミング言語である。1993年にExcelで初めて搭載された。オフィス・ソフトで手作業で行っていた作業を自動化したり,オフィス・ソフトをフロントエンドとするようなアプリケーションを開発したりカスタマイズしたりするのに使われている。 VBAはWordやPowerPointなどでも利用できるが,最も多く使われているのはExcelにおいてである。すべてのケースで

    VBAの行き詰まり
    bash0C7
    bash0C7 2009/07/02
    ×VBA ○Object Library | VBAから呼び出すExcelのAPIが変わったということであり、VBAそのものの問題ではない。VBAとExcelのAPIを疎結合にすれば移植性を向上できる。
  • TddAntiPatterns - TDD のアンチパターン

    TddAntiPatterns - TDD のアンチパターン 目次 この文書について TDD のアンチパターン TDD アンチパターン・カタログ 嘘つき。 (The Liar) セットアップ過多 (Excessive Setup) 巨人 (The Giant) モック酔い (The Mockery) 検査官 (The Inspector) 太っ腹な残り物 (Generous Leftovers) 地元の英雄 (Local Hero) 小姑 (The Nitpicker) 秘密のキャッチ (The Secret Catcher) ペテン師 (The Dodger) 大声 (The Loudmouth) はらぺこキャッチ (The Greedy Catcher) 序列屋 (The Sequencer) 隠れ依存 (Hidden Dependency) 点呼 (The Enumerator)

  • Martin Fowler's Bliki in Japanese - 言語ワークベンチ

    以下の文章は、Martin Fowler による 「Language Workbenches: The Killer-App for Domain Specific Languages?」 の日語訳である。 ソフトウェア開発における新しい考えの多くは、実は古い考えの新しい組み合わせ方です。この記事では、その新しい組み合わせ方のひとつ、私が「言語ワークベンチ(Language Workbenches)」と呼んでいるツールについて説明します。これは、現在広まりつつある考え方で、たとえば、Intentional Software、JetBrainsのMeta Programming SystemMicrosoftのSoftware Factoriesなどが例として挙げられます。これらのツールは古い開発スタイルを採用しており、私はこれを「言語指向プログラミング(language oriente

  • これであなたもCOBOLプログラマ

    50年前に事務処理用に開発されたCOBOLは、いまでも多くの企業で使われ続けている。基盤部分が近代化してもCOBOLは生き残るかもしれない(編集部) 今回からいよいよCOBOLの文法などの詳細に進みます。第1回「Java/.NET開発者のための『ここが変だよ、COBOL』」で述べたとおり、COBOLはその機能の大部分を言語の構文によってサポートしているため、言語の文法を学習するには比較的多くの時間を必要とします。そこでこの連載では基的な構文要素を学習するにとどめることにします。 なお、現在のCOBOLはオブジェクト指向要素も追加され、多様な記述が可能になっています。しかし、現存するCOBOLソースの大多数は単一のプログラムを定義するような古典的なものです。そこで、記事でも話題をこの範囲に限定します。 また、読み易さのために意図してリファレンス的な記述を避けていますので、さまざまな例外的

    これであなたもCOBOLプログラマ
  • TDD、TDDと言うけれども。TDDのダークサイドについてそろそろ一言語ってみる。 - Fly me to the Luna

    id:t-wadaさんの話の中で、TDDが品質を保証するわけではない、という話があったんですが、それについて私見をつらつらと。ちなみに自分は2年くらい仕事でTDDをやってきました。 やってきた中で下記のTDDの利点を感じることができました。 その時に気づいた最もシンプルなコード、クリーンなコードができる テストコードからコードを書く、と言うのはプロダクトコードの利用方法が考えられるのでとても有効に作用します。id:t-wadaさんもリファクタリングが一番重要と話されていましたが、テストコードがあれば安心してリファクタリングができます。 より高い品質のコードが書けるようになる これはt-wadaさんの話の中でもありましたね。なぜかと言うと、プロダクトコードが実行される時の前提条件を知ろうとすると、結構いろいろなコードに目を通すことになります。コードに目を通すことで優れた先人の知恵を見つけるこ

    TDD、TDDと言うけれども。TDDのダークサイドについてそろそろ一言語ってみる。 - Fly me to the Luna
    bash0C7
    bash0C7 2009/06/12
    "クリーンなコードを残すためのリファクタリングのための外殻"
  • 長文日記

    bash0C7
    bash0C7 2009/06/11
    わかりやすい説明に泣きかけた。自力でその理解まで到達できなかった自分に泣きかけた。
  • 電子工作の経験がなくても、誰でもハードウェアを自作できる時代が来ていた! : akiyan.com

    電子工作の経験がなくても、誰でもハードウェアを自作できる時代が来ていた! 2009-06-07 『電子工作』 なんとなく興味はあるけど、電気回路なんてまったくわからないし、はんだごてとか使うのもやたら危なそうだし...というイメージが(少なくとも個人的には)ある電子工作の世界。 そんなイメージは、とあるセミナーでぶっ壊されました。 なんと、最近の電子工作の世界は「プログラミング未経験でもperlCGIやPHPぐらいならできそう」と同じくらいのところまできていたのです。 たとえば、PCを使わずに「人が通ったことをセンサーで感知して、自動的にtwitterにpostする機械」を、電子工作経験がほぼゼロの僕でもちょっとがんばれば作れそうと思えるぐらいでした。 「できたらいいなあ」が「やればできちゃう」ぐらいになってて、なんだか、視野がぐぐっと広がった感じがしてかなりテンションがあがりました。

    電子工作の経験がなくても、誰でもハードウェアを自作できる時代が来ていた! : akiyan.com
  • [データベース設計編]参照整合性制約機能を多用してはいけない

    参照整合性(Referential Integrity)とは,テーブル間のデータの整合性を保つための仕組みである。例えば,「受注テーブルの商品番号カラムには,商品テーブルの商品番号カラムに同じ値がなければならない」といった制約を維持するための仕組みである(図1)。RDBMSはこの整合性を維持するための機能として,「参照整合性制約」といった機能を持つことが多い。これは,定義された参照整合性をチェックし,整合性を逸脱するような値がテーブル内に存在しないようにする機能である。この機能を使用する場合は,テーブル定義の際に「Constraint句」を用いることが多い。 参照整合性制約機能は,誤ったデータがテーブルに含まれないようにするには効果的な機能である。だが,むやみに使うと問題を引き起こすことがあるので,注意が必要だ。 データ移行時にエラー 最も問題が起こりやすいのは,データを移行する際だ。先の

    [データベース設計編]参照整合性制約機能を多用してはいけない
    bash0C7
    bash0C7 2009/06/02
    現行システムがあるときは確かにこの制約は使ったらまずくなる。 一から開発のときは使っておくと後でデータの不整合に悩まなくてすむ。
  • Amazon.co.jp: パターン、Wiki、XP ~時を超えた創造の原則: 江渡 浩一郎: 本

    Amazon.co.jp: パターン、Wiki、XP ~時を超えた創造の原則: 江渡 浩一郎: 本
  • Java/.NET開発者のための「ここが変だよ、COBOL」

    Java/.NET開発者のための「ここが変だよ、COBOL」:COBOL - Getting Started(1)(1/2 ページ) 50年前に事務処理用に開発されたCOBOLは、いまでも多くの企業で使われ続けている。基盤部分が近代化してもCOBOLは生き残るかもしれない(編集部) さあ、COBOLを始めてみようか マイクロフォーカスの小林純一です。今回、COBOL言語入門の連載をCoding Edgeで書かせていただくことになりました。最後までよろしくお願いします。 企業活動の迅速性とコスト削減を目指したITモダナイゼーションの潮流の中で、メインフレーム中心の情報システムの見直しが進んでいます。Java EE(Java Platform, Enterprise Edition)や.NETフレームワークを基盤としながらも、COBOLで書かれたコアとなる計算ロジックをサービスとして活用する手

    Java/.NET開発者のための「ここが変だよ、COBOL」
    bash0C7
    bash0C7 2009/05/14
    "製造されるプログラムの品質のばらつきが少ない"本当。誰が書いても冗長で意図を把握しにくいソースが出来上がる。もっともトリッキーなコードはいくらでも書ける。でもお金の計算については本当に凄いと思う。
  • これからGitを始める人が読むべき記事のまとめ : akiyan.com

    これからGitを始める人が読むべき記事のまとめ 2009-05-13 candycane(RedmineをCakePHPPHPに移植するプロジェクト)の開発でGitの素晴らしさを痛感したので、これはもう全力でGitを広めるべきだと思いました。そこで、これからGitを始める人が読むべき記事をまとめてみたいと思います。 なお、Gitの発音は「ぎっと」です。 目次 1 Gitの開発者による45ページの特集記事「WEB+DB PRESS vol.50 はじめてのGit」2 Gitを使いこなすための20のコマンド3 GitM#1 プレゼン資料4 Git/Subversionコマンド対応表5 アリスとボブのgitをちゃんと理解したい!6 github.com7 Gitはソースからインストールしよう Gitの開発者による45ページの特集記事「WEB+DB PRESS vol.50 はじめてのGit

    これからGitを始める人が読むべき記事のまとめ : akiyan.com
  • Shibu's Diary: きれいなソースコードを書けるようになるためには

    渋日記@shibu.jp 渋川よしきの日記です。ソフトウェア開発とか、ライフハックを中心に記事を書いていきます。 by chazmatazz 「構造のきれいなプログラムを書けるようになるためにはどうすればいいのか?」という質問を受けたので、「はて?どうしているだろうか?」と考えてみました。あ、形式知にきちんとなっているようなテクニックみたいなもんじゃなくて、モノローグなので、あまり凝ったものは期待しないように。あ、Pythonに限定してますが、他の言語でも似たようなものはあると思いますので、脳内変換をお願いします。 事前の設計はしません 「こういう処理が必要」「こういう計算しなきゃね」みたいなロジックや「要件はこうかな?」ということは事前に考えたりするけど、クラス構造とかは基的に考えないで手をつけます。そして、ある程度規模が大きくなって「あ、ちょっとこの関数大きすぎて理解しにくいなぁ」と

    bash0C7
    bash0C7 2009/05/10
    "なぜなぜって「おまえが悪いんだ。言い訳があるなら聞いてやる」みたいなトゲを感じるんですよね"