タグ

codingに関するatsushifxのブックマーク (20)

  • コードの格付け++ - None is None is None

    ランクA ~ コメントを読まなくても、関数名だけで使い方がわかる ランクB ~ コメントを読めば使い方がわかる ランクC ~ 中身を読まないと使い方がわからない ランクD ~ 書いた人の心を読まないと使い方がわからない(or 心を読んでもわからない) 元ネタ:[開発]ランクCのゴミコードを生産し続けないために、、、

    atsushifx
    atsushifx 2017/05/06
    not code, it's function,method
  • mattnさんのリファクタリングを読み解く - 生涯未熟

    現在絶賛開発中のkirimoriですが、なんとGolang界隈で有名なmattnさんにリファクタリングをして頂くという、とても嬉しい事態がありました✨ kirimoriについてはこちら↓ syossan.hateblo.jp リファクタリング前提でかなり雑に書いていたのですが、めちゃくちゃ良い感じにコードを直して頂けたので自分の勉強のために読み解いてみます👏 リファクタリング前 kirimoriは以下の機能を有しています。 initコマンドでkirimoriの設定ファイル(toml形式)を作成します addコマンドでコマンドライン引数に指定したプラグインを追加します removeコマンドでコマンドライン引数に指定したプラグインを削除します listコマンドでプラグインの一覧を表示します で、構成的には kirimori.go に全てのコマンドの処理をベタ書きにしてある感じになっております

    mattnさんのリファクタリングを読み解く - 生涯未熟
    atsushifx
    atsushifx 2017/01/24
    プログラミングを覚える上で、いいコードを読むというのは凄く力がつく方法。このリファクタリング前と後というのは、いかに筋のいいコードを書くかという点で最強の教材になりそう
  • ITエンジニアが誤った情報にツッコミを入れるのは「正しさハラスメント」ではない - give IT a try

    はじめに 先日、はてなブックマークで話題になっていたこちらの記事を拝見しました。 確かに「一理ある」といえばそうなんですが、僕個人はこの意見に対して率直に「NO」だと感じました。 僕は基的に自分の専門分野であれば、結構積極的に技術記事にツッコミを入れていくタイプです。 このエントリでは、なぜ僕は「NO」だと感じたのか、そしてなぜ積極的にツッコミをいれていくのか、その理由について書いていこうと思います。 元記事の要点 僕なりに元記事を要点をピックアップすると次のようになりました。 ITエンジニアの中には初心者の成功体験を折りに来る人がいる。 筆者は成功体験の「気持ちいい」状態を阻害する行為に疑問を覚える。 初心者にはセキュリティ周りについて教えても仕方がない。 初心者もいずれセキュリティ対策について知識を得るはずだ。 早すぎる指摘が生まれるのは「それが間違っているから」だ。 初心者にはまず

    ITエンジニアが誤った情報にツッコミを入れるのは「正しさハラスメント」ではない - give IT a try
    atsushifx
    atsushifx 2016/12/29
    エンジニアの声が黙殺されて起きた最悪の例が、東日本大震災の福島原発事故。間違いを指摘する目的は、間違いの修正または同じ間違いを起こさないこと。口調を柔らかくすると、間違いをまたおかすことがありうる
  • ifの条件が2つ以上だと頭がパンクする

    if(param==0 && 判定(param2) || !param3){ //したいこと } みたいに3つぐらい条件がある場合、頭がパンクしそうになる。 この時こう考えている。 1:したいことをする条件は 2:paramが0 3:かつ 4:判定関数でparam2の条件を返して、true 5:またはparam3がfalseのときがtrueだから 6:trueだとだめなんだよね。falseが正しいんだ。でもfalseは偽なのに正? 8:あれ、何したいんだっけ。まぁいいや、とりあえず実行してエラーなら直そう。 7:実行。 8:あれ?なんか違う。何がおかしいんだ 1へ戻る。 これを3,4回繰り返してウアアアアアアアアアアアってなってしまう。 誰か助けて

    ifの条件が2つ以上だと頭がパンクする
    atsushifx
    atsushifx 2016/09/19
    ガード節などのHowはすでにあるので。「プログラミング作法」「リーダブルコード」「リファクタリング」を読んで、どうすればいいコードをかけるのかを勉強する頃合いだろうといっておく
  • プログラムにコメント書かない文化もあるよって話|NZ MoyaSystem

    以下の記事を読んで。 530000micro.hatenablog.com 僕が勤めている会社では、原則、プログラムにコメントを書かないのがルールです。 人生で初めてプログラムに触れてからこのかた、プログラムには必ずコメントを書けと指導されて来ましたし、自分自身も、後輩たちにちゃんとコメント書けよと言い聞かせてきました。そんなわけで、最初に全然コメントのないソースコードの山を見たときは、正直「ゲッ、なんじゃこりゃ……」と面らったのは確かです。 ところが、「なぜうちのプログラムにはコメントがないのか?」と同僚に尋ねてみると、実に納得の行く回答が返ってきたのでした。 なぜコメントが必要なプログラムを書くのか? 同僚いわく、「コメントが無くても読めるようなプログラムを書け」という思想が根底にあるのだそう。 適切に関数や変数が命名され、スコープがきちんと管理され、ロジックの流れが整理されているコ

    プログラムにコメント書かない文化もあるよって話|NZ MoyaSystem
    atsushifx
    atsushifx 2016/04/22
    原則コメントを書かないであって、まったく書かないわけではない。問題はコメントを含むドキュメントと実際のコードの乖離であって、必要なコメントは書くべき。ここらへんはアジャイルでのドキュメントレスと一緒
  • コーディングを学ぶこと、それはあなたが考えるよりも大変です | POSTD

    要約:全ての根拠が示しているのは、「プログラミングには高い適性を要求されますが、適性を持った人間はわずかしかいない」ということです。最近の流行の短期でコーディングを学べるコースは、デマカセを売り付け、プロのプログラマのスキル不足解消に何ら力になってないのです。 これはイギリスからの観点での記事です。私はこの事象について、とりわけソフトウェア開発者の社会的地位に関しては、他の地域決してこの通りではないと思っています。 メディアが共通して取り上げるテーマは、スキルのあるプログラマの不足です(”プログラマ”も”コーダ”も”ソフトウェア開発者”も、ここでは全て同じものを意図し、区別せずに使用しています)。このコーディング技術のギャップには解決の糸口が見えない心配が多くあります。要は”明日の高品質な仕事”を担う候補者を生み出すことに失敗しているということです。例えば、 The Telegraph の

    コーディングを学ぶこと、それはあなたが考えるよりも大変です | POSTD
    atsushifx
    atsushifx 2016/01/20
    see http://www.aoky.net/articles/jeff_atwood/why_cant_programmers_program.htm つまり、変数と制御構造という基本概念を理解し実践できるかどうか。まゆつばだったフタコブラクダはともかく、適性がない人は居る
  • fs.exists()がdeprecatedになった理由 / 学ぶ、考える、書き出す。

    wearefractal/vinyl-fs の dest(folder, [opt]) が出力先のディレクトリが無い場合でも、そのディレクトリを作ってくれないということで、自分で「ディレクトリの有無を確認して、無い場合はディレクトリを作る」という処理を作る必要がでてきました。 そこで File System Node.js v4.1.0 Manual & Documentation を見て、ディレクトリの有無を確認するのに使えそうな fs.exists() という API を見つけたのですが、「Deprecated: Use fs.stat or fs.access instead.」ということで、他の API を使うように書かれていました。 「ファイルの有無を確認する API が deprecated になるのはなぜ?」と思い、これは何かあると思って少し調べてみたのでまとめておこうと思い

    fs.exists()がdeprecatedになった理由 / 学ぶ、考える、書き出す。
    atsushifx
    atsushifx 2015/09/20
    確認して実行より投機的実行のほうがシンプルで面倒がなくなるという話。本気で並列並行プログラミングをするとロックやセマフォアで悩むことになるし、エラー処理込みで試みるというのが正しい考え方
  • コードを削除したら喜ぶべき。知らない人がみたら意味不明なコードが残っていませんか?

    昔はよくわかっていなくて、今は身にしみてよくわかっていることの一つは、追加した行数がマイナスのパッチは素晴らしいということだ。コードは削除できるなら消したいし、自分の書いたコードであれ、誰かが消してくれたらとてもよいことだと思う。 昔はがんばって書いたコードはなるべく「活用」したいと思っていた。活用というのはつまり、捨てるのはなんとなくもったいないから、そのコードをなるべく消さずにすませたいということだ。 しかし無理にコードを生かしておくことの意味など何もない。 コードの履歴などは全部いったん置いておいて、ある時点のソースコードを初めて見たものとしよう。そのソースコードが、そのプログラムが実装するべき機能を実装するために十分かつ最小限のコードであるのと、十分かつ最小限のコードに加えて何かよくわからないコードのどちらかであるとしたら、どちらのほうがいいコードだと思うだろうか? 前者のほうがい

    atsushifx
    atsushifx 2015/01/23
    コメント非表示なのは残念。ここはTwitterに期待して、実例はCプログラミング診断室 http://www.pro.or.jp/~fuji/mybooks/cdiag/ に載っている
  • ソフトウェアエンジニアを目指す人へのコードに関するアドバイス | POSTD

    この短い記事で私は、ある素晴らしいアイデアを提案します。それは、製品品質のコードは、下記リストに挙げた特性で説明することができるということです。それぞれ、重要性の高いものから順番に記述しています。もしあなたが、学校もしくは独学でプログラミングを学ぶ、真面目な学生なのであれば、製品品質のシステムを構成するコードの特性を学びたいと思うのではないでしょうか。 是非、 ご意見・ご感想 をお寄せください。 読みやすさ 言うまでもなく、読みやすいコードである。 読みやすいコードは、必要に応じて簡単に変更できる。 読みやすいコードは、他の人も理解することができ、共有することができる。

    ソフトウェアエンジニアを目指す人へのコードに関するアドバイス | POSTD
  • 思考実験によるより良いコーディングへのヒント | POSTD

    簡単な思考実験をさせてください。コードをASCIIとしてディスクに保存する必要がないとしましょう。僕たちがシンボルを使うコードの書き方を変えられたら? そして何よりもその”読み方”を変えられたら? 想像できるすべてを読めて、編集できて、書ける魔法のコード・エディタがあるとしましょう。さらに、同じように機能する魔法のコンパイラがあるとしましょう。理想のコードはどのようになるでしょうか? まず区切り文字から自由になれるでしょう。どうしてそんなものがあるのか? コンパイラが十分賢くないから。 引用符のような区切り文字はコンパイラにシンボルが終わるときとリテラルが始まるときを知らせるためにあります。なぜ変数が数字で始められないかも同様です。コンパイラは変数名なのか数値リテラルなのか知りようがありません。もし代わりにタイポグラフィを使ってそれらを区別できるとしたらどうなるでしょうか。 例をあげましょ

    思考実験によるより良いコーディングへのヒント | POSTD
    atsushifx
    atsushifx 2014/11/05
    エディタやIDEでコードのSyntax Highliteが普及しているのだから、それを前提にしたプログラミングがあってもいいという話。
  • 科学者が書いた質の低いコードが、ベストプラクティスに則ったコードに勝る理由 | POSTD

    今ちょうど、 科学者の手によるコードは質が低い という投稿を読み終えたところです。科学者の書いたコードは”ソフトウェア・エンジニア”が関与したコードと比べて質が劣るという内容でした。 私は10年以上同じ職場に勤めていますが、同僚の多くは数学や物理学が専門で、”ソフトウェア・エンジニアリング”の知識はほとんど持っていません。 そこでは、大惨事は必ずと言っていいほど、自分のことをいっぱしのプログラマだと思っている少数派によって引き起こされます。かくいう私も、少なくとも数件、いまだ解決を見ていない大きな不具合の原因を作ったことがあります。他にも大きめのバグをいくつか出しましたが、幸いその時のコードはお蔵入りしたため、私に無駄な給料を払わされた雇い主が被害をうけたくらいで、同僚の生産性を大きく損なうことはありませんでした。 その度(少なくともほとんどの場合)私は反省し、それまでにも増して退屈なくら

    科学者が書いた質の低いコードが、ベストプラクティスに則ったコードに勝る理由 | POSTD
    atsushifx
    atsushifx 2014/07/16
    作成するソフトウェアの規模と複雑さを考えないと意味がない。プログラミングをよく知らない科学者が質の低いコードを書くのは仕方ないが、グローバル変数ばりばりなコードとかは後で地獄を見る。
  • プログラマー向け最強フォント「M+」 | ソフトアンテナ

    プログラミングに最適なフォントは何でしょうか。海外のブログ記事「The Best Font for Programming: M+」にて、プログラマー向けのベストフォントとして「M+」フォントが推奨されていました(Reddit)。 ブログによるとRetinaディスプレイのような高詳細ディスプレイで使うのに具合がよく(低解像度ではTerminusフォントが推薦されています)、0(ゼロ)とO(大文字のO)のような紛らわしい文字がはっきり区別できる点がお気に入りポイントの様子。 ↑このように。 実は、M+フォントは日人が開発している日語対応のフリーフォントです。海外発のフォントの場合アルファベットの見栄えはよくても日語と合わせるとどうも…といったことが起こりがちですが、M+フォントだとそのような心配は不要だと思います。日人開発者なら使わない手はないかもしれません。 M+フォントは、個人利

    プログラマー向け最強フォント「M+」 | ソフトアンテナ
    atsushifx
    atsushifx 2014/07/10
    日本語フォントならVLゴシックが英数字がM+なので読みやすい
  • 「実装をテストする」とは? - bluebird

    TDD界隈の議論で、「仕様のテスト」「実装のテスト」という話を聞くことがあります。 TDDのよくわからない言葉をどうやって説明するか悩んでいるという話 #SWTestAdvent — うさぎ組 明日からTDDをやってみよう! - 部屋とアジャイルと私(仮称) 今日のTDD界隈で「仕様のテスト」「実装のテスト」という言い回しを一番よくしているのは私だと思うのですが、勉強会の場などでは話をすることはあるものの、こういう形で残してこなかったので、自分の考えをまとめたいと思います。 公開されているインターフェースの仕様を満たせるなら、API(「リファクタリング」で言う「公布済みインターフェース」)のエントリポイントの内側のクラス設計をどのように組み立てるかは、実装者の裁量に任されているはずです。 品質保証の観点からは、APIの仕様を満たせるテストケースを記述すれば、ソースコードに対してのある程度の

    「実装をテストする」とは? - bluebird
    atsushifx
    atsushifx 2014/03/01
    いい記事。実装のテストはプログラミングをするときに使って書き捨てるもの。
  • iOSのSSL周りのバグに見るC言語におけるエラーハンドリングが糞だという話

    Steve Streza 🏳️‍🌈 @SteveStreza Update your iPhones/iPads now. The SSL bug is really bad. Always brace your if statements. https://t.co/eyeDvhwAV9 http://t.co/lEgUdqZChu 2014-02-23 01:33:58

    iOSのSSL周りのバグに見るC言語におけるエラーハンドリングが糞だという話
    atsushifx
    atsushifx 2014/02/24
    バグがC言語の記述性能の低さが要因のひとつというのは同意だが、だからC++というのも違う気がする。C++も黒魔術過ぎるのでLLVM+使いやすい言語が好み
  • 等幅なコーディング向けフォント·Anonymous Pro MOONGIFT

    Anonymous ProはOpen Font Licenseのオープンソース・ソフトウェアです。 プログラミングやWebデザインを行う際にフォントは厳選して選んだ方が良いです。より可読性、品質の高いフォントを選ぶのが良いでしょう。今回はその一つ、Anonymous Proを紹介します。 Anonymous Proのレギュラー。等幅フォントでそれぞれの文字がはっきりと分かれています。 ボールド。こちらも見やすさは変わりません。 Anonymous Pro Minus。こちらはちょっとフォントの数が少なくなってサイズが軽減しています(標準文字だけなので分からないですが…) Anonymous Proの特徴は等幅フォントであること、レギュラー/ボールド/イタリック/ボールドイタリックがあること、各種キーボードのシンボル(Mac OSXのコマンドキーなど)対応、英語の他ヨーロッパ圏の拡張言語サポ

    等幅なコーディング向けフォント·Anonymous Pro MOONGIFT
  • 書いたコードが一発で動作するとなぜ不安なのか : akiyan.com

    書いたコードが一発で動作するとなぜ不安なのか 2013-04-21 プログラミングにおいて少なくないコードを一気に書き上げたとき、そのコードが一発で動作 or テストケースに通るとなんともいえない不安を覚えるのは、プログラマーなら誰でもあるあるネタだと思う。「当にこれ、一発で動作しちゃっていいの? 俺、そこまでミスしないプログラマーだっけ?」なんて自分を疑ったりする。 このあいだもそんなことがあったんだけど、ふと気になった。不安になる理由は、自信のなさからくるものだけだろうか? ちなみに、書いたコードが正しく動作しないとき、コードを修正すると不安になることはない。一体、なぜ? 一発で動作したブラウザの画面を見ながら、考えてみて、閃いた。「コードの修正は、書いたコードを見直す機会にもなっているから」じゃないだろうか。コードの見直しは「リファクタリング」といっていもいい。 一発で動作してしま

    書いたコードが一発で動作するとなぜ不安なのか : akiyan.com
    atsushifx
    atsushifx 2013/04/21
    頭の中でそこまで具体的に考えてないはずというのが自分の答え。こういったアウトプットに関するものはデザイナーとかの意見も聞きたい
  • ソースコードを表示するためのフォント「Source Code Pro」をアドビがオープンソースで無料公開 - Publickey

    プログラミングやマークアップなど、コーディング作業のときにソースコードを表示する目的で開発されたフォント「Source Code Pro」を米アドビがオープンソースとして無料公開しました。24日(日時間24日深夜)に開催された同社のイベントCreate the Webで発表されました。

    ソースコードを表示するためのフォント「Source Code Pro」をアドビがオープンソースで無料公開 - Publickey
  • http://1yg.net/archives/554

    atsushifx
    atsushifx 2010/12/11
    どこかで読んだなと思ったら、http://fragments.g.hatena.ne.jp/fukken/20081203/1228329796 だった。
  • とにかくシンプルなプログラミングエディタ·CodeAssistor MOONGIFT

    CodeAssistorはWindows/Mac OSX用のオープンソース・ソフトウェア。開発用のテキストエディタには何を使っているだろうか。筆者はかれこれ8年以上Emacs(またはその系統)しか使っていない。手に馴染むと他に切り替えることは考えられなくなる。 シンプルなプログラマー向けエディタ VimEmacsといったエディタは優秀ながらキーバインドが特殊で取っつきが悪いイメージがある。やはり標準的なキーバインドがのぞめる方が良いという人も多いだろう。そこでお勧めしたいのがCodeAssistorだ。 CodeAssistorの特徴はとにかく軽量であること。機能も限られており、テキストの編集以外にこれといった機能がない。ただしプログラマー向けなので、各種プログラミング言語に対応したハイライト処理はある。後は関数やクラスなどでコードを折りたたんで表示する機能もある。 コードの折りたたみ機

  • プログラムの可読性に関する検討 - Cube Lilac

    目次 はじめに(※この記事) 名前 式と文 一貫性と慣用句 関数マクロ マジックナンバー コメント 長さ(行数,1行の文字数) はじめに http://d.hatena.ne.jp/honjo2/20100518/1274178222 を読んでプログラムの「可読性」について考えていたら長くなりそうだったので,イントロ的な記事をまず書いておきます.詳細は,まとまったらと言う事で. 指標の必要性 「可読性」は主観に依存する部分も大きいため,注意深く検討していく必要があります.特に,「可読性が低い」と言う言葉は単に「俺が読めないコードはクソだ!」の言い換えでしかない場合も多いので,そうならないように注意する必要があります. 「可読性」は,単語の指す範囲が広く,また曖昧であるという問題があります.例えば,http://d.hatena.ne.jp/honjo2/20100518/127417822

    プログラムの可読性に関する検討 - Cube Lilac
  • 1