Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article?

チーム内で良くある間違いなどをチェックリストにし、それをコードレビュー時に使う事で、コード自体のレベルを上げつつコードレビューの品質のばらつきをなくす取り組みについて。Trelloなどを開発するFog Creek社のブログの翻訳。 効果的なコードレビューについて書いた我々のブログ記事の中で、チェックリストを使う事を推奨した。チェックリストを使う事で、レビューが継続的にチーム全体でうまくはたらくようにできる。また、ありがちな問題を見つけたり解決したりするのを確実にする、簡単な方法でもある。 ソフトウェア工学研究所の研究によると、プログラマは15から20の良くある間違いをしてしまいがちだという。そういった間違いをチェックリストに追加しておく事で、問題が起こった時にそれを特定し、確実に駆逐するようにできる。 チェックリスト作りに取り掛かるに当たって、一般的な項目は以下のリストのようになるだろう。
AutoLayoutを使ってセル上を左にスワイプすると、セルの右側がオープンするUITableViewCellを実装してみます。セルの削除のときによく出てくるあれを自分で実装する感じです。 AutoLayoutやstoryboardにある程度知識がある方を前提としていますので、適宜不足している情報は補って実装してみてください>< 準備編 まずは、通常通りにstoryboardでUITableViewを実装します。 次に、スワイプした時にわかるようにセルの背景色を変えておきます。 これで準備完了です。スワイプできるセルを実装していきます。 TableViewを貼り付けているViewControllerは以下のようになっています。普通です。 import UIKit class ViewController: UIViewController, UITableViewDataSource {
タイトルに書かれていることで全てなのですが、DDDとCQRSの併用について強調している日本語の情報が少ないので、軽くまとめておきます。 CQRS+DDD CQRS(コマンドクエリ責務分離)とは、サーバの機能を「コマンド」(副作用あり)と「クエリ」(副作用なし)で完全に分けちゃおう、という考え方です。そもそも「コマンド」と「クエリ」ではあらゆる要件が異なります。 一貫性: 「コマンド」は整合性のある処理が必要、「クエリ」はあまり気にする必要なし ストレージ: 「コマンド」側は正規化してデータを保存したい、「クエリ」側は非正規な方が効率的 スケーラビリティ: 「コマンド」は全体の負荷の中で占める割合が少ない、「クエリ」は負荷が大きい なので分けちゃうわけですが、 コマンド側 複雑なビジネスロジックが絡むので、ドメイン駆動が活躍 クエリ側 複雑なビジネスロジックがないので、ドメイン層はスキップ
覚え書きのようなものです。 他のプロジェクトで使ったクラスファイルなどが、 以下のようなエラーでビルドできなくなったとき。 ld: symbol(s) not found for architecture -i386ld: symbol(s) not found for architecture armv7原因としては、とりあえず以下の2つが考えられるようです。 必要なframeworkが追加されていないライブラリなどの場合、コレが多いです。 SystemConfiguration.framework とか 必要だったら追加すると直る可能性は無きにしもあらず。 ファイルをコピーする際にtagetsにチェックを入れていない私の場合、原因はコレでした。 クラスファイルをコピーする際に、 「Add to targets」にチェックを入れたところ正常にビルドが通るように。
Throwable、Exception、RuntimeException(RTE)、Errorあたりを整理しながら、色々考えてみた。私見に基づくので、間違っているかもしれないけれど、自分としては頭が整理できたかな、と感じたので晒してみる。異論があったらコメントください。 まず、一番基礎的なところで、継承関係の整理から。こんなツリーになっています。 Throwable Error Exception RuntimeException そして、本稿での用語の定義。caller=呼出す側のコード callee=呼出される側(throwする側)のコードとします。 Throwable Throwableは「throw文に指定できる何か」という意味ですね。 Instances of two subclasses, Error and Exception, are conventionally used
This document contains code snippets from a Cocos2D game. It defines local data for UI elements like background images. It also contains code for a scene and layer that can handle touch events. Finally, it defines a Cocos2D node class that initializes a platform and player and contains references to them.
2015-01-05 Pythonで基本のアルゴリズムを書いてみた Programming アルゴリズムを学ぶ意義みたいなものはいろいろなところで語り尽くされていると思うので私からは特にコメントしませんが、今回の勉強に利用した書籍でも引用されていた言葉が印象的なので、記しておきます。 最先端の機械を使って製品をつくるのは簡単で、しかも楽なことだが、基本技術を固める前に楽なほうに流れていってしまった。俺のような基本的なことがきちんとできるローテクが、今、我が世の春を謳歌しているんだ。 岡野雅行さんという職人さんの言葉のようです。そういえば随分前にこんな記事が盛り上がりました。 今すぐ辞めて欲しい、「Ruby on Rails勉強してます」「CakePHP勉強してます」 最新技術だけではなくて、その基礎となる技術をしっかり理解しなければダメだよということでしょう。ということで基本のアルゴリ
Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article? この記事は、開発を持続可能にできるようなアーキテクチャとその適用方法を考察するものです。 骨子はできていますが、実装経験をフィードバックして詳細を若干変更するかもしれません。 勉強不足な点もあるので、意見を歓迎します。 開発においてよくある問題点 ビジネスロジックの本質が何だったか見失う。ソースコードのどこまでが業務上の関心で、どこからがそれを実現するための技術上の関心か分からなくなる。 入出力双方向の処理が散在して処理が追い切れなくなる。特にイベント処理でどこに飛ぶかわからないコールバック地獄になる。 初期化・つなぎ込み・統合者的オブ
まず簡単なところから。 #include <linux/init.h> #include <linux/module.h> MODULE_LICENSE("GPL"); static int __init hello_init(void) { printk(KERN_ALERT "hello, world\n"); return 0; } static void __exit hello_exit(void) { printk(KERN_ALERT "bye\n"); } module_init(hello_init); module_exit(hello_exit); Makefileはこんな感じ。ROOTDIR にはカーネルのソースがあるディレクトリを設定する。 obj-m := hello.o ROOTDIR := /home/yomi/kernel/linux-3.11 defau
Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article? 結論 小手先で楽をするためのボトムアップな設計は後々苦労する 継承を使った差分プログラミングは長年運用していくと大変だ 人は楽な方に流れるので、Baseクラスで解決すべきでない問題をBaseクラスで解決して後で困る はじめに この文章は2015年1月のpotatotips13で発表するネタ用のメモに書いてました。 実際に発表した内容を含む様子は下記のページにまとめています。 http://curiosity.co.jp/potatotips13/ 会場で質問されたりツイートの様子を見てて気づいたのですが、BaseViewControll
仕事でインターン生や経験の浅い方のレビューをしたり面接を担当したりしててよく聞かれる質問が「どんなことを勉強すればいいですか?」です。 それについてちょっとポエムを書いてみようかと思います。 主に会社で一緒に働いている人やこれから一緒に働くことになりそうな方向けに書いていますので、一般論として捉えるとやや極端だったり偏っていたりするかもしれません。ポエムなので許して。 専門家であるという視点から エンジニアとして仕事をする以上、専門家 (プロ) であるという誇りと責任を常に持って欲しいと思います。 そのためにはその自信を裏付けるための知識が必要となります。 僕のいる Web やスマホアプリの業界は流行の移り変わりが激しく、新しい情報を常に追いかけ続けないとあっという間に置いていかれてしまいます。 しかしながら新しい知識を追いかけ続けるにも確固とした基本がないと、曖昧な知識の上にさらに曖昧な
以下の文章は、Michael Feathers による On Loving C.. の日本語訳である。 文中の固有名詞などについて理解の助けとなるよう Wikipedia へのリンクを加えさせてもらった。 認めなければならないことがある。私は C を愛している。しばらくはそれを意識していても、忘れがちだ。Ruby、Haskell、OCaml、C++、Java、そして C# に心移りしたこともある――今も多くの言語に時間を割いているが、C の元に戻ってくると、私は故郷に帰ったような気持ちになる。 私は何十年も前に Kernighan と Ritchie の本をパラパラとめくったときのことを覚えている。C にはとても欲求不満を感じた記憶もあるが、とても満足を与えてくれたことも覚えている。C にはヘンなところがあるが、振り返ってみると、それは多くの他の言語のヘンさに比べれば不可解なところはずっと
なんか荒れてますが、私も一言いいたいです!! オブジェクト指向がそうであるように、関数型も銀の弾丸ではありません!!! 参照透過性はすばらしい この記事をぼやーんと眺めてました。 高精度煽り除去フィルタを通して読むと、関数型のアプローチがよい、と言う話ですね。 実際コードを書いてると、自分の書いたコードに関するバグは、体感、8割くらいが副作用に起因するものです。 副作用があると、呼び出し元が考慮すべきパターンが増えます。Mの状態を持つオブジェクトと、Nの状態を持つオブジェクトをつなぐと、MxNのパターンになるわけです。これはつなぐたびに積算されるため、爆発します。 副作用が無い場合、状態数は1なわけです。1x1は?1です!!よって、状態の組み合わせ爆発は起きません。考慮すべきは、入力値のパターンだけで十分なわけです。 他にもいろいろメリットが!! すばらしき参照透過性!!関数世界最高ですね
首都圏のキャバクラは地域によって色が全然違う こんにちは! 皆さん、キャバクラって行ったことはありますか?w 俺はしょっちゅう行ってるんすけど、いや〜、これが沼で通い出したら止まらないww だからお金ができるたびに首都圏のキャバクラを回ってるんすけど、よく調べてみると、キャバクラって地域によって全然毛色が違うんですよ! そこに通う人のニーズだったり、好みだったりがお店に反映されてんのかな?w だからキャバクラにハマる人って、初めて行った店の雰囲気とかキャバ嬢の見た目とかでどハマりする人と、そんなにハマらない人がいるんですよね。 俺はその前者wどハマりして今では抜け出せないところに来てるっすww じゃあ、首都圏、特に東京のキャバクラには地域によってどんな特徴があるのか、紹介していきたいと思います! 新宿歌舞伎町のキャバクラの特徴と必要な予算 キャバクラって言ったらまず新宿歌舞伎町を思い浮かべ
この記事は↓に移転しました。 laysakura.github.io
クリスマスだしたまには便利な記事でも書く。 以前少し書いた、ゲームにアニメ風のエフェクトを入れたいという話。アニメ風というのは例えば こういう光線や光輪を指す。ポイントとしては、わざと線の太さを不安定にしたり途切れ途切れにして躍動感を出す、という所。 さて、まず光輪からいくと、左上に(0,0)、右下に(1,1)のテクスチャ座標を指定した矩形ポリゴンを用意する。(次の画像だけ、u,vを赤と緑に割り当てている) 中心が(0.5,0.5)なので、フラグメントシェーダー上でテクスチャ座標と(0.5,0.5)の距離をとって、ある閾値を超えたらdiscardすると円形になる。 void main() { vec2 rpos = v_texCoord - vec2(0.5, 0.5); float r = length(rpos); if (r > 0.5) { discard; } gl_FragCo
In this article, we will show you how to use java.io.BufferedReader to read content from a file 1. Files.newBufferedReader (Java 8) In Java 8, there is a new method Files.newBufferedReader(Paths.get("file")) to return a BufferedReader package com.mkyong; import java.io.BufferedReader; import java.io.IOException; import java.nio.file.Files; import java.nio.file.Paths; public class FileExample1 { pu
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く