オブジェクト指向では、モデリング(分析)、設計、実装は、切れ目のない一体の活動。初期の分析は初期の設計であり、初期の実装。毎日分析し、毎日設計し、毎日実装しながら、一歩一歩、モデルも実装も進化させていく。

モバイルファースト室の三浦です。 みなさんはplayground使っていますか? Swiftにはplaygroundが用意されていて手軽にかつライブレンダリングでコーディングをすることができます。 CoreGraphicsの描画などを確認しながらコードを書くこともできてとても便利です。 早速Swiftで簡単なスケッチをしてみましょう! Xcodeでplaygoundファイルを新規作成します。次にUIKitをimportします。 import UIKit 次に表示のためのUIViewを生成します。 // ビューのサイズ let size = CGSize(width: 200, height: 200) // UIViewを生成 let view:UIView = UIView(frame: CGRect(origin: CGPointZero, size: size)) view.back
ユーザーインタフェースをもつアプリケーションソフトウェアの多くは、「MVC」モデルに基づいて設計されています。 MVCでは、プログラムを、Model(モデル)、View(ビュー)、Controller(コントローラ)という3つの要素に分割し、お互いに呼び出し合って処理が実行されていきます。 この概念を漫画で表現したら分かりやすのではないかと思い、トライしてみます。 設定 MVCモデルで設計された「なにかの申し込みシステム」があるとします。 処理の内容は、なにかの申し込みをしたユーザ情報をデータベースに格納する、だけです。 なにかの申し込みシステムの構成員 第1話 – なにかの申し込みシステムの日常 なにかの申し込みシステムの処理の流れを覗いてみましょう。 おや?ユーザが申し込みにやってきましたよ… このように、モデル、ビュー、コントローラは、お互いに協力し合いながら処理を行っています。 誰
先日書いたように、業務でC++/CLIを使いそうなので、その準備も兼ねてお勉強中です。とりあえず、超簡単なサンプルで呼び出しまではできるようにしたので、そこらへんをメモがわりに書いておこうかと思います。 超簡単サンプル概要 プロジェクトは超シンプルです。受け取った文字列に”Echo”と書き加えて返してくれる、というだけのクラスをネイティブ側で実装し、それをC++/CLIでラッピング。さらにそれをWinFormから読んでみます。 はまったところ ポインタでしかC++のクラスは持てない そうなんですよね。C++のプロジェクトで作っているクラスのメンバをC++CLIでは持つことはできません。ポインタなら持てます。まあ内部的にはIntPtrで持てるからってことなのでしょう。 文字列変換周り とりあえず今回はstd::stringとの相互変換のみ。これはもう全面的にこちらを参考にしてます。 C++/
OpenCVでカメラからのキャプチャを行うような事をC++/CLIでやろうとしています。で、まあリソース管理の為のコードを書くのは避けて通れない訳で、Disposeパターンに従って作ろうとしたら、public: virtual void Dispose(bool);が通らない......予約されていると? と思って見てみたら、こんなページがMSDN Libraryにありました。 Destructors and Finalizers in Visual C++ URIが日本語用(ja-jp)なのに翻訳されていないというのはとりあえず置いておいて、C#に慣れた頭で読んでみると驚きの連続でした。ついでに眠いせいか難しい。一通り読んだだけでは収拾がつかないので、デストラクタ(Wikipedia)なども見つつ重要そうな所を僕なりにちょっとまとめてみます。 C++/CLIにおけるデストラクタとファイナ
参加者が複数チームに分かれるなどして、ソフトウエアやWebサービスを集中的に開発するイベント「ハッカソン」が盛んだ。 このほど、取材を兼ねてハッカソンに参加する貴重な機会に恵まれた(写真1)。米航空宇宙局(NASA)の主催で世界規模で開かれている「International Space App Challenge(ISAC)」の東京大会である(大会公式サイト)。 本記事を執筆した記者には実践的なプログラミング・スキルがほぼない。無謀な参加かとも感じたが、以前から個人的な興味を抱いていたこともあり、思い切って参加した。活用できるデータ探しと整理・加工を担う「データマン」に徹し、限定的ながらチームで一定の役割はこなせた、と自負している。設定したテーマやアイデア、そして何よりチーム編成にも恵まれたのか、記者の参加チームが披露したアプリケーションは審査で第1位に選ばれ、世界大会に進出する栄誉に浴し
Visual Studio 2010まではメソッドを選択して「単体テストの作成」というコンテキストメニューが表示されたのですが、Visual Studio 2012からはなくなっています。 方法: 単体テストを作成して実行する 単体テストはちゃんとプロジェクト作ってからやろう!という方針なのかどうかは知りませんが、とにかくVisual Studio 2012ではなくなりました。しかし、「ないのは困る」というフィードバックが多かったようで、Unit Test Generatorという拡張機能が用意されました。 Unit Test Generator extension メソッドを選択して、右クリックすればこのようにGenerate Unit Testというメニューが表示されます。 しかし、privateメソッドを選択した時は表示されません。 これはおそらくVisual Studio 2010
ワードプレスでMarkdownを使いたい。 最近、技術ネタのメモ用にGithub Pagesを利用しているのだけど、Github pagesでマークダウンに慣れるとWordpressが辛い。かといってここ1,2年くらいWordpressからGithub pagesに移行したという話もよく耳にするけど、WordpressはWordpressなりに便利なので完全移行も辛い。今更ながら、Markdownプラグインを入れてみる。あとMarkdownと併用できるSyntax Highlightについてもメモ。 結論から書くとマークダウンには「markdown-on-save-improved-2」、ソースコードのシンタックスハイライトには「Crayon Syntax Highlighter」を入れておけば良さげか。 markdown-on-save-improved-2 (https://githu
当然だがほとんどの後輩がshared_ptrを知らないみたいなので,いつかC++講座で使うための説明用資料としてここに書いておく. 概要 shared_ptrを使うとnewして作成したオブジェクトを明示的にdeleteしなくてもよくなる. 原理的に,どこからも参照されなくなったオブジェクトにアクセスする方法は存在しないので,そのオブジェクトはもう破壊してしまっても問題がない. shared_ptrは,オブジェクトが参照されている数をカウントしておいて(参照カウントと言う),参照カウントがゼロになるときに参照先のオブジェクトを1回だけdeleteしてくれる. shared_ptrはauto_ptrと同じスマートポインタの一種であり,次期C++の標準ライブラリに導入される.それと同時にauto_ptrは非推奨となる. サンプル 環境はSP1を適用済みのVS2008. VS2008SP1を入れて
みなさん新しいプログラミング言語を習得しようとした際に、どんな形で勉強を始めますか?私はとりあえずチュートリアルをやってみて外観をつかんでからリファレンスなどを漁っていくタイプのようです。ということで、iOSアプリ開発を勉強するためにウェブから無料でできるiOS7のチュートリアルをいくつかピックアップしてきました。これで最新のiOSの開発事情を知りつつアプリ作れるようになりましょう! iPhoneアプリ開発入門 (全14回) Dotinstall:iPhoneアプリ開発入門 (全14回) まずはDotinstallのチュートリアル。とりあえず触って動かしてみていろいろなUIパーツを使って見るまで。日本語+動画で理解するアプリ開発入門。 iOS 7 Best Practices; A Weather App Case Study iOS 7 Best Practices; A Weather
TopCoderというプログラミングコンテストで 他人のコードから発見した、美しいマクロや 型宣言を紹介します。 これを導入することで、C++のコードが短くなり、 早くコーディングすることができます。 ※すべてのTopCoder参加者がマクロなどをテンプレートと して用意しているわけではありません。 マクロなどを定義している人は半分より少ないようです。 TopCoderの他人のコードを参考に、 マクロやtypedefによる型宣言をまとめました。 コードの全体はこのようになっています。 (あとで個別にコメントします) //include //------------------------------------------ #include <vector> #include <list> #include <map> #include <set> #include <deque> #in
プログラマはかくあるべき、という意見は様々ありますが、そのうちの多くは「プログラミングという作業をいかに効率的に遂行するか」という指標に沿っている気がします。例えば「知識の幅が広い」とか「設計を考えるのが速い」とか「自動化を徹底する意思が強い」とか「問題発見能力が長けている」とか「高いコミュニケーション能力でチームの意思決定を促進できる」とか、そういった類のものです。一般にプログラマの仕事はプログラムを作ることですので、それを速く安全に進めるプログラマほど優秀である、ということに異論は無いかと思います。世の中には Excel 漬けのプログラマだっているそうですが、基本的にプログラマと名がついている職はプログラムを作るという作業がそこにあるからこそ発生しているとみなすのが妥当でしょう。 そうした "プログラマはかくあるべき" という外面的な観点から、"俺らプログラマはこういうことがしたい"
データをコピーする先の記憶領域として十分なサイズが確保されていないと、バッファオーバーフローに繋がります。例えば、コピー先の領域として確保するサイズが不十分だったり、コピー先の領域は意図どおり確保していても、コピーするデータのサイズを誤って指定してしまう場合などです。 典型的な誤りとしては、文字列コピーにおけるNULL終端バイト分のサイズの配慮し忘れがあります(関連ルール「STR31-C. 文字データとNULL終端文字を格納するために十分なサイズの領域を確保する」を参照)。 また、コピーサイズを計算する際に整数オーバーフローが発生したり、正の値を処理することを想定しているロジックに負の値を持った符号付き整数を渡すことで、暗黙の変換により大きな正の値として扱われて問題を起こすケースもあります(関連ルール「STR31-C. 文字データとNULL終端文字を格納するために十分なサイズの領域を確保す
gistfile1.md Windows/Linuxで両方で動作する成果物を想定。 有償のツールは理解が得られる方が稀なので除外。 仕様書 外部仕様 Word/Excelが手軽だけど差分が追いにくい。 Markdown+PandocかSphinxでPDF提出がいいかな? Pandoc - About pandoc Sphinx-Users.jp :: ドキュメンテーションツール スフィンクス Sphinx-users.jp 内部仕様 きちんと書いてあればDoxygenで十分だと思う。 Cしか対応していないみたいだけどdocuriumの方がgitとの親和性が高くて(tag付された結果をまとめて解析してくれるみたい)出力結果も今風にできてる。 Doxygen github/docurium インセプションデッキ 作っておくと上司/部下/協力メンバで方針を合わせやすい。 ネスケラボ » インセプ
EmacsAdventCalendarJP:2011の30日目です。 29日目はid:poginさんのsmartchrの設定例でした。 なんか初参加でトリになってしまったぽいです。このエントリで、何か引っかかるものがあれば嬉しいです。 タイトルはアオリ気味のタイトルです。 ・rc-vstudio.elの紹介 本日は、EmacsからVisualStudioを操作するrc-vstudio.elを開発致しましたので、プロトタイプ版をご紹介致します。 今回のelispは、id:ohtoriiさんの秀丸エディタからVisualStudioを制御するマクロを使用させていただいております。 Emacsとの連携の使用許可をいただき、ありがとう御座いました。 ・こんな人にオススメ Windowsで、VisualStudioからEmacsへの移行を試してみたい人に。 コードはEmacsで打ちたい、ビルド設定は
C++ フリーでぷろぐらみんぐ 逆引きリファレンス。 C++のやりたい事から引ける逆引きメモを書いています。 何かコメントなどいただけると嬉しいです! クラスのコンストラクタのコードを書くときに、コロン「:」が良く使われます。 これって何でしょう? 最初の頃、これが良く分からなくて調べてみると、 メンバー変数や親クラスを初期化するものだと分かりました。 <コンストラクタ1> XXClass() : m_str("###") {}; こんな具合に記述されると、m_strがstringならば以下のコードが呼ばれたのと同じことです。 string m_str("####"); それだと、コンストラクタで次のように書くのと同じだと思いません? <コンストラクタ2> XXClass() { m_str = "###"; }; 私もかつてそう思ってました。 コロンは見づらいので、{}の中で記述するほう
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く