タグ

プログラミングに関するislejpのブックマーク (31)

  • 日本語識別子の必要性

    プログラミング初心者に ECMAScript(JavaScript) を最初の言語として勧めるべき? Meguro es6健太 田上

    日本語識別子の必要性
  • [コーディングスタイル]識別子を日本語に切り替えていく - Qiita

    はじめに 日語で思考していたり、仕様書が日語の場合、翻訳したり対訳表を作ったりする作業が無駄なのはあきらかなので、わざわざ英語に訳して識別子を命名し日語のコメントを付ける必要はありません。 Q. E. D. しかしながら、歴史的経緯のようなものによって英語が得意で無い人でも英語で識別子を命名しようと言うのが多数派のようです。(※要出典) 例えば「進捗を確認してboolを返す関数」を英語で命名する事考えて下さい。 すぐに適切な関数名が英語で思いつきますか?日語なら簡単に適切な関数名が思いつくはず。 簡単だし分かりやすい!!! わざわざ英語に翻訳するのが無駄な事は明らかですね。 ※注意:コメントも識別子も英語だよって人は対象にしていません。それは英語のままにした方が良いです。 ※Qiitaのマークダウンが日語識別子に対応してないのか表示が乱れますが、これはまともなコンパイラなら大丈夫

    [コーディングスタイル]識別子を日本語に切り替えていく - Qiita
  • すべてのソースコードが手元にあるのに不要な抽象化を行うのはよくない

    「よい」とされているプログラミング手法のひとつに差分プログラミングがある。クラスを継承して親クラスとの差分だけのコードを書けば、親ですでに実装されている機能はそのまま使えて、かつカスタマイズもできるというやつだ。 たとえばGUIのボタンをカスタマイズしてマウスオーバーするとなにかちょっと特殊なことを行うボタンを作りたいとしたら、ボタンクラスを継承して、マウスオーバーのイベントハンドラをちょいちょいとカスタマイズしてやればよい。差分プログラミングは大変素直でよいプログラミング手法のような感じがする。 よいのはよいと思う。 しかしこういういい例だけをみてそれをどこでも真似しようと思ってしまうと、不必要な抽象化を積み重ねる困ったプログラマになってしまう(そういう人は結構たくさんいる)。自分でプログラムを書く場合には、よくできたクラスライブラリやフレームワークをお手にして抽象化を行うのは、ほとん

    islejp
    islejp 2014/12/29
    すでに書かれているけど差分プログラミングのための継承はあまり推奨されない。それはさておき、手元にソースがあっても修正や拡張時の影響範囲は局所化できるように作っておいた方が良い。
  • そのオブジェクト指向入門は間違っている(大げさ) - Webアプリエンジニア養成読本 AdventCalendar2014 25日目最終日! - uzullaがブログ

    はい、Webアプリエンジニア養成読 AdventCalendar2014です。突然トリをやる事になってしまったので、どうしたもんかとおもいます…。 「最終日だぞ…ちゃんとかかないといけない…しかしネタはない…そうだリンク集を作ろう!」とか思ったんですが、そもそもアドベントカレンダーってリンク集だよねって気付いて愕然としているクリスマスの夜です。現在朝の4時、これを書き終えて寝たい。 さて…何を話そう ここまでWebアプリエンジニア養成読アドベントカレンダーということで続けてきました。そして今日は25日、ついに最終日です! Webアプリエンジニア養成読 Advent Calendar 2014 - Qiita Webアプリエンジニア養成読[しくみ、開発、環境構築・運用…全体像を最新知識で最初から! ] (Software Design plus) 作者:和田 裕介,石田 絢一 (uz

    そのオブジェクト指向入門は間違っている(大げさ) - Webアプリエンジニア養成読本 AdventCalendar2014 25日目最終日! - uzullaがブログ
    islejp
    islejp 2014/12/25
    プリミティブなメモリ操作→変数の概念→配列→構造体などのユーザー定義型ときて、データ構造を隠蔽し責務として抽象化したものがオブジェクトという理解。結合を疎にして再利用性・保守性を高めたことがOOPの利点。
  • メソッド名をシンプルにするために、 知っておくと便利な英語のprefixとsuffix - codic ブログ

    メソッド名などをネーミングする際に、知っておくと便利な、接頭辞と接尾辞をリストアップしてみました。どのように元の単語の意味が変わるかのルールを知っておくと、よく使う単語をベースにボキャブラリーを増やすことができるので、覚えておいて損はないと思います。 使う場合は、当たりを付けて実際の使用がないか、Googleなどで調べてみてください。 1. pre-, post- / 事前〜、事後〜 per-は、元の意味に “事前に、前に”、post-は “事後に”という意味が付け加わえます。汎用性が高いのでとても便利です。afterやbeforeの代替になるかもしれません。 // 事前テストする function testBefore(); ↓ function pretest(); // 事後処理する function executeAfter(); ↓ function postexecute();

    islejp
    islejp 2014/12/23
    英語を母語としない人に英語風な命名を強いるのは、生産性や保守性を下げると思う。書くにも辞書、読むにも辞書がいるというのは、ちょっとどうなんだろ。
  • モデルやメソッドに名前を付けるときは英語の品詞に気をつけよう - Qiita

    はじめに 他の人が書いたコードを読んでいるときに時々気になるのが、英語の間違いです。 特に動詞、名詞、形容詞の使い分けが間違っていたりすると、かなり違和感を感じます。 そこで今回はモデル(=クラス)やメソッドに名前を付けるときの基的な原則をまとめてみます。 また、英文法的に正しい品詞が選べるようになるための習慣についても最後に説明します。 想定する言語/フレームワーク この記事の説明ではRuby/Ruby on Railsを想定しています。 ただし、基的な考え方は他の言語でも同じように使えるはずです。 モデルの名前は名詞にする 例: 「支払い情報」を表すモデルを作りたい場合 × Pay ○ Payment 「支払う = payか。よし。」でモデルを作ってはいけません! payは動詞で、payの名詞形がpaymentです。 Payモデルではなく、Paymentモデルを作りましょう。 例:

    モデルやメソッドに名前を付けるときは英語の品詞に気をつけよう - Qiita
    islejp
    islejp 2014/05/28
    日本語識別子を採用すると、生産性が向上して、バグ率が低下するって聞いたことあるけど……。なんで英語じゃなきゃいけないかってとこから始めないと。
  • 今さらながらデザインパターンを語る : 落語・将棋・サイクリング時々Lispにわかに電子工作とプラモデル。PC98のレトロゲーム。オブジェクト指向黎明期も語るブログ

    2013年07月15日00:55 カテゴリオブジェクト指向 今さらながらデザインパターンを語る デザインパターンはもはや最前線の話ではない。でも僕がこの業界に入った頃は一世を風靡していたものだ。MVC構造を広めたという意味では一役買ったが、その過程でさまざまな弊害をもたらした。こどもはかなづちを持つと何でも叩きたがる、ということわざがあるがまさにあの頃そんな連中が多かった。大学を出たばかりでものの分かっていない僕もそうだった。そして、この道何十年の人でもそういう人は結構いた。目的のために手段を選ばないのは立派なことだが、手段のために目的を選ばないのは単なるオタクなのだ。そしてそれを誇らしげに語るから始末が悪い。オブジェクト指向コンサルと言われる連中がエンドユーザーにまで「なんとかパターンを使って設計します」がと話すような世界になっていて客からしたらそんなこといわれても知らんのだが、彼らは得

    今さらながらデザインパターンを語る : 落語・将棋・サイクリング時々Lispにわかに電子工作とプラモデル。PC98のレトロゲーム。オブジェクト指向黎明期も語るブログ
  • 高慢と偏見(1)隣は何をする人ぞ:Press Enter■:エンジニアライフ

    ふつーのプログラマです。主に企業内Webシステムの要件定義から保守まで何でもやってる、ふつーのプログラマです。 高学歴で長い経験に自信を持つエンジニアは他人の話を聞かなくなる、というのは広く世に知られた真理の1つである。 K自動車ICTシステム部の三浦技術担当マネージャは、そのようなエンジニアの生き見のような人だった。初めに言葉ありき。私が聞いた三浦マネージャーの最初の言葉はこうだ。 「オブジェクト指向など、実業務では使いものにならない!」 私の名前は川嶋ミナコ。横浜市内の某所にオフィスを構えるシステム開発会社――いわゆるベンチャー企業というやつ――に勤務しているエンジニアだ。社員数は20人前後。最近は受託開発の案件はほとんどなく、大手ベンダやエンドユーザーのシステム部門に常駐して開発を行うことが多い。 K自動車への常駐もその1つだった。部品調達システムの大規模なリニューアル中で、あちこ

    高慢と偏見(1)隣は何をする人ぞ:Press Enter■:エンジニアライフ
  • オブジェクト指向 v.s. 関数型プログラミング

    近年、関数型プログラミングの重要性はいろんなところで叫ばれています。 Javaの最新バージョンに関数型プログラミングに関する新機能が加わりました。 Rubyも昨今、関数型プログラミングへのサポートが手厚くなってきています。 プログラミングの教科書の大手、オライリー社から、Javascriptで関数型プログラミングを行うための解説書が発行されました。 関数型プログラミングへの注目度は高まってきています。 おそらく、みなさんは既にオブジェクト指向が何か、を知っています。 でも関数型プログラミングとは何か、胸を張って語れる人は、周りに見当たらないかと思います。 実際、オブジェクト指向によってプログラミングする方法は、わかりやすい解説があちこちにある一方で、 関数型プログラミングとは何か、何が良いのか、ということについての、よいまとめは見つけることはできませんでした。 この記事を読む方の中で、「関

    オブジェクト指向 v.s. 関数型プログラミング
  • プログラマーを悩ませる、命名の難しさについて

    話の発端は 先日公開された FC2 ソースへの感想から。 http://opensource.slashdot.jp/story/14/03/24/0937246/FC2%E3%83%96%E3%83%AD%E3%82%B0%E3%81%AE%E3%82%BD%E3%83%BC%E3%82%B9%E3%82%B3%E3%83%BC%E3%83%89%E3%81%8C%E3%82%AA%E3%83%BC%E3%83%97%E3%83%B3%E3%82%BD%E3%83%BC%E3%82%B9%E5%8C%96%E3%81%95%E3%82%8C%E3%82%8B isExistメソッドとか (スコア:1) by Anonymous Coward on 2014年03月25日 10時54分 (#2568810) もろに日人っぽいソースコードで好感が持てる。

    プログラマーを悩ませる、命名の難しさについて
    islejp
    islejp 2014/03/30
    英語で命名しなきゃならないというのは思い込みでは?下手に英語で誤った命名するくらいなら日本語でOKだと思う。
  • 僕がプログラミングできない理由 — 「まずは、言葉にしてみましょう」の意味

    知らない人がいると困るので、真っ先に書いておくけれど、僕はプログラマーではない。まったくもって、違う。 わずか、4年ほど前、退院後の自宅療養の時期にふと手にしたWeb関連のに触発されて、HTMLやコンピュータ言語に少し興味をもつようになっただけのことだ。 気で、自分が複雑なプログラムを書けるようになると考えたわけではない。 ひょっとしたら、僕にだってプログラムが書けるようになるかもしれない、少なくともそんなチャンスくらいはあるのかもしれないと、思っただけのまったくのど素人だ。 50歳を目の前に控えた僕が、プログラムを学ぶために、学校に行くなんてことは到底不可能だった。だけれど、学校に行かずして、しかも無料で学ぶということに関しては、今はいい時代でもある。 ネットで探せば、いろいろとプログラムを教えてくれる講座やブログがあるし、ソースコードを明らかにしてくれるものもある。 ドットインスト

    僕がプログラミングできない理由 — 「まずは、言葉にしてみましょう」の意味
  • プログラミング言語の使いわけ - アドファイブ日記(ミラー版)

    私は色んなプログラミング言語を触るのが病的*1に好きで、どの言語をどういう場面で使うのが良いのか凄く興味があります。 そこで、今の私の知識範囲でのそれぞれのプログラミング言語の使いどころを(自分用の整理もかねて)書いてみます。 C/C++ - C=OSやミドルウェア、C++=効率化のための再実装 安直に「メモリとスピードが第一優先のとき」と思いたいところですが、同等程度のスピードでもっといい言語はいっぱいあります。計算集約的ならJuliaとか、オブジェクト指向で組むようなソフトならD言語とか。なのでまずC言語は、Swigみたいのを使って他の言語の拡張ライブラリを書いたり、システムコールを使ってOSやミドルウェアを書くときじゃないかと思います。C++はテンプレートを駆使したりして効率を維持しながら抽象度の高いコーディングをするような場面がしっくり来ると思います。既に他の言語で実装したソフトウ

    プログラミング言語の使いわけ - アドファイブ日記(ミラー版)
  • プログラマの心の健康

    目次 はじめに 情報不安について 人の話を聞くこと 寝てから考えよう わ・ざ・と、ゆ・っ・く・り・、や・っ・て・み・よ・う ロビンソン式悩み解決法 驚き、最小の法則 むしょうに腹が立つあいつのこと あなたは、そのままでいいんです はじめからやり直したい症候群 人から信頼されるためにはどうしたらよいか トラブルがチャンス あなたはひとりではありません あなたのための聖書の言葉 ぜひ、感想をお送りください リンク集 更新履歴 はじめに 私はプログラマです。 プログラムを書いて生活の糧を得ています。 プログラマというのは精神的にも肉体的にも過酷な仕事だと思われています。 夜遅くまでディスプレイに向かい、 キーボードを叩き、ジャンクフードをべながらバグをとる…そんな職業だと思われています。 確かにそういうところもありますが、プログラマも人間です。 不健康な生活を長いこと続けることはできません。

  • Googleも支援するCANVASの子供向け「プログラミング」ワークショップ

    Googleも支援するCANVASの子供向け「プログラミング」ワークショップ「2時間でゲームができた!」 2013年、中学校の技術家庭科でプログラミングの授業が必修化されたのをきっかけに、NPO法人CANVASが行うプログラミングのワークショップが注目を集めている。CANVASは2013年10月、Googleと組んで子供たちにプログラミング学習の機会を提供する「コンピューターに親しもう」プログラムを展開することを発表。

    Googleも支援するCANVASの子供向け「プログラミング」ワークショップ
  • 命名するという行為 - 林檎の木

    http://codic.jp/ プログラミングをする上で一番時間のかかる作業ってなんだと思いますか? アルゴリズムを考えること? タイピングしてプログラムを組むコーディング作業? いえいえ違いのです、変数・関数などの名前を考えるのが一番時間がかかる。 これ冗談じゃなくて結構おおむねほぼ当の話です。難しいのですよ名前を付けるっていう行為は。ナウシカにおいて、巨神兵をオーマと名付ける事によって自我に目覚めたように、対象の存在意義を定める行為に等しい。だから対象がなんであるかをとことん考え抜く必要があるのです。この関数はどういった機能を持っているのか、この変数はどのような値を格納するためのものか、このクラスは何を表現しているのか、存在するとはなにか、生きるとは。往々にして思考が哲学的な方向に脱線したりしてとにかく時間がかかる。 それに加え一度決めてしまうと、なかなか別の名前に変えるというのも

    islejp
    islejp 2014/01/14
    命名は《日本語でOK》でしょ。
  • 技術調査はググる前が肝心 - seri::diary

    概要 ■「プログラミングは自分で調査しながら覚えた方が上達が早い」という意見は非常に同意 ■でも出来ている人少ないよね。調査中に挫折しちゃう。 ■それは「わからないこと」をブレークダウンして整理しないで調査し始めて欲しい情報をピンポイントで調べられてないから ■調査をする前に「何をしたいか」「何がわからないか」を徹底的に時間をかけて整理してから調査した方が結果的に早く答えに辿り着くからオススメ プログラミングが上達しない or 勉強が続かない人へ:とあるIT系社長のブロマガ - ブロマガ 凄く共感できる内容だった。 特に以下の部分 実はプログラミングを"勉強する"ってこと自体ちょっとオススメできない。 どういうことかというと、僕が思うに ・何か作りたいものがある(アイデア) ・それはどうやったら作れるのか(調査) ・実際に作り出す(実行) っていうプロセスが一番上達が早いと思うんだよね。

    技術調査はググる前が肝心 - seri::diary
  • あなたはどこまで解き進められる? 「FizzBuzzダンジョン」でコードパズル

    はじめに いつもは「マンガで分かるプログラミング用語辞典」を描いている、クロノス・クラウンの柳井です。JavaScript大好きで、「マンガで分かる JavaScriptプログラミング講座」を書いたりもしています。そして最近は「CodeIQ」というサイトで、さまざまなプログラミングの問題を出題しています。 今回は、その「CodeIQ」で出題して人気のあった「FizzBuzzダンジョン」という問題のさまざまな解法を紹介しようと思います。私自身も勉強になり、コードを読むことを楽しめましたので、プログラマーの方々はきっと楽しめると思います。 「FizzBuzz問題」とは、3の倍数のときは「"fizz"」、5の倍数のときは「"buzz"」、共通の倍数のときは「"fizzbuzz"」、その他は「数値」を戻すという単純な処理です。ループ処理と分岐処理を理解していればコードを書けます。 「FizzBuz

    あなたはどこまで解き進められる? 「FizzBuzzダンジョン」でコードパズル
  • 長文日記

    長文日記
  • Hello, world から始まらないプログラミング教育 - 目指せ一人前のプログラマ

    "Hello, world." はといえば、やっていることは出力のみで、そのコードだけから「プログラムで何が出来るのか」を予備知識無しでイメージしろ、というのは初めての人にとって困難であるかもしれない。"Hello, world." は「プログラムという世界の全体像」を俯瞰するには、あまりにも盛り込まれた要素が少なすぎるように思える。 最初のプログラムとして "Hello, world." は適切か? - 帰ってきた人生戦闘詳報 在学中にプログラムの師である先生と「Hello, world から始まらないプログラミング教育」について話していたのを思い出した。 先生が提唱していたやり方は、まず最初に典型的なプログラミングのプロセスを一通りやってみせつつ生徒にも同じことをやってもらう、というものだった。段階としては、 1. サンプルコードを書き写す 2. コンパイルエラーをなおす 3. 動かし

    Hello, world から始まらないプログラミング教育 - 目指せ一人前のプログラマ
  • 巨大な(あるいは、汚くて邪悪な)コードの泳ぎ方 - mizchi's blog

    ロンドンへの飛行機(11時間)で暇だったから書いた文章。 自分でゼロからすべてのコードを書けるときはテストファーストでいいけど、アンドキュメントな実験的なライブラリを利用する際や、巨大なプロジェクトの一部としてコードを書く際は、テストファーストよりもとにかくコードを書きまくって挙動の変化を確かめるほうが有用な時がある。 まあ多分どっかでこういうのはハウツー化してあるんだろうけど、自分ルールが固まってきたので、メモっておく。 目的を設定する トップダウンに読むには、コスパが悪いことが多い。とにかく「アレする」「コレする」という目的を定義して、そのためにその周辺領域からボトムアップに読むことにしよう。 エンドポイントを追う 巨大なプロジェクトに放り込まれた最初の段階では、エンジニア当に無力だ。 最初にやることは、自分が処理を挟むべき位置を見つけることだろう。 まずはファイル名や関数名を読ん

    巨大な(あるいは、汚くて邪悪な)コードの泳ぎ方 - mizchi's blog