2015-06-01から1ヶ月間の記事一覧
Dependency Injection(DI)というオブジェクト指向言語のコーディングテクニックがある。 あるクラスAの中で他のクラスBのインスタンスを生成するのをやめて、メソッドの引数とか、Aの初期化時に引数としてインスタンスを渡そうというテクニック。 良いところ…
エンジニアの特性としてなのか、僕個人の特性なのか不明だけど、非技術者から技術的内容を質問されると、できるだけ嘘のないように、正確に答えようとする意識が働く。 アプリの作り方が二通りあって、作業のコストとか作りのきれいさを考えると現実的に作り…
iOSやAndroidなどのモバイルアプリフレームワークのいいところの一つは、ずぶの素人が作っても、フレームワークレベルでの強制力が働くため、そこそこきれいなコードになること。 例えばiOSであればStoryboardというGUIでViewを書いていける機能があって、こ…
YAGNI - Wikipedia まさに言いたいこと全部wikipediaに書いてある。 「あとで使うだろうとの予測の元に作ったものは、実際には10%程度しか使われない。」 とあるけれど、新規事業つくるスタートアップの観点で言うと、仮にこの実際に使う10%に入ったとしても…
iOSで、ある画面から条件によって(ユーザの種類とか)別の画面に遷移させたくて、きれいに書ける方法ないかと思って考えたり探したりしてもなかなかいい方法ない。 そもそもsegueでやる方法の何が不満かというと、条件分岐で別画面に遷移させた場合って、遷移…
今日作ったコードの、今日作った設計の、良い所を一般化してまとめておこうとするとすごく難しい。 それがほんとにベストの書き方だったかを検討するのって、他の可能性をできるだけ多く検討する必要があるので、自分より上級のプログラマと時間をとってペア…
受託開発の場合、XXXという仕様のものを作るとXXX円払いますよという仕事なので、プロセスとしてまず「どういうものを作るか」という仕様を決める必要がある。 この仕様はできるだけ詳細に詰めておく方がよくて、(なぜなら後々曖昧な仕様に漬け込まれて作業…
①エラーメッセージしっかり作りこまなくても意外と大丈夫 HTTPエラーコードはRailsが勝手に吐いてくれるので(Not FoundとかUnauthorizedとか)、小さいチームでサーバもアプリも作る場合は意外と大丈夫。 ②配列の書き方統一する has_manyのデータの列挙の書き…
エンジニアあるある。 ①つくったもの使わない 説明不要で、空振り感、虚しさ感がすごい。フィードバックからブラッシュアップという流れを経ることができないので、使った技術のメリット・デメリットを腹落ちして理解できないという面も☓ ②根拠の無い「決め…
小さい会社で社長と超接近戦でプログラマーやってたんで、感じたアンチパターンまとめ。 実際には社長に限らずとも仕事のパートナーに(特にプログラマーに)心地よく思ってもらうためのパターンであると思うので、応用が効くはず。 社長は非技術者である前提…
ちょっと抽象的なんだけど、タブを3つ持ったアプリがあるとして、3つのタブで条件分岐がある画面遷移(4から7)を共有している場合を考えると、5,6,7に到達できるのは1,2,3すべてなので、パターンが掛け算になって増えてしまう。ので良くない。 例えば各タブか…
UINavigationController使って、pushで進んでいくべき。 いや、UINavigationControllerてそのためにあるんだから当たり前じゃんと言われそうだけど、ところがどっこい遷移アニメーションがmodalの方がいいときとかはそっち使ってしまうことがよくある。だが…
カスタムクラスを作るってことは、実装だけじゃなく、以下のような手間(=コスト)がかかる ①設計する手間 ②テストする手間 ③実装したものをドキュメントする手間 ④バグ修正する手間 ①は、カスタムをする場合は標準のものを理解した上で、できるだけ運用コ…
静的なWebページのイメージでアプリを作ると非常に作りにくいパターンがある。 ①topページへもどるとか、特定の画面まで一気に戻るというのがつくりづらい 無理やりつくろうとすればつくれるけど、Webの感覚でハイパーリンクさせるだけでしょというのは違っ…
RailsとかiOS SDKとか使ってるとデフォルトでMVCの親クラスがあって、下々の者はそれをありがたく継承してカスタムしなさいという風になっていて(実際下々なのですごくありがたい)、普段意識することがないんだけど、よくよく考えるとMVCのメリットって何…
リーンスタートアップでは出来るだけ実装せず、必要最小限のものでコンセプトを実証するのが良いとされる。 スタートアップのシステム開発の場面で考えるとすごく賛成で、これは見事に逆をやってしまった失敗経験に裏打ちされている。 具体的には内部で仕様…