タグ

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

  • 僕らは概念をとらえてコードを書いていく | 株式会社ヌーラボ(Nulab inc.)

    こんにちは、ヌーラボ Backlog課に所属するarata_nです。 日々プログラミングの仕事をしていく中で、「概念をとらえる」ということがとても重要だなーと感じていて、それを実際に取り組んでうまくいったことを紹介しようと思います。 概念をとらえる 唐突に「概念」と書き始めてしまいましたが、ここで自分の理解を説明させてください。 辞書をいくつか引いてみると、そのどれも物事のあらましや質と出てきます。これをソフトウェアに当てはめてみるとどうなるでしょうか。一般的にはなんらかの解決したい問題があり、その解法そのものや解決に至るまでの手順を組み立てたのち具体的なコードとして記述します。先ほどの辞書的な意味から考えると、「解法や解決に至るまでの手順」が概念にあたるものでしょう。新規での開発であれば全体の設計の段階でこのようなことはよく考えられていると思います。 逆に既存のコードに新しい機能を追加

    僕らは概念をとらえてコードを書いていく | 株式会社ヌーラボ(Nulab inc.)
  • 実装が速いとは

    社内で話題に上がったので考えてみた 🤘 「実装が速い」ってのは相対的なものさしだし、とても抽象的だから評価しにくい。 でも以下のようにいくつかの要素に分解してみると、すこしわかりやすくなる。 どれかがずば抜けている場合もあるだろうし、すべてバランスよく高いこともありそう それぞれ具体的に考えると 書くのが速い 単純に書くのが速いという話。まず思い浮かぶ要素 タイピングが速い VimEmacs などのツールを使っている キーボードが合っている 運指がきれいなことが多い 手を止める時間が少ない どんなに書くのが速くとも、手を止めている時間が多ければ実装が速いとはいえない 言語仕様に慣れていて、書き方に迷わない 経験の長さ 日頃から情報収集を怠らない 問題にぶちあたっても、短時間で解決できる(問題解決能力が高い) 問題を切り分けられる あたりをつけられる(原因を見つけるのが早い) なにが

    実装が速いとは
  • ss2017 - 日本ソフトウェア科学会 プログラミング論研究会 (JSSST-SIGPPL) (Special Interest Group on Programming and Programming Languages)

    ニュース † サマースクールは無事終了致しました.多数のご参加ありがとうございました.配布したチートシートおよびその説明付きバージョンと,日のスライドと講義で作成したtheoryファイル(9/18). 会場詳細を追加しました.受付は会場前にございます(9/13). 受講者へのご連絡を追加しました(8/30). ↑ 概要 † Isabelle/HOL は,1986年に Lawrence Paulson によって創始され,現在はミュンヘン工科大学 Tobias Nipkow のチームを中心にメンテナンスされている証明支援ツールです. Isabelle/HOL の特徴は,スマートな証明環境 (jEdit),強力な自動証明のサポート (Sledgehammer),Haskell 等への自然なコード輸出 (code export),多彩でオープンなライブラリ (Archive of Formal

  • どこに何を書くのか? - pospomeのプログラミング日記

    これのLT資料。 kaizen.connpass.com どこに何を書くのか? from pospome Twitter の反応 「どこに何を書くのか?」設計論の話だ #code_kaizen— masataka arai (@massa142) 2017年6月29日 コードの責務とか疎結合とかそういう実装よりの話っぽい。 #code_kaizen— めちゃめちゃ可愛くていい匂いがする阿片窟 (@usadamasa) 2017年6月29日 あっ、プリミティブ型殺せタイプの人だ! #code_kaizen— めちゃめちゃ可愛くていい匂いがする阿片窟 (@usadamasa) 2017年6月29日 「攻撃」と「攻撃力」を別々の概念として扱う。 #code_kaizen— めちゃめちゃ可愛くていい匂いがする阿片窟 (@usadamasa) 2017年6月29日 つらいコードだ… #code_ka

    どこに何を書くのか? - pospomeのプログラミング日記
  • コーディングに対する考え方を変える6つのプログラミングパラダイム | POSTD

    私は時折、コーディングに対する考え方を変えさせられるような、従来と非常に異なるプログラミング言語に出会います。記事では、その中でも特に気に入っている発見をいくつかご紹介したいと思います。 これは、先賢による「関数型プログラミングは世界を変える!」的な投稿ではありません。記事で挙げるのは、もっと「知る人ぞ知る」的なリストです。多くの読者の方にとって、以下の言語やパラダイムは聞いたことのないものが大半だと思いますので、私が経験したように、これらの新しい概念を学ぶ楽しさを感じていただければ幸いです。 注:私は以下の言語の多くに関して最低限の経験しかありません。その発想に引き込まれたのであって、専門的知識は持ち合わせていないため、訂正すべき点や誤りがあればどうぞご指摘ください。また、記事で取り上げていない新しいパラダイムや概念に出会った方は、ぜひお知らせください。 最新情報:記事が r/p

    コーディングに対する考え方を変える6つのプログラミングパラダイム | POSTD
  • 東京Ruby会議11での発表「アプリケーションへのRubyインタープリターの組み込み」とOSS Gateワークショップ2016-05-28 #tkrk11 #oss_gate - 2016-06-01 - ククログ

    5月28日に開催された東京Ruby会議11で「アプリケーションへのRubyインタープリターの組み込み」と題して、アプリケーションにRubyを組み込む実装について話しました。 関連リンク: スライド(Rabbit Slide Show スライド(SlideShare) 発表動画 リポジトリー 質疑応答の補足 内容は前述のスライドや発表動画を参照してください。ここでは発表後の質疑応答の内容について補足します。 質問:ruby_sysinit()は呼ばなくていいの? 「ruby_sysinit()は呼ばなくていいの?」に対する当日の回答は「ruby_sysinit()の説明は省略した」だったのですが、どうして省略したかを補足します。 Rubyインタプリターを組み込んだアプリケーションの1つであるrubyコマンドの実装(main.c)を見るとruby_sysinit()を呼んでいます。そのため、R

    東京Ruby会議11での発表「アプリケーションへのRubyインタープリターの組み込み」とOSS Gateワークショップ2016-05-28 #tkrk11 #oss_gate - 2016-06-01 - ククログ
  • エンジニアtype 技術者のキャリアを考えるWebマガジン - 転職@type

    エンジニアtypeは、各種エンジニアをはじめ「創る人たち」のキャリア形成に役立つ情報を発信する『@type』のコンテンツです。

    エンジニアtype 技術者のキャリアを考えるWebマガジン - 転職@type
    kitokitoki
    kitokitoki 2016/01/29
    「もしかしたら世の中をHackすることにつながるかも(笑)」
  • The New Hacker's Dictionary - = R =

  • ghq: リモートリポジトリのローカルクローンをシンプルに管理する - 詩と創作・思索のひろば

    以前紹介したghqというツールで GitHub のリポジトリを手元に簡単クローンしてたのを、環境が新しくなったついでに Go で書き直し、完全リニューアルしました。(前は zsh だったのでなんだかなーと思ってた。) そもそも何をするツールか GitHubGoogle Code Project でホストされている Git、Mercurial のリポジトリを手元にクローンすることができます。リポジトリは設定したルート(デフォルトで ~/.ghq)以下に、以下のようなパスで置かれます。 ~/.ghq/github.com/motemen/ghq go get と似てますね。同じような感じで ghq get <URL> します。 % ghq get https://github.com/motemen/ghq clone https://github.com/motemen/ghq ->

    ghq: リモートリポジトリのローカルクローンをシンプルに管理する - 詩と創作・思索のひろば
  • 名詞の王国 - あどけない話

    「君のプログラミング言語で、これ、できる?」で紹介されていた「Execution in the Kingdom of Nouns」を訳してみました。英語よりも、つたない日語訳の方がよい方は、どうぞ。 おかしな訳があれば、教えて下さい。適宜、訂正します。 「C の関数はファーストクラスじゃないよ」などの突っ込みは、原文の著者へどうぞ。 名詞の王国での実行 彼らには気分ってものがある。ものによるが...特に動詞がそうだ。誇り高いことったらない...形容詞相手ならなんとでもできるが、動詞はどうしようもない...じゃが、このわしにかかれば皆思いのまま! -- ハンプティ・ダンプティ 世界のみなさん、こんにちは!今日は、邪悪な王 Java の物語と国中の動詞を滅ぼした彼の冒険について語ろう。 警告:この物語は幸福な結末を迎えない。心臓の弱い人や批判家向けではない。もし、あなたが怒りっぽい性格である

    名詞の王国 - あどけない話
  • Stevey's Blog Rants: Execution in the Kingdom of Nouns

    They've a temper, some of them—particularly verbs: they're the proudest—adjectives you can do anything with, but not verbs—however, I can manage the whole lot of them! Impenetrability! That's what I say! — Humpty Dumpty Hello, world! Today we're going to hear the story of Evil King Java and his quest for worldwide verb stamp-outage.1 Caution: This story does not have a happy ending. It is neither

  • プログラミングのなぜに答える会(中編) « inoue_se

    前編を書いたのが9月です。月日がたつのは早いものです。今日は中編です。途中まで後編のつもりで書いていましたが、すべて書ききらないので中編になりました。後編はいつになるのやら、という感じですが。 プログラミングのなぜに答える会で、Tさんから「Javaでstaticを使う場合はどう判断しますか?」という質問がありました。以下、Javaのstaticの働き自体は分かっている前提とします。 表面的な回答は簡単です。あるクラスのstaticフィールドやstaticメソッドは、そのクラスのオブジェクト群(インスタンス)で共有したい状態や操作に対して使います。別の説明として、staticフィールドやstaticメソッドはオブジェクトを生成せずに使いたい状態や操作に使います、などが回答になりえます。嘘ではありませんが、この説明だけでは、staticをいつ使うべきかの判断にはなりません。 staticフィー

    kitokitoki
    kitokitoki 2015/03/28
    static フィールド、static メソッド
  • コメント:コメントすべきこと:コードに対する考え - Strategic Choice

    どういうこと?コメントには、コードに対する「大切な考え」を記録します。どうして?コードに対する「大切な考え」が書いてあるコメントは、コードの理解に大きく貢献します。映画のDVD にはよく「監督のコメンタリー」がついてきます。映画の製作者が自分の考えや物語について語ってくれるので、作品がどのように作られたのかを理解するのに役立つのです。これと同じように、「コードに対する大切な考え」をコメントに記録すると、コードの理解を助けることになります。どうすれば?コードに対する自分の考えを、コメントとして付記します。例えば、以下のようなイメージです。 // このデータだとハッシュテーブルよりもバイナリツリーのほうが40% 速かった。 // 左右の比較よりもハッシュの計算コストのほうが高いようだ。 コメントから情報を得ることができるので、下手に最適化しようとして無駄に時間を使う必要がなくなります。さらに、

  • 何かのときにすっと出したい、プログラミングに関する法則・原則一覧 - Qiita

    エンジニア組織を強くするためのを出版しました Qiitaでエンジニアリングをめぐる様々なコミュニケーションの問題とその解決策や考え方を書いてきた。それらの背後にあるエッセンスをこの度書籍として出版するに至りました。 エンジニアリング組織論への招待 ~不確実性に向き合う思考と組織のリファクタリング この書籍は、エンジニアリングを「不確実性を削減する」という第一原理で捉え直し、様々なエンジニアリングとその間のコミュニケーションをめぐる現象を説明していくものです。 デメテルの法則 別名最小知識の法則。デメテルは、豊穣の女神。アスペクト指向などの研究であった「デメテルプロジェクト」に由来。 基的な考え方は、任意のオブジェクトが自分以外(サブコンポーネント含む)の構造やプロパティに対して持っている仮定を最小限にすべきであるという点にある。 単純化して説明すると、オブジェクトの"メンバーのプロパテ

    何かのときにすっと出したい、プログラミングに関する法則・原則一覧 - Qiita
  • ホモロジーとは何か - アドファイブ日記(ミラー版)

    xiangzeさんのブログ記事に凄く興味をもって、20代の頃に取り組んで挫折した代数トポロジーについてグーグル先生に教わった。 ホモロジー群の嬉しさ(プログラマ目線) 図形が「同じ」であることを数学的に定義する方法として、合同や相似というのは中学校でならうけど、トポロジー的に見て同じかどうかを数学的に厳密に定義するにはそれなりに追加の知識が必要になる。 でも、そういう「同じ」を数学的に定義する事でコンピュータで「同じ」かどうかの判定をさせることが出来るようになるので価値がある。 例えば、合同かどうかの判定が数学的にできるとどんなアプリケーションソフトウェアが実現できるだろうか。例えば3次元の物体の形が2つ与えられたときにその2つの形が同じかどうかを判定するというプログラムを作りたかったら、2つの図形をそれぞれ決められた手順でポリゴンに分割して、ポリゴンに含まれる各三角形が同形かどうかをしら

    ホモロジーとは何か - アドファイブ日記(ミラー版)
  • Persistent Homology とRのphom package, その他libraryの紹介 - xiangze's sparse blog

    高次元データの大域的な性質に着目した分類、解析の手法にPersistent Homologyという方法があります。 またその手法を実装したRのパッケージ(CRAN phom package)があったので簡単に紹介いたします。その他の色々な言語で使えるライブラリについても最後に紹介いたします。 ホモロジーについて ホモロジーとはあまり厳密でない言い方をすると微小な変形によっては変わることのないものの形状を特徴づけるような量で、一般には群の形で記述されます。群の係数としては整数や複素数などの数だけでなく、関数もとり得ます。しかしデータ解析の分野においては実係数のホモロジー群のみが対象とされる場合が多いようです。 球面、あるいはトーラス(ドーナツ型の図形)の表面は2次元ですが境目を持ちません。しかしながら全体としてみるとトーラスには穴が開いていて、球面には穴がありません。この穴に相当するものの有

    Persistent Homology とRのphom package, その他libraryの紹介 - xiangze's sparse blog
  • JavaScriptライブラリの気になる実装をどうやって見ていくか

    はじめに 毎日新しいJavaScriptライブラリが登場していると思いますが、それらがどういう実装になっているかを知ることはライブラリを使う以上に大事かもしれません。 ソースを全部読めば分かるかもしれませんが、それをやるには時間が足りません。 JavaScriptに限った話では無いですが、今回はJavaScriptを例に”特定の機能はどうやってるんだろ?”という事を調べる方法についてです。 探す前にドキュメントに載ってないかを見るのが手間がなくて一番よいですが、書いてない場合は実装を見ます。 Vue.js 今回はVue.jsというAngularJSやKnockoutのようなViewとModelのデータバインディグを行うライブラリを例に、データバインディグはどうやっているのかを2つの方法で調べてみたいと思います。 コードをステップで見ていく これはよく見る方法で皆さんもやったことがあると思い

    JavaScriptライブラリの気になる実装をどうやって見ていくか
  • 命名するという行為 - 林檎の木

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

  • テディベア効果 - Λάδι Βιώσας

    プログラミング作法というカーニハンの名著があります↓コレ*1 プログラミング作法 作者: ブライアンカーニハン,ロブパイク,Brian Kernighan,Rob Pike,福崎俊博出版社/メーカー: アスキー発売日: 2000/11メディア: 単行購入: 58人 クリック: 1,152回この商品を含むブログ (203件) を見る エンジニアな人たちにとって、原因不明なバグや想定外の障害に頭を悩ませることは日常茶飯事のことと思います。そのような状況に陥った時、このが教えてくれるのは、まずテディベアに相談しなさいということでした。以下引用 自分のコードを誰かほかの人に説明して聞かせるのも効果的なテクニックだ。こうすると自分自身インバグが見えてくることが多い。場合によっては説明し始めた途端に気がついて「あ、もういいや、変なところがわかったよ。ごめん、ごめん」などと言って照れくさい思いをする

    テディベア効果 - Λάδι Βιώσας
  • Rubyist Magazine - スはスペックのス 【第 1 回】 RSpec の概要と、RSpec on Rails (モデル編)

    『るびま』は、Ruby に関する技術記事はもちろんのこと、Rubyist へのインタビューやエッセイ、その他をお届けするウェブ雑誌です。 Rubyist Magazine について 『Rubyist Magazine』、略して『るびま』は、Rubyist の Rubyist による、Rubyist とそうでない人のためのウェブ雑誌です。 最新号 Rubyist Magazine 0063 号 バックナンバー Rubyist Magazine 0063 号 Rubyist Magazine 0062 号 Kaigi on Rails 特集号 RubyKaigi Takeout 2020 特集号 Rubyist Magazine 0061 号 Rubyist Magazine 0060 号 RubyKaigi 2019 直前特集号 Rubyist Magazine 0059 号 Rubyist