タグ

programingと読み物に関するkana321のブックマーク (6)

  • 第1回 Hackability vs. Hackiness | gihyo.jp

    今回からしばらく「Comparators」と題した読み物を書かせてもらうことになりました。よく似た、あるいは相反する2つのアイデアを見比べたら何かが見えてこないか。そんなもくろみで書きたいと思っています。 今回のComparator(比較演算子)はこの2つ、HackabilityとHackinessです(図1⁠)⁠。どちらも耳慣れない言葉かもしれません。 図1 今回のComparator Hackability Hackabilityとは、ソフトウェアやシステムの性質、その対象が「ハックできること」や「ハックしやすいこと」を意味します。ハックと言ってもセキュリティホールを攻撃するほうではなく、コードを書いて遊ぶほうです。 「あの会社から出てきた新しいサービス、スクリーンキャストを見たよ。デザインはカッコいいね。けっこう遊べそう?」「⁠いやー、SDKどころかAPIもないからHackabili

    第1回 Hackability vs. Hackiness | gihyo.jp
  • プログラマを悩ませること Top 10 | POSTD

    10. 「何か」は分かるが「なぜ」が分からないコメント プログラミング入門コースでは、早い段階かつ頻繁にコメントを記述することを生徒に教えます。プログラムを書き始めた初期段階(ごく単純なコードであっても、時に理解し難いことがあります)では、これは実際に役立つことなのですが、習慣にとらわれてしまうプログラマが多くいます。 上記のコードが何をするのか分かりますか? 私は分かりません。 問題は、多くのコメントがそのコードが 何をする のかを説明していますが、 なぜ そのコードが書かれているかが説明されていません。では、異なるコメントが書かれた同じコードを見てみましょう。 こちらの方が分かりやすいですね。何が起きているのかを完全に理解できるとは言えませんが、最低でもなぜこのコードが必要なのかが文脈から判断することができます。 コメントは、構文を理解してもらうためにではなく、読み手がコードを理解しや

    プログラマを悩ませること Top 10 | POSTD
  • 基盤系プログラマ - kuenishi's blog

    いわゆる基盤系のエンジニアリング技術について、私の場合は、今の会社に入社して2年間で徹底的に叩き込まれました*1。C言語なんかは独習の範囲内であって、コンピュータに関する基礎的な知識が不足していると痛感しています。一方、Computer Scienceに関する基的なトピックはシンプルなものが多いので、数学の素養と、大学で詰め込まれた技術があれば何とかなる感じがしています。 飽くまでも、ですが、OSとかRDBMSとか、全ては手段です。ビル建設でいえば生コンのようなもの。砂利とか。肝心なのは、自分が欲しいビルの理想をきちんと描き、実現までの手段・手順を整理する。理想としているビルができているかを確かめる。難しいのは、「そんなビルが技術的な観点から当に建設できるのか?」を確かめながら進むこと。 あるいは、それらの技術を全て、日語にしてきちんと表現すること、設計を周囲に伝えて合意をとること、

    基盤系プログラマ - kuenishi's blog
  • 不慣れなコードベースで短期間に生産性を高めるための7つの方法 | POSTD

    新しい仕事プロジェクトを始める時に、コードベースを一から作ることはめったにありませんよね。なじみのないコードと格闘するのは骨が折れますし、新たに取り込む情報の多さを考えると、気の遠くなる思いがします。Rubyを使っていた環境からNestoriaに移った私の場合は、新しいコードベースの学習に加えて、Perlまで勉強しなくてはならなかったため、二重の苦しみを味わいました。そんな私が、できるだけ短期間で生産性を上げるために使った7つの方法を紹介します。 謙虚になろう プログラミングと聞いて、真っ先に”謙虚さ”を思い浮かべる人はいないかもしれません。何しろ”傲慢”が プログラマの三大美徳 の1つに数えられているくらいですからね。そうは言っても、なじみのないレガシーコードに出くわしたら、あまりにも分からないことが多すぎて、何度もミスをしてしまう自分にきっと嫌気がさすでしょう。このような場合は、謙虚

    不慣れなコードベースで短期間に生産性を高めるための7つの方法 | POSTD
  • オブジェクト指向は禁止するべき - きしだのHatena

    プログラムがまだ不慣れな人が「プログラムちょっとわかるようになったけど、まだぜんぜんオブジェクト指向とかできてません」のように言ったり、ちょっと慣れた人が「このソース、ぜんぜんだめ。オブジェクト指向ができてない」にようなことを言ったり、まるで、オブジェクト指向ができてるかどうかがよいプログラムかどうかを表すことになってるようだ。 Javaのアルゴリズムのに、「Javaなのにオブジェクト指向ができていない」のような書評がついているのを見たときには、お前は何を求めてるんだと思ったりもした。 そのようなオブジェクト指向は、窓から投げ捨てるべきだ。オブジェクト指向はプログラムのよしあしの基準にならない。 むだにHogeインタフェースとHogeImplクラスがあったり、むだにnewするだけのcreateメソッドがあったり、どこで値が設定されてるかわからないオブジェクトがひきまわされてたり、ソースコ

    オブジェクト指向は禁止するべき - きしだのHatena
  • プログラマの実力偽装を考える──初心者と中級者を分けているもの

    「プログラマの実力」とは一体何を指すのだろう、とよく考えることがあります。特に、プログラミング雑誌の編集者としては、「プログラミングの初心者と中級者を分けているもの」に、とても興味があります。 中級者と見なされるには、様々なものが求められるでしょう。特定のプログラミング言語の文法を隅々まで把握していることかもしれませんし、最新のライブラリやツールを使いこなせることかもしれません。たしかに、こうした知識は、優れたソフトウエアを開発するうえで重要です。ただ、そうしたノウハウは、使用するプログラミング言語や開発環境が変わると役に立たなくなることもあります。 そこで、日経ソフトウエア2014年4月号で、「中級者に必要なものは何か」をテーマにした「初心者脱出の近道は? プログラミングの『壁』大攻略」という記事を執筆しました。この記事では、中級者に必要なものを「良い習慣」と位置付け、どのような習慣が必

    プログラマの実力偽装を考える──初心者と中級者を分けているもの
  • 1