タグ

programmingに関するkojosanのブックマーク (75)

  • Java特有の冗長なコードを簡潔に記述する「Lombok」

    Javaは言語仕様上の制約により、ボイラープレートコード(自明だが省略できないお決まりのコード断片)がいくつかあります。例えば、メンバ変数を読み書きするだけのgetterメソッドやsetterメソッドがこれにあたります。Lombokを使えば、これらJava特有の冗長なコードを、見やすく簡潔なものにすることができます。記事ではLombokを利用して、ボイラープレートコードをシンプルに記述する方法について解説します。 はじめに 今やJava開発に必要不可欠となったものの一つに、IDEの存在があります。例えばEclipseではメンバ変数さえ定義すれば、getter/setterの自動生成や、equalsメソッドやhashCodeメソッド、toStringメソッドなどの自動生成などさまざまな場面でコーディングを強力にサポートしてくれます。 これは大変便利な機能ですが、裏を返せばJavaの言語仕様

    Java特有の冗長なコードを簡潔に記述する「Lombok」
  • 研究者流 コーディングの極意 言語処理学会第19回年次大会(NLP2013) チュートリアル資料(岡崎担当分)

    言語処理学会第19回年次大会 (NLP2013) チュートリアル資料(岡崎担当分) 岡崎 直観 東北大学大学院情報科学研究科 okazaki at ecei.tohoku.ac.jp http://www.chokkan.org/ @chokkanorg 研究者流 コーディングの極意 1 研究におけるコーディングの極意? • 今回のチュートリアルをきっかけにサーベイ – ソフトウェアエンジニア向けの指南書は存在 – でも,研究者向けの資料は数少ない • 自分が修士課程の頃は完全に我流だった – 複数文書自動要約のプログラムをすべてC++で実装 – *NIXを使うスキルはなく,すべてWindows上で実行 – 今から考えると,無駄だらけの実験作法だった • ほとんどの大学では実験の講義があるが… – 研究のためのコーディング作法は教えてくれない 2 繰り返される残念な光景 • 論文の締切前日

  • MVCモデル

    MVCモデルという用語は、今時のIT関係のエンジニア(=エンジニアと言ってもピンキリですが...)の方なら誰でも名前くらいは聞いたことがあると思いますが、大抵の人は「アレだろ?入出力と他のロジック切り離して...云々」みたいな認識でしょう。勿論間違いではありません。でも、具体的にどう実践しているかというレベルの話になると、仕事で使っている開発環境が対応してるからとかStrutsでWebアプリを開発して...といった感じではないかと思います。 ここではMVCモデルを使ってデスクトップアプリケーションの仕様を決定して実装する方法を解説します。

  • 本当に怖いC++erとC++という糞言語 - 神様なんて信じない僕らのために

    かつて、ゲームプログラミングはアセンブリが主流で、8bitCPUは掛け算や割り算すらないものでした。割り算がないCPUっていつの時代だよ、っていう人たちもおりますが、ゲームボーイアドバンスに搭載されているARM7TDMIは除算の命令を持っていません。(故に除算を書くと死ぬほど遅いので、乗算で代用したりする) また、浮動小数に対する演算ユニットを持っていないハードウェアもあります。ニンテンドーDSに搭載されているARM946E-Sですら、浮動小数演算ユニットはありません。(CPUの機能としてはオプションで存在する)そのために固定小数点といった技術もあるわけですが、古くさい話です。 これらはCとC++の機能を駆使していかにパフォーマンスを出すかを余儀なくされた時代です。 さておき、最近はスマートフォンでのゲーム開発も進化しており、C++iPhoneAndroidの両方で動くということもあ

    本当に怖いC++erとC++という糞言語 - 神様なんて信じない僕らのために
  • 私が考える安全なプログラムを書くために必要なこと

    You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session. Dismiss alert

    私が考える安全なプログラムを書くために必要なこと
  • 米大統領「全ての人よ、プログラミングを!」 | Life is Tech!(ライフイズテック)

    「全ての人よ、プログラミングを!」 アメリカのオバマ大統領が、全てのアメリカ人に対して、 プログラミングの大切さを伝えたメッセージが公開されました。 まずは動画と、和訳、原文です。 <和訳> みなさんこんにちは! 私は今週、「アメリカの学校でコンピューターサイエンスをサポートし、 新たな、そして大きなステップを踏み出す会合」に参加しました。 (学生、先生、ビジネスマン、そしてNPO達が参加してました。) こういったスキルを学ぶのは単に将来に役立つからというだけではありません。 我が国の将来に必要なのです。 我が国が最先端をゆく国であり続けたいのであれば、 私達の生活を変えてくれるような、ツールや技術を習得した、 あなたたちのような若い人が必要なのです。 だから、私はあなたたちにやってほしい! 新しいゲームを買うだけではなく、つくってみよう! 最新のアプリをダウンロ

    kojosan
    kojosan 2013/12/10
    大統領がこんなメッセージ出すんだ。すごい。
  • そして老害になる - 方向

    闇 Advent Calendar 2013の7日目として老害化の話をします。 ベンチャーじゃなく大企業につとめてよかったことは、さまざまな技術バックグラウンドを持つ人と仕事ができていることだ。 色々な流儀や文化の人たちと接し、ぶつかることで自分の視野がどんどん広がっていくのを感じている。 昔話をすると、学生時代、自分は主にRubyを書いていてJavaPHPをダサいものだと考え、時にはそれを口にすることもあった。 しかしdisるための根拠などをしっかりと持っていたわけではなく、なんとなくで 最新技術=かっこいい、べんり 古い技術=ださい、めんどくさい と考えていた 社会人になってからダサいと思っていたまともなPHPの書き方を知りそれはそれで悪くない、むしろRubyよりすぐれだところもたくさんある素晴らしい道具と知った。 逆にcoolだと思っていたnode.jsやCoffeeScriptに

    そして老害になる - 方向
    kojosan
    kojosan 2013/12/08
    "Rubyやnode.jsかじったやつが使ったこともないのにPHPやJavaを叩いてるのを見るとぶん殴りたくなる。"
  • Java、C++、Python…プログラミング言語擬人化計画!|【Tech総研】

    kojosan
    kojosan 2013/12/07
    Python推しかな
  • Pseudocode Standard

    Pseudocode is a kind of structured english for describing algorithms. It allows the designer to focus on the logic of the algorithm without being distracted by details of language syntax.  At the same time, the pseudocode needs to be complete.  It describe the entire logic of the algorithm so that implementation becomes a rote mechanical task of translating line by line into source code. In genera

  • もっともっと良いコーディングをするための勘所8つ - 病みつきエンジニアブログ

    先日とあるコードレビューを拝見することがあったのですが、それにインスパイアされて記事を書いてみます。レビュワーの方が言ったことも含んでいますが、それと必ずしも一致するものでもありません。 Objective-Cのコードで書いていることが多いですが、わりと一般論だと思います。 photo by Hugo-photography 命名規則は言語の「普通」に任せる 例えば、Objective-Cだと変数にはcamelCaseを使うことが多いです。逆にRubyではsnake_caseを使ったりします。もしくは、略語を使うとか使わないとか、そういう違いもあります。 変数名に対してどういう書き方をするかというのは、個人の好みではなく、言語の慣習に任せるのがいいのではないかと思います。 言語の慣習の調べ方は、Githubで「stars:>100」と検索して、言語を絞るといいでしょう。(参考:Rubyの例

    もっともっと良いコーディングをするための勘所8つ - 病みつきエンジニアブログ
    kojosan
    kojosan 2013/12/01
    こうした方がいいと分かってるつもりでも実践できてないときあるなー。
  • 一度使ったら手放せない!? iOS開発で絶対に使うべきライブラリ! - 方向

    特にないです。

    一度使ったら手放せない!? iOS開発で絶対に使うべきライブラリ! - 方向
  • 無能なプログラマの特徴

    技術書を買っただけで満足するwブクマするだけで理解した気、分かった気になっているw勉強会(笑)には参加するが復習も実践もしないw一つの言語を使い込めてないのに複数言語に手を出すw流行りの技術に飛びつくけど直に飽きるw専門と断言できる技術領域がないwVisualStudioを貶す割には、パフォーマンス分析とかテストなどの便利機能は使えないwWPFが分からないだけなのに、自前で作る方が偉いと思っているwオーバーヘッドやフットプリントなどデメリットを考えず、すぐにtemplateとか純粋仮想関数を使って可読性を落とすwオブジェクト指向/デザインパタンを何か特別の技術だと思っているw無駄なところにラムダ式を使うwメモリ使用量や計算量の予測ができないw最大負荷を予測した上で始めから対策を取った実装が出来ないwHHKでないと仕事できないwとりあえずVim(笑)を使うw用途もないのにマックブックプロを買

    無能なプログラマの特徴
    kojosan
    kojosan 2013/11/10
    良エントリ
  • バイナリかるた

    kojosan
    kojosan 2013/10/27
    確かに覚えれば役に立ちそう笑
  • ソフトウェアエンジニアの成長カーブ(再掲載):柴田 芳樹 (Yoshiki Shibata):So-netブログ

    「ソフトウェアエンジニアの成長カーブ」 最近良く話していることなのですが、社会人として働き始めた新卒の技術者は、最初の数年は成長していきます。与えられた業務を遂行しながら、そのための学習もしていくからです。しかし、2、3年すると開発業務をこなせるようになり、特に新たな勉強をしなくても、日々、会社に行って開発業務が遂行できるようになります。 この状態、つまり、継続した学習をしなくなった状態で、10年とか経過すると、ソフトウェアの世界は大きく変化している可能性があり、新たな技術が登場し、その人の技量は相対的に今度は低下しはじめます。しかし、この時点で、新たなことを学習するのは困難だったりします。学習する習慣が無いわけですから、勉強しろと言っても、「なぜ、休みの日に勉強しなければならないのですか」ということになります。 そのような人に対して、マネジメントは、その人ができる仕事を与えて、何とか仕事

    ソフトウェアエンジニアの成長カーブ(再掲載):柴田 芳樹 (Yoshiki Shibata):So-netブログ
    kojosan
    kojosan 2013/10/11
    ある程度まとまった時間が取れるうちに5くらいまで身につけておいた方がいいんだろうね
  • 構造化『並列』プログラミング - どらの日記

    構造化プログラミング。 といえば、順次、分岐、ループのパターンからなる、シリアルプログラミングにおける基スタイルですね。(これらだけしか使わなくてもシリアルプログラムは書けますっていうね) C++にはあらかじめこれらのパターンを簡単に使えるようにシンタックスが用意されています。 分岐はifやswitch、ループはwhile、for、doといったかんじで。 もちろんこれらのパターンは並列プログラミングでも使えます。 しかし並列プログラミングにおいては、これらのパターンだけで実装を行うことはほぼ不可能です。 そこで、並列プログラミングにおけるパターンとなる構造が考えられてきました。 これらを使うことで、よりパワフルかつ簡潔に並列プログラムのコードを書けるようになります。 1.マップ もっとも基的な並列パターンです。 まず、コードを見てください。 template <class T> voi

    構造化『並列』プログラミング - どらの日記
  • プログラミングのルール

    自分のルールを twitter に書いてみました。1時間半ぐらいやってたらしい。 * * * 変数名やクラス名に省略した単語でなく正しいスペルのものを使う。 他人のインデントはいじらないが、間違ってるのはなおす。同じインデントシステムを使う。勝手に発明しない。ちなみに、K&R 大域変数は使わない。Singleton も使わない。インスタンス変数経由でパラメータを渡さない。必要な場合のみに使う。 コメントは関数/メソッドの役割に対しておこなう。bug fix comment には例を含める。 測定を伴わない最適化は無意味で間違っている。 xUnit を使う。 修正前のコードを残すようなことはせず、版管理にまかせる。 fprint() ; exit() ; のようなエラー処理をせず、エラー処理ルーチンを呼ぶ。 malloc を裸で使わない。 use case 図から書き始める。 if else

  • 2012年に開発者が学ぶべき10のスキル

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

    2012年に開発者が学ぶべき10のスキル
  • Things You Should Never Do, Part I

    I’m Joel Spolsky, a software developer in New York City. More about me. Read the archives in dead-tree format! Many of these articles have been collected into four books, available at your favorite bookstore. It’s an excellent way to read the site in the bath, or throw it at your boss. Ready to level up? Stack Overflow Jobs is the job site that puts the needs of developers first. Whether you want

    Things You Should Never Do, Part I
    kojosan
    kojosan 2012/03/12
    "They did it by making the single worst strategic mistake that any software company can make: They decided to rewrite the code from scratch."
  • はてなは「絶対すべきでないこと」をやらかしたのか?

    おっと、タイトルだけ見て、先週から話題になっているはてなブックマークボタンのトラッキング問題の話かと思われたかもしれないが、文でははてなブックマークの問題はほとんど扱わない。また、この問題について未だご存じない方は、ARTIFACT@ハテナ系のエントリの後半にあるこれまでの流れを辿ると分かりやすいだろう(ワタシ自身の認知にも近い)。 はてなが新サービスとしてはてなブログをリリースして4ヶ月以上経つ。当初は招待制だったが、昨年末にオープンベータに移行して現在にいたっている。 ワタシもリリース時に招待されたので少し触ってみたが、機能が何から何まで足らないことにびっくりしたものである。そして、はてなは「アレ」をやらかしたのではないかという疑念が頭をよぎったが、まさかと思う気持ちと、短時間触っただけの印象で間違った批判をしてはいけないという自制、何よりそのあたりはじきに解決するのだろうという楽観

  • 旅と執筆とプログラミング

    Alex MacCaw / 青木靖 訳 2011年11月22日 この1年をまとめると、こんな感じだった。 10ヶ月間世界を旅し、アフリカ、東南アジア、オーストラリア、北米、中米、南米の17カ国を巡る。旅の中心はサーフィンと写真撮影 香港、日アメリカ、ロンドンでのプレゼン 旅の途上でオライリーのJavaScript Webアプリケーションというを執筆 もう一冊、オライリーから間もなく出るCoffeeScriptのの執筆 Spine、Spine.Mobile、GFX、Juggernautといったオープンソースのライブラリ開発を山ほど スタートアップのプロトタイプ作成 FOWAでのプレゼン 最後にTwitterでの仕事に落ち着く 1年前の2010年9月から話を始めよう。自分が共同創業者だったスタートアップをやめた。有用な経験だったけど、すごく長時間働いて燃え尽きたように感じていた。僕はま