タグ

programmingに関するakasataのブックマーク (195)

  • コーディングのアンチパターンを自分なりにまとめてみた - ブログなんだよもん

    コードレビューをしてると「なんじゃこりゃぁ!?」というコードにまれに出くわします。 既存のコードとの兼ね合いでなってる場合は、致し方無くても、新規コードまで真似するのは良くないですよね。 そろそろ新人エンジニアの中には「はじめてのこーでぃんぐ」をする人も現れるのではないでしょうか。 そんな時、参考にするのは当然、既存のコードでしょう。でも、果たして既存のコードは真似するべき綺麗なコードでしょうか? というわけで、私がレビュー時に良く注意する点をアンチパターンとしてまとめてみました。 ちなみに私はWeb屋さんなので、業界違うと微妙に違うところもありそうですけど、質的なところは変わらないと思ってます。 パターンの名前は一般的なのをWikipediaから引っ張ってきたり、自分で思いついたのを適当に書いたりしています。 太っちょメソッド 名前のとおり大きすぎるメソッドを作るアンチパターンです。

    コーディングのアンチパターンを自分なりにまとめてみた - ブログなんだよもん
    akasata
    akasata 2012/04/16
    確かによくバベるなぁ
  • bitbucketの使い方

    With best-in-class Jira integration, and built-in CI/CD, Bitbucket Cloud connects developer workflows from planning to incident management. Join millions of developers who choose to build on Bitbucket.

    bitbucketの使い方
    akasata
    akasata 2012/04/13
    ふむふむ
  • 首位が交代、CがJavaを抜き1位に - 4月プログラミング言語人気

    2012年4月は、なんといっても首位が入れ替わったことが注目点といえる。長い間首位をキープしていたJavaだったが長期的には下落傾向を続けており、それに対してC言語は安定した人気を維持してきたため今月ついに1位が交代した結果となった。TEOBE Softwareでは、Androidプラットフォームの人気があるためJavaがすぐに下落することはないが、C言語は少なくとも数ヵ月は継続して1位のままではないかと予想している。 今月は特にCの名が付く言語が変動している。C言語もそうだが、これまで成長傾向にあったC#が急激に下がる一方で、下落傾向にあったC++が上昇に転じている。Objective-Cは引き続き強い成長傾向にあり、iOSプラットフォームの人気がうかがえる。このままいけば、Objective-CがC及びJavaに次ぐプログラミング言語となる日も近い可能性がある。

    akasata
    akasata 2012/04/10
    ふむふむ
  • repl.it

    Build software fasterReplit is an AI-powered software development & deployment platform for building, sharing, and shipping software fast. Everything you need to build software in one placeCreate & deploy websites, automations, internal tools, data pipelines and more in any programming language without setup, downloads or extra tools. All in a single cloud workspace with AI built in. “We use Repli

    repl.it
    akasata
    akasata 2012/04/05
    こういうのもあったか
  • 無償のソースコード静的解析ツール、AdLint登場 | マイナビニュース

    オージス総研は2月28日、C言語プログラミング用の静的解析ツール「AdLint 1.0」を無償公開した。AdLint 1.0はオープンソース化されており、ライセンスとしてGNU GPL 3を採用している。ANSI C89、ISO C90、 ISO C99の一部に準拠したソースコードの解析ができるという。 AdLintではシングルモジュール解析、クロスモジュール解析、597種類の警告検知、14種類のコード情報抽出、15種類のコード品質メトリクス測定などを実装しており、コンパイラでは検出できない不具合の可能性を警告したり、「経路複雑度」、「被呼出し数」、「デッドコード数」などを測定してソースコードの品質を指標化したりできるとしている。また、同社が提供しているソースコード品質評価ツール「Adqua」と組み合わせることでソースコードの品質を視覚的なレポートで表示することもできるという。 AdLin

    akasata
    akasata 2012/03/02
    ふむふむ
  • 国内の開発者が使っている言語、1位C、2位VB、3位Java。アジャイル開発は2割が採用、半数以上がウォーターフォール。IDC調べ

    国内の開発者が使っている言語、1位C、2位VB、3位Javaアジャイル開発は2割が採用、半数以上がウォーターフォール。IDC調べ 調査会社のIDC Japanは、「国内ソフトウェア開発者の実態調査」を発表しました。それによると、国内のソフトウェア開発者が最も使用している言語は、1位がC言語で19.8%、2位がVisual Basic で17.5%、3位がJavaで14.2%だそうです。

    国内の開発者が使っている言語、1位C、2位VB、3位Java。アジャイル開発は2割が採用、半数以上がウォーターフォール。IDC調べ
    akasata
    akasata 2012/02/09
    ふむふむ
  • 2012年に開発者が学ぶべき10のスキル

    印刷する メールで送る テキスト HTML 電子書籍 PDF ダウンロード テキスト 電子書籍 PDF クリップした記事をMyページから読むことができます ここ数年、ソフトウェア開発の世界は比較的穏やかだった。しかし、HTML5が地歩を固め、Windows 8がWindowsの開発シーンに大きな変化を迫っている今では、ジェットコースターの日々が戻り、スピードはますます上がってきている。もし最先端に居続けたいのなら、少なくともこの記事で挙げる10のソフトウェア開発スキルを身につけることを検討すべきだ。 1.モバイル開発 モバイル開発を学ぶのに時間を割く価値などないと考えているのなら、考え直した方がいい。2011年のAndroid携帯の世界出荷台数は、ほとんどPCの販売台数と同じだ。他の有名なモバイルデバイス(iPhoneiPad、そして「瀕死状態」のRIMデバイス)を加えれば、販売台数で見

    2012年に開発者が学ぶべき10のスキル
    akasata
    akasata 2012/02/01
    Windows8とは・・・いや、楽しそうだけど
  • The Role Object Pattern

    Copyright 1997, D. Bäumer, D. Riehle, W. Siberski, and M. Wulf. All rights reserved. Permission granted to copy for PLoP '97 Conference. All other rights reserved. The Role Object Pattern Dirk Bäumer, Dirk Riehle, Wolf Siberski, and Martina Wulf INTENT Adapt an object to different client’ s needs through transparently attached role objects, each one representing a role the object has to play in th

    akasata
    akasata 2012/01/31
    Role Objectの論文を読んでなかったので読んでおこう
  • バグ修正のための変更の40%が新たなバグを混入するという研究結果 - Googleのバグ予測方法との共通点:森崎修司の「どうやってはかるの?」:オルタナティブ・ブログ

    Googleで実施されているというバグ予測の方法がブログで公開され(こちら)、ツールも利用できるようです(こちら)。Publickeyの記事での紹介で端的に紹介されていますので、時間がない方にお勧めします。ソースコードの変更(コミット)履歴から高い頻度でバグ修正されているコードは今後もバグが出る可能性が高いというものです。 類似の研究結果がたくさん報告されているので、この分野の研究者の1人として紹介したいと思いエントリを書きました。興味のある方にはエントリ末尾に示すこの分野の論文も読んでいただきたいです。 一例として2000年にICSMで発表された以下の論文を紹介します。 Mockus A, Votta LG. Identifying reasons for software changes using historic databases. International Conferen

    バグ修正のための変更の40%が新たなバグを混入するという研究結果 - Googleのバグ予測方法との共通点:森崎修司の「どうやってはかるの?」:オルタナティブ・ブログ
    akasata
    akasata 2011/12/22
    1行書き換えただけで数百のバグを引き起こしたことがある私が通りますよっと
  • これはひどい誤解だ -- フローチャートは手続き型…だってぇー?! - 檜山正幸のキマイラ飼育記 (はてなBlog)

    昨日の記事「フローチャートを復権させよう -- 2020年代のプログラミングへ」のごとき内容は、僕は何度も繰り返し書いています。昨日の記事のなかに過去記事への相当数のリンクがあることからも、それは分かると思います。もう一度代表的な過去記事を挙げれば: フローチャートからマゾ・テストまで (2009年) というわけで、僕にとっては定期ポストみたいなものです。年に一,二度はこのことを言っておきたい、みたいな。 過去に書いた、フローチャート、トレース付きモノイド圏、goto文、継続などの記事はあんまりウケなかったのに、なぜか昨日の記事はブックマークもアクセスも集めたようです。不思議だ。「正規表現」のときみたいに誰かが言及したのかな? それはそうと、ブックマーク・コメントのひとつに: フローチャートは手続き型しか記述できない。同時性や格納形式の相手が出来ない これって、3,40年前の評価ですよね*

    これはひどい誤解だ -- フローチャートは手続き型…だってぇー?! - 檜山正幸のキマイラ飼育記 (はてなBlog)
    akasata
    akasata 2011/12/20
    ふむふむ
  • フローチャートを復権させよう -- 2020年代のプログラミングへ - 檜山正幸のキマイラ飼育記 (はてなBlog)

    「悟りやヒラメキがほんとに大キライだ 」という記事を書いた背景には、ユースケースの「主/副シナリオ」、「<<extend>>, <<include>>」とかの概念にウンザリしたことがあります。あれから後も、この件がどうも気にかかっていて、『ユースケースの適用:実践ガイド』(asin:4894711869)というを恵比寿の有隣堂で見つけてすぐ購入しました。 このには、僕が疑問に思っていた点が説明してあって、理解に役立ちました。ある程度は理解できた事と、その内容に賛同するかどうかは別問題でして、(理解してもなお)納得のいかない点は多々あります。その話は、まーいずれするかも。 ところで、この『ユースケースの適用:実践ガイド』の第5章「ユースケースを図で表現する」の冒頭に次のような文があります。 これまで、長い時間をかけてユースケースのテキストを書いてきました。しかし、ことわざにもあるとおり、

    フローチャートを復権させよう -- 2020年代のプログラミングへ - 檜山正幸のキマイラ飼育記 (はてなBlog)
    akasata
    akasata 2011/12/19
    ふむふむ。図がきれいに描けるときってこういうことが認識できた時だよなとは思う → "本質的に結んだりもつれたりはしてなくて、糸が互いにすり抜けてほどける事が多いのです"
  • 言語実装パターン

    目次 『言語実装パターン』推薦のことば 謝辞 前書き 第I部 さあ、構文解析に取りかかろう 1章 言語アプリケーションのいろは 1.1 全体のあらまし 1.2 パターンを一巡する 1.2.1 入力文の構文解析をする 1.2.2 木を構築する 1.2.3 木の走査をする 1.2.4 入力が意味する内容を見つけ出す 1.2.5 入力文をインタプリタで実行する 1.2.6 ある言語から別の言語へと変換する 1.3 アプリケーションを解体する 1.3.1 バイトコードインタプリタ 1.3.2 Javaバグ検出器 1.3.3 Javaバグ検出器其の弐 1.3.4 Cコンパイラ 1.3.5 Cコンパイラを活用した C++実装 1.4 パターンを選んでアプリケーションを組み上げる 2章 基的な構文解析パターン 2.1 句の構造を識別する 2.2 再帰的下向き構文解析器を構築する 2.3 文法 DSLを

    言語実装パターン
    akasata
    akasata 2011/12/13
    ほ、欲しいかも
  • エラー処理を書いてはいけない

    エラー処理を書いてはいけない田中英行 tanaka.hideyuki@gmail.com 2011/12/08 @PFIセミナー 自己紹介田中英行 (@tanakh, http://tanakh.jp) PFI社でプログラマやってますJubatuspficommon検索エンジンのコアエンジンHaskell愛好家msgpack / rpc / idlpeggy (パーザジェネレータ & QQ w/ AQ)Shu-thing (シューティングゲーム) / (Monadius メンテナ)今気になるパッケージは monad-controlLearn you a Haskell 鋭意翻訳中 (春頃発売予定) エラー処理を書いてはいけない日の概要エラー処理を抽象化しようというお話です 現在のエラー処理の抱える問題どのように解決するのか実際の例エラーは処理しなければならない エラー処理を書いてはいけな

    akasata
    akasata 2011/12/09
    ふむふむ
  • Unity でシーケンサーを作ってみる

    以前から「Unity音楽アプリは作れるだろうか?」という疑問を持っていた。音を出す仕組みについては用意されているものを使えばいいとして、問題となるのは BPM と同期する仕組みだ。 簡単に検証してみた。結論としては「何とかなりそう」。試しに簡単なドラムマシンを実装してみた。 Unityで作った簡易ドラムマシン - UniTR-606 この実装では精密な同期を行うためにいくつかのテクニックを使っている。そのテクニックを発見するまでの顛末を以下に記す。 ナイーブな実装普通に Update 内で Time を見てタイミングを検出する。コア部分はこんな感じになる。 function Update() { if (Time.time > nextBang) { Bang(); nextBang += 60.0 / kBpm / 4; } } これを使って簡単なリズムを鳴らすプロジェクトを組んでみ

  • 「Undo」をどう設計する?

    ドローツールの Undo をどうやって実装するといいんだろう?っていうギモンにリプ頂いたのでまとめ。もっと話広げられれば良かったかもなぁ。

    「Undo」をどう設計する?
    akasata
    akasata 2011/07/15
    Commandパターンを使うことが多かった気がする
  • どうも周知徹底が不足しているようなので再度のお願いとなりますが、C死ね。

    確かにCでしか書けない類のプログラムは存在する(例を挙げるならKernel)が、それはCの存在を赦す理由にはならない。確かにCに輪をかけてさらにダメな類のプログラミング言語は存在する(例を挙げるならC++)が、それはCの存在を赦す理由にはならない。確かにCでしか書けないダメプログラマは存在する(例を挙げてほしければここにおまえの名前を入れろ)が、それはCの存在を赦す理由にはならない。結論:C死ね。 そもそも計算機にできて算盤にできないことなど存在しない。存在しないんだぞ。なのに何故人はプログラムを書くのか。それはオートメーションのためなのであり、奴隷的使役から人類の尊厳を開放して、この地上に楽園を築くためである。まあそこまで大上段に振りかぶって普段から書いてる輩はいないにせよ、プログラミングとは楽をするため、豊かな人生を実現するため、誰かの幸福のために行うものだ。違うか?じゃあなぜプログラ

    どうも周知徹底が不足しているようなので再度のお願いとなりますが、C死ね。
    akasata
    akasata 2011/05/17
    笑った。rubyはどうなるんだろう
  • Go at Heroku - The Go Programming Language

    Keith Rarick and Blake Mizerany 21 April 2011 This week’s blog post is written by Keith Rarick and Blake Mizerany, systems engineers at Heroku. In their own words, they “eat, drink, and sleep distributed systems.” Here they discuss their experiences using Go. A big problem that comes with building distributed systems is the coordination of physical servers. Each server needs to know various facts

    Go at Heroku - The Go Programming Language
    akasata
    akasata 2011/04/22
    ふむふむ
  • ソースコードに書かれていないバグに関する情報の話

    某氏……に限らず,巷でドキュメンテーションを嫌がっている向きが典型的に口にすることに,次のような話があります。 以前もこの話を書いたかもしれないけれど,この命題は非常にトリッキーで詭弁的だと思っています。確かにソースコードにはバグも含めてすべてが書かれている。これは間違いありません。 しかし,ソースコードにバグが書かれていることが分かっていたとして,これは開発で必要な情報となりうるのでしょうか。あたしには,意味のない情報としか思えません。というのも,開発に必要なバグに関する情報は,「バグが書かれているか」ではなく「何がバグでソースコード上どう実装されているか」に尽きるからです。 そもそも,プログラムはプログラムした通りにしか動かないのだから,プログラム(ソースコード)の内部に「バグ」という概念はありません。通常,バグは開発者/設計者/ユーザが意図した通りにプログラムが動かないこと言います。

    akasata
    akasata 2011/04/16
    こういう視点は大切・・・なんだけど、解決方法はケースバイケース。仕様を書かないのも文芸的プログラミングをするのも重厚な開発をするのも、それぞれだと思う
  • 変態プログラミング言語多数とHello Wroldのサンプル | TRIVIAL TECHNOLOGIES 4 @ats のイクメン日記

    みんなのIoT/みんなのPythonの著者。二子玉近く160平米の庭付き一戸建てに嫁/息子/娘/わんこと暮らしてます。月間1000万PV/150万UUのWebサービス運営中。 免責事項 プライバシーポリシー 仕様が不条理なプログラミング言語を紹介している記事(Top 13 Most Absurd Programming Languages)を見つけたので翻訳してみた。それぞれにHello Worldのサンプルがついています。半分くらいは知ってたけど,いろいろあるもんなんですね。 1. Brainfuck 変態言語ファンにはおなじみの言語Brainfuck。プログラムは8種類の文字から構成されていて,ミニマリズム全開でわけがわからないコードが魅力の言語です。 ++++++++++[>+++++++>++++++++++>+++>+<<<<-]>++.>+.+++++++ ..+++.>++.

    akasata
    akasata 2011/04/12
    ふむふむ
  • プロでなくても料理を作れるように、誰でもソフトウェアを作れる - いぬビーム

    コックさんじゃなくても家で普通に料理はするように、プロのプログラマでなくてもソフトウェアを作ることはできる。レシピ(チュートリアル)通りに作れば、一応べられるもの(動くもの)が出来上がる。最初は包丁の握り方もわからないし、傍から見ていれば危なっかしいだろうけど。 料理と違ってソフトウェアはコピーできちゃうけど、自作した不格好なコードは愛らしいものだし、そこから少しずついじっていけば、他人の口には合わなくても自分には一番おいしいものが作れるかもしれない。 っていう家庭料理的なスタンスの入門書があってもいいなぁ。仕事にしたい人向けではなく、人真似で自炊するための。Greasemonkey的なのとかTwitterのbotとか、ExcelVBAでほげったり、あとデスクトップガジェットとか。ゲームも入れたいな。あえて言語はバラバラで、既存のスクリプトをいじるのを前提に。 さておき MacBook

    プロでなくても料理を作れるように、誰でもソフトウェアを作れる - いぬビーム
    akasata
    akasata 2011/04/01
    ゲームに限ればがまぐ!っぽい話かな #gamag