なんとなくタイトルが浮かんだので、書くぞ!
新人プログラマは毎朝復唱しよう!
1: 書いて書いて書きまくれ!
冗談ではない
会社で4時間しかコードを書く時間がなかったら、家に帰って4時間コードを書こう!
会社で8時間コードを書いたら、家に帰って4時間コードを書こう!
2: 読んで読んで読みまくれ!
人のコードを読もう!
OSSを使う時は、サンプルコードとReadmeだけで満足せずに、コードを読もう!
- どんなコードが読みやすく、メンテナンスしやすいのか
- どう書けばシンプルに実装できるのか
3: まず、公式ドキュメント
Qiitaは公式ドキュメントではない!
何度でも言うぞ!Qiitaは公式ドキュメントではない!
- 公式の"〜プログラミングガイド"はしっかり読む
- WWDCのあとは、API Diffを読む
- The Swift Programming Languageを読む
- 公式でない記事は、更新日を確認する癖をつける
4: WWDCのセッション
WWDCのセッションを見よう
Appleが何を考えてAPIを提供しているのか、理解が深まる
- asciiwwdcにはtranscriptが揃っている
- 2015年からは公式のtranscriptが用意されている
5: iOS SDKを知る
UIKitは、かなり良いフレームワークです。
GUIのアプリケーションを実装するというのはつまり、階層になったオブジェクトを組み立て、操作することです。
レイアウト、レンダリング、イベントハンドリング、ヒットテスト、ViewController
それぞれ異なる役割を持った階層がUIKitではどのように実装されているのか、イメージできるようになると簡単です
- 似たような仕組みを作るなら、どう実装するかイメージしてみる
- 他のプラットフォームではどのような実装になっているのか知る
6: ハードウェアを知る
ソフトウェアはハードウェアと無縁ではいられません
タッチスクリーンから受け取ったイベントが、アプリケーションに伝わり、レンダリング結果が毎フレーム表示されるまでをイメージしよう
- 自分が書いているコードは、CPUとGPUでどのように処理されるのか
- ネットワークやディスクの距離感
7: 人間を知る
GUIを開発するエンジニアは、端末ではなく人間をハックするものだと心得ましょう。
実際の処理を1ms短縮する前に、人間の認知を100ms早めるトライをするということです。
- インタフェースデザインの心理学 ―ウェブやアプリに新たな視点をもたらす100の指針はエンジニアにも分りやすく面白い本でした
8: 知らざるを知らずと為す
ユーザーは考えた通りに動きませんし、Appleは容赦なくOSとハードウェアを更新します。
あなたの考えた最高のアプリは糞ですし、Appleに対する淡い期待は裏切られます。
- 初期開発時はユーザーの事など何も知らないということを肝に銘じましょう
- アプリの運用とは、ユーザーを知る過程です
- 初期開発の何倍もの作業が発生します
- Appleにきっと大丈夫は通用しません。高い代償を払うことになります。
- その昔、iPhoneの画面サイズは3.5インチ固定だと信じられていました
- 依存関係を減らし、局所的に改修しやすく実装する
アプリに限らずですが、変化に強いソフトウェアを作りましょうということです
ビールを飲みながら書き始めた記事ですが、だんだん眠くなってきたのがお分かりいただけるでしょうか。
最初に思いついたタイトルは10か条でした。